diff options
author | David Runge | 2020-01-11 01:58:37 +0100 |
---|---|---|
committer | David Runge | 2020-01-11 01:58:37 +0100 |
commit | fb91ab0e05fa09120e71bbe92c86446635be6c37 (patch) | |
tree | f7bb72d9ddf871510501949f08d8cec9773360bc | |
parent | afb36cfb18f08311421fedf9d4e978df9b55b2b8 (diff) | |
download | aur-fb91ab0e05fa09120e71bbe92c86446635be6c37.tar.gz |
PKGBUILD: Upgrading to 5.4.10.5. Adding all patches currently applied to linux in [core].
20 files changed, 724 insertions, 160 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-rt - pkgver = 5.4.5.3 + pkgver = 5.4.10.5 pkgrel = 1 url = https://wiki.linuxfoundation.org/realtime/start arch = x86_64 @@ -15,10 +15,10 @@ pkgbase = linux-rt makedepends = python-sphinx_rtd_theme makedepends = xmlto options = !strip - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.5.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.5.tar.sign - source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.5-rt3.patch.xz - source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.5-rt3.patch.sign + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.10.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.10.tar.sign + source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.10-rt5.patch.xz + source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.10-rt5.patch.sign source = config source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch source = 0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch @@ -26,27 +26,41 @@ pkgbase = linux-rt source = 0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch source = 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch source = 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch - source = 0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch - source = 0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch + source = 0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + source = 0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch + source = 0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch + source = 0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch + source = 0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch + source = 0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch + source = 0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch + source = 0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch + source = 0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E validpgpkeys = 8218F88849AAC522E94CF470A5E9288C4FA415FA validpgpkeys = 64254695FFF0AA4466CC19E67B96E8162A8CF5D1 validpgpkeys = 5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73 validpgpkeys = E644E2F1D45FA0B2EAA02F33109F098506FF0B14 - sha256sums = 568e9f27fbba86131c2e2849f296d54216e2ed3e8c4d8aa78a93b417cab23ec0 + sha256sums = f23c0218a5e3b363bb5a880972f507bb4dc4a290a787a7da08be07ea12042edd sha256sums = SKIP - sha256sums = fdb943eee48582b65f3a4876cc8f7b1e1b274dd57287762c0e8a68ff681d855b + sha256sums = 0bab9f30b2ce3123c0e5a0fca2d51807883e2b9f5398a51e68937cad2fcb30d7 sha256sums = SKIP - sha256sums = 4828d33e4115ec4a59f6ad995d7041be0e8cfaaa399f3ee6b03a7d18c23f35a2 - sha256sums = abf6040dee7695d52ebdb5609a5bbcf6c56ec6e39d9d65ddb6be728268b4ee4e - sha256sums = ea43ba87b18ed99dc9bd7bcbe20c2315e51aafdad1bf4bae3e31889aae3f12d7 - sha256sums = 0fa424d4a56f5ec6754669d423a119301ff8849c72f6bf7603ecd1d98b971419 - sha256sums = 4dc9d777185052c5a6bf6f15df2ae91ca50585103a910b6e1369cac7a291d3b0 - sha256sums = 950a1a526d33b804da34cea4aba920c1a0863afb1817ed4e0c288b81f4a21ba3 - sha256sums = 4e731525b8f848481a0fdadfe1db70f014364bd501130a22a396802acff0f577 - sha256sums = 09b7facedafc53ae47f92be0adb619791c0044a2977ce3e4367b35987f38732f - sha256sums = 5c7171b5787e0e252120476640d6d8237ea904e9c552da735a16851679e20cd5 + sha256sums = 2af2613a7ae5e4886acbe2af87a035646823875bf852dc913eb2339e8ecb94be + sha256sums = a3e9541bf0306d32af8acf121643d9953776d448f68ec09741c591d1e5bc6748 + sha256sums = 8e9967f83cf22be43b516b394523b0976c6831e28cee5136542df3c946328917 + sha256sums = 226251c17ced22414e4275ca69be6aec318904778f0c8c244050916e51064b14 + sha256sums = 9809d55995895e7061bfca0db9f38a608548f21bb5d4a2260e7bbb6b5af2db4a + sha256sums = 82bc11366ca296e86dd745c911a841d7ac12d16a1a2185da245a96e5440b8fd7 + sha256sums = 1ef45f1e7456437e4ec7c2ada46c607f492a87db8d1cf3f3b59870bc2deaa1e6 + sha256sums = fcd117bc51f21baac26f7570f48b91ce994fd351fcb19cb6097166a4a7c181e6 + sha256sums = 49bc5c988a6cc127f39ae998954482450d19b69da2ce9dfcce678d3fe7504136 + sha256sums = f583d172c69c288f5d2e587c5926b0e732284c19e73671eef112ab1a0e26362a + sha256sums = 84baa16aa022e0dac2515edced6f214a08d385a385ffb04e358fbe9671235d41 + sha256sums = a55cfce037523fdb6244fd6286a1d9be12c2eab3327a1c6e05ac42899f5868d1 + sha256sums = 9c600a292efb59087d913fd8e7a5fff9c7abcfad864d294a266600f4491476c5 + sha256sums = 126f8b83065e3f7a72589f33874481aa06bb1686ddc6997a8a05a27c7d6721ac + sha256sums = 9c95928be62369403bb6822a838dc9791a5a98ac489af81b5ab8f2fd09b0c696 + sha256sums = 4a2bd4b02e8c4f81334d22a8bd27a03f8a3a1e8137699b809de15cd7edf0e4dd pkgname = linux-rt pkgdesc = The Linux-rt kernel and modules diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index 9228c8f731c7..e52c061f02d5 100644 --- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,7 +1,7 @@ -From 585ca862f16fcb6ab7a010e977d10284d0fd47e1 Mon Sep 17 00:00:00 2001 +From 98ab83a7426ef0ec20ff46947f2ee8d651980b1c Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH 1/9] ZEN: Add sysctl and CONFIG to disallow unprivileged +Subject: [PATCH 01/16] ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. @@ -80,7 +80,7 @@ index 6cabc124378c..fda4986da9eb 100644 if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index b6f2f35d0bcf..2e9c273990e8 100644 +index 70665934d53e..9797869ed829 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -110,6 +110,9 @@ extern int core_uses_pid; diff --git a/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch b/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch index 90c7cd21fa70..07d679aac07e 100644 --- a/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch +++ b/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch @@ -1,7 +1,7 @@ -From 2e0f7971cc760615ca8b5612504c9911c725da6a Mon Sep 17 00:00:00 2001 +From 34648b0396ec5dfdfc18627c9c21c03e7243dbe2 Mon Sep 17 00:00:00 2001 From: Tuowen Zhao <ztuowen@gmail.com> Date: Wed, 16 Oct 2019 15:06:28 -0600 -Subject: [PATCH 2/9] lib: devres: add a helper function for ioremap_uc +Subject: [PATCH 02/16] lib: devres: add a helper function for ioremap_uc Implement a resource managed strongly uncachable ioremap function. diff --git a/0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch b/0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch index 7e100f7498d0..4325122939ce 100644 --- a/0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch +++ b/0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch @@ -1,7 +1,7 @@ -From ec67aeccc80389a299c299b5c2fdfe9188bdbe2c Mon Sep 17 00:00:00 2001 +From 4b74251368e136095a2096ea1bdf95d40ddbd7fb Mon Sep 17 00:00:00 2001 From: Tuowen Zhao <ztuowen@gmail.com> Date: Wed, 16 Oct 2019 15:06:29 -0600 -Subject: [PATCH 3/9] mfd: intel-lpss: Use devm_ioremap_uc for MMIO +Subject: [PATCH 03/16] mfd: intel-lpss: Use devm_ioremap_uc for MMIO Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci in MTRR. This will cause the system to hang during boot. If possible, diff --git a/0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch b/0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch index 1a1fbf5d3498..62fab3861fa5 100644 --- a/0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch +++ b/0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch @@ -1,7 +1,7 @@ -From a107ef9c40639f406a3449591482b8b3dcee7b19 Mon Sep 17 00:00:00 2001 +From 47e8e0d8dbfded3675de6abed233ef134d1578e5 Mon Sep 17 00:00:00 2001 From: Mika Westerberg <mika.westerberg@linux.intel.com> Date: Tue, 29 Oct 2019 20:00:21 +0300 -Subject: [PATCH 4/9] PCI: pciehp: Do not disable interrupt twice on suspend +Subject: [PATCH 04/16] PCI: pciehp: Do not disable interrupt twice on suspend We try to keep PCIe hotplug ports runtime suspended when entering system suspend. Because the PCIe portdrv sets the DPM_FLAG_NEVER_SKIP flag, the PM diff --git a/0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch b/0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch index 2e43075bc448..5be035af275f 100644 --- a/0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch +++ b/0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch @@ -1,7 +1,7 @@ -From 2606e80dafd4f0d74e70d533d79cabb5fd7d10ab Mon Sep 17 00:00:00 2001 +From 54f60fe91123c1d95ee104c971d546b49e9d67f0 Mon Sep 17 00:00:00 2001 From: Mika Westerberg <mika.westerberg@linux.intel.com> Date: Tue, 29 Oct 2019 20:00:22 +0300 -Subject: [PATCH 5/9] PCI: pciehp: Prevent deadlock on disconnect +Subject: [PATCH 05/16] PCI: pciehp: Prevent deadlock on disconnect This addresses deadlocks in these common cases in hierarchies containing two switches: @@ -96,10 +96,10 @@ Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h -index 654c972b8ea0..afea59a3aad2 100644 +index 882ce82c4699..aa61d4c219d7 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h -@@ -172,10 +172,10 @@ void pciehp_set_indicators(struct controller *ctrl, int pwr, int attn); +@@ -174,10 +174,10 @@ void pciehp_set_indicators(struct controller *ctrl, int pwr, int attn); void pciehp_get_latch_status(struct controller *ctrl, u8 *status); int pciehp_query_power_fault(struct controller *ctrl); @@ -151,7 +151,7 @@ index 56daad828c9e..312cc45c44c7 100644 (!occupied && (ctrl->state == ON_STATE || ctrl->state == BLINKINGOFF_STATE))) diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c -index 21af7b16d7a4..c760a13ec7b1 100644 +index dd8e4a5fb282..6503d15effbb 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c @@ -226,7 +226,7 @@ void pciehp_handle_disable_request(struct controller *ctrl) @@ -173,7 +173,7 @@ index 21af7b16d7a4..c760a13ec7b1 100644 return; } diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c -index 1a522c1c4177..526a8f70bac5 100644 +index 86d97f3112f0..a2a263764ef8 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -201,17 +201,29 @@ static void pcie_write_cmd_nowait(struct controller *ctrl, u16 cmd, u16 mask) diff --git a/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch index 3b603e2b02c2..494f0c1b2549 100644 --- a/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch +++ b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch @@ -1,7 +1,7 @@ -From bbaae2826ba2a3319144011caeacdb44710b1640 Mon Sep 17 00:00:00 2001 +From 1b16d109c72e27909a590c5b91c45e8b90fe819a Mon Sep 17 00:00:00 2001 From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> Date: Thu, 28 Nov 2019 23:50:40 +0100 -Subject: [PATCH 6/9] ACPI: PM: s2idle: Rework ACPI events synchronization +Subject: [PATCH 06/16] ACPI: PM: s2idle: Rework ACPI events synchronization Note that the EC GPE processing need not be synchronized in acpi_s2idle_wake() after invoking acpi_ec_dispatch_gpe(), because diff --git a/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch b/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch deleted file mode 100644 index 1916c37102b8..000000000000 --- a/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch +++ /dev/null @@ -1,60 +0,0 @@ -From ebe0a3e390c5d255ed6deb406c4a0ec6d870c0c1 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai <tiwai@suse.de> -Date: Sat, 14 Dec 2019 18:52:17 +0100 -Subject: [PATCH 7/9] ALSA: hda: Fix regression by strip mask fix - -The commit e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only -when needed") tried to address the regression by the unconditional -application of the stripe mask, but this caused yet another -regression for the previously working devices. Namely, the patch -clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this -may be called multiple times before restarting the stream, so this -ended up with clearance of the flag for the whole time. - -This patch fixes the regression by moving the azx_dev->stripe flag -clearance at the counter-part, the close callback of HDMI codec -driver instead. - -Fixes: e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only when needed") -BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205855 -BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477 -Cc: <stable@vger.kernel.org> -Link: https://lore.kernel.org/r/20191214175217.31852-1-tiwai@suse.de -Signed-off-by: Takashi Iwai <tiwai@suse.de> ---- - sound/hda/hdac_stream.c | 4 +--- - sound/pci/hda/patch_hdmi.c | 2 ++ - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c -index f9707fb05efe..682ed39f79b0 100644 ---- a/sound/hda/hdac_stream.c -+++ b/sound/hda/hdac_stream.c -@@ -120,10 +120,8 @@ void snd_hdac_stream_clear(struct hdac_stream *azx_dev) - snd_hdac_stream_updateb(azx_dev, SD_CTL, - SD_CTL_DMA_START | SD_INT_MASK, 0); - snd_hdac_stream_writeb(azx_dev, SD_STS, SD_INT_MASK); /* to be sure */ -- if (azx_dev->stripe) { -+ if (azx_dev->stripe) - snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0); -- azx_dev->stripe = 0; -- } - azx_dev->running = false; - } - EXPORT_SYMBOL_GPL(snd_hdac_stream_clear); -diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c -index 4dafc864d765..488c17c9f375 100644 ---- a/sound/pci/hda/patch_hdmi.c -+++ b/sound/pci/hda/patch_hdmi.c -@@ -1983,6 +1983,8 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo, - per_cvt->assigned = 0; - hinfo->nid = 0; - -+ azx_stream(get_azx_dev(substream))->stripe = 0; -+ - mutex_lock(&spec->pcm_lock); - snd_hda_spdif_ctls_unassign(codec, pcm_idx); - clear_bit(pcm_idx, &spec->pcm_in_use); --- -2.24.1 - diff --git a/0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch new file mode 100644 index 000000000000..38f07765a616 --- /dev/null +++ b/0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch @@ -0,0 +1,36 @@ +From 88bbdf2becea7d9a04561f5b58219eb50efdd008 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Tue, 24 Dec 2019 05:18:47 +0100 +Subject: [PATCH 07/16] iwlwifi: pcie: restore support for Killer Qu C0 NICs + +Commit 809805a820c6 refactored the cfg mangling. Unfortunately, in this +process the lines which picked the right cfg for Killer Qu C0 NICs after +C0 detection were lost. These lines were added by commit b9500577d361. + +I suspect this is more of the "merge damage" which commit 7cded5658329 +talks about. + +Fixes: 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe") +Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +--- + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +index b0b7eca1754e..de62a6dc4e73 100644 +--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c ++++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +@@ -1107,6 +1107,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0; + else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0) + cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0; ++ else if (cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0) ++ cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0; ++ else if (cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0) ++ cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0; + } + + /* same thing for QuZ... */ +-- +2.24.1 + diff --git a/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch b/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch deleted file mode 100644 index 1f2da35114cb..000000000000 --- a/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 9080bd00570f3f52cc73a3558cd90be3c9974c94 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com> -Date: Wed, 27 Nov 2019 22:12:09 +0200 -Subject: [PATCH 8/9] drm/i915/fbc: Disable fbc by default on all glk+ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We're missing a workaround in the fbc code for all glk+ platforms -which can cause corruption around the top of the screen. So -enabling fbc by default is a bad idea. I'm not keen to backport -the w/a so let's start by disabling fbc by default on all glk+. -We'll lift the restriction once the w/a is in place. - -Cc: stable@vger.kernel.org -Cc: Daniel Drake <drake@endlessm.com> -Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> -Cc: Jian-Hong Pan <jian-hong@endlessm.com> -Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> -Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> -Link: https://patchwork.freedesktop.org/patch/msgid/20191127201222.16669-2-ville.syrjala@linux.intel.com -Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> -(cherry picked from commit cd8c021b36a66833cefe2c90a79a9e312a2a5690) -Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> ---- - drivers/gpu/drm/i915/display/intel_fbc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c -index 16ed44bfd734..07a038f21619 100644 ---- a/drivers/gpu/drm/i915/display/intel_fbc.c -+++ b/drivers/gpu/drm/i915/display/intel_fbc.c -@@ -1284,7 +1284,7 @@ static int intel_sanitize_fbc_option(struct drm_i915_private *dev_priv) - return 0; - - /* https://bugs.freedesktop.org/show_bug.cgi?id=108085 */ -- if (IS_GEMINILAKE(dev_priv)) -+ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) - return 0; - - if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9) --- -2.24.1 - diff --git a/0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch b/0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch new file mode 100644 index 000000000000..882b1cd56305 --- /dev/null +++ b/0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch @@ -0,0 +1,38 @@ +From 7e4ac4925c87e5418bbe11d8887d5a9d3cd0d6c0 Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng <kai.heng.feng@canonical.com> +Date: Fri, 29 Nov 2019 14:23:03 +0800 +Subject: [PATCH 08/16] x86/intel: Disable HPET on Intel Ice Lake platforms + +Like CFL and CFL-H, ICL SoC has skewed HPET timer once it hits PC10. +So let's disable HPET on ICL. + +Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: bp@alien8.de +Cc: feng.tang@intel.com +Cc: harry.pan@intel.com +Cc: hpa@zytor.com +Link: https://lkml.kernel.org/r/20191129062303.18982-2-kai.heng.feng@canonical.com +Signed-off-by: Ingo Molnar <mingo@kernel.org> +--- + arch/x86/kernel/early-quirks.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c +index 606711f5ebf8..2f9ec14be3b1 100644 +--- a/arch/x86/kernel/early-quirks.c ++++ b/arch/x86/kernel/early-quirks.c +@@ -714,6 +714,8 @@ static struct chipset early_qrk[] __initdata = { + PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, + { PCI_VENDOR_ID_INTEL, 0x3ec4, + PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, ++ { PCI_VENDOR_ID_INTEL, 0x8a12, ++ PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, + { PCI_VENDOR_ID_BROADCOM, 0x4331, + PCI_CLASS_NETWORK_OTHER, PCI_ANY_ID, 0, apple_airport_reset}, + {} +-- +2.24.1 + diff --git a/0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch b/0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch new file mode 100644 index 000000000000..f643582ea035 --- /dev/null +++ b/0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch @@ -0,0 +1,87 @@ +From fd29a8b6f1d2974791dd4b700bad5254f2ad28d9 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Date: Fri, 20 Sep 2019 11:39:18 +0300 +Subject: [PATCH 09/16] drm/i915: save AUD_FREQ_CNTRL state at audio domain + suspend + +When audio power domain is suspended, the display driver must +save state of AUD_FREQ_CNTRL on Tiger Lake and Ice Lake +systems. The initial value of the register is set by BIOS and +is read by driver during the audio component init sequence. + +Cc: Jani Nikula <jani.nikula@intel.com> +Cc: Imre Deak <imre.deak@intel.com> +Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Signed-off-by: Jani Nikula <jani.nikula@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20190920083918.27057-1-kai.vehmanen@linux.intel.com +--- + drivers/gpu/drm/i915/display/intel_audio.c | 17 +++++++++++++++-- + drivers/gpu/drm/i915/i915_drv.h | 1 + + drivers/gpu/drm/i915/i915_reg.h | 2 ++ + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c +index ddcccf4408c3..439bc0a93410 100644 +--- a/drivers/gpu/drm/i915/display/intel_audio.c ++++ b/drivers/gpu/drm/i915/display/intel_audio.c +@@ -850,10 +850,17 @@ static unsigned long i915_audio_component_get_power(struct device *kdev) + + ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO); + +- /* Force CDCLK to 2*BCLK as long as we need audio to be powered. */ +- if (dev_priv->audio_power_refcount++ == 0) ++ if (dev_priv->audio_power_refcount++ == 0) { ++ if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) { ++ I915_WRITE(AUD_FREQ_CNTRL, dev_priv->audio_freq_cntrl); ++ DRM_DEBUG_KMS("restored AUD_FREQ_CNTRL to 0x%x\n", ++ dev_priv->audio_freq_cntrl); ++ } ++ ++ /* Force CDCLK to 2*BCLK as long as we need audio powered. */ + if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) + glk_force_audio_cdclk(dev_priv, true); ++ } + + return ret; + } +@@ -1114,6 +1121,12 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv) + return; + } + ++ if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) { ++ dev_priv->audio_freq_cntrl = I915_READ(AUD_FREQ_CNTRL); ++ DRM_DEBUG_KMS("init value of AUD_FREQ_CNTRL of 0x%x\n", ++ dev_priv->audio_freq_cntrl); ++ } ++ + dev_priv->audio_component_registered = true; + } + +diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h +index 89b6112bd66b..043ce1b47aeb 100644 +--- a/drivers/gpu/drm/i915/i915_drv.h ++++ b/drivers/gpu/drm/i915/i915_drv.h +@@ -1530,6 +1530,7 @@ struct drm_i915_private { + */ + struct mutex av_mutex; + int audio_power_refcount; ++ u32 audio_freq_cntrl; + + struct { + struct mutex mutex; +diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h +index f8ee9aba3955..e1fe356463ec 100644 +--- a/drivers/gpu/drm/i915/i915_reg.h ++++ b/drivers/gpu/drm/i915/i915_reg.h +@@ -9104,6 +9104,8 @@ enum { + #define HSW_AUD_CHICKENBIT _MMIO(0x65f10) + #define SKL_AUD_CODEC_WAKE_SIGNAL (1 << 15) + ++#define AUD_FREQ_CNTRL _MMIO(0x65900) ++ + /* + * HSW - ICL power wells + * +-- +2.24.1 + diff --git a/0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch b/0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch new file mode 100644 index 000000000000..934c7462a1f1 --- /dev/null +++ b/0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch @@ -0,0 +1,57 @@ +From 763a3bbf9ded9e8e0225ba25ab48a65f8e380517 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Date: Thu, 3 Oct 2019 11:55:30 +0300 +Subject: [PATCH 10/16] drm/i915: Fix audio power up sequence for gen10+ + display + +On platfroms with gen10+ display, driver must set the enable bit of +AUDIO_PIN_BUF_CTL register before transactions with the HDA controller +can proceed. Add setting this bit to the audio power up sequence. + +Failing to do this resulted in errors during display audio codec probe, +and failures during resume from suspend. + +Note: We may also need to disable the bit afterwards, but there are +still unresolved issues with that. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111214 +Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Signed-off-by: Jani Nikula <jani.nikula@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191003085531.30990-1-kai.vehmanen@linux.intel.com +--- + drivers/gpu/drm/i915/display/intel_audio.c | 5 +++++ + drivers/gpu/drm/i915/i915_reg.h | 2 ++ + 2 files changed, 7 insertions(+) + +diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c +index 439bc0a93410..440b33762fef 100644 +--- a/drivers/gpu/drm/i915/display/intel_audio.c ++++ b/drivers/gpu/drm/i915/display/intel_audio.c +@@ -860,6 +860,11 @@ static unsigned long i915_audio_component_get_power(struct device *kdev) + /* Force CDCLK to 2*BCLK as long as we need audio powered. */ + if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) + glk_force_audio_cdclk(dev_priv, true); ++ ++ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) ++ I915_WRITE(AUD_PIN_BUF_CTL, ++ (I915_READ(AUD_PIN_BUF_CTL) | ++ AUD_PIN_BUF_ENABLE)); + } + + return ret; +diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h +index e1fe356463ec..ccfea9c2b8bf 100644 +--- a/drivers/gpu/drm/i915/i915_reg.h ++++ b/drivers/gpu/drm/i915/i915_reg.h +@@ -9105,6 +9105,8 @@ enum { + #define SKL_AUD_CODEC_WAKE_SIGNAL (1 << 15) + + #define AUD_FREQ_CNTRL _MMIO(0x65900) ++#define AUD_PIN_BUF_CTL _MMIO(0x48414) ++#define AUD_PIN_BUF_ENABLE REG_BIT(31) + + /* + * HSW - ICL power wells +-- +2.24.1 + diff --git a/0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch b/0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch new file mode 100644 index 000000000000..a520c55b5d09 --- /dev/null +++ b/0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch @@ -0,0 +1,41 @@ +From 92d38b35c52c1ee17f215515ed181b44e5fb3d3a Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Date: Thu, 3 Oct 2019 11:55:31 +0300 +Subject: [PATCH 11/16] drm/i915: extend audio CDCLK>=2*BCLK constraint to more + platforms + +The CDCLK>=2*BCLK constraint applies to all generations since gen10. +Extend the constraint logic in audio get/put_power(). + +Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> +Signed-off-by: Jani Nikula <jani.nikula@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191003085531.30990-2-kai.vehmanen@linux.intel.com +--- + drivers/gpu/drm/i915/display/intel_audio.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c +index 440b33762fef..05ef43b13d1c 100644 +--- a/drivers/gpu/drm/i915/display/intel_audio.c ++++ b/drivers/gpu/drm/i915/display/intel_audio.c +@@ -858,7 +858,7 @@ static unsigned long i915_audio_component_get_power(struct device *kdev) + } + + /* Force CDCLK to 2*BCLK as long as we need audio powered. */ +- if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) ++ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + glk_force_audio_cdclk(dev_priv, true); + + if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) +@@ -877,7 +877,7 @@ static void i915_audio_component_put_power(struct device *kdev, + + /* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */ + if (--dev_priv->audio_power_refcount == 0) +- if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) ++ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + glk_force_audio_cdclk(dev_priv, false); + + intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, cookie); +-- +2.24.1 + diff --git a/0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch b/0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch new file mode 100644 index 000000000000..4796a2d7b1f5 --- /dev/null +++ b/0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch @@ -0,0 +1,129 @@ +From 390d0a67cecd44bbc52231f0e9ea93ccdb742568 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 30 Dec 2019 11:15:30 +0000 +Subject: [PATCH 12/16] drm/i915/gt: Detect if we miss WaIdleLiteRestore + +In order to avoid confusing the HW, we must never submit an empty ring +during lite-restore, that is we should always advance the RING_TAIL +before submitting to stay ahead of the RING_HEAD. + +Normally this is prevented by keeping a couple of spare NOPs in the +request->wa_tail so that on resubmission we can advance the tail. This +relies on the request only being resubmitted once, which is the normal +condition as it is seen once for ELSP[1] and then later in ELSP[0]. On +preemption, the requests are unwound and the tail reset back to the +normal end point (as we know the request is incomplete and therefore its +RING_HEAD is even earlier). + +However, if this w/a should fail we would try and resubmit the request +with the RING_TAIL already set to the location of this request's wa_tail +potentially causing a GPU hang. We can spot when we do try and +incorrectly resubmit without advancing the RING_TAIL and spare any +embarrassment by forcing the context restore. + +In the case of preempt-to-busy, we leave the requests running on the HW +while we unwind. As the ring is still live, we cannot rewind our +rq->tail without forcing a reload so leave it set to rq->wa_tail and +only force a reload if we resubmit after a lite-restore. (Normally, the +forced reload will be a part of the preemption event.) + +Fixes: 22b7a426bbe1 ("drm/i915/execlists: Preempt-to-busy") +Closes: https://gitlab.freedesktop.org/drm/intel/issues/673 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> +Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> +Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> +Cc: stable@vger.kernel.org +Link: https://patchwork.freedesktop.org/patch/msgid/20191209023215.3519970-1-chris@chris-wilson.co.uk +(cherry picked from commit 82c69bf58650e644c61aa2bf5100b63a1070fd2f) +--- + drivers/gpu/drm/i915/gt/intel_lrc.c | 42 ++++++++++++++--------------- + 1 file changed, 20 insertions(+), 22 deletions(-) + +diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c +index d564bfcab6a3..49ce15553e7b 100644 +--- a/drivers/gpu/drm/i915/gt/intel_lrc.c ++++ b/drivers/gpu/drm/i915/gt/intel_lrc.c +@@ -471,12 +471,6 @@ lrc_descriptor(struct intel_context *ce, struct intel_engine_cs *engine) + return desc; + } + +-static void unwind_wa_tail(struct i915_request *rq) +-{ +- rq->tail = intel_ring_wrap(rq->ring, rq->wa_tail - WA_TAIL_BYTES); +- assert_ring_tail_valid(rq->ring, rq->tail); +-} +- + static struct i915_request * + __unwind_incomplete_requests(struct intel_engine_cs *engine) + { +@@ -495,7 +489,6 @@ __unwind_incomplete_requests(struct intel_engine_cs *engine) + continue; /* XXX */ + + __i915_request_unsubmit(rq); +- unwind_wa_tail(rq); + + /* + * Push the request back into the queue for later resubmission. +@@ -650,13 +643,29 @@ execlists_schedule_out(struct i915_request *rq) + i915_request_put(rq); + } + +-static u64 execlists_update_context(const struct i915_request *rq) ++static u64 execlists_update_context(struct i915_request *rq) + { + struct intel_context *ce = rq->hw_context; +- u64 desc; ++ u64 desc = ce->lrc_desc; ++ u32 tail; + +- ce->lrc_reg_state[CTX_RING_TAIL + 1] = +- intel_ring_set_tail(rq->ring, rq->tail); ++ /* ++ * WaIdleLiteRestore:bdw,skl ++ * ++ * We should never submit the context with the same RING_TAIL twice ++ * just in case we submit an empty ring, which confuses the HW. ++ * ++ * We append a couple of NOOPs (gen8_emit_wa_tail) after the end of ++ * the normal request to be able to always advance the RING_TAIL on ++ * subsequent resubmissions (for lite restore). Should that fail us, ++ * and we try and submit the same tail again, force the context ++ * reload. ++ */ ++ tail = intel_ring_set_tail(rq->ring, rq->tail); ++ if (unlikely(ce->lrc_reg_state[CTX_RING_TAIL + 1] == tail)) ++ desc |= CTX_DESC_FORCE_RESTORE; ++ ce->lrc_reg_state[CTX_RING_TAIL + 1] = tail; ++ rq->tail = rq->wa_tail; + + /* + * Make sure the context image is complete before we submit it to HW. +@@ -675,7 +684,6 @@ static u64 execlists_update_context(const struct i915_request *rq) + */ + mb(); + +- desc = ce->lrc_desc; + ce->lrc_desc &= ~CTX_DESC_FORCE_RESTORE; + + return desc; +@@ -1150,16 +1158,6 @@ static void execlists_dequeue(struct intel_engine_cs *engine) + if (!list_is_last(&last->sched.link, + &engine->active.requests)) + return; +- +- /* +- * WaIdleLiteRestore:bdw,skl +- * Apply the wa NOOPs to prevent +- * ring:HEAD == rq:TAIL as we resubmit the +- * request. See gen8_emit_fini_breadcrumb() for +- * where we prepare the padding after the +- * end of the request. +- */ +- last->tail = last->wa_tail; + } + } + +-- +2.24.1 + diff --git a/0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch b/0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch new file mode 100644 index 000000000000..11bfc01cf62d --- /dev/null +++ b/0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch @@ -0,0 +1,35 @@ +From d50448859890faa92fa1ebb82ef914fb15957994 Mon Sep 17 00:00:00 2001 +From: Boyan Ding <boyan.j.ding@gmail.com> +Date: Wed, 1 Jan 2020 11:44:49 -0800 +Subject: [PATCH 13/16] pinctrl: sunrisepoint: Add missing Interrupt Status + register offset + +Commit 179e5a6114cc ("pinctrl: intel: Remove default Interrupt Status +offset") removes default interrupt status offset of GPIO controllers, +with previous commits explicitly providing the previously default +offsets. However, the is_offset value in SPTH_COMMUNITY is missing, +preventing related irq from being properly detected and handled. + +Fixes: f702e0b93cdb ("pinctrl: sunrisepoint: Provide Interrupt Status register offset") +Link: https://bugzilla.kernel.org/show_bug.cgi?id=205745 +Cc: stable@vger.kernel.org +Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com> +--- + drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/pinctrl/intel/pinctrl-sunrisepoint.c b/drivers/pinctrl/intel/pinctrl-sunrisepoint.c +index 44d7f50bbc82..d936e7aa74c4 100644 +--- a/drivers/pinctrl/intel/pinctrl-sunrisepoint.c ++++ b/drivers/pinctrl/intel/pinctrl-sunrisepoint.c +@@ -49,6 +49,7 @@ + .padown_offset = SPT_PAD_OWN, \ + .padcfglock_offset = SPT_PADCFGLOCK, \ + .hostown_offset = SPT_HOSTSW_OWN, \ ++ .is_offset = SPT_GPI_IS, \ + .ie_offset = SPT_GPI_IE, \ + .pin_base = (s), \ + .npins = ((e) - (s) + 1), \ +-- +2.24.1 + diff --git a/0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch b/0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch new file mode 100644 index 000000000000..17ec8a044ef9 --- /dev/null +++ b/0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch @@ -0,0 +1,48 @@ +From 78fe4d666ff244609c7d02bea07a22ce87e56326 Mon Sep 17 00:00:00 2001 +From: Mehmet Akif Tasova <makiftasova@gmail.com> +Date: Mon, 30 Dec 2019 15:48:16 +0200 +Subject: [PATCH 14/16] Revert "iwlwifi: mvm: fix scan config command size" + +Since v5.4-rc1 was released, iwlwifi started throwing errors when scan +commands were sent to the firmware with certain devices (depending on +the OTP burned in the device, which contains the list of available +channels). For instance: + +iwlwifi 0000:00:14.3: FW error in SYNC CMD SCAN_CFG_CMD + +This bug was reported in the ArchLinux bug tracker: +https://bugs.archlinux.org/task/64703 + +And also in a specific case in bugzilla, when the lar_disabled option +was set: https://bugzilla.kernel.org/show_bug.cgi?id=205193 + +Revert the commit that introduced this error, by using the number of +channels from the OTP instead of the number of channels that is +specified in the FW TLV that tells us how many channels it supports. + +This reverts commit 06eb547c4ae4382e70d556ba213d13c95ca1801b. + +Cc: stable@vger.kernel.org # v5.4+ +Signed-off-by: Mehmet Akif Tasova <makiftasova@gmail.com> +[ Luca: reworded the commit message a bit. ] +Signed-off-by: Luca Coelho <luciano.coelho@intel.com> +--- + drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c +index fcafa22ec6ce..8aa567d7912c 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c +@@ -1220,7 +1220,7 @@ static int iwl_mvm_legacy_config_scan(struct iwl_mvm *mvm) + cmd_size = sizeof(struct iwl_scan_config_v2); + else + cmd_size = sizeof(struct iwl_scan_config_v1); +- cmd_size += num_channels; ++ cmd_size += mvm->fw->ucode_capa.n_scan_channels; + + cfg = kzalloc(cmd_size, GFP_KERNEL); + if (!cfg) +-- +2.24.1 + diff --git a/0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch b/0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch new file mode 100644 index 000000000000..5e814ce7ec16 --- /dev/null +++ b/0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch @@ -0,0 +1,174 @@ +From 195bb1762da1aa1c1beffe402353afd619ea7338 Mon Sep 17 00:00:00 2001 +From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> +Date: Sat, 4 Jan 2020 23:29:22 -0800 +Subject: [PATCH 15/16] e1000e: Revert "e1000e: Make watchdog use delayed work" + +This reverts commit 59653e6497d16f7ac1d9db088f3959f57ee8c3db. + +This is due to this commit causing driver crashes and connections to +reset unexpectedly. + +Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> +--- + drivers/net/ethernet/intel/e1000e/e1000.h | 5 +- + drivers/net/ethernet/intel/e1000e/netdev.c | 54 ++++++++++------------ + 2 files changed, 27 insertions(+), 32 deletions(-) + +diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h +index 6c51b1bad8c4..37a2314d3e6b 100644 +--- a/drivers/net/ethernet/intel/e1000e/e1000.h ++++ b/drivers/net/ethernet/intel/e1000e/e1000.h +@@ -185,13 +185,12 @@ struct e1000_phy_regs { + + /* board specific private data structure */ + struct e1000_adapter { ++ struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + struct timer_list blink_timer; + + struct work_struct reset_task; +- struct delayed_work watchdog_task; +- +- struct workqueue_struct *e1000_workqueue; ++ struct work_struct watchdog_task; + + const struct e1000_info *ei; + +diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c +index d7d56e42a6aa..060daf66bf63 100644 +--- a/drivers/net/ethernet/intel/e1000e/netdev.c ++++ b/drivers/net/ethernet/intel/e1000e/netdev.c +@@ -1780,8 +1780,7 @@ static irqreturn_t e1000_intr_msi(int __always_unused irq, void *data) + } + /* guard against interrupt when we're going down */ + if (!test_bit(__E1000_DOWN, &adapter->state)) +- mod_delayed_work(adapter->e1000_workqueue, +- &adapter->watchdog_task, HZ); ++ mod_timer(&adapter->watchdog_timer, jiffies + 1); + } + + /* Reset on uncorrectable ECC error */ +@@ -1861,8 +1860,7 @@ static irqreturn_t e1000_intr(int __always_unused irq, void *data) + } + /* guard against interrupt when we're going down */ + if (!test_bit(__E1000_DOWN, &adapter->state)) +- mod_delayed_work(adapter->e1000_workqueue, +- &adapter->watchdog_task, HZ); ++ mod_timer(&adapter->watchdog_timer, jiffies + 1); + } + + /* Reset on uncorrectable ECC error */ +@@ -1907,8 +1905,7 @@ static irqreturn_t e1000_msix_other(int __always_unused irq, void *data) + hw->mac.get_link_status = true; + /* guard against interrupt when we're going down */ + if (!test_bit(__E1000_DOWN, &adapter->state)) +- mod_delayed_work(adapter->e1000_workqueue, +- &adapter->watchdog_task, HZ); ++ mod_timer(&adapter->watchdog_timer, jiffies + 1); + } + + if (!test_bit(__E1000_DOWN, &adapter->state)) +@@ -4281,6 +4278,7 @@ void e1000e_down(struct e1000_adapter *adapter, bool reset) + + napi_synchronize(&adapter->napi); + ++ del_timer_sync(&adapter->watchdog_timer); + del_timer_sync(&adapter->phy_info_timer); + + spin_lock(&adapter->stats64_lock); +@@ -5152,11 +5150,25 @@ static void e1000e_check_82574_phy_workaround(struct e1000_adapter *adapter) + } + } + ++/** ++ * e1000_watchdog - Timer Call-back ++ * @data: pointer to adapter cast into an unsigned long ++ **/ ++static void e1000_watchdog(struct timer_list *t) ++{ ++ struct e1000_adapter *adapter = from_timer(adapter, t, watchdog_timer); ++ ++ /* Do the rest outside of interrupt context */ ++ schedule_work(&adapter->watchdog_task); ++ ++ /* TODO: make this use queue_delayed_work() */ ++} ++ + static void e1000_watchdog_task(struct work_struct *work) + { + struct e1000_adapter *adapter = container_of(work, + struct e1000_adapter, +- watchdog_task.work); ++ watchdog_task); + struct net_device *netdev = adapter->netdev; + struct e1000_mac_info *mac = &adapter->hw.mac; + struct e1000_phy_info *phy = &adapter->hw.phy; +@@ -5404,9 +5416,8 @@ static void e1000_watchdog_task(struct work_struct *work) + + /* Reset the timer */ + if (!test_bit(__E1000_DOWN, &adapter->state)) +- queue_delayed_work(adapter->e1000_workqueue, +- &adapter->watchdog_task, +- round_jiffies(2 * HZ)); ++ mod_timer(&adapter->watchdog_timer, ++ round_jiffies(jiffies + 2 * HZ)); + } + + #define E1000_TX_FLAGS_CSUM 0x00000001 +@@ -7259,21 +7270,11 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + goto err_eeprom; + } + +- adapter->e1000_workqueue = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, +- e1000e_driver_name); +- +- if (!adapter->e1000_workqueue) { +- err = -ENOMEM; +- goto err_workqueue; +- } +- +- INIT_DELAYED_WORK(&adapter->watchdog_task, e1000_watchdog_task); +- queue_delayed_work(adapter->e1000_workqueue, &adapter->watchdog_task, +- 0); +- ++ timer_setup(&adapter->watchdog_timer, e1000_watchdog, 0); + timer_setup(&adapter->phy_info_timer, e1000_update_phy_info, 0); + + INIT_WORK(&adapter->reset_task, e1000_reset_task); ++ INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task); + INIT_WORK(&adapter->downshift_task, e1000e_downshift_workaround); + INIT_WORK(&adapter->update_phy_task, e1000e_update_phy_task); + INIT_WORK(&adapter->print_hang_task, e1000_print_hw_hang); +@@ -7367,9 +7368,6 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + return 0; + + err_register: +- flush_workqueue(adapter->e1000_workqueue); +- destroy_workqueue(adapter->e1000_workqueue); +-err_workqueue: + if (!(adapter->flags & FLAG_HAS_AMT)) + e1000e_release_hw_control(adapter); + err_eeprom: +@@ -7416,17 +7414,15 @@ static void e1000_remove(struct pci_dev *pdev) + */ + if (!down) + set_bit(__E1000_DOWN, &adapter->state); ++ del_timer_sync(&adapter->watchdog_timer); + del_timer_sync(&adapter->phy_info_timer); + + cancel_work_sync(&adapter->reset_task); ++ cancel_work_sync(&adapter->watchdog_task); + cancel_work_sync(&adapter->downshift_task); + cancel_work_sync(&adapter->update_phy_task); + cancel_work_sync(&adapter->print_hang_task); + +- cancel_delayed_work(&adapter->watchdog_task); +- flush_workqueue(adapter->e1000_workqueue); +- destroy_workqueue(adapter->e1000_workqueue); +- + if (adapter->flags & FLAG_HAS_HW_TIMESTAMP) { + cancel_work_sync(&adapter->tx_hwtstamp_work); + if (adapter->tx_hwtstamp_skb) { +-- +2.24.1 + @@ -7,8 +7,8 @@ # Contributor: Thomas Baechler <thomas@archlinux.org> pkgbase=linux-rt -_pkgver=5.4.5 -_rtpatchver=3 +_pkgver=5.4.10 +_rtpatchver=5 pkgver="${_pkgver}.${_rtpatchver}" pkgrel=1 arch=('x86_64') @@ -30,8 +30,15 @@ source=( 0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch - 0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch - 0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch + 0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + 0008-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch + 0009-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch + 0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch + 0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch + 0012-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch + 0013-pinctrl-sunrisepoint-Add-missing-Interrupt-Status-re.patch + 0014-Revert-iwlwifi-mvm-fix-scan-config-command-size.patch + 0015-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds @@ -41,19 +48,26 @@ validpgpkeys=( '5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73' # Steven Rostedt 'E644E2F1D45FA0B2EAA02F33109F098506FF0B14' # Thomas Gleixner ) -sha256sums=('568e9f27fbba86131c2e2849f296d54216e2ed3e8c4d8aa78a93b417cab23ec0' +sha256sums=('f23c0218a5e3b363bb5a880972f507bb4dc4a290a787a7da08be07ea12042edd' 'SKIP' - 'fdb943eee48582b65f3a4876cc8f7b1e1b274dd57287762c0e8a68ff681d855b' + '0bab9f30b2ce3123c0e5a0fca2d51807883e2b9f5398a51e68937cad2fcb30d7' 'SKIP' - '4828d33e4115ec4a59f6ad995d7041be0e8cfaaa399f3ee6b03a7d18c23f35a2' - 'abf6040dee7695d52ebdb5609a5bbcf6c56ec6e39d9d65ddb6be728268b4ee4e' - 'ea43ba87b18ed99dc9bd7bcbe20c2315e51aafdad1bf4bae3e31889aae3f12d7' - '0fa424d4a56f5ec6754669d423a119301ff8849c72f6bf7603ecd1d98b971419' - '4dc9d777185052c5a6bf6f15df2ae91ca50585103a910b6e1369cac7a291d3b0' - '950a1a526d33b804da34cea4aba920c1a0863afb1817ed4e0c288b81f4a21ba3' - '4e731525b8f848481a0fdadfe1db70f014364bd501130a22a396802acff0f577' - '09b7facedafc53ae47f92be0adb619791c0044a2977ce3e4367b35987f38732f' - '5c7171b5787e0e252120476640d6d8237ea904e9c552da735a16851679e20cd5') + '2af2613a7ae5e4886acbe2af87a035646823875bf852dc913eb2339e8ecb94be' + 'a3e9541bf0306d32af8acf121643d9953776d448f68ec09741c591d1e5bc6748' + '8e9967f83cf22be43b516b394523b0976c6831e28cee5136542df3c946328917' + '226251c17ced22414e4275ca69be6aec318904778f0c8c244050916e51064b14' + '9809d55995895e7061bfca0db9f38a608548f21bb5d4a2260e7bbb6b5af2db4a' + '82bc11366ca296e86dd745c911a841d7ac12d16a1a2185da245a96e5440b8fd7' + '1ef45f1e7456437e4ec7c2ada46c607f492a87db8d1cf3f3b59870bc2deaa1e6' + 'fcd117bc51f21baac26f7570f48b91ce994fd351fcb19cb6097166a4a7c181e6' + '49bc5c988a6cc127f39ae998954482450d19b69da2ce9dfcce678d3fe7504136' + 'f583d172c69c288f5d2e587c5926b0e732284c19e73671eef112ab1a0e26362a' + '84baa16aa022e0dac2515edced6f214a08d385a385ffb04e358fbe9671235d41' + 'a55cfce037523fdb6244fd6286a1d9be12c2eab3327a1c6e05ac42899f5868d1' + '9c600a292efb59087d913fd8e7a5fff9c7abcfad864d294a266600f4491476c5' + '126f8b83065e3f7a72589f33874481aa06bb1686ddc6997a8a05a27c7d6721ac' + '9c95928be62369403bb6822a838dc9791a5a98ac489af81b5ab8f2fd09b0c696' + '4a2bd4b02e8c4f81334d22a8bd27a03f8a3a1e8137699b809de15cd7edf0e4dd') export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.4.5 Kernel Configuration +# Linux/x86 5.4.10 Kernel Configuration # # @@ -843,14 +843,9 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y - -# -# GCC plugins -# # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set -# end of GCC plugins # end of General architecture-dependent options CONFIG_RT_MUTEXES=y |