]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 4.4
authorSasha Levin <sashal@kernel.org>
Wed, 6 Nov 2019 02:24:57 +0000 (21:24 -0500)
committerSasha Levin <sashal@kernel.org>
Wed, 6 Nov 2019 02:24:57 +0000 (21:24 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.4/revert-alsa-hda-flush-interrupts-on-disabling.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/revert-alsa-hda-flush-interrupts-on-disabling.patch b/queue-4.4/revert-alsa-hda-flush-interrupts-on-disabling.patch
new file mode 100644 (file)
index 0000000..6b09822
--- /dev/null
@@ -0,0 +1,64 @@
+From 62f33809967071e04ad30b2f11ba0845b780e3df Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 28 Oct 2019 09:10:56 +0100
+Subject: Revert "ALSA: hda: Flush interrupts on disabling"
+
+From: Takashi Iwai <tiwai@suse.de>
+
+[ Upstream commit 1a7f60b9df614bb36d14dc0c0bc898a31b2b506f ]
+
+This reverts commit caa8422d01e983782548648e125fd617cadcec3f.
+
+It turned out that this commit caused a regression at shutdown /
+reboot, as the synchronize_irq() calls seems blocking the whole
+shutdown.  Also another part of the change about shuffling the call
+order looks suspicious; the azx_stop_chip() call disables the CORB /
+RIRB while the others may still need the CORB/RIRB update.
+
+Since the original commit itself was a cargo-fix, let's revert the
+whole patch.
+
+Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling")
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205333
+BugLinK: https://bugs.freedesktop.org/show_bug.cgi?id=111174
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Link: https://lore.kernel.org/r/20191028081056.22010-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/hda/hdac_controller.c | 2 --
+ sound/pci/hda/hda_intel.c   | 2 +-
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
+index acc2c7dbfb151..4727f5b80e76d 100644
+--- a/sound/hda/hdac_controller.c
++++ b/sound/hda/hdac_controller.c
+@@ -340,8 +340,6 @@ static void azx_int_disable(struct hdac_bus *bus)
+       list_for_each_entry(azx_dev, &bus->stream_list, list)
+               snd_hdac_stream_updateb(azx_dev, SD_CTL, SD_INT_MASK, 0);
+-      synchronize_irq(bus->irq);
+-
+       /* disable SIE for all streams */
+       snd_hdac_chip_writeb(bus, INTCTL, 0);
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 96ccab15da836..ef8955abd9186 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1274,9 +1274,9 @@ static int azx_free(struct azx *chip)
+       }
+       if (bus->chip_init) {
+-              azx_stop_chip(chip);
+               azx_clear_irq_pending(chip);
+               azx_stop_all_streams(chip);
++              azx_stop_chip(chip);
+       }
+       if (bus->irq >= 0)
+-- 
+2.20.1
+
index 8f4bcf4a2795662d5191cb3f0b2e9daccdaab408..53a26ec295ed6ef37655229444859cf4cf52dd3f 100644 (file)
@@ -44,3 +44,4 @@ sch_netem-fix-rcu-splat-in-netem_enqueue.patch
 sctp-fix-the-issue-that-flags-are-ignored-when-using-kernel_connect.patch
 sctp-not-bind-the-socket-in-sctp_connect.patch
 xfs-correctly-invert-xfs_buftarg-lru-isolation-logic.patch
+revert-alsa-hda-flush-interrupts-on-disabling.patch