From 2b5c9bc270fe44a0fc6522231d440e01e93045b9 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Sun, 2 Aug 2020 17:50:40 +0200 Subject: kernel 5.7.11 --- ...rkaround-for-spurious-wakeups-on-some-Int.patch | 88 ++++++++++++++++++++++ SPECS/kernel.spec | 16 ++-- 2 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch diff --git a/SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch b/SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch new file mode 100644 index 0000000..1a36632 --- /dev/null +++ b/SOURCES/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 +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: +Signed-off-by: Takashi Iwai +--- + 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/SPECS/kernel.spec b/SPECS/kernel.spec index 3fe7bd3..73e71aa 100644 --- a/SPECS/kernel.spec +++ b/SPECS/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 202 +%global baserelease 203 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 10 +%define stable_update 11 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -883,8 +883,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 # Linux-tkg patches - https://github.com/Frogging-Family/linux-tkg/blob/master/linux57-tkg Patch202: 0003-glitched-base.patch @@ -2993,8 +2993,12 @@ fi # # %changelog -* Sat Jul 25 2020 Jan Drögehoff - 5.7.10-202.fsync -- Linux v5.7.10 zen fsync +* Sun Aug 02 2020 Jan Drögehoff - 5.7.11-203.fsync +- Linux v5.7.11 zen fsync + +* Wed Jul 29 2020 Justin M. Forbes - 5.7.11-200 +- Linux v5.7.11 +- Fix rhbz 1857101 * Wed Jul 22 2020 Justin M. Forbes - 5.7.10-201 - Linux v5.7.10 -- cgit v1.2.3