diff options
| -rw-r--r-- | sound/pci/hda/hda_codec.c | 4 | ||||
| -rw-r--r-- | sound/pci/hda/hda_intel.c | 14 | 
2 files changed, 5 insertions, 13 deletions
| diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 76bac4fc0472..0527ae1ab96e 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -5281,6 +5281,10 @@ int snd_hda_suspend(struct hda_bus *bus)  	list_for_each_entry(codec, &bus->codec_list, list) {  		if (hda_codec_is_power_on(codec))  			hda_call_codec_suspend(codec); +		else /* forcibly change the power to D3 even if not used */ +			hda_set_power_state(codec, +					    codec->afg ? codec->afg : codec->mfg, +					    AC_PWRST_D3);  		if (codec->patch_ops.post_suspend)  			codec->patch_ops.post_suspend(codec);  	} diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 6e958bf94191..c19e71a94e1b 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -2351,17 +2351,6 @@ static void azx_power_notify(struct hda_bus *bus)   * power management   */ -static int snd_hda_codecs_inuse(struct hda_bus *bus) -{ -	struct hda_codec *codec; - -	list_for_each_entry(codec, &bus->codec_list, list) { -		if (snd_hda_codec_needs_resume(codec)) -			return 1; -	} -	return 0; -} -  static int azx_suspend(struct pci_dev *pci, pm_message_t state)  {  	struct snd_card *card = pci_get_drvdata(pci); @@ -2408,8 +2397,7 @@ static int azx_resume(struct pci_dev *pci)  		return -EIO;  	azx_init_pci(chip); -	if (snd_hda_codecs_inuse(chip->bus)) -		azx_init_chip(chip, 1); +	azx_init_chip(chip, 1);  	snd_hda_resume(chip->bus);  	snd_power_change_state(card, SNDRV_CTL_POWER_D0); | 
