From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Richter Subject: Re: [PATCH V7 0/8] Introduce ACPI world to ITS irqchip Date: Tue, 9 Aug 2016 12:45:00 +0200 Message-ID: <20160809104500.GU22012@rric.localdomain> References: <1466420541-20101-1-git-send-email-tn@semihalf.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1466420541-20101-1-git-send-email-tn@semihalf.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Tomasz Nowicki Cc: lorenzo.pieralisi@arm.com, ddaney.cavm@gmail.com, jason@lakedaemon.net, al.stone@linaro.org, linux-acpi@vger.kernel.org, marc.zyngier@arm.com, Catalin.Marinas@arm.com, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, will.deacon@arm.com, okaya@codeaurora.org, shijie.huang@arm.com, hanjun.guo@linaro.org, Suravee.Suthikulpanit@amd.com, linux-pci@vger.kernel.org, bhelgaas@google.com, graeme.gregory@linaro.org, tglx@linutronix.de, mw@semihalf.com, andrea.gallo@linaro.org, linux-arm-kernel@lists.infradead.org List-Id: linux-acpi@vger.kernel.org On 20.06.16 13:02:13, Tomasz Nowicki wrote: > The series builds the PCI/MSI domain stack based on initial IORT driver > which is added in first place. As a reference please see IORT spec: > http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf > > Tested on Cavium ThunderX server. The patches can be found here: > https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v7) > > v6 -> v7 > - rebased against irq/irqchip-4.8 > - improvements for IORT ID mapping > - call IORT init call from acpi_init() instead of arch_initcall() > - split IORT driver in to two parts: core and ITS/MSI > > v5 -> v6 > - added locking mechanism for IORT list with domain token > - IORT function name improvements > - extended IORT RID mapping helper > - reworked IORT to be more SMMU friendly > - IORT functions which map RID and find corresponding domain are not > PCI specific any more (struct pci_dev -> struct device) > - bug fixes > > v4 -> v5 > - rebased against v4.7-rc1 > - drop generic layer and call IORT functions directly > - improve resource abstraction and string formatting > > v3 -> v4 > - rebased against v4.5 > - add ACPI support for IRQ domain handling on a per-device basis > - reorder domain setup step > - improve error handling > - code style improvements > > v2 -> v3 > - rebased on top of 4.4 > - fixes and improvements for redistributor init via GICC structures > - fixes as per kbuild reports > > v1 -> v2 > - rebased on top of 4.4-rc4 > - use pci_msi_domain_get_msi_rid for requester ID to device ID translation > > Tomasz Nowicki (8): > ACPI: I/O Remapping Table (IORT) initial support > ACPI: Add new IORT functions to support MSI domain handling > PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table > irqchip/gicv3-its: Cleanup for ITS domain initialization > irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI > irqchip/gicv3-its: Probe ITS in the ACPI way > irqchip/gicv3-its: Factor out code that might be reused for ACPI > irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain > initialization > > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/bus.c | 2 + > drivers/acpi/iort.c | 389 +++++++++++++++++++++++++++++++ > drivers/irqchip/Kconfig | 1 + > drivers/irqchip/irq-gic-v3-its-pci-msi.c | 88 +++++-- > drivers/irqchip/irq-gic-v3-its.c | 169 ++++++++++---- > drivers/irqchip/irq-gic-v3.c | 7 +- > drivers/pci/msi.c | 11 +- > include/linux/iort.h | 41 ++++ > include/linux/irqchip/arm-gic-v3.h | 4 +- > 11 files changed, 646 insertions(+), 70 deletions(-) > create mode 100644 drivers/acpi/iort.c > create mode 100644 include/linux/iort.h For the whole series: Tested-by: Robert Richter Tested on Cavium ThunderX, test included: [RFC PATCH V5 0/5] ECAM quirks handling for ARM64 platforms Thanks Tomasz, -Robert From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932180AbcHILSv (ORCPT ); Tue, 9 Aug 2016 07:18:51 -0400 Received: from mail-dm3nam03on0064.outbound.protection.outlook.com ([104.47.41.64]:24142 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751596AbcHILSs (ORCPT ); Tue, 9 Aug 2016 07:18:48 -0400 X-Greylist: delayed 978 seconds by postgrey-1.27 at vger.kernel.org; Tue, 09 Aug 2016 07:18:47 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@cavium.com; Date: Tue, 9 Aug 2016 12:45:00 +0200 From: Robert Richter To: Tomasz Nowicki CC: , , , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH V7 0/8] Introduce ACPI world to ITS irqchip Message-ID: <20160809104500.GU22012@rric.localdomain> References: <1466420541-20101-1-git-send-email-tn@semihalf.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1466420541-20101-1-git-send-email-tn@semihalf.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [78.53.81.249] X-ClientProxiedBy: AM4PR0501CA0019.eurprd05.prod.outlook.com (10.167.83.157) To BL2PR07MB2339.namprd07.prod.outlook.com (10.167.101.17) X-MS-Office365-Filtering-Correlation-Id: b35dc2d4-5ed4-4c4c-dfb5-08d3c0423e0b X-Microsoft-Exchange-Diagnostics: 1;BL2PR07MB2339;2:idoXhu8nXidfbax083frLlq7stgEcZ8XQsIk3q0HIXC6bONf7i2AhX+R75NU7HkB4uwaRXJNOJXGW5bPoNy81QoQzO+RsxrH7YAUO9PDiEY9clSSEpq50xm9JmnBWvC8IkYCoPNkMc5M3S0FnAqi9RC1rM3vaPwVl+VIwai2OVQc8I+QiiYhl9oLGJNX+Tla;3:CJDpak6qDPOaKxKcaOBBh34mSmuNgDvDLwZQ4HVq6yEDtfuqow0XfFUtyKIR/IUlvI1p9uKs22TCuHokwieKx77Yia0k+5WrSns57P0vjHO3hKRV9BBAI6gGqr0a0TRE;25:3DUzUZ8uLdARqNGHyBJN/5SFT/HPmgenQt4AsR+iTE/f259fQSKJSE2FN40Tp1x6GCRtlyo3z81dc/1HZMsDq/ugCLVd3KH0Qc1yZUlyJSbiTK1XANKxw2Vz7LmgjAkKgCUDe5JFD/cRT0/UdR6wRFCC1UiT5SR6o/xNeq/kgot8NBgHxS0mopKeBtX0s46NjPOZ4r8/7+OYSZPE5cQ5wCpeFna8DJMvRD53VfwQ2di6XAfZ8tr9zsiSeSfW2YLQx8QD+c4A7tdXR/l45xI46VoPdnpkb25CsBGa0cwCQAp4tXziJ9bGw7P+rTBq5tHuH0jzUFg4QnLp7xzzG1rfxomGcTs6YbWwa8dD3altjNQ0UJqPWsh7NnRn9TxB11Qj3tgviaHKGL62DWFkkg5hrfljJr/yiinnRU+chzbtzl8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR07MB2339; X-Microsoft-Exchange-Diagnostics: 1;BL2PR07MB2339;31:f/gANThE7S2W+Jxvq0RUOaXLQ6gp3uTxCYILQ2kH3IMTX2J5uVcnUid2TrW9h36ZJfDW/EBGGT1Rl07plRODCMJD3i+s2RHX1yXUFVsUm97BNiKtxUfeOrFRby/RcrpU3uGx32uvcH0r3Ei9hqK7GfuRxoOirdRQ2wL4EmVD3zjgHls3hGPJ3RFHbfWV9uexmzXdOsFPYisRiYETYwV+hwAwVnD6rzF7V74kITHxEaY=;20:Z/Fdskixhs+xqxtSFcy9oaG9KDNkdo3vwgk1cR6FJOwrALDx0HnGJ4YBP7SNHZepSTJeL2IoziyBzfTPEeMPsidqh3YGnuCz51aloa6ELsw5qGzKKYB8NPn8gVw6QnaOMMSGLKezenV5xgv3iOtTcb9q360tbITeO7ffrd67ZN8D4FEz5I+HRhVl/ZpSLcKvch1YkcXkJ8i3Ym18IEuGJjuxFgdnAh4Wer4W1U4LC8oxs2G8KkqDaaRnicz+gFCD3otJ2Q6fIA9821A+j/uAYPWhniUqTAK8zqDbxP0/gCBLHsr/f6fjVMSYfDrciabW+mxLRImiKel56QD0dk92OhgEkfwI4pSgnlmB+gZlSvRJ1AzO1aIRlDRRNMswYRluoVNFXPyfdT6qoepf7SkWJ4yc1aCKn8pdNdcY8FxSEYGPr4kH6cXxqn/VWprRnmPuWuYcjD8OPUCDTCqocq6FnQnWKy5Gk9xXhTR9JJ/Hhn6PxXSGVcqxeLpq/nlXOm+H X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(20558992708506)(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040161)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:BL2PR07MB2339;BCL:0;PCL:0;RULEID:;SRVR:BL2PR07MB2339; X-Microsoft-Exchange-Diagnostics: 1;BL2PR07MB2339;4:IoOa041f33n0Tc4maVSePv2kfesFB/ZUnMt2uJeXO0dE5brdV88h23IaIf7whEmvbH/9sp+0yvfBCAIYiZBnDvA89VYIbQtEFjjK/HQI1auDRM8LhTFhbPJEtf7o9DeUjZtrJ3Ajfg65KRPvLdMFjzt5jP1sWKH2Yi5B8oo6OpKVkKXE+QNbTah81t2ui8+TxWqrzCBU7SM6jVd3zh3tEScEKxXJT1XYen58pA1M8gnVX7lPl8CdHNUqRdXwg6ygsnVnq0GUsMprbimZTGx3fbH4rP2I7Tf+Nf3Rzl1lUtOTW+FsKR0XpGsTfzmNxViPnLp8JqJ6dA18wRPAQI56AolXjlRfJyemArsvVjgVOgf/n7rOGFRXqMT7NXUdfhZTKO+dX+MGj1LwA4gMpxAi59MUMJt9D+z7UsVNxk3h0k30so0Veama6a4Ylowhs78/z4SWEPK5ldcEtCYmfuYBddOQ2IAWTibCUgVDsX5ijSS5D+FchhLlQj8MrWf6eOzO X-Forefront-PRVS: 0029F17A3F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(199003)(189002)(586003)(15975445007)(77096005)(4326007)(9686002)(68736007)(86362001)(97736004)(110136002)(19580395003)(47776003)(305945005)(8676002)(7416002)(2950100001)(6116002)(3846002)(106356001)(1076002)(66066001)(23726003)(4001350100001)(81166006)(81156014)(83506001)(19580405001)(7736002)(2906002)(8666005)(7846002)(42186005)(50986999)(76176999)(54356999)(46406003)(101416001)(92566002)(105586002)(97756001)(189998001)(50466002)(33656002)(18370500001)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2PR07MB2339;H:rric.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BL2PR07MB2339;23:uz2+AdCdmqT0Cjl7NWuZTK6vNPtdGimu8AByqrgkw?= =?us-ascii?Q?rZZqiYkEaFIs9Enk2fnH9IDFZh3HIFFCcgojEL99HaNHNljHpGl8JwxoYrXp?= =?us-ascii?Q?q4mr2pMsNCJmunxk9XOE8N8tN0DfNNBZKDiDxLLiNZbGGYy8yOmAtplvYnQd?= =?us-ascii?Q?aDMLH0Sj39i7MRgNv8tGds64RPYL1MIKdw75Y7WcjWGhyBhf7cuNSoI1gUQB?= =?us-ascii?Q?7P+9SVb8yy1BkwxnVhB4t0Bj0rBtrbI3v3Ooxr9o/xZ/ATTGRxxTLKjKtrN3?= =?us-ascii?Q?elLTpaR8U95YW31cUKw0LG1KLo4PGrTQzUsVIuFigYlJy9oR2rlTmo+VAqqb?= =?us-ascii?Q?RHjsi3bEbs/+W7BS7VWiG5U7wr09zB1y5iSY5NgyvKXi3uQFrR0Ot+UxaILm?= =?us-ascii?Q?tl9rUGruBIEpnPSOL0MHzGt4gAse1ba5hdXiECf22sPVWBvsRszwoBomQMcl?= =?us-ascii?Q?VtcKkaQd4WUvfpkmrgVkxr7aaiiKWbJb3Q89ln2RBU/R99ikSFdr7NMfoX08?= =?us-ascii?Q?pIxGXDb1Qwc21fXpNIfNkecODXvq2u+hxg+vIp/cB04FBoHOyjw7X0NSYUzj?= =?us-ascii?Q?oLpEtsHj+jk6xrkSslCRY9IX9++Wzhy8sVBP5ZN4nwcvCZDNNsga6xZ886/g?= =?us-ascii?Q?uCaCqjbj6IqANwj7MYTvtQlPYMOdGiCmsJ027w47SftiXj9OUc8baODZUmX2?= =?us-ascii?Q?vcCkKLXQSpx54DoBVWCwJHvvZjS5jQ+6aaL0rhtp47hLaTJrnlWvRUd/7+UQ?= =?us-ascii?Q?tV8n4D6yphH8q7JfUo1zSy9+qYYFt+1vog32SQHDKSjW5svIUsal5cNgR1uX?= =?us-ascii?Q?mJCijtSoBqL59zP1iEZAZZv5zl6QNDuOsS69KWDy18TdY3+hvOAaWPuHy8AE?= =?us-ascii?Q?AiAJWtzSqS0ByFN8vnnMqKS27AhuGQ0+qLyQPAjo4rubWVoEekFMwvUCHbJ/?= =?us-ascii?Q?cMm4MOpLwe+Ry19pDXO39D1q64F1CzGjq/HUJenKr8pYnGAnFSfCU2YTyKMc?= =?us-ascii?Q?se6nkmaat9VQQp2E7R9BhZ47UuEE4nozM11p6JL8BONTLKnRGzKJuhaXqkOz?= =?us-ascii?Q?cyuNf8wFgiM2/9aP1LbY7jFwlRjORZjzQo3dxlXVkPSPPVq+SKdQpeNDOyHx?= =?us-ascii?Q?GiCuRHid4hXyGTdvJDxgPGY1GASouDjtpQRdBdG8pieBTdcmO07tNZ39T60v?= =?us-ascii?Q?bkT0yuWqwF2T47bRdR+VFxoKmq1Qs1bSFHAM7JuwR+GHQtjfOiVmvOlP9CM5?= =?us-ascii?Q?H3FLU1iULBGgj21I4Q=3D?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR07MB2339;6:2e1XngljWJ4PztCpkKf+o+NJDC8TJFPxRNXz0V8jJxlrZzFpdiSyD466znFJ524F4dZPUWWGIucc2b4FJtzlw1RnZS83qAAeqQ//VCTXE6Oomw9UhBbKa4qZX4eY/R8YP8mRTIEp//QNyPvUdF4sF4xI+H29AO4RTYaPzI2prvHI9oXx+eAyYbXQ2kJab9sU7eW6KRJOY6GzfvYQ5Eu5t6+igaVFwQsDWCryw474Isiuym9p6W8hr/2AZFcKqyRuUYW5oxxm/uCP0yspguP02vI/9BNeOh6MGpgIczYI9tc=;5:eMmtP+8/C/X8CvQsiMqeZV8JgVTsB9oZKcXykuvmXI6azGsNudBs174Ht1VYwi5Ejn/Ob4mPwQO3O+SzWxQPmGAz+OkuuAOw0SNZ76d0roEkbXkvQkTH8R84E4dIZB229TojiCRGV3vtB5ayDgcDZw==;24:+Vgg1oXNwUPh6LPkM7HXnx9W8diVxrHjq9OFVDBIxsTwz5KPfhQznMJ8yBft8GKxHYBYBuHK/g3exXQFW9X+JuIjY/XmRqRZDNybKQBQJtg=;7:my0vSgK5miCChLpWXs/awjg9ZFFPxOQ2y9WPP5ngPIF/rnJyzfLn6+PQHfBNoXt163mb2/OxTCd6mgCaBdr0pE3rcPQde3TelNvC4NcN87m5dg4Lh7CDDzHBtP/fM5uh0KS15/3zB2BzQRGrGZqrCaNsW3ze0GC/3QltCYt+9U4SUuUc6GhI7AIIfivvdjuDIrh69NkI9J2Pb6gSgTlhkdEPrm+MEqz2Ogl+oDPpF4uReEpKIAbGB8IuSFCtOhBU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2016 10:45:10.0157 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR07MB2339 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 20.06.16 13:02:13, Tomasz Nowicki wrote: > The series builds the PCI/MSI domain stack based on initial IORT driver > which is added in first place. As a reference please see IORT spec: > http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf > > Tested on Cavium ThunderX server. The patches can be found here: > https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v7) > > v6 -> v7 > - rebased against irq/irqchip-4.8 > - improvements for IORT ID mapping > - call IORT init call from acpi_init() instead of arch_initcall() > - split IORT driver in to two parts: core and ITS/MSI > > v5 -> v6 > - added locking mechanism for IORT list with domain token > - IORT function name improvements > - extended IORT RID mapping helper > - reworked IORT to be more SMMU friendly > - IORT functions which map RID and find corresponding domain are not > PCI specific any more (struct pci_dev -> struct device) > - bug fixes > > v4 -> v5 > - rebased against v4.7-rc1 > - drop generic layer and call IORT functions directly > - improve resource abstraction and string formatting > > v3 -> v4 > - rebased against v4.5 > - add ACPI support for IRQ domain handling on a per-device basis > - reorder domain setup step > - improve error handling > - code style improvements > > v2 -> v3 > - rebased on top of 4.4 > - fixes and improvements for redistributor init via GICC structures > - fixes as per kbuild reports > > v1 -> v2 > - rebased on top of 4.4-rc4 > - use pci_msi_domain_get_msi_rid for requester ID to device ID translation > > Tomasz Nowicki (8): > ACPI: I/O Remapping Table (IORT) initial support > ACPI: Add new IORT functions to support MSI domain handling > PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table > irqchip/gicv3-its: Cleanup for ITS domain initialization > irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI > irqchip/gicv3-its: Probe ITS in the ACPI way > irqchip/gicv3-its: Factor out code that might be reused for ACPI > irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain > initialization > > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/bus.c | 2 + > drivers/acpi/iort.c | 389 +++++++++++++++++++++++++++++++ > drivers/irqchip/Kconfig | 1 + > drivers/irqchip/irq-gic-v3-its-pci-msi.c | 88 +++++-- > drivers/irqchip/irq-gic-v3-its.c | 169 ++++++++++---- > drivers/irqchip/irq-gic-v3.c | 7 +- > drivers/pci/msi.c | 11 +- > include/linux/iort.h | 41 ++++ > include/linux/irqchip/arm-gic-v3.h | 4 +- > 11 files changed, 646 insertions(+), 70 deletions(-) > create mode 100644 drivers/acpi/iort.c > create mode 100644 include/linux/iort.h For the whole series: Tested-by: Robert Richter Tested on Cavium ThunderX, test included: [RFC PATCH V5 0/5] ECAM quirks handling for ARM64 platforms Thanks Tomasz, -Robert From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Tue, 9 Aug 2016 12:45:00 +0200 From: Robert Richter To: Tomasz Nowicki Subject: Re: [PATCH V7 0/8] Introduce ACPI world to ITS irqchip Message-ID: <20160809104500.GU22012@rric.localdomain> References: <1466420541-20101-1-git-send-email-tn@semihalf.com> MIME-Version: 1.0 In-Reply-To: <1466420541-20101-1-git-send-email-tn@semihalf.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lorenzo.pieralisi@arm.com, ddaney.cavm@gmail.com, jason@lakedaemon.net, al.stone@linaro.org, linux-acpi@vger.kernel.org, marc.zyngier@arm.com, Catalin.Marinas@arm.com, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, will.deacon@arm.com, okaya@codeaurora.org, shijie.huang@arm.com, hanjun.guo@linaro.org, Suravee.Suthikulpanit@amd.com, linux-pci@vger.kernel.org, bhelgaas@google.com, graeme.gregory@linaro.org, tglx@linutronix.de, mw@semihalf.com, andrea.gallo@linaro.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: On 20.06.16 13:02:13, Tomasz Nowicki wrote: > The series builds the PCI/MSI domain stack based on initial IORT driver > which is added in first place. As a reference please see IORT spec: > http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf > > Tested on Cavium ThunderX server. The patches can be found here: > https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v7) > > v6 -> v7 > - rebased against irq/irqchip-4.8 > - improvements for IORT ID mapping > - call IORT init call from acpi_init() instead of arch_initcall() > - split IORT driver in to two parts: core and ITS/MSI > > v5 -> v6 > - added locking mechanism for IORT list with domain token > - IORT function name improvements > - extended IORT RID mapping helper > - reworked IORT to be more SMMU friendly > - IORT functions which map RID and find corresponding domain are not > PCI specific any more (struct pci_dev -> struct device) > - bug fixes > > v4 -> v5 > - rebased against v4.7-rc1 > - drop generic layer and call IORT functions directly > - improve resource abstraction and string formatting > > v3 -> v4 > - rebased against v4.5 > - add ACPI support for IRQ domain handling on a per-device basis > - reorder domain setup step > - improve error handling > - code style improvements > > v2 -> v3 > - rebased on top of 4.4 > - fixes and improvements for redistributor init via GICC structures > - fixes as per kbuild reports > > v1 -> v2 > - rebased on top of 4.4-rc4 > - use pci_msi_domain_get_msi_rid for requester ID to device ID translation > > Tomasz Nowicki (8): > ACPI: I/O Remapping Table (IORT) initial support > ACPI: Add new IORT functions to support MSI domain handling > PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table > irqchip/gicv3-its: Cleanup for ITS domain initialization > irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI > irqchip/gicv3-its: Probe ITS in the ACPI way > irqchip/gicv3-its: Factor out code that might be reused for ACPI > irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain > initialization > > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/bus.c | 2 + > drivers/acpi/iort.c | 389 +++++++++++++++++++++++++++++++ > drivers/irqchip/Kconfig | 1 + > drivers/irqchip/irq-gic-v3-its-pci-msi.c | 88 +++++-- > drivers/irqchip/irq-gic-v3-its.c | 169 ++++++++++---- > drivers/irqchip/irq-gic-v3.c | 7 +- > drivers/pci/msi.c | 11 +- > include/linux/iort.h | 41 ++++ > include/linux/irqchip/arm-gic-v3.h | 4 +- > 11 files changed, 646 insertions(+), 70 deletions(-) > create mode 100644 drivers/acpi/iort.c > create mode 100644 include/linux/iort.h For the whole series: Tested-by: Robert Richter Tested on Cavium ThunderX, test included: [RFC PATCH V5 0/5] ECAM quirks handling for ARM64 platforms Thanks Tomasz, -Robert _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.richter@cavium.com (Robert Richter) Date: Tue, 9 Aug 2016 12:45:00 +0200 Subject: [PATCH V7 0/8] Introduce ACPI world to ITS irqchip In-Reply-To: <1466420541-20101-1-git-send-email-tn@semihalf.com> References: <1466420541-20101-1-git-send-email-tn@semihalf.com> Message-ID: <20160809104500.GU22012@rric.localdomain> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 20.06.16 13:02:13, Tomasz Nowicki wrote: > The series builds the PCI/MSI domain stack based on initial IORT driver > which is added in first place. As a reference please see IORT spec: > http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf > > Tested on Cavium ThunderX server. The patches can be found here: > https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v7) > > v6 -> v7 > - rebased against irq/irqchip-4.8 > - improvements for IORT ID mapping > - call IORT init call from acpi_init() instead of arch_initcall() > - split IORT driver in to two parts: core and ITS/MSI > > v5 -> v6 > - added locking mechanism for IORT list with domain token > - IORT function name improvements > - extended IORT RID mapping helper > - reworked IORT to be more SMMU friendly > - IORT functions which map RID and find corresponding domain are not > PCI specific any more (struct pci_dev -> struct device) > - bug fixes > > v4 -> v5 > - rebased against v4.7-rc1 > - drop generic layer and call IORT functions directly > - improve resource abstraction and string formatting > > v3 -> v4 > - rebased against v4.5 > - add ACPI support for IRQ domain handling on a per-device basis > - reorder domain setup step > - improve error handling > - code style improvements > > v2 -> v3 > - rebased on top of 4.4 > - fixes and improvements for redistributor init via GICC structures > - fixes as per kbuild reports > > v1 -> v2 > - rebased on top of 4.4-rc4 > - use pci_msi_domain_get_msi_rid for requester ID to device ID translation > > Tomasz Nowicki (8): > ACPI: I/O Remapping Table (IORT) initial support > ACPI: Add new IORT functions to support MSI domain handling > PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table > irqchip/gicv3-its: Cleanup for ITS domain initialization > irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI > irqchip/gicv3-its: Probe ITS in the ACPI way > irqchip/gicv3-its: Factor out code that might be reused for ACPI > irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain > initialization > > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/bus.c | 2 + > drivers/acpi/iort.c | 389 +++++++++++++++++++++++++++++++ > drivers/irqchip/Kconfig | 1 + > drivers/irqchip/irq-gic-v3-its-pci-msi.c | 88 +++++-- > drivers/irqchip/irq-gic-v3-its.c | 169 ++++++++++---- > drivers/irqchip/irq-gic-v3.c | 7 +- > drivers/pci/msi.c | 11 +- > include/linux/iort.h | 41 ++++ > include/linux/irqchip/arm-gic-v3.h | 4 +- > 11 files changed, 646 insertions(+), 70 deletions(-) > create mode 100644 drivers/acpi/iort.c > create mode 100644 include/linux/iort.h For the whole series: Tested-by: Robert Richter Tested on Cavium ThunderX, test included: [RFC PATCH V5 0/5] ECAM quirks handling for ARM64 platforms Thanks Tomasz, -Robert