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>
This commit is contained in:
parent
4f8b6c7dc8
commit
88d686027b
|
@ -5057,20 +5057,6 @@ static int stac92xx_pre_resume(struct hda_codec *codec)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stac92xx_post_suspend(struct hda_codec *codec)
|
|
||||||
{
|
|
||||||
struct sigmatel_spec *spec = codec->spec;
|
|
||||||
if (spec->gpio_led > 8) {
|
|
||||||
/* with vref-out pin used for mute led control
|
|
||||||
* codec AFG is prevented from D3 state, but on
|
|
||||||
* system suspend it can (and should) be used
|
|
||||||
*/
|
|
||||||
snd_hda_codec_read(codec, codec->afg, 0,
|
|
||||||
AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void stac92xx_set_power_state(struct hda_codec *codec, hda_nid_t fg,
|
static void stac92xx_set_power_state(struct hda_codec *codec, hda_nid_t fg,
|
||||||
unsigned int power_state)
|
unsigned int power_state)
|
||||||
{
|
{
|
||||||
|
@ -5670,8 +5656,6 @@ again:
|
||||||
} else {
|
} else {
|
||||||
codec->patch_ops.set_power_state =
|
codec->patch_ops.set_power_state =
|
||||||
stac92xx_set_power_state;
|
stac92xx_set_power_state;
|
||||||
codec->patch_ops.post_suspend =
|
|
||||||
stac92xx_post_suspend;
|
|
||||||
}
|
}
|
||||||
codec->patch_ops.pre_resume = stac92xx_pre_resume;
|
codec->patch_ops.pre_resume = stac92xx_pre_resume;
|
||||||
codec->patch_ops.check_power_status =
|
codec->patch_ops.check_power_status =
|
||||||
|
@ -5985,8 +5969,6 @@ again:
|
||||||
} else {
|
} else {
|
||||||
codec->patch_ops.set_power_state =
|
codec->patch_ops.set_power_state =
|
||||||
stac92xx_set_power_state;
|
stac92xx_set_power_state;
|
||||||
codec->patch_ops.post_suspend =
|
|
||||||
stac92xx_post_suspend;
|
|
||||||
}
|
}
|
||||||
codec->patch_ops.pre_resume = stac92xx_pre_resume;
|
codec->patch_ops.pre_resume = stac92xx_pre_resume;
|
||||||
codec->patch_ops.check_power_status =
|
codec->patch_ops.check_power_status =
|
||||||
|
|
Loading…
Reference in New Issue