--- /dev/null
+From 0c423e2ffa7edd3f8f9bcf17ce73fa9c7509b99e Mon Sep 17 00:00:00 2001
+From: Xian Wang <dev@xianwang.io>
+Date: Fri, 4 Nov 2022 13:29:13 -0700
+Subject: ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
+
+From: Xian Wang <dev@xianwang.io>
+
+commit 0c423e2ffa7edd3f8f9bcf17ce73fa9c7509b99e upstream.
+
+The Z390 DARK mainboard uses a CA0132 audio controller. The quirk is
+needed to enable surround sound and 3.5mm headphone jack handling in
+the front audio connector as well as in the rear of the board when in
+stereo mode.
+
+Page 97 of the linked manual contains instructions to setup the
+controller.
+
+Signed-off-by: Xian Wang <dev@xianwang.io>
+Cc: stable@vger.kernel.org
+Link: https://www.evga.com/support/manuals/files/131-CS-E399.pdf
+Link: https://lore.kernel.org/r/20221104202913.13904-1-dev@xianwang.io
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/patch_ca0132.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_ca0132.c
++++ b/sound/pci/hda/patch_ca0132.c
+@@ -1306,6 +1306,7 @@ static const struct snd_pci_quirk ca0132
+ SND_PCI_QUIRK(0x1458, 0xA026, "Gigabyte G1.Sniper Z97", QUIRK_R3DI),
+ SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI),
+ SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI),
++ SND_PCI_QUIRK(0x3842, 0x1055, "EVGA Z390 DARK", QUIRK_R3DI),
+ SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D),
+ SND_PCI_QUIRK(0x1102, 0x0018, "Recon3D", QUIRK_R3D),
+ SND_PCI_QUIRK(0x1102, 0x0051, "Sound Blaster AE-5", QUIRK_AE5),
--- /dev/null
+From 9a5523f72bd2b0d66eef3d58810c6eb7b5ffc143 Mon Sep 17 00:00:00 2001
+From: Ye Bin <yebin10@huawei.com>
+Date: Thu, 10 Nov 2022 22:45:39 +0800
+Subject: ALSA: hda: fix potential memleak in 'add_widget_node'
+
+From: Ye Bin <yebin10@huawei.com>
+
+commit 9a5523f72bd2b0d66eef3d58810c6eb7b5ffc143 upstream.
+
+As 'kobject_add' may allocated memory for 'kobject->name' when return error.
+And in this function, if call 'kobject_add' failed didn't free kobject.
+So call 'kobject_put' to recycling resources.
+
+Signed-off-by: Ye Bin <yebin10@huawei.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20221110144539.2989354-1-yebin@huaweicloud.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/hda/hdac_sysfs.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/sound/hda/hdac_sysfs.c
++++ b/sound/hda/hdac_sysfs.c
+@@ -346,8 +346,10 @@ static int add_widget_node(struct kobjec
+ return -ENOMEM;
+ kobject_init(kobj, &widget_ktype);
+ err = kobject_add(kobj, parent, "%02x", nid);
+- if (err < 0)
++ if (err < 0) {
++ kobject_put(kobj);
+ return err;
++ }
+ err = sysfs_create_group(kobj, group);
+ if (err < 0) {
+ kobject_put(kobj);
--- /dev/null
+From fdcc4c22b7ab20e90b97f8bc6225d876b72b8f16 Mon Sep 17 00:00:00 2001
+From: Evan Quan <evan.quan@amd.com>
+Date: Tue, 8 Nov 2022 16:47:46 +0800
+Subject: ALSA: hda/hdmi - enable runtime pm for more AMD display audio
+
+From: Evan Quan <evan.quan@amd.com>
+
+commit fdcc4c22b7ab20e90b97f8bc6225d876b72b8f16 upstream.
+
+We are able to power down the GPU and audio via the GPU driver
+so flag these asics as supporting runtime pm.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20221108084746.583058-1-evan.quan@amd.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/hda_intel.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2718,6 +2718,9 @@ static const struct pci_device_id azx_id
+ { PCI_DEVICE(0x1002, 0xab28),
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS |
+ AZX_DCAPS_PM_RUNTIME },
++ { PCI_DEVICE(0x1002, 0xab30),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS |
++ AZX_DCAPS_PM_RUNTIME },
+ { PCI_DEVICE(0x1002, 0xab38),
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS |
+ AZX_DCAPS_PM_RUNTIME },
--- /dev/null
+From 79e28f2ab3440e08f5fbf65648b008341c37b496 Mon Sep 17 00:00:00 2001
+From: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
+Date: Wed, 9 Nov 2022 13:17:32 -0400
+Subject: ALSA: hda/realtek: Add Positivo C6300 model quirk
+
+From: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
+
+commit 79e28f2ab3440e08f5fbf65648b008341c37b496 upstream.
+
+Positivo Master C6300 (1849:a233) require quirk for anabling headset-mic
+
+Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20221109171732.5417-1-edson.drosdeck@gmail.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
+@@ -9619,6 +9619,7 @@ static const struct snd_pci_quirk alc269
+ SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
+ SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK),
++ SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC),
+ SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
+ SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20),
--- /dev/null
+From 8d06679b25fc6813eb2438fac7fa13f4f3c2ef37 Mon Sep 17 00:00:00 2001
+From: Stefan Binding <sbinding@opensource.cirrus.com>
+Date: Fri, 28 Oct 2022 11:27:42 +0100
+Subject: ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41
+
+From: Stefan Binding <sbinding@opensource.cirrus.com>
+
+commit 8d06679b25fc6813eb2438fac7fa13f4f3c2ef37 upstream.
+
+This Asus Zenbook laptop use Realtek HDA codec combined with
+2xCS35L41 Amplifiers using I2C with Internal Boost.
+
+Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20221028102742.2588687-1-sbinding@opensource.cirrus.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
+@@ -9414,6 +9414,7 @@ static const struct snd_pci_quirk alc269
+ SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401),
+ SND_PCI_QUIRK(0x1043, 0x1c52, "ASUS Zephyrus G15 2022", ALC289_FIXUP_ASUS_GA401),
+ SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401),
++ SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2),
+ SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401),
+ SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
+ SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
--- /dev/null
+From 8cbd4725ffff3eface1f5f3397af02acad5b2831 Mon Sep 17 00:00:00 2001
+From: Jussi Laako <jussi@sonarnerd.net>
+Date: Wed, 9 Nov 2022 00:12:41 +0200
+Subject: ALSA: usb-audio: Add DSD support for Accuphase DAC-60
+
+From: Jussi Laako <jussi@sonarnerd.net>
+
+commit 8cbd4725ffff3eface1f5f3397af02acad5b2831 upstream.
+
+Accuphase DAC-60 option card supports native DSD up to DSD256,
+but doesn't have support for auto-detection. Explicitly enable
+DSD support for the correct altsetting.
+
+Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20221108221241.1220878-1-jussi@sonarnerd.net
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/quirks.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/usb/quirks.c
++++ b/sound/usb/quirks.c
+@@ -1913,6 +1913,7 @@ u64 snd_usb_interface_dsd_format_quirks(
+ /* XMOS based USB DACs */
+ switch (chip->usb_id) {
+ case USB_ID(0x1511, 0x0037): /* AURALiC VEGA */
++ case USB_ID(0x21ed, 0xd75a): /* Accuphase DAC-60 option card */
+ case USB_ID(0x2522, 0x0012): /* LH Labs VI DAC Infinity */
+ case USB_ID(0x2772, 0x0230): /* Pro-Ject Pre Box S2 Digital */
+ if (fp->altsetting == 2)
--- /dev/null
+From 2f01a612d4758b45f775dbb88a49cf534ba47275 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 8 Nov 2022 15:07:21 +0100
+Subject: ALSA: usb-audio: Add quirk entry for M-Audio Micro
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 2f01a612d4758b45f775dbb88a49cf534ba47275 upstream.
+
+M-Audio Micro (0762:201a) defines the descriptor as vendor-specific,
+while the content seems class-compliant. Just overriding the probe
+makes the device working.
+
+Reported-by: Ash Logan <ash@heyquark.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/7ecd4417-d860-4773-c1c1-b07433342390@heyquark.com
+Link: https://lore.kernel.org/r/20221108140721.24248-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/quirks-table.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/sound/usb/quirks-table.h
++++ b/sound/usb/quirks-table.h
+@@ -2050,6 +2050,10 @@ YAMAHA_DEVICE(0x7010, "UB99"),
+ }
+ },
+ {
++ /* M-Audio Micro */
++ USB_DEVICE_VENDOR_SPEC(0x0763, 0x201a),
++},
++{
+ USB_DEVICE_VENDOR_SPEC(0x0763, 0x2030),
+ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+ /* .vendor_name = "M-Audio", */
--- /dev/null
+From 971cb608d1c5d95533a43b549bb8ec9637f10043 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 8 Nov 2022 07:58:23 +0100
+Subject: ALSA: usb-audio: Yet more regression for for the delayed card registration
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 971cb608d1c5d95533a43b549bb8ec9637f10043 upstream.
+
+Although we tried to fix the regression for the recent changes with
+the delayed card registration, it doesn't seem covering the all
+cases; e.g. on Roland EDIROL M-100FX, where the generic quirk for
+Roland devices is applied, it misses the card registration because the
+detection of the last interface (apparently for MIDI) fails.
+
+This patch is an attempt to recover from those failures by calling the
+card register also at the error path for the secondary interfaces.
+The card register condition is also extended to match with the old
+check in the previous patch, too (i.e. the simple check of the
+interface number) for catching the probe with errors.
+
+Fixes: 39efc9c8a973 ("ALSA: usb-audio: Fix last interface check for registration")
+Cc: <stable@vger.kernel.org>
+Link: https://bugzilla.suse.com/show_bug.cgi?id=1205111
+Link: https://lore.kernel.org/r/20221108065824.14418-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/card.c | 29 ++++++++++++++++++++---------
+ 1 file changed, 20 insertions(+), 9 deletions(-)
+
+--- a/sound/usb/card.c
++++ b/sound/usb/card.c
+@@ -742,6 +742,18 @@ get_alias_quirk(struct usb_device *dev,
+ return NULL;
+ }
+
++/* register card if we reach to the last interface or to the specified
++ * one given via option
++ */
++static int try_to_register_card(struct snd_usb_audio *chip, int ifnum)
++{
++ if (check_delayed_register_option(chip) == ifnum ||
++ chip->last_iface == ifnum ||
++ usb_interface_claimed(usb_ifnum_to_if(chip->dev, chip->last_iface)))
++ return snd_card_register(chip->card);
++ return 0;
++}
++
+ /*
+ * probe the active usb device
+ *
+@@ -880,15 +892,9 @@ static int usb_audio_probe(struct usb_in
+ chip->need_delayed_register = false; /* clear again */
+ }
+
+- /* register card if we reach to the last interface or to the specified
+- * one given via option
+- */
+- if (check_delayed_register_option(chip) == ifnum ||
+- usb_interface_claimed(usb_ifnum_to_if(dev, chip->last_iface))) {
+- err = snd_card_register(chip->card);
+- if (err < 0)
+- goto __error;
+- }
++ err = try_to_register_card(chip, ifnum);
++ if (err < 0)
++ goto __error_no_register;
+
+ if (chip->quirk_flags & QUIRK_FLAG_SHARE_MEDIA_DEVICE) {
+ /* don't want to fail when snd_media_device_create() fails */
+@@ -907,6 +913,11 @@ static int usb_audio_probe(struct usb_in
+ return 0;
+
+ __error:
++ /* in the case of error in secondary interface, still try to register */
++ if (chip)
++ try_to_register_card(chip, ifnum);
++
++ __error_no_register:
+ if (chip) {
+ /* chip->active is inside the chip->card object,
+ * decrement before memory is possibly returned.
mmc-sdhci_am654-fix-sdhci_reset_all-for-cqhci.patch
mmc-sdhci-tegra-fix-sdhci_reset_all-for-cqhci.patch
mmc-sdhci-esdhc-imx-use-the-correct-host-caps-for-mmc_cap_8_bit_data.patch
+alsa-hda-hdmi-enable-runtime-pm-for-more-amd-display-audio.patch
+alsa-hda-ca0132-add-quirk-for-evga-z390-dark.patch
+alsa-hda-fix-potential-memleak-in-add_widget_node.patch
+alsa-hda-realtek-add-quirk-for-asus-zenbook-using-cs35l41.patch
+alsa-hda-realtek-add-positivo-c6300-model-quirk.patch
+alsa-usb-audio-yet-more-regression-for-for-the-delayed-card-registration.patch
+alsa-usb-audio-add-quirk-entry-for-m-audio-micro.patch
+alsa-usb-audio-add-dsd-support-for-accuphase-dac-60.patch