summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2020-07-30 05:59:23 +0200
committerThorsten Leemhuis <fedora@leemhuis.info>2020-07-30 05:59:23 +0200
commitd6a73d3717d71ad669e311734089c881e7404d4a (patch)
treee5463cbe3fbfda6ae515ae2f4c7170697a842bee
parentf31e0af56fe0c795d4d3b75f9eec6da9d8658232 (diff)
parentadab1b9bafbe7e36dd48d37fee943f53aa5e2faa (diff)
downloadkernel-d6a73d3717d71ad669e311734089c881e7404d4a.tar.gz
kernel-d6a73d3717d71ad669e311734089c881e7404d4a.tar.xz
kernel-d6a73d3717d71ad669e311734089c881e7404d4a.zip
merge origin
-rw-r--r--0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch88
-rw-r--r--iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch46
-rw-r--r--kernel.spec8
3 files changed, 94 insertions, 48 deletions
diff --git a/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch b/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch
new file mode 100644
index 000000000..1a3663270
--- /dev/null
+++ b/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch
@@ -0,0 +1,88 @@
+From 2b796b34a3b9ade3307304121a726d318641415a Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 27 Jul 2020 17:19:18 +0200
+Subject: [PATCH] ALSA: hda: Workaround for spurious wakeups on some Intel
+ platforms
+
+We've received a regression report on Intel HD-audio controller that
+wakes up immediately after S3 suspend. The bisection leads to the
+commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
+needed"). This commit replaces the system-suspend to use
+pm_runtime_force_suspend() instead of the direct call of
+__azx_runtime_suspend(). However, by some really mysterious reason,
+pm_runtime_force_suspend() causes a spurious wakeup (although it calls
+the same __azx_runtime_suspend() internally).
+
+As an ugly workaround for now, revert the behavior to call
+__azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
+platforms that may exhibit such a problem, while keeping the new
+standard pm_runtime_force_suspend() and pm_runtime_force_resume()
+pair for the remaining chips.
+
+Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ sound/pci/hda/hda_controller.h | 2 +-
+ sound/pci/hda/hda_intel.c | 17 ++++++++++++++---
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+diff --git a/sound/pci/hda/hda_controller.h b/sound/pci/hda/hda_controller.h
+index fe171685492d..be63ead8161f 100644
+--- a/sound/pci/hda/hda_controller.h
++++ b/sound/pci/hda/hda_controller.h
+@@ -41,7 +41,7 @@
+ /* 24 unused */
+ #define AZX_DCAPS_COUNT_LPIB_DELAY (1 << 25) /* Take LPIB as delay */
+ #define AZX_DCAPS_PM_RUNTIME (1 << 26) /* runtime PM support */
+-/* 27 unused */
++#define AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP (1 << 27) /* Workaround for spurious wakeups after suspend */
+ #define AZX_DCAPS_CORBRP_SELF_CLEAR (1 << 28) /* CORBRP clears itself after reset */
+ #define AZX_DCAPS_NO_MSI64 (1 << 29) /* Stick to 32-bit MSIs */
+ #define AZX_DCAPS_SEPARATE_STREAM_TAG (1 << 30) /* capture and playback use separate stream tag */
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 9ba1fb8f0b7f..fb65450d8de1 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -297,7 +297,8 @@ enum {
+ /* PCH for HSW/BDW; with runtime PM */
+ /* no i915 binding for this as HSW/BDW has another controller for HDMI */
+ #define AZX_DCAPS_INTEL_PCH \
+- (AZX_DCAPS_INTEL_PCH_BASE | AZX_DCAPS_PM_RUNTIME)
++ (AZX_DCAPS_INTEL_PCH_BASE | AZX_DCAPS_PM_RUNTIME |\
++ AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
+
+ /* HSW HDMI */
+ #define AZX_DCAPS_INTEL_HASWELL \
+@@ -1026,7 +1027,14 @@ static int azx_suspend(struct device *dev)
+ chip = card->private_data;
+ bus = azx_bus(chip);
+ snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
+- pm_runtime_force_suspend(dev);
++ /* An ugly workaround: direct call of __azx_runtime_suspend() and
++ * __azx_runtime_resume() for old Intel platforms that suffer from
++ * spurious wakeups after S3 suspend
++ */
++ if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
++ __azx_runtime_suspend(chip);
++ else
++ pm_runtime_force_suspend(dev);
+ if (bus->irq >= 0) {
+ free_irq(bus->irq, chip);
+ bus->irq = -1;
+@@ -1055,7 +1063,10 @@ static int azx_resume(struct device *dev)
+ if (azx_acquire_irq(chip, 1) < 0)
+ return -EIO;
+
+- pm_runtime_force_resume(dev);
++ if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
++ __azx_runtime_resume(chip, false);
++ else
++ pm_runtime_force_resume(dev);
+ snd_power_change_state(card, SNDRV_CTL_POWER_D0);
+
+ trace_azx_resume(chip);
+--
+2.26.2
+
diff --git a/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch b/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch
deleted file mode 100644
index 8bbbd79e7..000000000
--- a/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From MAILER-DAEMON Wed Jul 15 12:54:09 2020
-From: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
-To: linux-wireless@vger.kernel.org
-Cc: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>, Johannes Berg <johannes.berg@intel.com>, Emmanuel Grumbach <emmanuel.grumbach@intel.com>, Luca Coelho <luciano.coelho@intel.com>, Intel Linux Wireless <linuxwifi@intel.com>
-Subject: [PATCH v2] iwlwifi: Make some Killer Wireless-AC 1550 cards work again
-Date: Tue, 14 Jul 2020 11:19:11 +0200
-Message-Id: <20200714091911.4442-1-alessio.bonfiglio@mail.polimi.it>
-In-Reply-To: <87imeqcwbt.fsf@tynnyri.adurom.net>
-References: <87imeqcwbt.fsf@tynnyri.adurom.net>
-Sender: linux-wireless-owner@vger.kernel.org
-List-ID: <linux-wireless.vger.kernel.org>
-X-Mailing-List: linux-wireless@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-Fix the regression introduced by commit c8685937d07f ("iwlwifi: move
-pu devices to new table") by adding the ids and the configurations of
-two missing Killer 1550 cards in order to configure and let them work
-correctly again (following the new table convention).
-Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2",
-https://bugzilla.kernel.org/show_bug.cgi?id=208141).
-
-Fixes: c8685937d07f ("iwlwifi: move pu devices to new table")
-Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
----
- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-index 65d65c6baf4c..e02bafb8921f 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-@@ -582,6 +582,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
- IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
- IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
- IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-+ IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
-+ IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-
- IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
-
---
-2.27.0
-
-
diff --git a/kernel.spec b/kernel.spec
index 86c5a63cf..df9cd134f 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -902,8 +902,8 @@ Patch123: 0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch
# Tegra194 ACPI PCI quirk - http://patchwork.ozlabs.org/patch/1221384/
Patch124: 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
-# Killer wireless headed to stable
-Patch125: iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch
+# rhbz 1857101
+Patch125: 0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch
# END OF PATCH DEFINITIONS
@@ -3012,6 +3012,10 @@ fi
#
#
%changelog
+* Wed Jul 29 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.7.11-200
+- Linux v5.7.11
+- Fix rhbz 1857101
+
* Wed Jul 22 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.7.10-201
- Linux v5.7.10