diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-04-21 07:37:29 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-04-21 07:38:30 -0400 |
commit | a3b48c88f2d5a34c0e25aec0a3dab8069e5a9a72 (patch) | |
tree | 0c530c465d128be84bd18c846587695596b2c320 /sound/pci | |
parent | b97bedcdedb4ae95b2128a4770dfc160e113b174 (diff) |
ALSA: hda - minor optimization in hda_set_power_state()
Check the target power-state before checking EAPD exception to reduce
unneeded verb executions.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
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 | } |