Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1341196
| Path | csiph.com!news.freedyn.net!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com> |
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH V3] AHCI: Workaround for ThunderX Errata#22536 |
| Date | Wed, 24 Feb 2016 01:10:03 +0100 |
| Message-ID | <r5vbJ-4KX-7@gated-at.bofh.it> (permalink) |
| References | <r2U6E-4e2-59@gated-at.bofh.it> |
| X-Original-To | <tj@kernel.org> |
| Authentication-Results | lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=caviumnetworks.com; |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
| MIME-Version | 1.0 |
| Content-Type | text/plain; charset="windows-1252"; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Originating-IP | [64.2.3.194] |
| X-Clientproxiedby | CO2PR11CA0014.namprd11.prod.outlook.com (10.141.242.152) To BY1PR0701MB1782.namprd07.prod.outlook.com (25.162.141.20) |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR0701MB1782;2:rur2QzIsbNof/6IXH5FqNYGdh+KmFhmb392rdYpGO1LqKxbzXdcWeRUlv7kaNUeZoDFN9bs333sVtVQM+fgbVni6506pPzQoOgVcIid1wsJsdDy0EGSzP+EEg6jQW/SWqrp7AQ4nmQpGMJkou7zZmw==;3:kS7C0pZ//Ej+D9wtV4Hkgx2bZ6A2piRM1jMKq9RbpUnNRRo8hTylhB7uitx3/cJ2TMviugpXfNdOUgHungvit7WkfrFl8mrm9FugF0p9/RufY4vyhKFrk/MzYl2lCeAC;25:lXfeXwwK2R0mmiozHJLEPfdiHTWzvibj0qaWI6zTWP3T3Jp5jy23ha4lQn6a2jKjKs4oRINuEYePme4r3wCuUtTn74LGtp8SqgKLxC8EjaaNa7+k2Hk2nIeNJFgjzH7TP6vh/hKKwuiQgbkRBz2US8YikAjWvtjWhqdFSwDvfs2CyDU5O4BEF9XDIS5gyfrvEQqNtArjevWUwRrw1Y5Taiw8SZs3ypJJzIYJjDPoSBiJ3IZ0YvOWUbBI9QZnnf342mm6iDfzMRHHYsB8jMQloiWxvv66fINhnbYD9mBw+vFfBRrvXcK3q72fC1dlKI6Rwuovl+zJximhI1y/svUxAhOTFmMUoY8uZ4CaSp8ig8Q= |
| X-Microsoft-Antispam | UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0701MB1782; |
| X-Ms-Office365-Filtering-Correlation-ID | f08a7c0b-a925-401f-bf99-08d33cad85b7 |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR0701MB1782;20:e/mtDRMunpXzoFQQpTJfhRV0Fr6hb4j8jfg7fNZg/mvAKd1jjNAN2w8g3kakxN+ei/vr0HGT201L9zPSnv9j2WZvrejHDHQyMGFVueA51WdK1685yCxvhSjUfVUls0CieEfCzD5OL8kqhNGiimx80SccloShXnanVFV7J8Weo6TjgGwZMHpYd+6E0JQLe3UNmI12ZETUzV9WHtf+mrjxO4fXjjKrt6fnV74vKHZf+L97pTWyYLlfP0PgZAfxcrovBK2V+ZlRZgT5W2M1lsB9ngKcshncBzQ72VC9HvsUTvtBr3oqUHA33rSwZF+mdG2+1yJx+Alqdv3XFoO3PMCa0eHDffY0DWVTHihNbaZ1EVSiM3H208kGdq1Z+CSXt0ctD7jvO5UHKEVlulSkT4Eapa6WpHWFgZyS8+5J5hPB36Yck2qcXnEHi/6cy2kPhmWGsKevayisIJRK0V8kz/Lj16QC1J8XdzSRmI8LQ4N2HPFAuuU79CD/QMb5BE1bjrhuf0Hdw8JHZpEVURCMWb7kZLtGqLmNqUjpJbKG1Fxo1UhFq4H16uTVDSSNA9yuEBuHzmxaPobTJwpOZPfrDUFY5MrCSRkrHxiW5hZJnJeTgE4= |
| X-Microsoft-Antispam-Prvs | <BY1PR0701MB1782709DE64D75A41298D9A083A50@BY1PR0701MB1782.namprd07.prod.outlook.com> |
| X-Exchange-Antispam-Report-Test | UriScan:; |
| X-Exchange-Antispam-Report-Cfa-Test | BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BY1PR0701MB1782;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0701MB1782; |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR0701MB1782;4:MMWNBR1nq3T2XR4vA46UVu9kBN9Liu3AKfuV47qMUn+54cOxFFay/pVlGrhDhxX4uz5oQ0HoHqb0XAY1HKFGPEq3nPPd6PqNPQ0f533bwFcgoSmHIzRoOM15fLUW9AKNHFU+JnqwEZuEartTqYj6vlp0o8yeCWvm12ovl1a3RXR4hmdvcOylq66Rfxd2PjmeWfXEpd+zRkRpWJWh7OCjnHfGGNTYP96ERbpzQb4pijohQamFsrYogX9kJSNl/8G8F5HppRqPGngr9GwqkfYgobW3qhAfMtivkPKadz1fB06/FDfhIPvXih0bFVYjpcN19kTABYN7G9GMK1iI8nTIl4/O8DgW6cimVSB19SeeaOaRNPvs96JEORExlNElDh68 |
| X-Forefront-Prvs | 08626BE3A5 |
| X-Forefront-Antispam-Report | SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6049001)(6009001)(164054003)(189002)(199003)(479174004)(24454002)(377454003)(33656002)(64126003)(6116002)(586003)(1096002)(3846002)(2906002)(92566002)(47776003)(66066001)(2351001)(65956001)(5008740100001)(50466002)(4326007)(5001960100002)(230700001)(65806001)(110136002)(189998001)(4001350100001)(5004730100002)(59896002)(19580395003)(65816999)(87266999)(50986999)(54356999)(76176999)(80316001)(19580405001)(77096005)(40100003)(23746002)(36756003)(122386002)(87976001)(42186005)(83506001)(2950100001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR0701MB1782;H:[10.18.104.43];FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;MX:1;A:1;LANG:en; |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR0701MB1782;23:977IQek8A2FjeUycOU8/Qlxv8cdsSQgQ+9bww6tsmoUG/qLdRfjwtIdq0XtKVRbq7u7OPh3wSw7SKXXcSEClBF0YY3nbALTQgj8/vUzpqcJdKd1oXb8dR8Q3Jr6Bp7VXLgNsa1RrRCnqLw/lj9UZaZ6HGiAFkiRDamFcUt6pftgj82hBUk3/3qvgJM/smBSZpyh9B4kJhF61jfCLch/1TlXrLICnCpUOJHFfI5rKuNaUSpTqRWedDxId0lgyurMwUDO1HVVMr2P90AJpefg4D9kpjFkfbuy9/ITLv+RIKk8YnR7xMqeIRC7sS6V5nt2z9XtUnbVp5Z4WJepIffWmJzcBx7FZcfcG/HKWNahT9MrkNDnYuEQjdewk45PKlowkW3YJmooUN6j676/pQ7S9g9SBvxeJ0LuBzzaKIY6uwrg2P9bVNrC0lTq0iyZEulmC4lQrzNf+Ff75paTWA0KVA+qPReZoBa3qLlRrTSPRli+xZn9Q3RRqVFCQpAof9DIczAYUz7NCPHKX4/P0YhlEU9ra/A1GAx5O0vc/Yxg2bP073rp2uAZ3IdSSdV3uOuyxjekQmgTrHKrZNMxKFqP1MO5A4UpgtumV8Vw7R4H0m5ye22SjNyHh+cZHbBhqRtS8jiplsrvYgfurIdOrtqDP7N7LXxbItpCOP9KAa3CAZkebt1Amc1gEAKtleiOzy5A645VliutWp8x+DZ+fvN9Q3/fDVRMTY/2iRN4brVen9nH620yW19ClnvZ/l8KvUpX0sqtvZCcXtTBYBSO0aNYOzjjndWz76SDVOKOERPgdRh0XtNl2OvQwUrODESV4MRlVH9aaKucoqenfj4ClfNB5QyB0hHgdL6yMXsPeE0n//kD2jIbp0abQfm8pqFB0VHL22FkKhdRL093KkAclWV/TqNOJkc/VhW8L+IHrTZm5aR+1USc4Kjri5cMX8iGFeURMZPUVaSObDZMIk3VxMjWNb5hY7Xqqym/lQpen4FpUbpbFPL+dwD32vle4vjhIwnT5tAbMzN/gYW1ETib72xRtAk68UNrmUuYEuGsT0dQVHOjbREl9tM8rR7kM2ClUdAorvn4dbVH9+u0tiB3I3/qiLlMYifuoWyUFCFCQD/IpB5I405FHqhdpUptLbo7DVExQHtDMI0HdYD8sR5ERETz0CtQowUy9SVQXKahh+EGmb0B8MZxXl77SonuHtMiVv4Zp32KoKRhE/QQLzub3xsomLiXfFKxiED20fkHqeX3COIbFAcZ+YFviqExbjJbB4gR1EE0Wls4pRwvnG0GQZBPfmUbB3+OXZl6kiYdNiaBV740Tn5iEAjVSwq/oD1moU2HuRWiqVHidUZKiMf2C9JUp7g== |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR0701MB1782;5:nfVjcsL/KM0JaH605g6RkE6bGrtlLh19wM1zfchpE24WZjAY5+1FP+7QitINg/NR1wSC22X2FTX1H/Q3oJiHFDiXfqGez8ILdWmIARtDyUfE5Bqc6JuT2dRf9v4HD5znk34OSG3CA5r4QPmiFMmgvA==;24:XiBptGpEamXgWIxqXFdT5mVDToq5BcUp0I0H51drccSYqTb/Jf+8UKK17GkaR0vYLWxtyo6bxopdxD9Zi6F22JnBEolMbJvG3DlzQqiUjDg= |
| Spamdiagnosticoutput | 1:23 |
| Spamdiagnosticmetadata | NSPM |
| X-Originatororg | caviumnetworks.com |
| X-Ms-Exchange-Crosstenant-Originalarrivaltime | 24 Feb 2016 00:00:35.6198 (UTC) |
| X-Ms-Exchange-Crosstenant-Fromentityheader | Hosted |
| X-Ms-Exchange-Transport-Crosstenantheadersstamped | BY1PR0701MB1782 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 91 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | <stripathi@apm.com>, <linux-ide@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> |
| X-Original-Date | Tue, 23 Feb 2016 16:00:31 -0800 |
| X-Original-Message-ID | <56CCF29F.8030105@caviumnetworks.com> |
| X-Original-References | <1455653329-4934-1-git-send-email-tchalamarla@caviumnetworks.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1341196 |
Show key headers only | View raw
Hi Tejun,
Any more comments on this?
Thanks,
Tirumalesh.
On 02/16/2016 12:08 PM, tchalamarla@caviumnetworks.com wrote:
> From: Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
>
> 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
>
> Signed-off-by: Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
> ---
> drivers/ata/ahci.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
> index 546a369..c8496fc 100644
> --- a/drivers/ata/ahci.c
> +++ b/drivers/ata/ahci.c
> @@ -1325,6 +1325,44 @@ static inline void ahci_gtf_filter_workaround(struct ata_host *host)
> {}
> #endif
>
> +#ifdef CONFIG_ARM64
> +/* Due to ERRATA#22536, ThunderX need to handle
> + * HOST_IRQ_STAT differently.
> + * Work around 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() - optionally enable per-port MSI-X otherwise defer
> * to single msi.
> @@ -1560,6 +1598,12 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (ahci_broken_devslp(pdev))
> hpriv->flags |= AHCI_HFLAG_NO_DEVSLP;
>
> +#ifdef CONFIG_ARM64
> + /* this should be done before save config*/
> + 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);
>
>
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH V3] AHCI: Workaround for ThunderX Errata#22536 Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com> - 2016-02-24 01:10 +0100
csiph-web