ALSA: hda/realtek - Fixup mute led on HP Spectre x360
This patch adds the mute LED control for HP Spectre x360 Kabylake model. The mute LED is controlled via VREF bits on NID 0x1b, so we need a new fixup function. Note that this doesn't fix the other issues like the missing speaker output on the machine. They will be addressed by later patches. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=189331 Signed-off-by: Tom Briden <tom@decompile.me.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
f274baa49b
commit
7f783bd5e2
|
@ -3679,6 +3679,19 @@ static void alc269_fixup_hp_mute_led_mic2(struct hda_codec *codec,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void alc269_fixup_hp_mute_led_mic3(struct hda_codec *codec,
|
||||||
|
const struct hda_fixup *fix, int action)
|
||||||
|
{
|
||||||
|
struct alc_spec *spec = codec->spec;
|
||||||
|
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||||
|
spec->mute_led_polarity = 0;
|
||||||
|
spec->mute_led_nid = 0x1b;
|
||||||
|
spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook;
|
||||||
|
spec->gen.vmaster_mute_enum = 1;
|
||||||
|
codec->power_filter = led_power_filter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* update LED status via GPIO */
|
/* update LED status via GPIO */
|
||||||
static void alc_update_gpio_led(struct hda_codec *codec, unsigned int mask,
|
static void alc_update_gpio_led(struct hda_codec *codec, unsigned int mask,
|
||||||
bool enabled)
|
bool enabled)
|
||||||
|
@ -5413,6 +5426,7 @@ enum {
|
||||||
ALC269_FIXUP_HP_MUTE_LED,
|
ALC269_FIXUP_HP_MUTE_LED,
|
||||||
ALC269_FIXUP_HP_MUTE_LED_MIC1,
|
ALC269_FIXUP_HP_MUTE_LED_MIC1,
|
||||||
ALC269_FIXUP_HP_MUTE_LED_MIC2,
|
ALC269_FIXUP_HP_MUTE_LED_MIC2,
|
||||||
|
ALC269_FIXUP_HP_MUTE_LED_MIC3,
|
||||||
ALC269_FIXUP_HP_GPIO_LED,
|
ALC269_FIXUP_HP_GPIO_LED,
|
||||||
ALC269_FIXUP_HP_GPIO_MIC1_LED,
|
ALC269_FIXUP_HP_GPIO_MIC1_LED,
|
||||||
ALC269_FIXUP_HP_LINE1_MIC1_LED,
|
ALC269_FIXUP_HP_LINE1_MIC1_LED,
|
||||||
|
@ -5672,6 +5686,10 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||||
.type = HDA_FIXUP_FUNC,
|
.type = HDA_FIXUP_FUNC,
|
||||||
.v.func = alc269_fixup_hp_mute_led_mic2,
|
.v.func = alc269_fixup_hp_mute_led_mic2,
|
||||||
},
|
},
|
||||||
|
[ALC269_FIXUP_HP_MUTE_LED_MIC3] = {
|
||||||
|
.type = HDA_FIXUP_FUNC,
|
||||||
|
.v.func = alc269_fixup_hp_mute_led_mic3,
|
||||||
|
},
|
||||||
[ALC269_FIXUP_HP_GPIO_LED] = {
|
[ALC269_FIXUP_HP_GPIO_LED] = {
|
||||||
.type = HDA_FIXUP_FUNC,
|
.type = HDA_FIXUP_FUNC,
|
||||||
.v.func = alc269_fixup_hp_gpio_led,
|
.v.func = alc269_fixup_hp_gpio_led,
|
||||||
|
@ -6494,6 +6512,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x103c, 0x2337, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
|
SND_PCI_QUIRK(0x103c, 0x2337, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
|
||||||
SND_PCI_QUIRK(0x103c, 0x221c, "HP EliteBook 755 G2", ALC280_FIXUP_HP_HEADSET_MIC),
|
SND_PCI_QUIRK(0x103c, 0x221c, "HP EliteBook 755 G2", ALC280_FIXUP_HP_HEADSET_MIC),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC),
|
SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC),
|
||||||
|
SND_PCI_QUIRK(0x103c, 0x827e, "HP x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||||
SND_PCI_QUIRK(0x103c, 0x82bf, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x103c, 0x82bf, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x103c, 0x82c0, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x103c, 0x82c0, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
|
SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
|
||||||
|
|
Loading…
Reference in New Issue