ALSA: hda - remove unnecessary msleep on power state transitions

This will save ~15ms boot time.

The first 10ms sleep was introduced in commit d2595d86e5 for (buggy)
Cxt codecs, so better to limit the sleep to the problem hardware.

For the second 10ms sleep, the HDA spec says:

Power State[1:0]:
00: Node Power state (D0) is fully on.
01: Node Power state (D1) allows for (does not require) the lowest possible power consuming state from which it
can return to the "fully on" state (D0) within 10 ms, excepting analog pass through circuits (e.g., CD analog
playback) which must remain fully on.
10: Node Power state (D2) allows for (does not require) the lowest possible power consuming state from which it
can return to the "fully on" state (D0) within 10 ms. For modems, this is the "wake on ring" power state.
11: Node Power state (D3) allows for (does not require) lowest possible power consuming state under software
control. Note that any low power state set by software must retain sufficient operational capability to properly
respond to subsequent software Power State command.

So 10ms is actually the max wait time. It should be safe to
remove/reduce it and rely on the loop of 1ms-sleeps.

CC: Marc Boucher <marc@linuxant.com>
CC: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by Zhang, Rui and committed by Takashi Iwai dd2b4a7a 0d7d8bf3

+2 -2
+2 -2
sound/pci/hda/hda_codec.c
··· 2767 2767 snd_hda_codec_read(codec, fg, 0, AC_VERB_SET_POWER_STATE, 2768 2768 power_state); 2769 2769 /* partial workaround for "azx_get_response timeout" */ 2770 - if (power_state == AC_PWRST_D0) 2770 + if (power_state == AC_PWRST_D0 && 2771 + (codec->vendor_id & 0xffff0000) == 0x14f10000) 2771 2772 msleep(10); 2772 2773 2773 2774 nid = codec->start_nid; ··· 2802 2801 if (power_state == AC_PWRST_D0) { 2803 2802 unsigned long end_time; 2804 2803 int state; 2805 - msleep(10); 2806 2804 /* wait until the codec reachs to D0 */ 2807 2805 end_time = jiffies + msecs_to_jiffies(500); 2808 2806 do {