mirror of https://gitee.com/openkylin/linux.git
ALSA: hda - Fix mute LED on HP laptops in runtime suspend
When HP laptops with mute and mic-record LEDs go to runtime suspend, these LEDs are turned on forcibly no matter whether GPIO pis are on or off. This strange behavior seems triggered by resetting the HD-audio bus link at azx_rutime_suspend(). So, just add a new hda_bus flag to avoid the link reset at runtime suspend and set it for these HP machines. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
161ebf295e
commit
95f74c41b2
|
@ -698,6 +698,7 @@ struct hda_bus {
|
|||
unsigned int in_reset:1; /* during reset operation */
|
||||
unsigned int power_keep_link_on:1; /* don't power off HDA link */
|
||||
unsigned int no_response_fallback:1; /* don't fallback at RIRB error */
|
||||
unsigned int avoid_link_reset:1; /* don't reset link at runtime PM */
|
||||
|
||||
int primary_dig_out_type; /* primary digital out PCM type */
|
||||
};
|
||||
|
|
|
@ -2986,7 +2986,8 @@ static int azx_runtime_suspend(struct device *dev)
|
|||
STATESTS_INT_MASK);
|
||||
|
||||
azx_stop_chip(chip);
|
||||
azx_enter_link_reset(chip);
|
||||
if (!chip->bus->avoid_link_reset)
|
||||
azx_enter_link_reset(chip);
|
||||
azx_clear_irq_pending(chip);
|
||||
if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)
|
||||
hda_display_power(false);
|
||||
|
|
|
@ -2091,8 +2091,10 @@ static void stac92hd83xxx_fixup_hp_mic_led(struct hda_codec *codec,
|
|||
{
|
||||
struct sigmatel_spec *spec = codec->spec;
|
||||
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE)
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||
spec->mic_mute_led_gpio = 0x08; /* GPIO3 */
|
||||
codec->bus->avoid_link_reset = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void stac92hd83xxx_fixup_headset_jack(struct hda_codec *codec,
|
||||
|
|
Loading…
Reference in New Issue