From: Tomasz Nowicki <tn@semihalf.com> To: helgaas@kernel.org, arnd@arndb.de, will.deacon@arm.com, catalin.marinas@arm.com, rafael@kernel.org, hanjun.guo@linaro.org, Lorenzo.Pieralisi@arm.com, okaya@codeaurora.org, jiang.liu@linux.intel.com, jchandra@broadcom.com Cc: robert.richter@caviumnetworks.com, mw@semihalf.com, Liviu.Dudau@arm.com, ddaney@caviumnetworks.com, wangyijing@huawei.com, Suravee.Suthikulpanit@amd.com, msalter@redhat.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, linaro-acpi@lists.linaro.org, jcm@redhat.com, Tomasz Nowicki <tn@semihalf.com> Subject: [PATCH V6 13/13] pci, pci-thunder-pem: Add ACPI support for ThunderX PEM. Date: Fri, 15 Apr 2016 19:06:48 +0200 [thread overview] Message-ID: <1460740008-19489-14-git-send-email-tn@semihalf.com> (raw) In-Reply-To: <1460740008-19489-1-git-send-email-tn@semihalf.com> This patch uses DECLARE_ACPI_MCFG_FIXUP to overwrite PCI config accessors. Also, it provides alternative way to find additional configuration region: thunder_pem_get_acpi_res is looking for host bridge's child (_HID "THRX0001") which contains mentioned configuration region description. See example below: Device (PEM0) { Name (_HID, EISAID ("PNP0A08")) Name (_CID, EISAID ("PNP0A03")) [...] Device (CFG0) { Name (_HID, "THRX0001") // PEM configuration space resources Name (_CRS, ResourceTemplate () { QWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0, 0x87e0c5000000, 0x87E0C5FFFFFF, 0, 0x01000000) }) } } Signed-off-by: Tomasz Nowicki <tn@semihalf.com> --- drivers/pci/host/pci-thunder-pem.c | 137 ++++++++++++++++++++++++++++++++++--- 1 file changed, 128 insertions(+), 9 deletions(-) diff --git a/drivers/pci/host/pci-thunder-pem.c b/drivers/pci/host/pci-thunder-pem.c index 91cfeb9..685cd79 100644 --- a/drivers/pci/host/pci-thunder-pem.c +++ b/drivers/pci/host/pci-thunder-pem.c @@ -18,6 +18,7 @@ #include <linux/module.h> #include <linux/of_address.h> #include <linux/of_pci.h> +#include <linux/pci-acpi.h> #include <linux/platform_device.h> #include "../ecam.h" @@ -259,6 +260,83 @@ static int thunder_pem_config_write(struct pci_bus *bus, unsigned int devfn, return pci_generic_config_write(bus, devfn, where, size, val); } +#ifdef CONFIG_ACPI + +struct pem_acpi_res { + struct resource resource; + int found; +}; + +static acpi_status +thunder_pem_cfg(struct acpi_resource *resource, void *ctx) +{ + struct pem_acpi_res *pem_ctx = ctx; + struct resource *res = &pem_ctx->resource; + + if ((resource->type != ACPI_RESOURCE_TYPE_ADDRESS64) || + (resource->data.address32.resource_type != ACPI_MEMORY_RANGE)) + return AE_OK; + + res->start = resource->data.address64.address.minimum; + res->end = resource->data.address64.address.maximum; + res->flags = IORESOURCE_MEM; + + pem_ctx->found++; + return AE_OK; +} + +static acpi_status +thunder_pem_find_dev(acpi_handle handle, u32 level, void *ctx, void **ret) +{ + struct pem_acpi_res *pem_ctx = ctx; + struct acpi_device_info *info; + acpi_status status = AE_OK; + + status = acpi_get_object_info(handle, &info); + if (ACPI_FAILURE(status)) + return AE_OK; + + if (strncmp(info->hardware_id.string, "THRX0001", 8) != 0) + goto out; + + pem_ctx->found = 0; + status = acpi_walk_resources(handle, METHOD_NAME__CRS, thunder_pem_cfg, + pem_ctx); + if (ACPI_FAILURE(status)) + goto out; + + if (pem_ctx->found) + status = AE_CTRL_TERMINATE; +out: + kfree(info); + return status; +} + +static struct resource *thunder_pem_get_acpi_res(struct device *dev) +{ + struct acpi_device *adev = ACPI_COMPANION(dev); + acpi_handle handle = acpi_device_handle(adev); + struct pem_acpi_res *pem_ctx; + acpi_status status; + + pem_ctx = devm_kzalloc(dev, sizeof(*pem_ctx), GFP_KERNEL); + if (!pem_ctx) + return NULL; + + status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, + thunder_pem_find_dev, NULL, pem_ctx, NULL); + if (ACPI_FAILURE(status) || !pem_ctx->found) + return NULL; + + return &pem_ctx->resource; +} +#else +static struct resource *thunder_pem_get_acpi_res(struct device *dev) +{ + return NULL; +} +#endif + static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg) { resource_size_t bar4_start; @@ -270,16 +348,20 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg) if (!pem_pci) return -ENOMEM; - pdev = to_platform_device(dev); - - /* - * The second register range is the PEM bridge to the PCIe - * bus. It has a different config access method than those - * devices behind the bridge. - */ - res_pem = platform_get_resource(pdev, IORESOURCE_MEM, 1); + if (acpi_disabled) { + pdev = to_platform_device(dev); + + /* + * The second register range is the PEM bridge to the PCIe + * bus. It has a different config access method than those + * devices behind the bridge. + */ + res_pem = platform_get_resource(pdev, IORESOURCE_MEM, 1); + } else { + res_pem = thunder_pem_get_acpi_res(dev); + } if (!res_pem) { - dev_err(dev, "missing \"reg[1]\"property\n"); + dev_err(dev, "missing configuration region\n"); return -EINVAL; } @@ -332,5 +414,42 @@ static struct platform_driver thunder_pem_driver = { }; module_platform_driver(thunder_pem_driver); +#ifdef CONFIG_ACPI + +static bool thunder_pem_acpi_init(struct pci_cfg_fixup *fixup, + struct acpi_pci_root *root) +{ + u32 midr = read_cpuid_id(); + + return (MIDR_IMPLEMENTOR(midr) == ARM_CPU_IMP_CAVIUM) && + (MIDR_PARTNUM(midr) == CAVIUM_CPU_PART_THUNDERX); +} + +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 4, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 5, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 6, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 7, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 8, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 9, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 14, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 15, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 16, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 17, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 18, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 19, PCI_MCFG_BUS_ANY); +#endif + MODULE_DESCRIPTION("Thunder PEM PCIe host driver"); MODULE_LICENSE("GPL v2"); -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: tn@semihalf.com (Tomasz Nowicki) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V6 13/13] pci, pci-thunder-pem: Add ACPI support for ThunderX PEM. Date: Fri, 15 Apr 2016 19:06:48 +0200 [thread overview] Message-ID: <1460740008-19489-14-git-send-email-tn@semihalf.com> (raw) In-Reply-To: <1460740008-19489-1-git-send-email-tn@semihalf.com> This patch uses DECLARE_ACPI_MCFG_FIXUP to overwrite PCI config accessors. Also, it provides alternative way to find additional configuration region: thunder_pem_get_acpi_res is looking for host bridge's child (_HID "THRX0001") which contains mentioned configuration region description. See example below: Device (PEM0) { Name (_HID, EISAID ("PNP0A08")) Name (_CID, EISAID ("PNP0A03")) [...] Device (CFG0) { Name (_HID, "THRX0001") // PEM configuration space resources Name (_CRS, ResourceTemplate () { QWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0, 0x87e0c5000000, 0x87E0C5FFFFFF, 0, 0x01000000) }) } } Signed-off-by: Tomasz Nowicki <tn@semihalf.com> --- drivers/pci/host/pci-thunder-pem.c | 137 ++++++++++++++++++++++++++++++++++--- 1 file changed, 128 insertions(+), 9 deletions(-) diff --git a/drivers/pci/host/pci-thunder-pem.c b/drivers/pci/host/pci-thunder-pem.c index 91cfeb9..685cd79 100644 --- a/drivers/pci/host/pci-thunder-pem.c +++ b/drivers/pci/host/pci-thunder-pem.c @@ -18,6 +18,7 @@ #include <linux/module.h> #include <linux/of_address.h> #include <linux/of_pci.h> +#include <linux/pci-acpi.h> #include <linux/platform_device.h> #include "../ecam.h" @@ -259,6 +260,83 @@ static int thunder_pem_config_write(struct pci_bus *bus, unsigned int devfn, return pci_generic_config_write(bus, devfn, where, size, val); } +#ifdef CONFIG_ACPI + +struct pem_acpi_res { + struct resource resource; + int found; +}; + +static acpi_status +thunder_pem_cfg(struct acpi_resource *resource, void *ctx) +{ + struct pem_acpi_res *pem_ctx = ctx; + struct resource *res = &pem_ctx->resource; + + if ((resource->type != ACPI_RESOURCE_TYPE_ADDRESS64) || + (resource->data.address32.resource_type != ACPI_MEMORY_RANGE)) + return AE_OK; + + res->start = resource->data.address64.address.minimum; + res->end = resource->data.address64.address.maximum; + res->flags = IORESOURCE_MEM; + + pem_ctx->found++; + return AE_OK; +} + +static acpi_status +thunder_pem_find_dev(acpi_handle handle, u32 level, void *ctx, void **ret) +{ + struct pem_acpi_res *pem_ctx = ctx; + struct acpi_device_info *info; + acpi_status status = AE_OK; + + status = acpi_get_object_info(handle, &info); + if (ACPI_FAILURE(status)) + return AE_OK; + + if (strncmp(info->hardware_id.string, "THRX0001", 8) != 0) + goto out; + + pem_ctx->found = 0; + status = acpi_walk_resources(handle, METHOD_NAME__CRS, thunder_pem_cfg, + pem_ctx); + if (ACPI_FAILURE(status)) + goto out; + + if (pem_ctx->found) + status = AE_CTRL_TERMINATE; +out: + kfree(info); + return status; +} + +static struct resource *thunder_pem_get_acpi_res(struct device *dev) +{ + struct acpi_device *adev = ACPI_COMPANION(dev); + acpi_handle handle = acpi_device_handle(adev); + struct pem_acpi_res *pem_ctx; + acpi_status status; + + pem_ctx = devm_kzalloc(dev, sizeof(*pem_ctx), GFP_KERNEL); + if (!pem_ctx) + return NULL; + + status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, + thunder_pem_find_dev, NULL, pem_ctx, NULL); + if (ACPI_FAILURE(status) || !pem_ctx->found) + return NULL; + + return &pem_ctx->resource; +} +#else +static struct resource *thunder_pem_get_acpi_res(struct device *dev) +{ + return NULL; +} +#endif + static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg) { resource_size_t bar4_start; @@ -270,16 +348,20 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg) if (!pem_pci) return -ENOMEM; - pdev = to_platform_device(dev); - - /* - * The second register range is the PEM bridge to the PCIe - * bus. It has a different config access method than those - * devices behind the bridge. - */ - res_pem = platform_get_resource(pdev, IORESOURCE_MEM, 1); + if (acpi_disabled) { + pdev = to_platform_device(dev); + + /* + * The second register range is the PEM bridge to the PCIe + * bus. It has a different config access method than those + * devices behind the bridge. + */ + res_pem = platform_get_resource(pdev, IORESOURCE_MEM, 1); + } else { + res_pem = thunder_pem_get_acpi_res(dev); + } if (!res_pem) { - dev_err(dev, "missing \"reg[1]\"property\n"); + dev_err(dev, "missing configuration region\n"); return -EINVAL; } @@ -332,5 +414,42 @@ static struct platform_driver thunder_pem_driver = { }; module_platform_driver(thunder_pem_driver); +#ifdef CONFIG_ACPI + +static bool thunder_pem_acpi_init(struct pci_cfg_fixup *fixup, + struct acpi_pci_root *root) +{ + u32 midr = read_cpuid_id(); + + return (MIDR_IMPLEMENTOR(midr) == ARM_CPU_IMP_CAVIUM) && + (MIDR_PARTNUM(midr) == CAVIUM_CPU_PART_THUNDERX); +} + +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 4, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 5, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 6, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 7, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 8, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 9, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 14, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 15, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 16, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 17, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 18, PCI_MCFG_BUS_ANY); +DECLARE_ACPI_MCFG_FIXUP(NULL, thunder_pem_acpi_init, &pci_thunder_pem_ops, + 19, PCI_MCFG_BUS_ANY); +#endif + MODULE_DESCRIPTION("Thunder PEM PCIe host driver"); MODULE_LICENSE("GPL v2"); -- 1.9.1
next prev parent reply other threads:[~2016-04-15 17:07 UTC|newest] Thread overview: 228+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-15 17:06 [PATCH V6 00/13] Support for generic ACPI based PCI host controller Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 01/13] pci, acpi, x86, ia64: Move ACPI host bridge device companion assignment to core code Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 20:41 ` kbuild test robot 2016-04-15 20:41 ` kbuild test robot 2016-04-15 20:41 ` kbuild test robot 2016-04-26 22:36 ` Bjorn Helgaas 2016-04-26 22:36 ` Bjorn Helgaas 2016-04-27 10:12 ` Tomasz Nowicki 2016-04-27 10:12 ` Tomasz Nowicki 2016-04-27 2:45 ` Bjorn Helgaas 2016-04-27 2:45 ` Bjorn Helgaas 2016-05-04 8:10 ` Tomasz Nowicki 2016-05-04 8:10 ` Tomasz Nowicki 2016-05-09 22:18 ` Rafael J. Wysocki 2016-05-09 22:18 ` Rafael J. Wysocki 2016-05-10 10:27 ` Lorenzo Pieralisi 2016-05-10 10:27 ` Lorenzo Pieralisi 2016-05-09 22:56 ` Rafael J. Wysocki 2016-05-09 22:56 ` Rafael J. Wysocki 2016-05-10 1:53 ` Bjorn Helgaas 2016-05-10 1:53 ` Bjorn Helgaas 2016-05-10 10:07 ` Lorenzo Pieralisi 2016-05-10 10:07 ` Lorenzo Pieralisi 2016-04-15 17:06 ` [PATCH V6 02/13] pci, acpi: Provide generic way to assign bus domain number Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-27 2:26 ` Bjorn Helgaas 2016-04-27 2:26 ` Bjorn Helgaas 2016-04-27 11:17 ` Lorenzo Pieralisi 2016-04-27 11:17 ` Lorenzo Pieralisi 2016-04-27 16:44 ` Bjorn Helgaas 2016-04-27 16:44 ` Bjorn Helgaas 2016-04-27 17:31 ` Lorenzo Pieralisi 2016-04-27 17:31 ` Lorenzo Pieralisi 2016-04-28 8:13 ` Liviu.Dudau 2016-04-28 8:13 ` Liviu.Dudau at arm.com 2016-04-28 8:13 ` Liviu.Dudau 2016-04-28 15:12 ` Bjorn Helgaas 2016-04-28 15:12 ` Bjorn Helgaas 2016-04-28 15:34 ` Arnd Bergmann 2016-04-28 15:34 ` Arnd Bergmann 2016-04-29 22:50 ` Arnd Bergmann 2016-04-29 22:50 ` Arnd Bergmann 2016-05-02 12:43 ` Tomasz Nowicki 2016-05-02 12:43 ` Tomasz Nowicki 2016-05-02 13:26 ` Jayachandran C 2016-05-02 13:26 ` Jayachandran C 2016-05-03 11:02 ` Lorenzo Pieralisi 2016-05-03 11:02 ` Lorenzo Pieralisi 2016-05-03 14:22 ` Jayachandran C 2016-05-03 14:22 ` Jayachandran C 2016-05-03 14:55 ` Lorenzo Pieralisi 2016-05-03 14:55 ` Lorenzo Pieralisi 2016-04-27 11:59 ` Tomasz Nowicki 2016-04-27 11:59 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 03/13] x86, ia64: Include acpi_pci_{add|remove}_bus to the default pcibios_{add|remove}_bus implementation Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-27 2:34 ` Bjorn Helgaas 2016-04-27 2:34 ` Bjorn Helgaas 2016-04-27 13:19 ` Tomasz Nowicki 2016-04-27 13:19 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 04/13] pci, of: Move the PCI I/O space management to PCI core code Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 05/13] acpi, pci: Support IO resources when parsing PCI host bridge resources Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-27 2:39 ` Bjorn Helgaas 2016-04-27 2:39 ` Bjorn Helgaas 2016-04-27 5:36 ` Jon Masters 2016-04-27 5:36 ` Jon Masters 2016-04-27 5:36 ` Jon Masters 2016-04-28 21:53 ` Jon Masters 2016-04-28 21:53 ` Jon Masters 2016-04-27 14:26 ` Lorenzo Pieralisi 2016-04-27 14:26 ` Lorenzo Pieralisi 2016-04-27 15:10 ` Liviu.Dudau 2016-04-27 15:10 ` Liviu.Dudau at arm.com 2016-04-27 15:10 ` Liviu.Dudau 2016-04-27 16:09 ` Lorenzo Pieralisi 2016-04-27 16:09 ` Lorenzo Pieralisi 2016-04-28 15:45 ` Bjorn Helgaas 2016-04-28 15:45 ` Bjorn Helgaas 2016-04-15 17:06 ` [PATCH V6 06/13] arm64, pci, acpi: ACPI support for legacy IRQs parsing and consolidation with DT code Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-27 2:44 ` Bjorn Helgaas 2016-04-27 2:44 ` Bjorn Helgaas 2016-04-27 11:46 ` Lorenzo Pieralisi 2016-04-27 11:46 ` Lorenzo Pieralisi 2016-04-15 17:06 ` [PATCH V6 07/13] PCI: Provide common functions for ECAM mapping Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 18:41 ` Arnd Bergmann 2016-04-15 18:41 ` Arnd Bergmann 2016-04-28 21:47 ` Bjorn Helgaas 2016-04-28 21:47 ` Bjorn Helgaas 2016-04-29 8:01 ` Jayachandran C 2016-04-29 8:01 ` Jayachandran C 2016-05-05 9:24 ` Jayachandran C 2016-05-05 9:24 ` Jayachandran C 2016-05-05 10:38 ` Tomasz Nowicki 2016-05-05 10:38 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 08/13] PCI: generic, thunder: update to use generic ECAM API Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 18:39 ` Arnd Bergmann 2016-04-15 18:39 ` Arnd Bergmann 2016-04-16 7:20 ` Jayachandran C 2016-04-16 7:20 ` Jayachandran C 2016-04-16 7:31 ` Arnd Bergmann 2016-04-16 7:31 ` Arnd Bergmann 2016-04-16 14:36 ` Jayachandran C 2016-04-16 14:36 ` Jayachandran C 2016-04-18 13:03 ` Tomasz Nowicki 2016-04-18 13:03 ` Tomasz Nowicki 2016-04-18 14:44 ` Arnd Bergmann 2016-04-18 14:44 ` Arnd Bergmann 2016-04-18 19:31 ` Tomasz Nowicki 2016-04-18 19:31 ` Tomasz Nowicki 2016-04-19 13:06 ` Arnd Bergmann 2016-04-19 13:06 ` Arnd Bergmann 2016-04-21 9:28 ` Tomasz Nowicki 2016-04-21 9:28 ` Tomasz Nowicki 2016-04-21 9:36 ` Arnd Bergmann 2016-04-21 9:36 ` Arnd Bergmann 2016-04-21 10:08 ` Tomasz Nowicki 2016-04-21 10:08 ` Tomasz Nowicki 2016-04-22 14:30 ` Jon Masters 2016-04-22 14:30 ` Jon Masters 2016-04-22 16:00 ` David Daney 2016-04-22 16:00 ` David Daney 2016-04-28 20:14 ` Bjorn Helgaas 2016-04-28 20:14 ` Bjorn Helgaas 2016-04-28 20:40 ` Arnd Bergmann 2016-04-28 20:40 ` Arnd Bergmann 2016-04-28 21:18 ` Bjorn Helgaas 2016-04-28 21:18 ` Bjorn Helgaas 2016-04-28 21:47 ` Jon Masters 2016-04-28 21:47 ` Jon Masters 2016-04-29 9:41 ` Lorenzo Pieralisi 2016-04-29 9:41 ` Lorenzo Pieralisi 2016-04-19 21:40 ` Arnd Bergmann 2016-04-19 21:40 ` Arnd Bergmann 2016-04-20 0:22 ` Jayachandran C 2016-04-20 0:22 ` Jayachandran C 2016-04-15 17:06 ` [PATCH V6 09/13] pci, acpi: Support for ACPI based generic PCI host controller Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-20 19:12 ` Jayachandran C 2016-04-20 19:12 ` Jayachandran C 2016-04-21 9:06 ` Tomasz Nowicki 2016-04-21 9:06 ` Tomasz Nowicki 2016-04-22 12:49 ` Jayachandran C 2016-04-22 12:49 ` Jayachandran C 2016-04-22 14:40 ` Jon Masters 2016-04-22 14:40 ` Jon Masters 2016-04-23 15:23 ` Jon Masters 2016-04-23 15:23 ` Jon Masters 2016-04-28 21:48 ` Bjorn Helgaas 2016-04-28 21:48 ` Bjorn Helgaas 2016-04-29 8:37 ` Lorenzo Pieralisi 2016-04-29 8:37 ` Lorenzo Pieralisi 2016-04-29 17:35 ` Jayachandran C 2016-04-29 17:35 ` Jayachandran C 2016-05-02 11:31 ` Tomasz Nowicki 2016-05-02 11:31 ` Tomasz Nowicki 2016-05-03 8:46 ` Lorenzo Pieralisi 2016-05-03 8:46 ` Lorenzo Pieralisi 2016-05-02 11:03 ` Tomasz Nowicki 2016-05-02 11:03 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 10/13] arm64, pci, acpi: Start using ACPI based PCI host controller driver for ARM64 Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 11/13] pci, acpi: Match PCI config space accessors against platfrom specific quirks Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-18 11:37 ` liudongdong (C) 2016-04-18 11:37 ` liudongdong (C) 2016-04-18 11:37 ` liudongdong (C) 2016-04-18 12:21 ` Tomasz Nowicki 2016-04-18 12:21 ` Tomasz Nowicki 2016-04-15 17:06 ` [PATCH V6 12/13] pci, pci-thunder-ecam: Add ACPI support for ThunderX ECAM Tomasz Nowicki 2016-04-15 17:06 ` Tomasz Nowicki 2016-04-19 10:26 ` Tomasz Nowicki 2016-04-19 10:26 ` Tomasz Nowicki 2016-04-19 10:41 ` [Linaro-acpi] " G Gregory 2016-04-19 10:41 ` G Gregory 2016-04-19 10:41 ` G Gregory 2016-04-19 11:12 ` Graeme Gregory 2016-04-19 11:12 ` Graeme Gregory 2016-04-19 11:12 ` Graeme Gregory 2016-04-19 11:22 ` Tomasz Nowicki 2016-04-19 11:22 ` Tomasz Nowicki 2016-04-19 11:22 ` Tomasz Nowicki 2016-04-19 12:29 ` G Gregory 2016-04-19 12:29 ` G Gregory 2016-04-19 12:29 ` G Gregory 2016-04-15 17:06 ` Tomasz Nowicki [this message] 2016-04-15 17:06 ` [PATCH V6 13/13] pci, pci-thunder-pem: Add ACPI support for ThunderX PEM Tomasz Nowicki 2016-04-15 18:19 ` [PATCH V6 00/13] Support for generic ACPI based PCI host controller Jon Masters 2016-04-15 18:19 ` Jon Masters 2016-04-16 15:31 ` Jayachandran C 2016-04-16 15:31 ` Jayachandran C 2016-04-18 13:33 ` Tomasz Nowicki 2016-04-18 13:33 ` Tomasz Nowicki 2016-04-18 14:38 ` Arnd Bergmann 2016-04-18 14:38 ` Arnd Bergmann 2016-04-18 15:26 ` Tomasz Nowicki 2016-04-18 15:26 ` Tomasz Nowicki 2016-04-18 16:14 ` Mark Langsdorf 2016-04-17 9:23 ` Martinez Kristofer 2016-04-17 9:23 ` Martinez Kristofer 2016-04-16 18:30 ` Duc Dang 2016-04-16 18:30 ` Duc Dang 2016-04-17 4:18 ` Sinan Kaya 2016-04-17 4:18 ` Sinan Kaya 2016-04-22 16:08 ` Robert Richter 2016-04-22 16:08 ` Robert Richter 2016-04-22 16:08 ` Robert Richter 2016-04-22 20:46 ` Suravee Suthikulpanit 2016-04-22 20:46 ` Suravee Suthikulpanit 2016-04-22 20:46 ` Suravee Suthikulpanit 2016-04-25 17:23 ` Jeremy Linton 2016-04-25 17:23 ` Jeremy Linton 2016-04-26 9:07 ` liudongdong (C) 2016-04-26 9:07 ` liudongdong (C) 2016-04-26 9:07 ` liudongdong (C) 2016-04-28 21:27 ` [PATCH] acpi: pci: QDF2432 32 bit config space accessors Christopher Covington 2016-04-28 21:35 ` Rafael J. Wysocki
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1460740008-19489-14-git-send-email-tn@semihalf.com \ --to=tn@semihalf.com \ --cc=Liviu.Dudau@arm.com \ --cc=Lorenzo.Pieralisi@arm.com \ --cc=Suravee.Suthikulpanit@amd.com \ --cc=arnd@arndb.de \ --cc=catalin.marinas@arm.com \ --cc=ddaney@caviumnetworks.com \ --cc=hanjun.guo@linaro.org \ --cc=helgaas@kernel.org \ --cc=jchandra@broadcom.com \ --cc=jcm@redhat.com \ --cc=jiang.liu@linux.intel.com \ --cc=linaro-acpi@lists.linaro.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=msalter@redhat.com \ --cc=mw@semihalf.com \ --cc=okaya@codeaurora.org \ --cc=rafael@kernel.org \ --cc=robert.richter@caviumnetworks.com \ --cc=wangyijing@huawei.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.