diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index b649033a4c81..b91f6ed5cc58 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -2348,7 +2348,8 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, | |||
2348 | if (wcaps & AC_WCAP_POWER) { | 2348 | if (wcaps & AC_WCAP_POWER) { |
2349 | unsigned int wid_type = (wcaps & AC_WCAP_TYPE) >> | 2349 | unsigned int wid_type = (wcaps & AC_WCAP_TYPE) >> |
2350 | AC_WCAP_TYPE_SHIFT; | 2350 | AC_WCAP_TYPE_SHIFT; |
2351 | if (wid_type == AC_WID_PIN) { | 2351 | if (power_state == AC_PWRST_D3 && |
2352 | wid_type == AC_WID_PIN) { | ||
2352 | unsigned int pincap; | 2353 | unsigned int pincap; |
2353 | /* | 2354 | /* |
2354 | * don't power down the widget if it controls | 2355 | * don't power down the widget if it controls |
@@ -2360,7 +2361,7 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, | |||
2360 | nid, 0, | 2361 | nid, 0, |
2361 | AC_VERB_GET_EAPD_BTLENABLE, 0); | 2362 | AC_VERB_GET_EAPD_BTLENABLE, 0); |
2362 | eapd &= 0x02; | 2363 | eapd &= 0x02; |
2363 | if (power_state == AC_PWRST_D3 && eapd) | 2364 | if (eapd) |
2364 | continue; | 2365 | continue; |
2365 | } | 2366 | } |
2366 | } | 2367 | } |