aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWang Xingchao <xingchao.wang@intel.com>2012-06-07 16:51:33 +0800
committerTakashi Iwai <tiwai@suse.de>2012-06-07 11:40:33 +0200
commit0f4ccbb02533276ab750961e150aeee06492ed7c (patch)
tree8f8486d38b3ad9ddd34e91e2177d8db4f0319b83
parent0c7f46ad927cbd29965d4971730de713b478d270 (diff)
ALSA: hda - reduce msleep time if EPSS power states supported
if EPSS supported, transition from D3 state to D0 state in less than 10ms Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/hda_codec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index b89c8ecc819..fedbfae978a 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3532,8 +3532,11 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
}
/* this delay seems necessary to avoid click noise at power-down */
- if (power_state == AC_PWRST_D3)
- msleep(100);
+ if (power_state == AC_PWRST_D3) {
+ /* transition time less than 10ms for power down */
+ bool epss = snd_hda_codec_get_supported_ps(codec, fg, AC_PWRST_EPSS);
+ msleep(epss ? 10 : 100);
+ }
snd_hda_codec_read(codec, fg, 0, AC_VERB_SET_POWER_STATE,
power_state);
snd_hda_codec_set_power_to_all(codec, fg, power_state, true);