--- /dev/null
+From d5ea7544c32ba27c2c5826248e4ff58bd50a2518 Mon Sep 17 00:00:00 2001
+From: huangwenhui <huangwenhuia@uniontech.com>
+Date: Tue, 7 Jun 2022 14:56:31 +0800
+Subject: ALSA: hda/conexant - Fix loopback issue with CX20632
+
+From: huangwenhui <huangwenhuia@uniontech.com>
+
+commit d5ea7544c32ba27c2c5826248e4ff58bd50a2518 upstream.
+
+On a machine with CX20632, Alsamixer doesn't have 'Loopback
+Mixing' and 'Line'.
+
+Signed-off-by: huangwenhui <huangwenhuia@uniontech.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20220607065631.10708-1-huangwenhuia@uniontech.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/patch_conexant.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -1052,6 +1052,13 @@ static int patch_conexant_auto(struct hd
+ snd_hda_pick_fixup(codec, cxt5051_fixup_models,
+ cxt5051_fixups, cxt_fixups);
+ break;
++ case 0x14f15098:
++ codec->pin_amp_workaround = 1;
++ spec->gen.mixer_nid = 0x22;
++ spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO;
++ snd_hda_pick_fixup(codec, cxt5066_fixup_models,
++ cxt5066_fixups, cxt_fixups);
++ break;
+ case 0x14f150f2:
+ codec->power_save_node = 1;
+ fallthrough;
--- /dev/null
+From 5f3d696eea916693b2d4ed7e62794653fcdd6ec0 Mon Sep 17 00:00:00 2001
+From: Jeremy Soller <jeremy@system76.com>
+Date: Wed, 8 Jun 2022 08:01:11 -0600
+Subject: ALSA: hda/realtek: Add quirk for HP Dev One
+
+From: Jeremy Soller <jeremy@system76.com>
+
+commit 5f3d696eea916693b2d4ed7e62794653fcdd6ec0 upstream.
+
+Enables the audio mute LEDs and limits the mic boost to avoid picking up
+noise.
+
+Signed-off-by: Jeremy Soller <jeremy@system76.com>
+Signed-off-by: Tim Crawford <tcrawford@system76.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20220608140111.23170-1-tcrawford@system76.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -9111,6 +9111,7 @@ static const struct snd_pci_quirk alc269
+ SND_PCI_QUIRK(0x103c, 0x89c3, "Zbook Studio G9", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
+ SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
+ SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
++ SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
+ SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
+ SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
+ SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
--- /dev/null
+From 85743a847caeab696dafc4ce1a7e1e2b7e29a0f6 Mon Sep 17 00:00:00 2001
+From: Cameron Berkenpas <cam@neo-zeon.de>
+Date: Sun, 5 Jun 2022 17:23:30 -0700
+Subject: ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo Yoga DuetITL 2021
+
+From: Cameron Berkenpas <cam@neo-zeon.de>
+
+commit 85743a847caeab696dafc4ce1a7e1e2b7e29a0f6 upstream.
+
+Enables the ALC287_FIXUP_YOGA7_14ITL_SPEAKERS quirk for the Lenovo
+Yoga DuetITL 2021 laptop to fix speaker output.
+
+[ re-sorted in the SSID order by tiwai ]
+
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208555
+Signed-off-by: Cameron Berkenpas <cam@neo-zeon.de>
+Co-authored-by: Songine <donglingluoying@gmail.com>
+Cc: stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20220606002329.215330-1-cam@neo-zeon.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -9310,6 +9310,7 @@ static const struct snd_pci_quirk alc269
+ SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
+ SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
+ SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
++ SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
+ SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
+ SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
+ SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS),
--- /dev/null
+From e0469d6581aecb0e34e2ec64f39f88e6985cc52f Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 6 Jun 2022 18:09:10 +0200
+Subject: ALSA: usb-audio: Set up (implicit) sync for Saffire 6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit e0469d6581aecb0e34e2ec64f39f88e6985cc52f upstream.
+
+Focusrite Saffire 6 has fixed audioformat quirks with multiple
+endpoints assigned to a single altsetting. Unfortunately the generic
+parser couldn't detect the sync endpoint correctly as the implicit
+sync due to the missing EP attribute bits. In the former kernels, it
+used to work somehow casually, but it's been broken for a while after
+the large code change in 5.11.
+
+This patch cures the regression by the following:
+- Allow the static quirk table to provide the sync EP information;
+ we just need to fill the fields and let the generic parser skipping
+ parsing if sync_ep is already set.
+- Add the sync endpoint information to the entry for Saffire 6.
+
+Fixes: 7b0efea4baf0 ("ALSA: usb-audio: Add missing ep_idx in fixed EP quirks")
+Reported-and-tested-by: André Kapelrud <a.kapelrud@gmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20220606160910.6926-3-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/pcm.c | 3 +++
+ sound/usb/quirks-table.h | 7 ++++++-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+--- a/sound/usb/pcm.c
++++ b/sound/usb/pcm.c
+@@ -291,6 +291,9 @@ int snd_usb_audioformat_set_sync_ep(stru
+ bool is_playback;
+ int err;
+
++ if (fmt->sync_ep)
++ return 0; /* already set up */
++
+ alts = snd_usb_get_host_interface(chip, fmt->iface, fmt->altsetting);
+ if (!alts)
+ return 0;
+--- a/sound/usb/quirks-table.h
++++ b/sound/usb/quirks-table.h
+@@ -2658,7 +2658,12 @@ YAMAHA_DEVICE(0x7010, "UB99"),
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) {
+ 44100, 48000
+- }
++ },
++ .sync_ep = 0x82,
++ .sync_iface = 0,
++ .sync_altsetting = 1,
++ .sync_ep_idx = 1,
++ .implicit_fb = 1,
+ }
+ },
+ {
--- /dev/null
+From efb75df105e82f076a85b9f2d81410428bcb55fc Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 6 Jun 2022 18:09:09 +0200
+Subject: ALSA: usb-audio: Skip generic sync EP parse for secondary EP
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit efb75df105e82f076a85b9f2d81410428bcb55fc upstream.
+
+When ep_idx is already non-zero, it means usually a capture stream
+that is set up explicity by a fixed-format quirk, and applying the
+check for generic (non-implicit-fb) sync EPs might hit incorrectly,
+resulting in a bogus sync endpoint for the capture stream.
+
+This patch adds a check for the ep_idx and skip if it's a secondary
+endpoint. It's a part of the fixes for regressions on Saffire 6.
+
+Fixes: 7b0efea4baf0 ("ALSA: usb-audio: Add missing ep_idx in fixed EP quirks")
+Reported-and-tested-by: André Kapelrud <a.kapelrud@gmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20220606160910.6926-2-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/usb/pcm.c
++++ b/sound/usb/pcm.c
+@@ -304,7 +304,7 @@ int snd_usb_audioformat_set_sync_ep(stru
+ * Generic sync EP handling
+ */
+
+- if (altsd->bNumEndpoints < 2)
++ if (fmt->ep_idx > 0 || altsd->bNumEndpoints < 2)
+ return 0;
+
+ is_playback = !(get_endpoint(alts, 0)->bEndpointAddress & USB_DIR_IN);
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/platform/x86/hp-wmi.c | 23 +++++++++++++++--------
+ drivers/platform/x86/hp-wmi.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
-diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
-index d3540dd62d06..0e6ed75c70f3 100644
--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
-@@ -38,6 +38,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
+@@ -38,6 +38,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE9
#define HPWMI_EVENT_GUID "95F24279-4D7B-4334-9387-ACCDC67EF61C"
#define HPWMI_BIOS_GUID "5FB7F034-2C63-45e9-BE91-3D44E2C707E4"
#define HP_OMEN_EC_THERMAL_PROFILE_OFFSET 0x95
/* DMI board names of devices that should use the omen specific path for
* thermal profiles.
-@@ -220,6 +221,7 @@ static struct input_dev *hp_wmi_input_dev;
+@@ -220,6 +221,7 @@ static struct input_dev *hp_wmi_input_de
static struct platform_device *hp_wmi_platform_dev;
static struct platform_profile_handler platform_profile_handler;
static bool platform_profile_support;
if (ret < 0)
return ret;
-@@ -499,7 +502,7 @@ static int hp_wmi_fan_speed_max_get(void)
+@@ -499,7 +502,7 @@ static int hp_wmi_fan_speed_max_get(void
int val = 0, ret;
ret = hp_wmi_perform_query(HPWMI_FAN_SPEED_MAX_GET_QUERY, HPWMI_GM,
if (ret)
return ret < 0 ? ret : -EINVAL;
-@@ -511,7 +514,7 @@ static int __init hp_wmi_bios_2008_later(void)
+@@ -511,7 +514,7 @@ static int __init hp_wmi_bios_2008_later
{
int state = 0;
int ret = hp_wmi_perform_query(HPWMI_FEATURE_QUERY, HPWMI_READ, &state,
if (!ret)
return 1;
-@@ -522,7 +525,7 @@ static int __init hp_wmi_bios_2009_later(void)
+@@ -522,7 +525,7 @@ static int __init hp_wmi_bios_2009_later
{
u8 state[128];
int ret = hp_wmi_perform_query(HPWMI_FEATURE2_QUERY, HPWMI_READ, &state,
if (err)
return err;
-@@ -1002,7 +1005,7 @@ static int __init hp_wmi_rfkill2_setup(struct platform_device *device)
+@@ -1002,7 +1005,7 @@ static int __init hp_wmi_rfkill2_setup(s
int err, i;
err = hp_wmi_perform_query(HPWMI_WIRELESS2_QUERY, HPWMI_READ, &state,
if (event_capable) {
err = hp_wmi_input_setup();
if (err)
---
-2.35.1
-
scripts-gdb-change-kernel-config-dumping-method.patch
platform-x86-hp-wmi-resolve-wmi-query-failures-on-so.patch
platform-x86-hp-wmi-use-zero-insize-parameter-only-w.patch
+alsa-usb-audio-skip-generic-sync-ep-parse-for-secondary-ep.patch
+alsa-usb-audio-set-up-implicit-sync-for-saffire-6.patch
+alsa-hda-conexant-fix-loopback-issue-with-cx20632.patch
+alsa-hda-realtek-fix-for-quirk-to-enable-speaker-output-on-the-lenovo-yoga-duetitl-2021.patch
+alsa-hda-realtek-add-quirk-for-hp-dev-one.patch