From: Sasha Levin Date: Wed, 2 Oct 2019 01:08:45 +0000 (-0400) Subject: fixes for 4.14 X-Git-Tag: v4.4.195~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07739b6ed3f1bce7d4e79d01831998d63dfddcf2;p=thirdparty%2Fkernel%2Fstable-queue.git fixes for 4.14 Signed-off-by: Sasha Levin --- diff --git a/queue-4.14/alsa-hda-realtek-fixup-mute-led-on-hp-spectre-x360.patch b/queue-4.14/alsa-hda-realtek-fixup-mute-led-on-hp-spectre-x360.patch new file mode 100644 index 00000000000..ddf429fc266 --- /dev/null +++ b/queue-4.14/alsa-hda-realtek-fixup-mute-led-on-hp-spectre-x360.patch @@ -0,0 +1,78 @@ +From bae94a1daa215249e343bc48b48ead0f04009aab Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 25 Mar 2017 10:12:01 +0000 +Subject: ALSA: hda/realtek - Fixup mute led on HP Spectre x360 + +From: Tom Briden + +[ Upstream commit 7f783bd5e215a014a3c98df64bef24c2dc736def ] + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/pci/hda/patch_realtek.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 4f35ac2606708..ab7bc7ebb7215 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -3611,6 +3611,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 */ + static void alc_update_gpio_led(struct hda_codec *codec, unsigned int mask, + bool enabled) +@@ -5385,6 +5398,7 @@ enum { + ALC269_FIXUP_HP_MUTE_LED, + ALC269_FIXUP_HP_MUTE_LED_MIC1, + ALC269_FIXUP_HP_MUTE_LED_MIC2, ++ ALC269_FIXUP_HP_MUTE_LED_MIC3, + ALC269_FIXUP_HP_GPIO_LED, + ALC269_FIXUP_HP_GPIO_MIC1_LED, + ALC269_FIXUP_HP_LINE1_MIC1_LED, +@@ -5648,6 +5662,10 @@ static const struct hda_fixup alc269_fixups[] = { + .type = HDA_FIXUP_FUNC, + .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] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_hp_gpio_led, +@@ -6502,6 +6520,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, 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, 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, 0x82c0, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), +-- +2.20.1 + diff --git a/queue-4.14/series b/queue-4.14/series index 0e0cc5416bb..44309b0d51e 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -144,3 +144,4 @@ scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch printk-do-not-lose-last-line-in-kmsg-buffer-dump.patch ib-hfi1-define-variables-as-unsigned-long-to-fix-kasan-warning.patch randstruct-check-member-structs-in-is_pure_ops_struct.patch +alsa-hda-realtek-fixup-mute-led-on-hp-spectre-x360.patch