diff options
author | Charles Chin <Charles.Chin@idt.com> | 2011-12-01 05:21:00 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-12-01 05:27:43 -0500 |
commit | 88d686027bb43f585914c77dd363f6e817b42c2a (patch) | |
tree | 66f13cd796ab861fdf56d8a6502e3e9724cff2dd | |
parent | 4f8b6c7dc80ac9619db033c7f6fc355eab9514f5 (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.c | 18 |
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 | ||
5060 | static 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 | |||
5074 | static void stac92xx_set_power_state(struct hda_codec *codec, hda_nid_t fg, | 5060 | static 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 = |