Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1341196

Re: [PATCH V3] AHCI: Workaround for ThunderX Errata#22536

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


Thread

Re: [PATCH V3] AHCI: Workaround for ThunderX Errata#22536 Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com> - 2016-02-24 01:10 +0100

csiph-web