From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hanjun Guo Subject: [PATCH v7 00/15] ACPI platform MSI support and its example mbigen Date: Wed, 11 Jan 2017 23:06:24 +0800 Message-ID: <1484147199-4267-1-git-send-email-hanjun.guo@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: 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: Marc Zyngier , "Rafael J. Wysocki" , Lorenzo Pieralisi Cc: huxinwei@huawei.com, Kefeng Wang , Matthias Brugger , Jon Masters , yimin@huawei.com, Greg KH , linux-kernel@vger.kernel.org, linuxarm@huawei.com, Sinan Kaya , linux-acpi@vger.kernel.org, Xinwei Kong , Hanjun Guo , Tomasz Nowicki , Thomas Gleixner , Agustin Vega-Frias , linux-arm-kernel@lists.infradead.org, Ma Jun List-Id: linux-acpi@vger.kernel.org With platform msi support landed in the kernel, and the introduction of IORT for GICv3 ITS (PCI MSI) and SMMU, the framework for platform msi is ready, this patch set add few patches to enable the ACPI platform msi support. For platform device connecting to ITS on arm platform, we have IORT table with the named componant node to describe the mappings of paltform device and ITS, so we can retrieve the dev id and find its parent irqdomain (ITS) from IORT table (simlar with the ACPI ITS support). v6 -> v7: - Introduce iort_node_map_platform_id() to retrieve the dev id for both NC (named component) -> ITS/SMMU and NC -> SMMU -> ITS cases, suggested by Lorenzo; - Reorder the patches and rewrite some commit message; - Remove the test tags because it has major changes to retrieve the dev id, Sinan, Majun, Xinwei, could you please test them again on your platform? - rebased on top of 4.10-rc3 and Lorenzo's patch https://patchwork.kernel.org/patch/9507041/ - Tested against Agustin's patch [1-2/3] "[PATCH V9 0/3] irqchip: qcom: Add IRQ combiner driver" v5 -> v6: - Call acpi_configure_pmsi_domain() for platform devices in acpi_platform_notify() as it's cleaner (suggested by Rafael) - Remove the "u8 type" for iort_id_map() because it's unused - Rebase on top of 4.10-rc2 - Collect test and review tags v4 -> v5: - Add mbigen support back with tested on with Agustin's patchset, and it's a good example of how ACPI platform MSI works - rebased on top of lastest Linus tree (commit 52bce91 splice: reinstate SIGPIPE/EPIPE handling) v3 -> v4: - Drop mbi-gen patches to just submit platform msi support because will rebase mbi-gen patches on top of Agustin's patchset, and discusion is going there. - Add a patch to support device topology such as NC(named componant, paltform device) ->SMMU->ITS which suggested by Lorenzo; - rebased on top of Lorenzo's v9 of ACPI IORT ARM SMMU support; - rebased on top of 4.9-rc7 v2 -> v3: - Drop RFC tag - Rebase against v4.9-rc2 and Lorenzo's v6 of ACPI IORT ARM SMMU support [1] - Add 3 cleanup patches (patch 1, 2, 3) - Drop arch_init call patch from last version - Introduce a callback for platform device to set msi domain - Introduce a new API to get paltform device's domain instead of reusing the PCI one in previous version - Add a patch to rework iort_node_get_id() [1]: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1251993.html v1 -> v2: - Fix the bug of if multi Interrupt() resoures in single _PRS, we need to calculate all the irq numbers (I missed it in previous version); - Rebased on Marc's irq/irqchip-4.9 branch and Lorenzo's v5 SMMU patches (also Robin's SMMu patches) - Add patch irqchip: mbigen: promote mbigen init. Hanjun Guo (13): ACPI: IORT: fix the indentation in iort_scan_node() ACPI: IORT: add missing comment for iort_dev_find_its_id() ACPI: IORT: minor cleanup for iort_match_node_callback() irqchip: gic-v3-its: keep the head file include in alphabetic order irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain ACPI: IORT: rename iort_node_map_rid() to make it generic ACPI: platform-msi: retrieve dev id from IORT ACPI: IORT: move over to iort_node_map_platform_id() ACPI: platform: setup MSI domain for ACPI based platform device msi: platform: make platform_msi_create_device_domain() ACPI aware irqchip: mbigen: Add ACPI support Kefeng Wang (2): irqchip: mbigen: drop module owner irqchip: mbigen: introduce mbigen_of_create_domain() drivers/acpi/arm64/iort.c | 161 +++++++++++++++++++++----- drivers/acpi/glue.c | 6 + drivers/base/platform-msi.c | 3 +- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 106 +++++++++++++---- drivers/irqchip/irq-gic-v3-its.c | 3 +- drivers/irqchip/irq-mbigen.c | 109 ++++++++++++++--- include/linux/acpi_iort.h | 11 ++ 7 files changed, 322 insertions(+), 77 deletions(-) -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1764375AbdAKPIA (ORCPT ); Wed, 11 Jan 2017 10:08:00 -0500 Received: from mail-pf0-f182.google.com ([209.85.192.182]:32986 "EHLO mail-pf0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1764335AbdAKPHn (ORCPT ); Wed, 11 Jan 2017 10:07:43 -0500 From: Hanjun Guo To: Marc Zyngier , "Rafael J. Wysocki" , Lorenzo Pieralisi Cc: linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxarm@huawei.com, Thomas Gleixner , Greg KH , Tomasz Nowicki , Ma Jun , Kefeng Wang , Agustin Vega-Frias , Sinan Kaya , huxinwei@huawei.com, yimin@huawei.com, Jon Masters , Matthias Brugger , Xinwei Kong , Hanjun Guo Subject: [PATCH v7 00/15] ACPI platform MSI support and its example mbigen Date: Wed, 11 Jan 2017 23:06:24 +0800 Message-Id: <1484147199-4267-1-git-send-email-hanjun.guo@linaro.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With platform msi support landed in the kernel, and the introduction of IORT for GICv3 ITS (PCI MSI) and SMMU, the framework for platform msi is ready, this patch set add few patches to enable the ACPI platform msi support. For platform device connecting to ITS on arm platform, we have IORT table with the named componant node to describe the mappings of paltform device and ITS, so we can retrieve the dev id and find its parent irqdomain (ITS) from IORT table (simlar with the ACPI ITS support). v6 -> v7: - Introduce iort_node_map_platform_id() to retrieve the dev id for both NC (named component) -> ITS/SMMU and NC -> SMMU -> ITS cases, suggested by Lorenzo; - Reorder the patches and rewrite some commit message; - Remove the test tags because it has major changes to retrieve the dev id, Sinan, Majun, Xinwei, could you please test them again on your platform? - rebased on top of 4.10-rc3 and Lorenzo's patch https://patchwork.kernel.org/patch/9507041/ - Tested against Agustin's patch [1-2/3] "[PATCH V9 0/3] irqchip: qcom: Add IRQ combiner driver" v5 -> v6: - Call acpi_configure_pmsi_domain() for platform devices in acpi_platform_notify() as it's cleaner (suggested by Rafael) - Remove the "u8 type" for iort_id_map() because it's unused - Rebase on top of 4.10-rc2 - Collect test and review tags v4 -> v5: - Add mbigen support back with tested on with Agustin's patchset, and it's a good example of how ACPI platform MSI works - rebased on top of lastest Linus tree (commit 52bce91 splice: reinstate SIGPIPE/EPIPE handling) v3 -> v4: - Drop mbi-gen patches to just submit platform msi support because will rebase mbi-gen patches on top of Agustin's patchset, and discusion is going there. - Add a patch to support device topology such as NC(named componant, paltform device) ->SMMU->ITS which suggested by Lorenzo; - rebased on top of Lorenzo's v9 of ACPI IORT ARM SMMU support; - rebased on top of 4.9-rc7 v2 -> v3: - Drop RFC tag - Rebase against v4.9-rc2 and Lorenzo's v6 of ACPI IORT ARM SMMU support [1] - Add 3 cleanup patches (patch 1, 2, 3) - Drop arch_init call patch from last version - Introduce a callback for platform device to set msi domain - Introduce a new API to get paltform device's domain instead of reusing the PCI one in previous version - Add a patch to rework iort_node_get_id() [1]: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1251993.html v1 -> v2: - Fix the bug of if multi Interrupt() resoures in single _PRS, we need to calculate all the irq numbers (I missed it in previous version); - Rebased on Marc's irq/irqchip-4.9 branch and Lorenzo's v5 SMMU patches (also Robin's SMMu patches) - Add patch irqchip: mbigen: promote mbigen init. Hanjun Guo (13): ACPI: IORT: fix the indentation in iort_scan_node() ACPI: IORT: add missing comment for iort_dev_find_its_id() ACPI: IORT: minor cleanup for iort_match_node_callback() irqchip: gic-v3-its: keep the head file include in alphabetic order irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain ACPI: IORT: rename iort_node_map_rid() to make it generic ACPI: platform-msi: retrieve dev id from IORT ACPI: IORT: move over to iort_node_map_platform_id() ACPI: platform: setup MSI domain for ACPI based platform device msi: platform: make platform_msi_create_device_domain() ACPI aware irqchip: mbigen: Add ACPI support Kefeng Wang (2): irqchip: mbigen: drop module owner irqchip: mbigen: introduce mbigen_of_create_domain() drivers/acpi/arm64/iort.c | 161 +++++++++++++++++++++----- drivers/acpi/glue.c | 6 + drivers/base/platform-msi.c | 3 +- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 106 +++++++++++++---- drivers/irqchip/irq-gic-v3-its.c | 3 +- drivers/irqchip/irq-mbigen.c | 109 ++++++++++++++--- include/linux/acpi_iort.h | 11 ++ 7 files changed, 322 insertions(+), 77 deletions(-) -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: hanjun.guo@linaro.org (Hanjun Guo) Date: Wed, 11 Jan 2017 23:06:24 +0800 Subject: [PATCH v7 00/15] ACPI platform MSI support and its example mbigen Message-ID: <1484147199-4267-1-git-send-email-hanjun.guo@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org With platform msi support landed in the kernel, and the introduction of IORT for GICv3 ITS (PCI MSI) and SMMU, the framework for platform msi is ready, this patch set add few patches to enable the ACPI platform msi support. For platform device connecting to ITS on arm platform, we have IORT table with the named componant node to describe the mappings of paltform device and ITS, so we can retrieve the dev id and find its parent irqdomain (ITS) from IORT table (simlar with the ACPI ITS support). v6 -> v7: - Introduce iort_node_map_platform_id() to retrieve the dev id for both NC (named component) -> ITS/SMMU and NC -> SMMU -> ITS cases, suggested by Lorenzo; - Reorder the patches and rewrite some commit message; - Remove the test tags because it has major changes to retrieve the dev id, Sinan, Majun, Xinwei, could you please test them again on your platform? - rebased on top of 4.10-rc3 and Lorenzo's patch https://patchwork.kernel.org/patch/9507041/ - Tested against Agustin's patch [1-2/3] "[PATCH V9 0/3] irqchip: qcom: Add IRQ combiner driver" v5 -> v6: - Call acpi_configure_pmsi_domain() for platform devices in acpi_platform_notify() as it's cleaner (suggested by Rafael) - Remove the "u8 type" for iort_id_map() because it's unused - Rebase on top of 4.10-rc2 - Collect test and review tags v4 -> v5: - Add mbigen support back with tested on with Agustin's patchset, and it's a good example of how ACPI platform MSI works - rebased on top of lastest Linus tree (commit 52bce91 splice: reinstate SIGPIPE/EPIPE handling) v3 -> v4: - Drop mbi-gen patches to just submit platform msi support because will rebase mbi-gen patches on top of Agustin's patchset, and discusion is going there. - Add a patch to support device topology such as NC(named componant, paltform device) ->SMMU->ITS which suggested by Lorenzo; - rebased on top of Lorenzo's v9 of ACPI IORT ARM SMMU support; - rebased on top of 4.9-rc7 v2 -> v3: - Drop RFC tag - Rebase against v4.9-rc2 and Lorenzo's v6 of ACPI IORT ARM SMMU support [1] - Add 3 cleanup patches (patch 1, 2, 3) - Drop arch_init call patch from last version - Introduce a callback for platform device to set msi domain - Introduce a new API to get paltform device's domain instead of reusing the PCI one in previous version - Add a patch to rework iort_node_get_id() [1]: http://www.mail-archive.com/linux-kernel at vger.kernel.org/msg1251993.html v1 -> v2: - Fix the bug of if multi Interrupt() resoures in single _PRS, we need to calculate all the irq numbers (I missed it in previous version); - Rebased on Marc's irq/irqchip-4.9 branch and Lorenzo's v5 SMMU patches (also Robin's SMMu patches) - Add patch irqchip: mbigen: promote mbigen init. Hanjun Guo (13): ACPI: IORT: fix the indentation in iort_scan_node() ACPI: IORT: add missing comment for iort_dev_find_its_id() ACPI: IORT: minor cleanup for iort_match_node_callback() irqchip: gic-v3-its: keep the head file include in alphabetic order irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain ACPI: IORT: rename iort_node_map_rid() to make it generic ACPI: platform-msi: retrieve dev id from IORT ACPI: IORT: move over to iort_node_map_platform_id() ACPI: platform: setup MSI domain for ACPI based platform device msi: platform: make platform_msi_create_device_domain() ACPI aware irqchip: mbigen: Add ACPI support Kefeng Wang (2): irqchip: mbigen: drop module owner irqchip: mbigen: introduce mbigen_of_create_domain() drivers/acpi/arm64/iort.c | 161 +++++++++++++++++++++----- drivers/acpi/glue.c | 6 + drivers/base/platform-msi.c | 3 +- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 106 +++++++++++++---- drivers/irqchip/irq-gic-v3-its.c | 3 +- drivers/irqchip/irq-mbigen.c | 109 ++++++++++++++--- include/linux/acpi_iort.h | 11 ++ 7 files changed, 322 insertions(+), 77 deletions(-) -- 1.9.1