aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Chin <Charles.Chin@idt.com>2011-12-01 05:21:00 -0500
committerTakashi Iwai <tiwai@suse.de>2011-12-01 05:27:43 -0500
commit88d686027bb43f585914c77dd363f6e817b42c2a (patch)
tree66f13cd796ab861fdf56d8a6502e3e9724cff2dd
parent4f8b6c7dc80ac9619db033c7f6fc355eab9514f5 (diff)
ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LED
The verb command in stac92xx_post_suspend caused the audio to stop working after resuming from S3 mode on HP laptops with the VREF-pin mute-LED control. Removing relevant post_suspend registering. Although removing D3 on AFG is no optimal solution, the impact should be small in comparison with the broken S3/S4. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_sigmatel.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index f4f4ebeed9ea..d8d2f9dccd9b 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -5057,20 +5057,6 @@ static int stac92xx_pre_resume(struct hda_codec *codec)
5057 return 0; 5057 return 0;
5058} 5058}
5059 5059
5060static int stac92xx_post_suspend(struct hda_codec *codec)
5061{
5062 struct sigmatel_spec *spec = codec->spec;
5063 if (spec->gpio_led > 8) {
5064 /* with vref-out pin used for mute led control
5065 * codec AFG is prevented from D3 state, but on
5066 * system suspend it can (and should) be used
5067 */
5068 snd_hda_codec_read(codec, codec->afg, 0,
5069 AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
5070 }
5071 return 0;
5072}
5073
5074static void stac92xx_set_power_state(struct hda_codec *codec, hda_nid_t fg, 5060static void stac92xx_set_power_state(struct hda_codec *codec, hda_nid_t fg,
5075 unsigned int power_state) 5061 unsigned int power_state)
5076{ 5062{
@@ -5670,8 +5656,6 @@ again:
5670 } else { 5656 } else {
5671 codec->patch_ops.set_power_state = 5657 codec->patch_ops.set_power_state =
5672 stac92xx_set_power_state; 5658 stac92xx_set_power_state;
5673 codec->patch_ops.post_suspend =
5674 stac92xx_post_suspend;
5675 } 5659 }
5676 codec->patch_ops.pre_resume = stac92xx_pre_resume; 5660 codec->patch_ops.pre_resume = stac92xx_pre_resume;
5677 codec->patch_ops.check_power_status = 5661 codec->patch_ops.check_power_status =
@@ -5985,8 +5969,6 @@ again:
5985 } else { 5969 } else {
5986 codec->patch_ops.set_power_state = 5970 codec->patch_ops.set_power_state =
5987 stac92xx_set_power_state; 5971 stac92xx_set_power_state;
5988 codec->patch_ops.post_suspend =
5989 stac92xx_post_suspend;
5990 } 5972 }
5991 codec->patch_ops.pre_resume = stac92xx_pre_resume; 5973 codec->patch_ops.pre_resume = stac92xx_pre_resume;
5992 codec->patch_ops.check_power_status = 5974 codec->patch_ops.check_power_status =