From 210c962c63ff0797228fb61f33cf675845dfa6c2 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Thu, 2 Jan 2020 12:57:26 -0800 Subject: Updated to 5.4.7 Added support for localmodcfg --- ...irectly-to-iwl_trans-cfg-in-QuZ-detection.patch | 60 ++++++++++ ...t-use-rdmsr_safe_on_cpu-in-smca_configure.patch | 72 ------------ ...cie-restore-support-for-Killer-Qu-C0-NICs.patch | 36 ++++++ ...ved-types-to-be-overwritten-in-smca_banks.patch | 95 --------------- ...-Disable-HPET-on-Intel-Ice-Lake-platforms.patch | 38 ++++++ ...bly-incorrect-severity-calculation-on-AMD.patch | 46 -------- ...irectly-to-iwl_trans-cfg-in-QuZ-detection.patch | 60 ---------- ..._FREQ_CNTRL-state-at-audio-domain-suspend.patch | 86 ++++++++++++++ ...audio-power-up-sequence-for-gen10-display.patch | 56 +++++++++ ...wer-gating-workaround-earlier-in-the-flow.patch | 119 ------------------- ...-CDCLK-2BCLK-constraint-to-more-platforms.patch | 40 +++++++ ...ble-HPET-on-Intel-Coffee-Lake-H-platforms.patch | 40 ------- ...15-gt-Detect-if-we-miss-WaIdleLiteRestore.patch | 130 +++++++++++++++++++++ ...-Disable-HPET-on-Intel-Ice-Lake-platforms.patch | 38 ------ ..._FREQ_CNTRL-state-at-audio-domain-suspend.patch | 86 -------------- ...audio-power-up-sequence-for-gen10-display.patch | 56 --------- ...-CDCLK-2BCLK-constraint-to-more-platforms.patch | 40 ------- 0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch | 39 ------- ...M-as-default-also-for-Intel-Ice-Lake-xHCI.patch | 48 -------- ...cie-restore-support-for-Killer-Qu-C0-NICs.patch | 36 ------ PKGBUILD | 49 ++++---- config | 2 +- 22 files changed, 468 insertions(+), 804 deletions(-) create mode 100644 0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch delete mode 100644 0007-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch create mode 100644 0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch delete mode 100644 0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch create mode 100644 0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch delete mode 100644 0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch delete mode 100644 0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch create mode 100644 0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch create mode 100644 0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch delete mode 100644 0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch create mode 100644 0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch delete mode 100644 0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch create mode 100644 0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch delete mode 100644 0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch delete mode 100644 0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch delete mode 100644 0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch delete mode 100644 0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch delete mode 100644 0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch delete mode 100644 0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch delete mode 100644 0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch diff --git a/0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch b/0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch new file mode 100644 index 0000000..5278317 --- /dev/null +++ b/0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch @@ -0,0 +1,60 @@ +From 5cedf4aa8f59ed7c8fa1cf129731fbe86205cbea Mon Sep 17 00:00:00 2001 +From: Anders Kaseorg +Date: Mon, 2 Dec 2019 17:09:20 -0500 +Subject: Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection" + +This reverts commit 968dcfb4905245dc64d65312c0d17692fa087b99. + +Both that commit and commit 809805a820c6445f7a701ded24fdc6bbc841d1e4 +attempted to fix the same bug (dead assignments to the local variable +cfg), but they did so in incompatible ways. When they were both merged, +independently of each other, the combination actually caused the bug to +reappear, leading to a firmware crash on boot for some cards. + +https://bugzilla.kernel.org/show_bug.cgi?id=205719 + +Signed-off-by: Anders Kaseorg +Acked-by: Luca Coelho +Signed-off-by: Kalle Valo +--- + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +index 040cec17d3ad..b0b7eca1754e 100644 +--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c ++++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +@@ -1111,18 +1111,18 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + + /* same thing for QuZ... */ + if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) { +- if (iwl_trans->cfg == &iwl_ax101_cfg_qu_hr) +- iwl_trans->cfg = &iwl_ax101_cfg_quz_hr; +- else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) +- iwl_trans->cfg = &iwl_ax201_cfg_quz_hr; +- else if (iwl_trans->cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0) +- iwl_trans->cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc; +- else if (iwl_trans->cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0) +- iwl_trans->cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc; +- else if (iwl_trans->cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0) +- iwl_trans->cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc; +- else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0) +- iwl_trans->cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc; ++ if (cfg == &iwl_ax101_cfg_qu_hr) ++ cfg = &iwl_ax101_cfg_quz_hr; ++ else if (cfg == &iwl_ax201_cfg_qu_hr) ++ cfg = &iwl_ax201_cfg_quz_hr; ++ else if (cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0) ++ cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc; ++ else if (cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0) ++ cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc; ++ else if (cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0) ++ cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc; ++ else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0) ++ cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc; + } + + #endif +-- +cgit v1.2.1-1-g437b + diff --git a/0007-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch b/0007-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch deleted file mode 100644 index 659a1dd..0000000 --- a/0007-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 1a95a3417bdadb0528e16745802688c393aa0afd Mon Sep 17 00:00:00 2001 -From: Konstantin Khlebnikov -Date: Thu, 31 Oct 2019 16:04:48 +0300 -Subject: x86/MCE/AMD: Do not use rdmsr_safe_on_cpu() in smca_configure() - -... because interrupts are disabled that early and sending IPIs can -deadlock: - - BUG: sleeping function called from invalid context at kernel/sched/completion.c:99 - in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/1 - no locks held by swapper/1/0. - irq event stamp: 0 - hardirqs last enabled at (0): [<0000000000000000>] 0x0 - hardirqs last disabled at (0): [] copy_process+0x8b9/0x1ca0 - softirqs last enabled at (0): [] copy_process+0x8b9/0x1ca0 - softirqs last disabled at (0): [<0000000000000000>] 0x0 - Preemption disabled at: - [] start_secondary+0x3b/0x190 - CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.5.0-rc2+ #1 - Hardware name: GIGABYTE MZ01-CE1-00/MZ01-CE1-00, BIOS F02 08/29/2018 - Call Trace: - dump_stack - ___might_sleep.cold.92 - wait_for_completion - ? generic_exec_single - rdmsr_safe_on_cpu - ? wrmsr_on_cpus - mce_amd_feature_init - mcheck_cpu_init - identify_cpu - identify_secondary_cpu - smp_store_cpu_info - start_secondary - secondary_startup_64 - -The function smca_configure() is called only on the current CPU anyway, -therefore replace rdmsr_safe_on_cpu() with atomic rdmsr_safe() and avoid -the IPI. - - [ bp: Update commit message. ] - -Signed-off-by: Konstantin Khlebnikov -Signed-off-by: Borislav Petkov -Reviewed-by: Yazen Ghannam -Cc: "H. Peter Anvin" -Cc: Ingo Molnar -Cc: linux-edac -Cc: -Cc: Thomas Gleixner -Cc: Tony Luck -Cc: x86-ml -Link: https://lkml.kernel.org/r/157252708836.3876.4604398213417262402.stgit@buzz ---- - arch/x86/kernel/cpu/mce/amd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c -index 6ea7fdc82f3c..c7ab0d38af79 100644 ---- a/arch/x86/kernel/cpu/mce/amd.c -+++ b/arch/x86/kernel/cpu/mce/amd.c -@@ -269,7 +269,7 @@ static void smca_configure(unsigned int bank, unsigned int cpu) - if (smca_banks[bank].hwid) - return; - -- if (rdmsr_safe_on_cpu(cpu, MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { -+ if (rdmsr_safe(MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { - pr_warn("Failed to read MCA_IPID for bank %d\n", bank); - return; - } --- -cgit v1.2.1-1-g437b - diff --git a/0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch new file mode 100644 index 0000000..7611c7a --- /dev/null +++ b/0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch @@ -0,0 +1,36 @@ +From fd1d146698d09aaac6709ae4fde90d80dbd153cd Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 24 Dec 2019 05:18:47 +0100 +Subject: 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) +--- + 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... */ +-- +cgit v1.2.1-1-g437b + diff --git a/0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch b/0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch deleted file mode 100644 index d8c1af2..0000000 --- a/0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 14e0c3a2f956421e0731a1b5e474b3428c8bda24 Mon Sep 17 00:00:00 2001 -From: Yazen Ghannam -Date: Thu, 21 Nov 2019 08:15:08 -0600 -Subject: x86/MCE/AMD: Allow Reserved types to be overwritten in smca_banks[] - -Each logical CPU in Scalable MCA systems controls a unique set of MCA -banks in the system. These banks are not shared between CPUs. The bank -types and ordering will be the same across CPUs on currently available -systems. - -However, some CPUs may see a bank as Reserved/Read-as-Zero (RAZ) while -other CPUs do not. In this case, the bank seen as Reserved on one CPU is -assumed to be the same type as the bank seen as a known type on another -CPU. - -In general, this occurs when the hardware represented by the MCA bank -is disabled, e.g. disabled memory controllers on certain models, etc. -The MCA bank is disabled in the hardware, so there is no possibility of -getting an MCA/MCE from it even if it is assumed to have a known type. - -For example: - -Full system: - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | UMC | UMC - 2 | CS | CS - -System with hardware disabled: - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | UMC | RAZ - 2 | CS | CS - -For this reason, there is a single, global struct smca_banks[] that is -initialized at boot time. This array is initialized on each CPU as it -comes online. However, the array will not be updated if an entry already -exists. - -This works as expected when the first CPU (usually CPU0) has all -possible MCA banks enabled. But if the first CPU has a subset, then it -will save a "Reserved" type in smca_banks[]. Successive CPUs will then -not be able to update smca_banks[] even if they encounter a known bank -type. - -This may result in unexpected behavior. Depending on the system -configuration, a user may observe issues enumerating the MCA -thresholding sysfs interface. The issues may be as trivial as sysfs -entries not being available, or as severe as system hangs. - -For example: - - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | RAZ | UMC - 2 | CS | CS - -Extend the smca_banks[] entry check to return if the entry is a -non-reserved type. Otherwise, continue so that CPUs that encounter a -known bank type can update smca_banks[]. - -Fixes: 68627a697c19 ("x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type") -Signed-off-by: Yazen Ghannam -Signed-off-by: Borislav Petkov -Cc: "H. Peter Anvin" -Cc: Ingo Molnar -Cc: linux-edac -Cc: -Cc: Thomas Gleixner -Cc: Tony Luck -Cc: x86-ml -Link: https://lkml.kernel.org/r/20191121141508.141273-1-Yazen.Ghannam@amd.com ---- - arch/x86/kernel/cpu/mce/amd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c -index c7ab0d38af79..259f3f4e2e5f 100644 ---- a/arch/x86/kernel/cpu/mce/amd.c -+++ b/arch/x86/kernel/cpu/mce/amd.c -@@ -266,7 +266,7 @@ static void smca_configure(unsigned int bank, unsigned int cpu) - smca_set_misc_banks_map(bank, cpu); - - /* Return early if this bank was already initialized. */ -- if (smca_banks[bank].hwid) -+ if (smca_banks[bank].hwid && smca_banks[bank].hwid->hwid_mcatype != 0) - return; - - if (rdmsr_safe(MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { --- -cgit v1.2.1-1-g437b - diff --git a/0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch b/0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch new file mode 100644 index 0000000..6cb930a --- /dev/null +++ b/0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch @@ -0,0 +1,38 @@ +From de022ec5134c060ee735424ed3d0f9a663b73c53 Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng +Date: Fri, 29 Nov 2019 14:23:03 +0800 +Subject: 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 +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +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 +--- + 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}, + {} +-- +cgit v1.2.1-1-g437b + diff --git a/0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch b/0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch deleted file mode 100644 index 0904cdd..0000000 --- a/0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 583bb4015fc2279dc8e482dacb9ba30bcb738be1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20H=2E=20Sch=C3=B6nherr?= -Date: Tue, 10 Dec 2019 01:07:30 +0100 -Subject: x86/mce: Fix possibly incorrect severity calculation on AMD -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The function mce_severity_amd_smca() requires m->bank to be initialized -for correct operation. Fix the one case, where mce_severity() is called -without doing so. - -Fixes: 6bda529ec42e ("x86/mce: Grade uncorrected errors for SMCA-enabled systems") -Fixes: d28af26faa0b ("x86/MCE: Initialize mce.bank in the case of a fatal error in mce_no_way_out()") -Signed-off-by: Jan H. Schönherr -Signed-off-by: Borislav Petkov -Reviewed-by: Tony Luck -Cc: "H. Peter Anvin" -Cc: Ingo Molnar -Cc: linux-edac -Cc: -Cc: Thomas Gleixner -Cc: x86-ml -Cc: Yazen Ghannam -Link: https://lkml.kernel.org/r/20191210000733.17979-4-jschoenh@amazon.de ---- - arch/x86/kernel/cpu/mce/core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c -index 743370ee4983..aecb15ba66cd 100644 ---- a/arch/x86/kernel/cpu/mce/core.c -+++ b/arch/x86/kernel/cpu/mce/core.c -@@ -814,8 +814,8 @@ static int mce_no_way_out(struct mce *m, char **msg, unsigned long *validp, - if (quirk_no_way_out) - quirk_no_way_out(i, m, regs); - -+ m->bank = i; - if (mce_severity(m, mca_cfg.tolerant, &tmp, true) >= MCE_PANIC_SEVERITY) { -- m->bank = i; - mce_read_aux(m, i); - *msg = tmp; - return 1; --- -cgit v1.2.1-1-g437b - diff --git a/0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch b/0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch deleted file mode 100644 index 5278317..0000000 --- a/0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 5cedf4aa8f59ed7c8fa1cf129731fbe86205cbea Mon Sep 17 00:00:00 2001 -From: Anders Kaseorg -Date: Mon, 2 Dec 2019 17:09:20 -0500 -Subject: Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection" - -This reverts commit 968dcfb4905245dc64d65312c0d17692fa087b99. - -Both that commit and commit 809805a820c6445f7a701ded24fdc6bbc841d1e4 -attempted to fix the same bug (dead assignments to the local variable -cfg), but they did so in incompatible ways. When they were both merged, -independently of each other, the combination actually caused the bug to -reappear, leading to a firmware crash on boot for some cards. - -https://bugzilla.kernel.org/show_bug.cgi?id=205719 - -Signed-off-by: Anders Kaseorg -Acked-by: Luca Coelho -Signed-off-by: Kalle Valo ---- - drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c -index 040cec17d3ad..b0b7eca1754e 100644 ---- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c -+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c -@@ -1111,18 +1111,18 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) - - /* same thing for QuZ... */ - if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) { -- if (iwl_trans->cfg == &iwl_ax101_cfg_qu_hr) -- iwl_trans->cfg = &iwl_ax101_cfg_quz_hr; -- else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) -- iwl_trans->cfg = &iwl_ax201_cfg_quz_hr; -- else if (iwl_trans->cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0) -- iwl_trans->cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc; -- else if (iwl_trans->cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0) -- iwl_trans->cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc; -- else if (iwl_trans->cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0) -- iwl_trans->cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc; -- else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0) -- iwl_trans->cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc; -+ if (cfg == &iwl_ax101_cfg_qu_hr) -+ cfg = &iwl_ax101_cfg_quz_hr; -+ else if (cfg == &iwl_ax201_cfg_qu_hr) -+ cfg = &iwl_ax201_cfg_quz_hr; -+ else if (cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0) -+ cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc; -+ else if (cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0) -+ cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc; -+ else if (cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0) -+ cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc; -+ else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0) -+ cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc; - } - - #endif --- -cgit v1.2.1-1-g437b - diff --git a/0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch b/0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch new file mode 100644 index 0000000..6ea75b6 --- /dev/null +++ b/0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch @@ -0,0 +1,86 @@ +From c0da4d4ee458208d5427d0a284173bd39a95d040 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen +Date: Fri, 20 Sep 2019 11:39:18 +0300 +Subject: 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 +Cc: Imre Deak +Signed-off-by: Kai Vehmanen +Signed-off-by: Jani Nikula +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 + * +-- +cgit v1.2.1-1-g437b + diff --git a/0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch b/0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch new file mode 100644 index 0000000..7c46dbe --- /dev/null +++ b/0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch @@ -0,0 +1,56 @@ +From 6e149a5538676e885561f1dfc18bbb4dd104c1f6 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen +Date: Thu, 3 Oct 2019 11:55:30 +0300 +Subject: 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 +Signed-off-by: Jani Nikula +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 +-- +cgit v1.2.1-1-g437b + diff --git a/0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch b/0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch deleted file mode 100644 index 457542b..0000000 --- a/0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 9894b27702c2e6090213f84db3e3d47f191253cd Mon Sep 17 00:00:00 2001 -From: Luca Coelho -Date: Thu, 5 Dec 2019 09:03:54 +0200 -Subject: iwlwifi: pcie: move power gating workaround earlier in the flow - -We need to reset the NIC after setting the bits to enable power -gating and that cannot be done too late in the flow otherwise it -cleans other registers and things that were already configured, -causing initialization to fail. - -In order to fix this, move the function to the common code in trans.c -so it can be called directly from there at an earlier point, just -after the reset we already do during initialization. - -Fixes: 9a47cb988338 ("iwlwifi: pcie: add workaround for power gating in integrated 22000") -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=205719 -Cc: stable@ver.kernel.org # 5.4+ -Reported-by: Anders Kaseorg -Signed-off-by: Luca Coelho -Signed-off-by: Kalle Valo ---- - .../net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 25 ------------------ - drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 30 ++++++++++++++++++++++ - 2 files changed, 30 insertions(+), 25 deletions(-) - -diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c -index ca3bb4d65b00..df8455f14e4d 100644 ---- a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c -+++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c -@@ -57,24 +57,6 @@ - #include "internal.h" - #include "fw/dbg.h" - --static int iwl_pcie_gen2_force_power_gating(struct iwl_trans *trans) --{ -- iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG, -- HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE); -- udelay(20); -- iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG, -- HPM_HIPM_GEN_CFG_CR_PG_EN | -- HPM_HIPM_GEN_CFG_CR_SLP_EN); -- udelay(20); -- iwl_clear_bits_prph(trans, HPM_HIPM_GEN_CFG, -- HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE); -- -- iwl_trans_sw_reset(trans); -- iwl_clear_bit(trans, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); -- -- return 0; --} -- - /* - * Start up NIC's basic functionality after it has been reset - * (e.g. after platform boot, or shutdown via iwl_pcie_apm_stop()) -@@ -110,13 +92,6 @@ int iwl_pcie_gen2_apm_init(struct iwl_trans *trans) - - iwl_pcie_apm_config(trans); - -- if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22000 && -- trans->cfg->integrated) { -- ret = iwl_pcie_gen2_force_power_gating(trans); -- if (ret) -- return ret; -- } -- - ret = iwl_finish_nic_init(trans, trans->trans_cfg); - if (ret) - return ret; -diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c -index 6961f00ff812..d3db38c3095b 100644 ---- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c -+++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c -@@ -1783,6 +1783,29 @@ static int iwl_trans_pcie_clear_persistence_bit(struct iwl_trans *trans) - return 0; - } - -+static int iwl_pcie_gen2_force_power_gating(struct iwl_trans *trans) -+{ -+ int ret; -+ -+ ret = iwl_finish_nic_init(trans, trans->trans_cfg); -+ if (ret < 0) -+ return ret; -+ -+ iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG, -+ HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE); -+ udelay(20); -+ iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG, -+ HPM_HIPM_GEN_CFG_CR_PG_EN | -+ HPM_HIPM_GEN_CFG_CR_SLP_EN); -+ udelay(20); -+ iwl_clear_bits_prph(trans, HPM_HIPM_GEN_CFG, -+ HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE); -+ -+ iwl_trans_pcie_sw_reset(trans); -+ -+ return 0; -+} -+ - static int _iwl_trans_pcie_start_hw(struct iwl_trans *trans) - { - struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); -@@ -1802,6 +1825,13 @@ static int _iwl_trans_pcie_start_hw(struct iwl_trans *trans) - - iwl_trans_pcie_sw_reset(trans); - -+ if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22000 && -+ trans->cfg->integrated) { -+ err = iwl_pcie_gen2_force_power_gating(trans); -+ if (err) -+ return err; -+ } -+ - err = iwl_pcie_apm_init(trans); - if (err) - return err; --- -cgit v1.2.1-1-g437b - diff --git a/0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch b/0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch new file mode 100644 index 0000000..8d5b9ae --- /dev/null +++ b/0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch @@ -0,0 +1,40 @@ +From 975d5a884b3c80155808c2ac39e6bb6d51450dea Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen +Date: Thu, 3 Oct 2019 11:55:31 +0300 +Subject: 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 +Signed-off-by: Jani Nikula +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); +-- +cgit v1.2.1-1-g437b + diff --git a/0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch b/0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch deleted file mode 100644 index 308b2ab..0000000 --- a/0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d112ebe17985ec073ae6edd0d46fa7a18fbe50cd Mon Sep 17 00:00:00 2001 -From: Kai-Heng Feng -Date: Fri, 29 Nov 2019 14:23:02 +0800 -Subject: x86/intel: Disable HPET on Intel Coffee Lake H platforms - -Coffee Lake H SoC has similar behavior as Coffee Lake, skewed HPET timer -once the SoCs entered PC10. - -So let's disable HPET on CFL-H platforms. - -Signed-off-by: Kai-Heng Feng -Cc: Linus Torvalds -Cc: Peter Zijlstra -Cc: Thomas Gleixner -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-1-kai.heng.feng@canonical.com -Signed-off-by: Ingo Molnar ---- - 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 4cba91ec8049..606711f5ebf8 100644 ---- a/arch/x86/kernel/early-quirks.c -+++ b/arch/x86/kernel/early-quirks.c -@@ -710,6 +710,8 @@ static struct chipset early_qrk[] __initdata = { - */ - { PCI_VENDOR_ID_INTEL, 0x0f00, - PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, -+ { PCI_VENDOR_ID_INTEL, 0x3e20, -+ 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_BROADCOM, 0x4331, --- -cgit v1.2.1-1-g437b - diff --git a/0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch b/0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch new file mode 100644 index 0000000..5ee3f39 --- /dev/null +++ b/0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch @@ -0,0 +1,130 @@ +From 8c19c0f7eacb125b9a097d080a385d527f8ff836 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Mon, 30 Dec 2019 11:15:30 +0000 +Subject: 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 +Cc: Mika Kuoppala +Cc: Tvrtko Ursulin +Reviewed-by: Tvrtko Ursulin +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 06a506c29463..6600b2e08fe3 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. +@@ -649,13 +642,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. +@@ -674,7 +683,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; +@@ -1149,16 +1157,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; + } + } + +-- +cgit v1.2.1-1-g437b + + diff --git a/0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch b/0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch deleted file mode 100644 index 6cb930a..0000000 --- a/0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch +++ /dev/null @@ -1,38 +0,0 @@ -From de022ec5134c060ee735424ed3d0f9a663b73c53 Mon Sep 17 00:00:00 2001 -From: Kai-Heng Feng -Date: Fri, 29 Nov 2019 14:23:03 +0800 -Subject: 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 -Cc: Linus Torvalds -Cc: Peter Zijlstra -Cc: Thomas Gleixner -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 ---- - 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}, - {} --- -cgit v1.2.1-1-g437b - diff --git a/0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch b/0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch deleted file mode 100644 index 6ea75b6..0000000 --- a/0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c0da4d4ee458208d5427d0a284173bd39a95d040 Mon Sep 17 00:00:00 2001 -From: Kai Vehmanen -Date: Fri, 20 Sep 2019 11:39:18 +0300 -Subject: 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 -Cc: Imre Deak -Signed-off-by: Kai Vehmanen -Signed-off-by: Jani Nikula -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 - * --- -cgit v1.2.1-1-g437b - diff --git a/0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch b/0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch deleted file mode 100644 index 7c46dbe..0000000 --- a/0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 6e149a5538676e885561f1dfc18bbb4dd104c1f6 Mon Sep 17 00:00:00 2001 -From: Kai Vehmanen -Date: Thu, 3 Oct 2019 11:55:30 +0300 -Subject: 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 -Signed-off-by: Jani Nikula -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 --- -cgit v1.2.1-1-g437b - diff --git a/0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch b/0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch deleted file mode 100644 index 8d5b9ae..0000000 --- a/0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 975d5a884b3c80155808c2ac39e6bb6d51450dea Mon Sep 17 00:00:00 2001 -From: Kai Vehmanen -Date: Thu, 3 Oct 2019 11:55:31 +0300 -Subject: 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 -Signed-off-by: Jani Nikula -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); --- -cgit v1.2.1-1-g437b - diff --git a/0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch b/0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch deleted file mode 100644 index ee901e8..0000000 --- a/0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 7699523eeae2b47440faa96cbed32c5e23db0e75 Mon Sep 17 00:00:00 2001 -From: Kai Vehmanen -Date: Tue, 8 Oct 2019 11:44:35 -0500 -Subject: ASoC: SOF: enable sync_write in hdac_bus - -Align SOF HDA implementation with snd-hda-intel driver and enable -sync_write flag for all supported Intel platforms in SOF. When set, -a sync is issued after each verb write. - -Sync after write has helped to overcome intermittent delays in -system resume flow on Intel Coffee Lake systems, and most recently -probe errors related to the HDMI codec on Ice Lake systems. - -Matches the snd-hda-intel driver change done in commit 2756d9143aa5 -("ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips"). - -Signed-off-by: Kai Vehmanen -Signed-off-by: Pierre-Louis Bossart -Link: https://lore.kernel.org/r/20191008164443.1358-2-pierre-louis.bossart@linux.intel.com -Signed-off-by: Mark Brown ---- - sound/soc/sof/intel/hda.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c -index 06e84679087b..5a5163eef2ef 100644 ---- a/sound/soc/sof/intel/hda.c -+++ b/sound/soc/sof/intel/hda.c -@@ -268,6 +268,7 @@ static int hda_init(struct snd_sof_dev *sdev) - - bus->use_posbuf = 1; - bus->bdl_pos_adj = 0; -+ bus->sync_write = 1; - - mutex_init(&hbus->prepare_mutex); - hbus->pci = pci; --- -cgit v1.2.1-1-g437b - diff --git a/0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch b/0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch deleted file mode 100644 index 12130cc..0000000 --- a/0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 74641e1ede93144485509cb7c2c682602107ec6b Mon Sep 17 00:00:00 2001 -From: Mika Westerberg -Date: Fri, 15 Nov 2019 18:50:03 +0200 -Subject: xhci-pci: Allow host runtime PM as default also for Intel Ice Lake - xHCI - -Intel Ice Lake has two xHCI controllers one on PCH and the other as part -of the CPU itself. The latter is also part of the so called Type C -Subsystem (TCSS) sharing ACPI power resources with the PCIe root ports -and the Thunderbolt controllers. In order to put the whole TCSS block -into D3cold the xHCI needs to be runtime suspended as well when idle. - -For this reason allow runtime PM as default for Ice Lake TCSS xHCI -controller. - -Signed-off-by: Mika Westerberg -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/1573836603-10871-5-git-send-email-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/host/xhci-pci.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 1904ef56f61c..2907fe4d78dd 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -48,6 +48,7 @@ - #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI 0x15e9 - #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI 0x15ec - #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI 0x15f0 -+#define PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI 0x8a13 - - #define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9 - #define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba -@@ -212,7 +213,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI || -- pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI)) -+ pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI || -+ pdev->device == PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI)) - xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; - - if (pdev->vendor == PCI_VENDOR_ID_ETRON && --- -cgit v1.2.1-1-g437b - diff --git a/0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch deleted file mode 100644 index 7611c7a..0000000 --- a/0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch +++ /dev/null @@ -1,36 +0,0 @@ -From fd1d146698d09aaac6709ae4fde90d80dbd153cd Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Tue, 24 Dec 2019 05:18:47 +0100 -Subject: 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) ---- - 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... */ --- -cgit v1.2.1-1-g437b - diff --git a/PKGBUILD b/PKGBUILD index 520705a..cc76c58 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -17,7 +17,7 @@ pkgbase=linux-ck _supver=5 _majver=4 -_minver=6 +_minver=7 _gccpatchver='20190822' _ckpatchversion=ck1 if [ "$_minver" == "0" ]; then @@ -25,7 +25,7 @@ _ckpatchversion=ck1 else pkgver=${_supver}.${_majver}.${_minver} fi -pkgrel=3 +pkgrel=1 pkgdesc='Linux-ck' url='https://kernel.org' #url='http://ck.kolivas.org/patches/' @@ -45,19 +45,13 @@ 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-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch - 0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch - 0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch - 0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch - 0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch - 0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch - 0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch - 0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch - 0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch - 0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch - 0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch - 0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch - 0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + 0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch + 0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + 0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch + 0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch + 0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch + 0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch + 0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}.xz::http://ck.kolivas.org/patches/${_supver}.0/${_supver}.${_majver}/${_supver}.${_majver}-${_ckpatchversion}/patch-${_supver}.${_majver}-${_ckpatchversion}.xz graysky_bdver2-hotfix.patch kernel_gcc_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/${_gccpatchver}.tar.gz @@ -120,19 +114,13 @@ prepare() { patch -p1 -i ../0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch patch -p1 -i ../0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch patch -p1 -i ../0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch - patch -p1 -i ../0007-x86-MCE-AMD-Do-not-use-rdmsr_safe_on_cpu-in-smca_configure.patch - patch -p1 -i ../0008-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-in-smca_banks.patch - patch -p1 -i ../0009-x86-mce-Fix-possibly-incorrect-severity-calculation-on-AMD.patch - patch -p1 -i ../0010-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch - patch -p1 -i ../0011-iwlwifi-pcie-move-power-gating-workaround-earlier-in-the-flow.patch - patch -p1 -i ../0012-x86-intel-Disable-HPET-on-Intel-Coffee-Lake-H-platforms.patch - patch -p1 -i ../0013-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch - patch -p1 -i ../0014-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch - patch -p1 -i ../0015-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch - patch -p1 -i ../0016-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch - patch -p1 -i ../0017-ASoC-SOF-enable-sync_write-in-hdac_bus.patch - patch -p1 -i ../0018-xhci-pci-Allow-host-runtime-PM-as-default-also-for-Intel-Ice-Lake-xHCI.patch - patch -p1 -i ../0019-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + patch -p1 -i ../0007-Revert-iwlwifi-assign-directly-to-iwl_trans-cfg-in-QuZ-detection.patch + patch -p1 -i ../0008-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch + patch -p1 -i ../0009-x86-intel-Disable-HPET-on-Intel-Ice-Lake-platforms.patch + patch -p1 -i ../0010-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-suspend.patch + patch -p1 -i ../0011-drm-i915-Fix-audio-power-up-sequence-for-gen10-display.patch + patch -p1 -i ../0012-drm-i915-extend-audio-CDCLK-2BCLK-constraint-to-more-platforms.patch + patch -p1 -i ../0013-drm-i915-gt-Detect-if-we-miss-WaIdleLiteRestore.patch # fix naming schema in EXTRAVERSION of ck patch set sed -i -re "s/^(.EXTRAVERSION).*$/\1 = /" "../linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}" @@ -176,6 +164,11 @@ prepare() { make olddefconfig + if [ -f $HOME/.config/modprobed.db ]; then + msg2 "Running make localmodconfig" + make LSMOD=$HOME/.config/modprobed.db localmodconfig + fi + make menuconfig # Remove sublevel when no sublevel exists diff --git a/config b/config index 4cac3b3..6dd1ff1 100644 --- a/config +++ b/config @@ -8372,7 +8372,7 @@ CONFIG_RPMSG_QCOM_GLINK_RPM=m CONFIG_RPMSG_VIRTIO=m # end of Rpmsg drivers -CONFIG_SOUNDWIRE=y +CONFIG_SOUNDWIRE=m # # SoundWire Devices -- cgit v1.2.1