--- /dev/null
+From 3a9236e97207f2469254b4098995159b80174d95 Mon Sep 17 00:00:00 2001
+From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
+Date: Mon, 16 Sep 2019 19:18:51 +0900
+Subject: ALSA: dice: fix wrong packet parameter for Alesis iO26
+
+From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
+
+commit 3a9236e97207f2469254b4098995159b80174d95 upstream.
+
+At higher sampling rate (e.g. 192.0 kHz), Alesis iO26 transfers 4 data
+channels per data block in CIP.
+
+Both iO14 and iO26 have the same contents in their configuration ROM.
+For this reason, ALSA Dice driver attempts to distinguish them according
+to the value of TX0_AUDIO register at probe callback. Although the way is
+valid at lower and middle sampling rate, it's lastly invalid at higher
+sampling rate because because the two models returns the same value for
+read transaction to the register.
+
+In the most cases, users just plug-in the device and ALSA dice driver
+detects it. In the case, the device runs at lower sampling rate and
+the driver detects expectedly. For this reason, this commit leaves the
+way to detect as is.
+
+Fixes: 28b208f600a3 ("ALSA: dice: add parameters of stream formats for models produced by Alesis")
+Cc: <stable@vger.kernel.org> # v4.18+
+Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
+Link: https://lore.kernel.org/r/20190916101851.30409-1-o-takashi@sakamocchi.jp
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/firewire/dice/dice-alesis.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/firewire/dice/dice-alesis.c
++++ b/sound/firewire/dice/dice-alesis.c
+@@ -15,7 +15,7 @@ alesis_io14_tx_pcm_chs[MAX_STREAMS][SND_
+
+ static const unsigned int
+ alesis_io26_tx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT] = {
+- {10, 10, 8}, /* Tx0 = Analog + S/PDIF. */
++ {10, 10, 4}, /* Tx0 = Analog + S/PDIF. */
+ {16, 8, 0}, /* Tx1 = ADAT1 + ADAT2. */
+ };
+
--- /dev/null
+From 7b485d175631be676424aedb8cd2f66d0c93da78 Mon Sep 17 00:00:00 2001
+From: "Shih-Yuan Lee (FourDollars)" <fourdollars@debian.org>
+Date: Fri, 20 Sep 2019 21:40:53 +0800
+Subject: ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
+
+From: Shih-Yuan Lee (FourDollars) <fourdollars@debian.org>
+
+commit 7b485d175631be676424aedb8cd2f66d0c93da78 upstream.
+
+The same fixup to enable laptop imic is needed for ASUS M9V with AD1986A
+codec like another HP machine.
+
+Signed-off-by: Shih-Yuan Lee (FourDollars) <fourdollars@debian.org>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20190920134052.GA8035@localhost
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_analog.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -357,6 +357,7 @@ static const struct hda_fixup ad1986a_fi
+
+ static const struct snd_pci_quirk ad1986a_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x103c, 0x30af, "HP B2800", AD1986A_FIXUP_LAPTOP_IMIC),
++ SND_PCI_QUIRK(0x1043, 0x1153, "ASUS M9V", AD1986A_FIXUP_LAPTOP_IMIC),
+ SND_PCI_QUIRK(0x1043, 0x1443, "ASUS Z99He", AD1986A_FIXUP_EAPD),
+ SND_PCI_QUIRK(0x1043, 0x1447, "ASUS A8JN", AD1986A_FIXUP_EAPD),
+ SND_PCI_QUIRK_MASK(0x1043, 0xff00, 0x8100, "ASUS P5", AD1986A_FIXUP_3STACK),
--- /dev/null
+From d2c63b7dfd06788a466d5ec8a850491f084c5fc2 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 20 Sep 2019 09:30:40 +0200
+Subject: ALSA: hda - Apply AMD controller workaround for Raven platform
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit d2c63b7dfd06788a466d5ec8a850491f084c5fc2 upstream.
+
+It's reported that the garbled sound on HP Envy x360 13z-ag000 (Ryzen
+Laptop) is fixed by the same workaround applied to other AMD chips.
+Update the driver_data entry for Raven (1022:15e3) to use the newly
+introduced preset, AZX_DCAPS_PRESET_AMD_SB. Since it already contains
+AZX_DCAPS_PM_RUNTIME, we can drop that bit, too.
+
+Reported-and-tested-by: Dennis Padiernos <depadiernos@gmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20190920073040.31764-1-tiwai@suse.de
+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, 1 insertion(+), 2 deletions(-)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2517,8 +2517,7 @@ static const struct pci_device_id azx_id
+ AZX_DCAPS_PM_RUNTIME },
+ /* AMD Raven */
+ { PCI_DEVICE(0x1022, 0x15e3),
+- .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_SB |
+- AZX_DCAPS_PM_RUNTIME },
++ .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_AMD_SB },
+ /* ATI HDMI */
+ { PCI_DEVICE(0x1002, 0x0002),
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
--- /dev/null
+From f41f900568d9ffd896cc941db7021eb14bd55910 Mon Sep 17 00:00:00 2001
+From: Jussi Laako <jussi@sonarnerd.net>
+Date: Tue, 24 Sep 2019 10:11:43 +0300
+Subject: ALSA: usb-audio: Add DSD support for EVGA NU Audio
+
+From: Jussi Laako <jussi@sonarnerd.net>
+
+commit f41f900568d9ffd896cc941db7021eb14bd55910 upstream.
+
+EVGA NU Audio is actually a USB audio device on a PCIexpress card,
+with it's own USB controller. It supports both PCM and DSD.
+
+Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20190924071143.30911-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
+@@ -1655,6 +1655,7 @@ u64 snd_usb_interface_dsd_format_quirks(
+ case 0x152a: /* Thesycon devices */
+ case 0x25ce: /* Mytek devices */
+ case 0x2ab6: /* T+A devices */
++ case 0x3842: /* EVGA */
+ case 0xc502: /* HiBy devices */
+ if (fp->dsd_raw)
+ return SNDRV_PCM_FMTBIT_DSD_U32_BE;
--- /dev/null
+From 029d2c0fd61eac74700fb4ffff36fc63bfff7e5e Mon Sep 17 00:00:00 2001
+From: Ilya Pshonkin <sudokamikaze@protonmail.com>
+Date: Tue, 17 Sep 2019 10:49:34 +0300
+Subject: ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
+
+From: Ilya Pshonkin <sudokamikaze@protonmail.com>
+
+commit 029d2c0fd61eac74700fb4ffff36fc63bfff7e5e upstream.
+
+This patch adds quirk VID ID for Hiby portable players family with
+native DSD playback support.
+
+Signed-off-by: Ilya Pshonkin <sudokamikaze@protonmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20190917074937.157802-1-ilya.pshonkin@netforce.ua
+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
+@@ -1655,6 +1655,7 @@ u64 snd_usb_interface_dsd_format_quirks(
+ case 0x152a: /* Thesycon devices */
+ case 0x25ce: /* Mytek devices */
+ case 0x2ab6: /* T+A devices */
++ case 0xc502: /* HiBy devices */
+ if (fp->dsd_raw)
+ return SNDRV_PCM_FMTBIT_DSD_U32_BE;
+ break;
--- /dev/null
+From 24a8d78a9affb63e5ced313ccde6888fe96edc6e Mon Sep 17 00:00:00 2001
+From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+Date: Fri, 20 Sep 2019 13:02:33 +0300
+Subject: platform/x86: i2c-multi-instantiate: Derive the device name from parent
+
+From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+
+commit 24a8d78a9affb63e5ced313ccde6888fe96edc6e upstream.
+
+When naming the new devices, instead of using the ACPI ID in
+the name as base, using the parent device's name. That makes
+it possible to support multiple multi-instance i2c devices
+of the same type in the same system.
+
+This fixes an issue seen on some Intel Kaby Lake based
+boards:
+
+sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-INT3515-tps6598x.0'
+
+Fixes: 2336dfadfb1e ("platform/x86: i2c-multi-instantiate: Allow to have same slaves")
+Cc: stable@vger.kernel.org
+Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/i2c-multi-instantiate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/platform/x86/i2c-multi-instantiate.c
++++ b/drivers/platform/x86/i2c-multi-instantiate.c
+@@ -92,7 +92,7 @@ static int i2c_multi_inst_probe(struct p
+ for (i = 0; i < multi->num_clients && inst_data[i].type; i++) {
+ memset(&board_info, 0, sizeof(board_info));
+ strlcpy(board_info.type, inst_data[i].type, I2C_NAME_SIZE);
+- snprintf(name, sizeof(name), "%s-%s.%d", match->id,
++ snprintf(name, sizeof(name), "%s-%s.%d", dev_name(dev),
+ inst_data[i].type, i);
+ board_info.dev_name = name;
+ switch (inst_data[i].flags & IRQ_RESOURCE_TYPE) {
--- /dev/null
+From 6e73fd25e2c7510b7dfadbaf701f31d4bff9c75b Mon Sep 17 00:00:00 2001
+From: Vitaly Wool <vitalywool@gmail.com>
+Date: Mon, 23 Sep 2019 15:32:56 -0700
+Subject: Revert "mm/z3fold.c: fix race between migration and destruction"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Vitaly Wool <vitalywool@gmail.com>
+
+commit 6e73fd25e2c7510b7dfadbaf701f31d4bff9c75b upstream.
+
+With the original commit applied, z3fold_zpool_destroy() may get blocked
+on wait_event() for indefinite time. Revert this commit for the time
+being to get rid of this problem since the issue the original commit
+addresses is less severe.
+
+Link: http://lkml.kernel.org/r/20190910123142.7a9c8d2de4d0acbc0977c602@gmail.com
+Fixes: d776aaa9895eb6eb77 ("mm/z3fold.c: fix race between migration and destruction")
+Reported-by: AgustÃn Dall'Alba <agustin@dallalba.com.ar>
+Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
+Cc: Vlastimil Babka <vbabka@suse.cz>
+Cc: Vitaly Wool <vitalywool@gmail.com>
+Cc: Shakeel Butt <shakeelb@google.com>
+Cc: Jonathan Adams <jwadams@google.com>
+Cc: Henry Burns <henrywolfeburns@gmail.com>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ mm/z3fold.c | 90 ------------------------------------------------------------
+ 1 file changed, 90 deletions(-)
+
+--- a/mm/z3fold.c
++++ b/mm/z3fold.c
+@@ -41,7 +41,6 @@
+ #include <linux/workqueue.h>
+ #include <linux/slab.h>
+ #include <linux/spinlock.h>
+-#include <linux/wait.h>
+ #include <linux/zpool.h>
+ #include <linux/magic.h>
+
+@@ -146,8 +145,6 @@ struct z3fold_header {
+ * @release_wq: workqueue for safe page release
+ * @work: work_struct for safe page release
+ * @inode: inode for z3fold pseudo filesystem
+- * @destroying: bool to stop migration once we start destruction
+- * @isolated: int to count the number of pages currently in isolation
+ *
+ * This structure is allocated at pool creation time and maintains metadata
+ * pertaining to a particular z3fold pool.
+@@ -166,11 +163,8 @@ struct z3fold_pool {
+ const struct zpool_ops *zpool_ops;
+ struct workqueue_struct *compact_wq;
+ struct workqueue_struct *release_wq;
+- struct wait_queue_head isolate_wait;
+ struct work_struct work;
+ struct inode *inode;
+- bool destroying;
+- int isolated;
+ };
+
+ /*
+@@ -775,7 +769,6 @@ static struct z3fold_pool *z3fold_create
+ goto out_c;
+ spin_lock_init(&pool->lock);
+ spin_lock_init(&pool->stale_lock);
+- init_waitqueue_head(&pool->isolate_wait);
+ pool->unbuddied = __alloc_percpu(sizeof(struct list_head)*NCHUNKS, 2);
+ if (!pool->unbuddied)
+ goto out_pool;
+@@ -815,15 +808,6 @@ out:
+ return NULL;
+ }
+
+-static bool pool_isolated_are_drained(struct z3fold_pool *pool)
+-{
+- bool ret;
+-
+- spin_lock(&pool->lock);
+- ret = pool->isolated == 0;
+- spin_unlock(&pool->lock);
+- return ret;
+-}
+ /**
+ * z3fold_destroy_pool() - destroys an existing z3fold pool
+ * @pool: the z3fold pool to be destroyed
+@@ -833,22 +817,6 @@ static bool pool_isolated_are_drained(st
+ static void z3fold_destroy_pool(struct z3fold_pool *pool)
+ {
+ kmem_cache_destroy(pool->c_handle);
+- /*
+- * We set pool-> destroying under lock to ensure that
+- * z3fold_page_isolate() sees any changes to destroying. This way we
+- * avoid the need for any memory barriers.
+- */
+-
+- spin_lock(&pool->lock);
+- pool->destroying = true;
+- spin_unlock(&pool->lock);
+-
+- /*
+- * We need to ensure that no pages are being migrated while we destroy
+- * these workqueues, as migration can queue work on either of the
+- * workqueues.
+- */
+- wait_event(pool->isolate_wait, !pool_isolated_are_drained(pool));
+
+ /*
+ * We need to destroy pool->compact_wq before pool->release_wq,
+@@ -1339,28 +1307,6 @@ static u64 z3fold_get_pool_size(struct z
+ return atomic64_read(&pool->pages_nr);
+ }
+
+-/*
+- * z3fold_dec_isolated() expects to be called while pool->lock is held.
+- */
+-static void z3fold_dec_isolated(struct z3fold_pool *pool)
+-{
+- assert_spin_locked(&pool->lock);
+- VM_BUG_ON(pool->isolated <= 0);
+- pool->isolated--;
+-
+- /*
+- * If we have no more isolated pages, we have to see if
+- * z3fold_destroy_pool() is waiting for a signal.
+- */
+- if (pool->isolated == 0 && waitqueue_active(&pool->isolate_wait))
+- wake_up_all(&pool->isolate_wait);
+-}
+-
+-static void z3fold_inc_isolated(struct z3fold_pool *pool)
+-{
+- pool->isolated++;
+-}
+-
+ static bool z3fold_page_isolate(struct page *page, isolate_mode_t mode)
+ {
+ struct z3fold_header *zhdr;
+@@ -1387,34 +1333,6 @@ static bool z3fold_page_isolate(struct p
+ spin_lock(&pool->lock);
+ if (!list_empty(&page->lru))
+ list_del(&page->lru);
+- /*
+- * We need to check for destruction while holding pool->lock, as
+- * otherwise destruction could see 0 isolated pages, and
+- * proceed.
+- */
+- if (unlikely(pool->destroying)) {
+- spin_unlock(&pool->lock);
+- /*
+- * If this page isn't stale, somebody else holds a
+- * reference to it. Let't drop our refcount so that they
+- * can call the release logic.
+- */
+- if (unlikely(kref_put(&zhdr->refcount,
+- release_z3fold_page_locked))) {
+- /*
+- * If we get here we have kref problems, so we
+- * should freak out.
+- */
+- WARN(1, "Z3fold is experiencing kref problems\n");
+- z3fold_page_unlock(zhdr);
+- return false;
+- }
+- z3fold_page_unlock(zhdr);
+- return false;
+- }
+-
+-
+- z3fold_inc_isolated(pool);
+ spin_unlock(&pool->lock);
+ z3fold_page_unlock(zhdr);
+ return true;
+@@ -1483,10 +1401,6 @@ static int z3fold_page_migrate(struct ad
+
+ queue_work_on(new_zhdr->cpu, pool->compact_wq, &new_zhdr->work);
+
+- spin_lock(&pool->lock);
+- z3fold_dec_isolated(pool);
+- spin_unlock(&pool->lock);
+-
+ page_mapcount_reset(page);
+ put_page(page);
+ return 0;
+@@ -1506,14 +1420,10 @@ static void z3fold_page_putback(struct p
+ INIT_LIST_HEAD(&page->lru);
+ if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) {
+ atomic64_dec(&pool->pages_nr);
+- spin_lock(&pool->lock);
+- z3fold_dec_isolated(pool);
+- spin_unlock(&pool->lock);
+ return;
+ }
+ spin_lock(&pool->lock);
+ list_add(&page->lru, &pool->lru);
+- z3fold_dec_isolated(pool);
+ spin_unlock(&pool->lock);
+ z3fold_page_unlock(zhdr);
+ }
mtd-cfi_cmdset_0002-use-chip_good-to-retry-in-do_write_oneword.patch
crypto-talitos-fix-missing-break-in-switch-statement.patch
clk-imx-imx8mm-fix-audio-pll-setting.patch
+revert-mm-z3fold.c-fix-race-between-migration-and-destruction.patch
+alsa-usb-audio-add-hiby-device-family-to-quirks-for-native-dsd-support.patch
+alsa-usb-audio-add-dsd-support-for-evga-nu-audio.patch
+alsa-dice-fix-wrong-packet-parameter-for-alesis-io26.patch
+alsa-hda-add-laptop-imic-fixup-for-asus-m9v-laptop.patch
+alsa-hda-apply-amd-controller-workaround-for-raven-platform.patch
+platform-x86-i2c-multi-instantiate-derive-the-device-name-from-parent.patch