summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2020-02-13 08:56:07 -0800
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2020-02-13 08:56:07 -0800
commit38771939a751bac9693d7d75b49c438b43e8c02d (patch)
tree647e2958e91d558ea8f0e8af9edede271b72ea85
parentUpdated to 5.4.17.a (diff)
downloadlinux-libre-hardened-38771939a751bac9693d7d75b49c438b43e8c02d.tar.xz
Updated to 5.4.19.a
-rw-r--r--0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch79
-rw-r--r--0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch48
-rw-r--r--0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch272
-rw-r--r--0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch78
-rw-r--r--0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch36
-rw-r--r--0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch87
-rw-r--r--0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch57
-rw-r--r--0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch41
-rw-r--r--0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch64
-rw-r--r--0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch174
-rw-r--r--0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch80
-rw-r--r--PKGBUILD41
12 files changed, 4 insertions, 1053 deletions
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
deleted file mode 100644
index 3f0667d..0000000
--- a/0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 78b64515af95e12dac806fa630ae4499e9527100 Mon Sep 17 00:00:00 2001
-From: Tuowen Zhao <ztuowen@gmail.com>
-Date: Wed, 16 Oct 2019 15:06:28 -0600
-Subject: [PATCH 02/16] lib: devres: add a helper function for ioremap_uc
-
-Implement a resource managed strongly uncachable ioremap function.
-
-Cc: <stable@vger.kernel.org> # v4.19+
-Tested-by: AceLan Kao <acelan.kao@canonical.com>
-Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
-Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Acked-by: Luis Chamberlain <mcgrof@kernel.org>
-Signed-off-by: Lee Jones <lee.jones@linaro.org>
----
- include/linux/io.h | 2 ++
- lib/devres.c | 19 +++++++++++++++++++
- 2 files changed, 21 insertions(+)
-
-diff --git a/include/linux/io.h b/include/linux/io.h
-index accac822336a..a59834bc0a11 100644
---- a/include/linux/io.h
-+++ b/include/linux/io.h
-@@ -64,6 +64,8 @@ static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr)
-
- void __iomem *devm_ioremap(struct device *dev, resource_size_t offset,
- resource_size_t size);
-+void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset,
-+ resource_size_t size);
- void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset,
- resource_size_t size);
- void __iomem *devm_ioremap_wc(struct device *dev, resource_size_t offset,
-diff --git a/lib/devres.c b/lib/devres.c
-index 6a0e9bd6524a..17624d35e82d 100644
---- a/lib/devres.c
-+++ b/lib/devres.c
-@@ -9,6 +9,7 @@
- enum devm_ioremap_type {
- DEVM_IOREMAP = 0,
- DEVM_IOREMAP_NC,
-+ DEVM_IOREMAP_UC,
- DEVM_IOREMAP_WC,
- };
-
-@@ -39,6 +40,9 @@ static void __iomem *__devm_ioremap(struct device *dev, resource_size_t offset,
- case DEVM_IOREMAP_NC:
- addr = ioremap_nocache(offset, size);
- break;
-+ case DEVM_IOREMAP_UC:
-+ addr = ioremap_uc(offset, size);
-+ break;
- case DEVM_IOREMAP_WC:
- addr = ioremap_wc(offset, size);
- break;
-@@ -68,6 +72,21 @@ void __iomem *devm_ioremap(struct device *dev, resource_size_t offset,
- }
- EXPORT_SYMBOL(devm_ioremap);
-
-+/**
-+ * devm_ioremap_uc - Managed ioremap_uc()
-+ * @dev: Generic device to remap IO address for
-+ * @offset: Resource address to map
-+ * @size: Size of map
-+ *
-+ * Managed ioremap_uc(). Map is automatically unmapped on driver detach.
-+ */
-+void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset,
-+ resource_size_t size)
-+{
-+ return __devm_ioremap(dev, offset, size, DEVM_IOREMAP_UC);
-+}
-+EXPORT_SYMBOL_GPL(devm_ioremap_uc);
-+
- /**
- * devm_ioremap_nocache - Managed ioremap_nocache()
- * @dev: Generic device to remap IO address for
---
-2.25.0
-
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
deleted file mode 100644
index 75641b5..0000000
--- a/0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From dbc56c8785b2f6698722f3e9c189c7cb1f963679 Mon Sep 17 00:00:00 2001
-From: Tuowen Zhao <ztuowen@gmail.com>
-Date: Wed, 16 Oct 2019 15:06:29 -0600
-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,
-this bug could be corrected with a firmware update.
-
-This patch use devm_ioremap_uc to overwrite/ignore the MTRR settings
-by forcing the use of strongly uncachable pages for intel-lpss.
-
-The BIOS bug is present on Dell XPS 13 7390 2-in-1:
-
-[ 0.001734] 5 base 4000000000 mask 6000000000 write-combining
-
-4000000000-7fffffffff : PCI Bus 0000:00
- 4000000000-400fffffff : 0000:00:02.0 (i915)
- 4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
-Cc: <stable@vger.kernel.org> # v4.19+
-Tested-by: AceLan Kao <acelan.kao@canonical.com>
-Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
-Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Tested-by: Roman Gilg <subdiff@gmail.com>
-Signed-off-by: Lee Jones <lee.jones@linaro.org>
----
- drivers/mfd/intel-lpss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mfd/intel-lpss.c b/drivers/mfd/intel-lpss.c
-index bfe4ff337581..b0f0781a6b9c 100644
---- a/drivers/mfd/intel-lpss.c
-+++ b/drivers/mfd/intel-lpss.c
-@@ -384,7 +384,7 @@ int intel_lpss_probe(struct device *dev,
- if (!lpss)
- return -ENOMEM;
-
-- lpss->priv = devm_ioremap(dev, info->mem->start + LPSS_PRIV_OFFSET,
-+ lpss->priv = devm_ioremap_uc(dev, info->mem->start + LPSS_PRIV_OFFSET,
- LPSS_PRIV_SIZE);
- if (!lpss->priv)
- return -ENOMEM;
---
-2.25.0
-
diff --git a/0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch b/0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch
deleted file mode 100644
index b95179c..0000000
--- a/0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-From fa21078f336286d835bc734c8b4e4a24b67f245e 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 04/16] PCI: pciehp: Prevent deadlock on disconnect
-
-This addresses deadlocks in these common cases in hierarchies containing
-two switches:
-
- - All involved ports are runtime suspended and they are unplugged. This
- can happen easily if the drivers involved automatically enable runtime
- PM (xHCI for example does that).
-
- - System is suspended (e.g., closing the lid on a laptop) with a dock +
- something else connected, and the dock is unplugged while suspended.
-
-These cases lead to the following deadlock:
-
- INFO: task irq/126-pciehp:198 blocked for more than 120 seconds.
- irq/126-pciehp D 0 198 2 0x80000000
- Call Trace:
- schedule+0x2c/0x80
- schedule_timeout+0x246/0x350
- wait_for_completion+0xb7/0x140
- kthread_stop+0x49/0x110
- free_irq+0x32/0x70
- pcie_shutdown_notification+0x2f/0x50
- pciehp_remove+0x27/0x50
- pcie_port_remove_service+0x36/0x50
- device_release_driver+0x12/0x20
- bus_remove_device+0xec/0x160
- device_del+0x13b/0x350
- device_unregister+0x1a/0x60
- remove_iter+0x1e/0x30
- device_for_each_child+0x56/0x90
- pcie_port_device_remove+0x22/0x40
- pcie_portdrv_remove+0x20/0x60
- pci_device_remove+0x3e/0xc0
- device_release_driver_internal+0x18c/0x250
- device_release_driver+0x12/0x20
- pci_stop_bus_device+0x6f/0x90
- pci_stop_bus_device+0x31/0x90
- pci_stop_and_remove_bus_device+0x12/0x20
- pciehp_unconfigure_device+0x88/0x140
- pciehp_disable_slot+0x6a/0x110
- pciehp_handle_presence_or_link_change+0x263/0x400
- pciehp_ist+0x1c9/0x1d0
- irq_thread_fn+0x24/0x60
- irq_thread+0xeb/0x190
- kthread+0x120/0x140
-
- INFO: task irq/190-pciehp:2288 blocked for more than 120 seconds.
- irq/190-pciehp D 0 2288 2 0x80000000
- Call Trace:
- __schedule+0x2a2/0x880
- schedule+0x2c/0x80
- schedule_preempt_disabled+0xe/0x10
- mutex_lock+0x2c/0x30
- pci_lock_rescan_remove+0x15/0x20
- pciehp_unconfigure_device+0x4d/0x140
- pciehp_disable_slot+0x6a/0x110
- pciehp_handle_presence_or_link_change+0x263/0x400
- pciehp_ist+0x1c9/0x1d0
- irq_thread_fn+0x24/0x60
- irq_thread+0xeb/0x190
- kthread+0x120/0x140
-
-What happens here is that the whole hierarchy is runtime resumed and the
-parent PCIe downstream port, which got the hot-remove event, starts
-removing devices below it, taking pci_lock_rescan_remove() lock. When the
-child PCIe port is runtime resumed it calls pciehp_check_presence() which
-ends up calling pciehp_card_present() and pciehp_check_link_active(). Both
-of these use pcie_capability_read_word(), which notices that the underlying
-device is already gone and returns PCIBIOS_DEVICE_NOT_FOUND with the
-capability value set to 0. When pciehp gets this value it thinks that its
-child device is also hot-removed and schedules its IRQ thread to handle the
-event.
-
-The deadlock happens when the child's IRQ thread runs and tries to acquire
-pci_lock_rescan_remove() which is already taken by the parent and the
-parent waits for the child's IRQ thread to finish.
-
-Prevent this from happening by checking the return value of
-pcie_capability_read_word() and if it is PCIBIOS_DEVICE_NOT_FOUND stop
-performing any hot-removal activities.
-
-[bhelgaas: add common scenarios to commit log]
-Link: https://lore.kernel.org/r/20191029170022.57528-2-mika.westerberg@linux.intel.com
-Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
----
- drivers/pci/hotplug/pciehp.h | 6 ++--
- drivers/pci/hotplug/pciehp_core.c | 11 ++++--
- drivers/pci/hotplug/pciehp_ctrl.c | 4 +--
- drivers/pci/hotplug/pciehp_hpc.c | 59 +++++++++++++++++++++++++------
- 4 files changed, 61 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
-index 882ce82c4699..aa61d4c219d7 100644
---- a/drivers/pci/hotplug/pciehp.h
-+++ b/drivers/pci/hotplug/pciehp.h
-@@ -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);
--bool pciehp_card_present(struct controller *ctrl);
--bool pciehp_card_present_or_link_active(struct controller *ctrl);
-+int pciehp_card_present(struct controller *ctrl);
-+int pciehp_card_present_or_link_active(struct controller *ctrl);
- int pciehp_check_link_status(struct controller *ctrl);
--bool pciehp_check_link_active(struct controller *ctrl);
-+int pciehp_check_link_active(struct controller *ctrl);
- void pciehp_release_ctrl(struct controller *ctrl);
-
- int pciehp_sysfs_enable_slot(struct hotplug_slot *hotplug_slot);
-diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
-index 56daad828c9e..312cc45c44c7 100644
---- a/drivers/pci/hotplug/pciehp_core.c
-+++ b/drivers/pci/hotplug/pciehp_core.c
-@@ -139,10 +139,15 @@ static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value)
- {
- struct controller *ctrl = to_ctrl(hotplug_slot);
- struct pci_dev *pdev = ctrl->pcie->port;
-+ int ret;
-
- pci_config_pm_runtime_get(pdev);
-- *value = pciehp_card_present_or_link_active(ctrl);
-+ ret = pciehp_card_present_or_link_active(ctrl);
- pci_config_pm_runtime_put(pdev);
-+ if (ret < 0)
-+ return ret;
-+
-+ *value = ret;
- return 0;
- }
-
-@@ -158,13 +163,13 @@ static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value)
- */
- static void pciehp_check_presence(struct controller *ctrl)
- {
-- bool occupied;
-+ int occupied;
-
- down_read(&ctrl->reset_lock);
- mutex_lock(&ctrl->state_lock);
-
- occupied = pciehp_card_present_or_link_active(ctrl);
-- if ((occupied && (ctrl->state == OFF_STATE ||
-+ if ((occupied > 0 && (ctrl->state == OFF_STATE ||
- ctrl->state == BLINKINGON_STATE)) ||
- (!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 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)
-
- void pciehp_handle_presence_or_link_change(struct controller *ctrl, u32 events)
- {
-- bool present, link_active;
-+ int present, link_active;
-
- /*
- * If the slot is on and presence or link has changed, turn it off.
-@@ -257,7 +257,7 @@ void pciehp_handle_presence_or_link_change(struct controller *ctrl, u32 events)
- mutex_lock(&ctrl->state_lock);
- present = pciehp_card_present(ctrl);
- link_active = pciehp_check_link_active(ctrl);
-- if (!present && !link_active) {
-+ if (present <= 0 && link_active <= 0) {
- mutex_unlock(&ctrl->state_lock);
- return;
- }
-diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
-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)
- pcie_do_write_cmd(ctrl, cmd, mask, false);
- }
-
--bool pciehp_check_link_active(struct controller *ctrl)
-+/**
-+ * pciehp_check_link_active() - Is the link active
-+ * @ctrl: PCIe hotplug controller
-+ *
-+ * Check whether the downstream link is currently active. Note it is
-+ * possible that the card is removed immediately after this so the
-+ * caller may need to take it into account.
-+ *
-+ * If the hotplug controller itself is not available anymore returns
-+ * %-ENODEV.
-+ */
-+int pciehp_check_link_active(struct controller *ctrl)
- {
- struct pci_dev *pdev = ctrl_dev(ctrl);
- u16 lnk_status;
-- bool ret;
-+ int ret;
-
-- pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
-- ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA);
-+ ret = pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
-+ if (ret == PCIBIOS_DEVICE_NOT_FOUND || lnk_status == (u16)~0)
-+ return -ENODEV;
-
-- if (ret)
-- ctrl_dbg(ctrl, "%s: lnk_status = %x\n", __func__, lnk_status);
-+ ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA);
-+ ctrl_dbg(ctrl, "%s: lnk_status = %x\n", __func__, lnk_status);
-
- return ret;
- }
-@@ -373,13 +385,29 @@ void pciehp_get_latch_status(struct controller *ctrl, u8 *status)
- *status = !!(slot_status & PCI_EXP_SLTSTA_MRLSS);
- }
-
--bool pciehp_card_present(struct controller *ctrl)
-+/**
-+ * pciehp_card_present() - Is the card present
-+ * @ctrl: PCIe hotplug controller
-+ *
-+ * Function checks whether the card is currently present in the slot and
-+ * in that case returns true. Note it is possible that the card is
-+ * removed immediately after the check so the caller may need to take
-+ * this into account.
-+ *
-+ * It the hotplug controller itself is not available anymore returns
-+ * %-ENODEV.
-+ */
-+int pciehp_card_present(struct controller *ctrl)
- {
- struct pci_dev *pdev = ctrl_dev(ctrl);
- u16 slot_status;
-+ int ret;
-
-- pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
-- return slot_status & PCI_EXP_SLTSTA_PDS;
-+ ret = pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
-+ if (ret == PCIBIOS_DEVICE_NOT_FOUND || slot_status == (u16)~0)
-+ return -ENODEV;
-+
-+ return !!(slot_status & PCI_EXP_SLTSTA_PDS);
- }
-
- /**
-@@ -390,10 +418,19 @@ bool pciehp_card_present(struct controller *ctrl)
- * Presence Detect State bit, this helper also returns true if the Link Active
- * bit is set. This is a concession to broken hotplug ports which hardwire
- * Presence Detect State to zero, such as Wilocity's [1ae9:0200].
-+ *
-+ * Returns: %1 if the slot is occupied and %0 if it is not. If the hotplug
-+ * port is not present anymore returns %-ENODEV.
- */
--bool pciehp_card_present_or_link_active(struct controller *ctrl)
-+int pciehp_card_present_or_link_active(struct controller *ctrl)
- {
-- return pciehp_card_present(ctrl) || pciehp_check_link_active(ctrl);
-+ int ret;
-+
-+ ret = pciehp_card_present(ctrl);
-+ if (ret)
-+ return ret;
-+
-+ return pciehp_check_link_active(ctrl);
- }
-
- int pciehp_query_power_fault(struct controller *ctrl)
---
-2.25.0
-
diff --git a/0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch b/0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch
deleted file mode 100644
index 9abef27..0000000
--- a/0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 7f6991978c1c388c2b11bb8101e4658f81fe85ed 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 05/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
-that function checks the GPE status and dispatches its handler if
-need be and the SCI action handler is not going to run anyway at
-that point.
-
-Moreover, it is better to drain all of the pending ACPI events
-before restoring the working-state configuration of GPEs in
-acpi_s2idle_restore(), because those events are likely to be related
-to system wakeup, in which case they will not be relevant going
-forward.
-
-Rework the code to take these observations into account.
-
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
----
- drivers/acpi/sleep.c | 26 +++++++++++++++++++-------
- 1 file changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index 2af937a8b1c5..6747a279621b 100644
---- a/drivers/acpi/sleep.c
-+++ b/drivers/acpi/sleep.c
-@@ -977,6 +977,16 @@ static int acpi_s2idle_prepare_late(void)
- return 0;
- }
-
-+static void acpi_s2idle_sync(void)
-+{
-+ /*
-+ * The EC driver uses the system workqueue and an additional special
-+ * one, so those need to be flushed too.
-+ */
-+ acpi_ec_flush_work();
-+ acpi_os_wait_events_complete(); /* synchronize Notify handling */
-+}
-+
- static void acpi_s2idle_wake(void)
- {
- /*
-@@ -1001,13 +1011,8 @@ static void acpi_s2idle_wake(void)
- * should be missed by canceling the wakeup here.
- */
- pm_system_cancel_wakeup();
-- /*
-- * The EC driver uses the system workqueue and an additional
-- * special one, so those need to be flushed too.
-- */
-- acpi_os_wait_events_complete(); /* synchronize EC GPE processing */
-- acpi_ec_flush_work();
-- acpi_os_wait_events_complete(); /* synchronize Notify handling */
-+
-+ acpi_s2idle_sync();
-
- rearm_wake_irq(acpi_sci_irq);
- }
-@@ -1024,6 +1029,13 @@ static void acpi_s2idle_restore_early(void)
-
- static void acpi_s2idle_restore(void)
- {
-+ /*
-+ * Drain pending events before restoring the working-state configuration
-+ * of GPEs.
-+ */
-+ acpi_os_wait_events_complete(); /* synchronize GPE processing */
-+ acpi_s2idle_sync();
-+
- s2idle_wakeup = false;
-
- acpi_enable_all_runtime_gpes();
---
-2.25.0
-
diff --git a/0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
deleted file mode 100644
index 2f69a8a..0000000
--- a/0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 50b253fe7f01a82c8054d88319598db71ae5d083 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 06/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.25.0
-
diff --git a/0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch b/0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch
deleted file mode 100644
index a128921..0000000
--- a/0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From e0a3ce4a9ebf049e76ea38c48e41f2c67f4b3330 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 07/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 7b6e68f082f8..a99ef18665f2 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -9110,6 +9110,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.25.0
-
diff --git a/0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch b/0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch
deleted file mode 100644
index aa403bc..0000000
--- a/0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From e4bcd75c297598b87b89533c2c995f7d88c12010 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 08/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 a99ef18665f2..1dd7b6187780 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -9111,6 +9111,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.25.0
-
diff --git a/0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch b/0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch
deleted file mode 100644
index 07dee06..0000000
--- a/0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7ff6d556c831f5f909b3315974816a45a3802670 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 09/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.25.0
-
diff --git a/0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch b/0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch
deleted file mode 100644
index edd4404..0000000
--- a/0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From ce769a8e35537fc71cc9934a1fa39a481f994b25 Mon Sep 17 00:00:00 2001
-From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-Date: Tue, 31 Dec 2019 16:00:07 +0200
-Subject: [PATCH 10/16] drm/i915: Limit audio CDCLK>=2*BCLK constraint back to
- GLK only
-
-Revert changes done in commit f6ec9483091f ("drm/i915: extend audio
-CDCLK>=2*BCLK constraint to more platforms"). Audio drivers
-communicate with i915 over HDA bus multiple times during system
-boot-up and each of these transactions result in matching
-get_power/put_power calls to i915, and depending on the platform,
-a modeset change causing visible flicker.
-
-GLK is the only platform with minimum CDCLK significantly lower
-than BCLK, and thus for GLK setting a higher CDCLK is mandatory.
-
-For other platforms, minimum CDCLK is close but below 2*BCLK
-(e.g. on ICL, CDCLK=176.4kHz with BCLK=96kHz). Spec-wise the constraint
-should be set, but in practise no communication errors have been
-reported and the downside if set is the flicker observed at boot-time.
-
-Revert to old behaviour until better mechanism to manage
-probe-time clocks is available.
-
-The full CDCLK>=2*BCLK constraint is still enforced at pipe
-enable time in intel_crtc_compute_min_cdclk().
-
-Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/913
-Fixes: f6ec9483091f ("drm/i915: extend audio CDCLK>=2*BCLK constraint to more platforms")
-Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
-Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20191231140007.31728-1-kai.vehmanen@linux.intel.com
-(cherry picked from commit 1ee48a61aa57dbdbc3cd2808d8b28df40d938e44)
-Signed-off-by: Joonas Lahtinen <joonas.lahtinen@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 05ef43b13d1c..0cf475f3063c 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 (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
-+ if (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 (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
-+ if (IS_GEMINILAKE(dev_priv))
- glk_force_audio_cdclk(dev_priv, false);
-
- intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, cookie);
---
-2.25.0
-
diff --git a/0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch b/0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch
deleted file mode 100644
index 221543b..0000000
--- a/0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From cce47515454675d9c82448e865b42570f9eabc39 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 13/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.25.0
-
diff --git a/0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch b/0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
deleted file mode 100644
index a120391..0000000
--- a/0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From f247d4a6fe42acc60b775457e3c35b8289532590 Mon Sep 17 00:00:00 2001
-From: Leo Li <sunpeng.li@amd.com>
-Date: Mon, 21 Oct 2019 14:58:47 -0400
-Subject: [PATCH 14/16] drm/amdgpu: Add DC feature mask to disable fractional
- pwm
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[Why]
-
-Some LED panel drivers might not like fractional PWM. In such cases,
-backlight flickering may be observed.
-
-[How]
-
-Add a DC feature mask to disable fractional PWM, and associate it with
-the preexisting dc_config flag.
-
-The flag is only plumbed through the dmcu firmware, so plumb it through
-the driver path as well.
-
-To disable, add the following to the linux cmdline:
-amdgpu.dcfeaturemask=0x4
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204957
-Signed-off-by: Leo Li <sunpeng.li@amd.com>
-Reviewed-by: Anthony Koo <anthony.koo@amd.com>
-Tested-by: Lukáš Krejčí <lskrejci@gmail.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
- drivers/gpu/drm/amd/display/dc/dce/dce_abm.c | 4 ++++
- drivers/gpu/drm/amd/include/amd_shared.h | 1 +
- 3 files changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-index 4e9c15c409ba..25b72eb76add 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -697,6 +697,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
- if (amdgpu_dc_feature_mask & DC_MULTI_MON_PP_MCLK_SWITCH_MASK)
- init_data.flags.multi_mon_pp_mclk_switch = true;
-
-+ if (amdgpu_dc_feature_mask & DC_DISABLE_FRACTIONAL_PWM_MASK)
-+ init_data.flags.disable_fractional_pwm = true;
-+
- init_data.flags.power_down_display_on_boot = true;
-
- #ifdef CONFIG_DRM_AMD_DC_DCN2_0
-diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
-index 7700a855d77c..698b84acc44f 100644
---- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
-@@ -404,6 +404,10 @@ static bool dce_abm_init_backlight(struct abm *abm)
- /* Enable the backlight output */
- REG_UPDATE(BL_PWM_CNTL, BL_PWM_EN, 1);
-
-+ /* Disable fractional pwm if configured */
-+ REG_UPDATE(BL_PWM_CNTL, BL_PWM_FRACTIONAL_EN,
-+ abm->ctx->dc->config.disable_fractional_pwm ? 0 : 1);
-+
- /* Unlock group 2 backlight registers */
- REG_UPDATE(BL_PWM_GRP1_REG_LOCK,
- BL_PWM_GRP1_REG_LOCK, 0);
-diff --git a/drivers/gpu/drm/amd/include/amd_shared.h b/drivers/gpu/drm/amd/include/amd_shared.h
-index 8889aaceec60..5450ed762b7a 100644
---- a/drivers/gpu/drm/amd/include/amd_shared.h
-+++ b/drivers/gpu/drm/amd/include/amd_shared.h
-@@ -143,6 +143,7 @@ enum PP_FEATURE_MASK {
- enum DC_FEATURE_MASK {
- DC_FBC_MASK = 0x1,
- DC_MULTI_MON_PP_MCLK_SWITCH_MASK = 0x2,
-+ DC_DISABLE_FRACTIONAL_PWM_MASK = 0x4,
- };
-
- enum amd_dpm_forced_level;
---
-2.25.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 571f08d..d6cc474 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -19,7 +19,7 @@ _pkgbase=linux-hardened
pkgbase=linux-libre-hardened
_supver=5
_majver=4
-_minver=17
+_minver=19
_hardenedver=a
_gccpatchver='20190822'
if [ "$_minver" == "0" ]; then
@@ -45,17 +45,6 @@ _gnumajver=${_supver}.${_majver}-gnu
_gnupkgver=${_pkgver}-gnu
source=(
https://linux-libre.fsfla.org/pub/linux-libre/releases/${_gnumajver}/linux-libre-${_gnumajver}.tar.xz{,.sign}
- 0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch
- 0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch
- 0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch
- 0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch
- 0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
- 0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch
- 0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch
- 0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch
- 0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch
- 0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch
- 0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
https://github.com/anthraxx/${_pkgbase}/releases/download/${pkgver}/${_pkgbase}-${pkgver}.patch{,.sig}
graysky_bdver2-hotfix.patch
kernel_gcc_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/${_gccpatchver}.tar.gz
@@ -72,25 +61,14 @@ validpgpkeys=(
)
b2sums=('43270fe22aeaba6f8c4fc72423176d7eea993ec85b561695f624fbca9702dfabae0a3ee15cb3881d0c7a5b80f979f307e5a39a4ec0fcd28456ece2012bb30e0e'
'SKIP'
- '5427a9283a9ccb38a63ba5bd680e331245bd134501ce66e912cb07c250e37810a895f4ae78371db2b0cfcbfcb1bee96daafc0e5c71f40ec9b8643d3a88a80bab'
- 'fab987c7c77e07ae2db83d148e8d423e6aadbcfc84498a60a6396418c69108c0a38a426eca57c1e94f2540f25cbcd084eafe3d124ac9d0ce2ab4efff28852a16'
- 'c5cd99138e9436ede9136e5f958a15a10e07ab51e77dc716158b1ff774d9fa06f4ec2b7a1ba171f4ea86c16ea61fb685b54cadb85411b1c7c468d984b495585d'
- 'd283a69b0577dda72ae5814b3c681ca5f0655692216ce77cccc909903fda037feae35fc545c6d54daa377edb71895cfc4f199a335f3f4dfda3cde90350a627b3'
- '2328a9bddbb712ffe587a2266d9c6074b4a9e1273b4546e86c56b26dcd7c509398a3e428e6292999bb0297f135683793fa28acfbc4d744962e2ca396943d9ddb'
- 'a7318e80116cecfe0c31e254c6d52706ce56d202064d9ff851506569ad602ed106bce216facf793a27266a58b372092e5fa4a19b7b4a7380a789874066d91852'
- 'ab7c15c8a219a7e895b39a10a452005252bb018749607676a7e436263a0876d096a5716c9bcbf30e2ff6bc4e525be22ac3838ab3d363373945d5bf5ce43648d4'
- 'bb35fce00e121769f4a85c01a799efa7e3eccae8fdd29993d5bbd574a2af50cabeafcf6a9bebf5713223cdb64a53fd7bbf41de7f0a84023531b160e0fe88dc52'
- '26082d1d89d9a6e44ea29be9056029f4af228cf22d6c4f6c9f32ed552859bcb8982dc57f63bcb216e220590a029800aeade0bf47356f7ef3ebbe9c0261674379'
- '76bb50a23b822de85f3381a511b42bb46110a39d31ede81bd168cb708882b93be525576b1805da5383f35f6f18fab817ad195aa870ab75e7775855a150d172a1'
- '726d89aeb1f5df51cfa395e01edb4b8b36460b1f75611ee921d057dfb28cd2d6c41990bca4b40512b9398e0558c4028845252442d9ec1d8f13847a0ed9903a1d'
- '7440054eb3a292299bbc0ce8b5f3ed1947b1bea7d70e8a282a39198d0a8df6ad7c26cf5f3d9923e6f597d4445873b8d33e93f326764370319945ee51fd406389'
+ 'a67ebcb2ac77065ae1959c76f7d93819a934a483a83db0313a4cc308e4b16645d1b8b443d56e205fbd93d72f73a7dd96e2f6ff1c0170d7734e798708d290bb82'
'SKIP'
'1892bd22775eac3bcc4d37f4fd30c95346bf3a0888cbbff57fd614973b525390dff2e315ce35b2e498523cceaab94ff21a80475dee8df3de4dd8fc0fab07d74e'
'0b11c09e01a7480466d5237a8792c941c9af3e8d6584ffd84285cd9569f5355c10879566ce5846ef9263535020c53e1aa6c58100a571b537ccb7f2431baf7996'
'2e58bb89b247b1678355368956e67c1de51fcde97a227b2162f6771e30f17fa5520faafe7be4b6816a542e7ae10d05f64c6b6354f352c12746d4b8da632936dd'
'fde132f3705d908e6f2147c78a2193289916d72304ca5efa2229d79fc3e57a857314ce94e71425caef2f7f7b6cf87f05ef86335dc8bd4be78e7035afe608005a'
'00761b14dd1cf24c0643f5094646d5c46302ec95b305d1c3e1cfdf2a010f36a7b9e90183f13d13c9d240bba6eee7166a924f3db75c8b71bb03b6e3cf30869684'
- 'a70af31c21d501f90d520eb400030b8d6f9517877c1d0014537a4e36bb20fb09aaa3c2e25077a32cfb5bf1d644530e8cf71364a917cc975f0c39e3c58f2caad0'
+ '003a71837e2192a5fa10942ef56feb995b1381ab6085e639e7e3e22a3831d3cb225a05dd202cc7eed25316a3a41ad9e3dae8642a6a0d79f52e816e1a0b455dfa'
'SKIP')
export KBUILD_BUILD_HOST=$pkgbase
@@ -108,18 +86,7 @@ prepare() {
# Hotfixes
- echo "Applying hotfixes"
- patch -p1 -i ../0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch
- patch -p1 -i ../0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch
- patch -p1 -i ../0004-PCI-pciehp-Prevent-deadlock-on-disconnect.patch
- patch -p1 -i ../0005-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch
- patch -p1 -i ../0006-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
- patch -p1 -i ../0007-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch
- patch -p1 -i ../0008-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch
- patch -p1 -i ../0009-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch
- patch -p1 -i ../0010-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch
- patch -p1 -i ../0011-e1000e-Revert-e1000e-Make-watchdog-use-delayed-work.patch
- patch -p1 -i ../0012-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
+# echo "Applying hotfixes"
# linux hardened patch