From: Greg Kroah-Hartman Date: Sat, 10 Sep 2016 08:17:15 +0000 (+0200) Subject: delete broken 4.4 ahci patch X-Git-Tag: v3.14.79~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f6d71ec004c15829d1a6dcf6bbf94820fd5af21;p=thirdparty%2Fkernel%2Fstable-queue.git delete broken 4.4 ahci patch --- diff --git a/queue-4.4/0084-ahci-Workaround-for-ThunderX-Errata-22536.patch b/queue-4.4/0084-ahci-Workaround-for-ThunderX-Errata-22536.patch deleted file mode 100644 index 174845039a7..00000000000 --- a/queue-4.4/0084-ahci-Workaround-for-ThunderX-Errata-22536.patch +++ /dev/null @@ -1,88 +0,0 @@ -From d72f3eed75067a35153ea20b13a471cee5e67c00 Mon Sep 17 00:00:00 2001 -From: Tirumalesh Chalamarla -Date: Tue, 16 Feb 2016 12:08:49 -0800 -Subject: [PATCH 084/135] ahci: Workaround for ThunderX Errata#22536 - -[ Upstream commit d243bed32f5042582896237f88fa1798aee55ff9 ] - -Due to Errata in ThunderX, HOST_IRQ_STAT should be -cleared before leaving the interrupt handler. -The patch attempts to satisfy the need. - -Changes from V2: - - removed newfile - - code is now under CONFIG_ARM64 - -Changes from V1: - - Rebased on top of libata/for-4.6 - - Moved ThunderX intr handler to new file - -tj: Minor adjustments to comments. - -Signed-off-by: Tirumalesh Chalamarla -Signed-off-by: Tejun Heo -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/ata/ahci.c | 43 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) - ---- a/drivers/ata/ahci.c -+++ b/drivers/ata/ahci.c -@@ -1331,6 +1331,44 @@ static inline void ahci_gtf_filter_worka - {} - #endif - -+#ifdef CONFIG_ARM64 -+/* -+ * Due to ERRATA#22536, ThunderX needs to handle HOST_IRQ_STAT differently. -+ * Workaround is to make sure all pending IRQs are served before leaving -+ * handler. -+ */ -+static irqreturn_t ahci_thunderx_irq_handler(int irq, void *dev_instance) -+{ -+ struct ata_host *host = dev_instance; -+ struct ahci_host_priv *hpriv; -+ unsigned int rc = 0; -+ void __iomem *mmio; -+ u32 irq_stat, irq_masked; -+ unsigned int handled = 1; -+ -+ VPRINTK("ENTER\n"); -+ hpriv = host->private_data; -+ mmio = hpriv->mmio; -+ irq_stat = readl(mmio + HOST_IRQ_STAT); -+ if (!irq_stat) -+ return IRQ_NONE; -+ -+ do { -+ irq_masked = irq_stat & hpriv->port_map; -+ spin_lock(&host->lock); -+ rc = ahci_handle_port_intr(host, irq_masked); -+ if (!rc) -+ handled = 0; -+ writel(irq_stat, mmio + HOST_IRQ_STAT); -+ irq_stat = readl(mmio + HOST_IRQ_STAT); -+ spin_unlock(&host->lock); -+ } while (irq_stat); -+ VPRINTK("EXIT\n"); -+ -+ return IRQ_RETVAL(handled); -+} -+#endif -+ - /* - * ahci_init_msix() only implements single MSI-X support, not multiple - * MSI-X per-port interrupts. This is needed for host controllers that only -@@ -1546,6 +1584,11 @@ static int ahci_init_one(struct pci_dev - if (ahci_broken_devslp(pdev)) - hpriv->flags |= AHCI_HFLAG_NO_DEVSLP; - -+#ifdef CONFIG_ARM64 -+ if (pdev->vendor == 0x177d && pdev->device == 0xa01c) -+ hpriv->irq_handler = ahci_thunderx_irq_handler; -+#endif -+ - /* save initial config */ - ahci_pci_save_initial_config(pdev, hpriv); - diff --git a/queue-4.4/series b/queue-4.4/series index 8c0d28d92f5..16ea944b485 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -78,7 +78,6 @@ 0081-drm-amdgpu-fix-dp-link-rate-selection-v2.patch 0082-drm-radeon-fix-dp-link-rate-selection-v2.patch 0083-net-thunderx-Fix-for-Qset-error-due-to-CQ-full.patch -0084-ahci-Workaround-for-ThunderX-Errata-22536.patch 0085-arm64-Add-workaround-for-Cavium-erratum-27456.patch 0086-tipc-fix-nullptr-crash-during-subscription-cancel.patch 0087-drm-i915-Fix-hpd-live-status-bits-for-g4x.patch