ALSA: hda - reduce msleep time if EPSS power states supported
authorWang Xingchao <xingchao.wang@intel.com>
Thu, 7 Jun 2012 08:51:33 +0000 (16:51 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 7 Jun 2012 09:40:33 +0000 (11:40 +0200)
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>
sound/pci/hda/hda_codec.c

index b89c8ec..fedbfae 100644 (file)
@@ -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);