[alsa-devel] [PATCH] ALSA: hda - Avoid codec D3 for keeping mute LED up on Lenovo Yxx0
Takashi Iwai
tiwai at suse.de
Mon Feb 24 10:52:41 CET 2014
The GPIO line used for the mute LED control on Lenovo Yxx0 laptops is
cleared unexpectedly when the codec goes to D3, typically by
power-saving. For avoiding it, add a power filter in the fixup.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16373
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
sound/pci/hda/patch_realtek.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 3829cb5ebc2b..817a52efe750 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4832,6 +4832,17 @@ static void alc662_led_gpio1_mute_hook(void *private_data, int enabled)
spec->gpio_led);
}
+/* avoid D3 for keeping GPIO up */
+static unsigned int gpio_led_power_filter(struct hda_codec *codec,
+ hda_nid_t nid,
+ unsigned int power_state)
+{
+ struct alc_spec *spec = codec->spec;
+ if (nid == codec->afg && power_state == AC_PWRST_D3 && spec->gpio_led)
+ return AC_PWRST_D0;
+ return power_state;
+}
+
static void alc662_fixup_led_gpio1(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
{
--
1.8.5.2
More information about the Alsa-devel
mailing list