X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=sound%2Fpci%2Fhda%2Fhda_codec.c;h=3ecb45ddadf7f6710df320a421c6d45f2d76aeda;hp=d686f4fcd780e059fa83c0121a64240a3396b663;hb=05ff7e11b78f18ff6819d2c260b7bcc7da0c8f46;hpb=05e870d29aef0bf43124b2bd424103987fadd5b5 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index d686f4fcd780..3ecb45ddadf7 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -2367,9 +2367,14 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, hda_nid_t nid; int i; - snd_hda_codec_write(codec, fg, 0, AC_VERB_SET_POWER_STATE, + /* this delay seems necessary to avoid click noise at power-down */ + if (power_state == AC_PWRST_D3) + msleep(100); + snd_hda_codec_read(codec, fg, 0, AC_VERB_SET_POWER_STATE, power_state); - msleep(10); /* partial workaround for "azx_get_response timeout" */ + /* partial workaround for "azx_get_response timeout" */ + if (power_state == AC_PWRST_D0) + msleep(10); nid = codec->start_nid; for (i = 0; i < codec->num_nodes; i++, nid++) {