Skip to content

Commit

Permalink
ALSA: hda - Fix mute LED on HP laptops in runtime suspend
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Takashi Iwai committed Oct 24, 2013
1 parent 161ebf2 commit 95f74c4
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 2 deletions.
1 change: 1 addition & 0 deletions sound/pci/hda/hda_codec.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
};
Expand Down
3 changes: 2 additions & 1 deletion sound/pci/hda/hda_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 3 additions & 1 deletion sound/pci/hda/patch_sigmatel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 95f74c4

Please sign in to comment.