From: Tomasz Nowicki <tn@semihalf.com> To: bhelgaas@google.com, arnd@arndb.de, will.deacon@arm.com, catalin.marinas@arm.com, rjw@rjwysocki.net, hanjun.guo@linaro.org, Lorenzo.Pieralisi@arm.com, okaya@codeaurora.org, jiang.liu@linux.intel.com, Stefano.Stabellini@eu.citrix.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, jchandra@broadcom.com, jcm@redhat.com, Tomasz Nowicki <tn@semihalf.com> Subject: [PATCH V4 05/23] x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM driver. Date: Thu, 4 Feb 2016 18:28:43 +0100 [thread overview] Message-ID: <1454606941-9523-6-git-send-email-tn@semihalf.com> (raw) In-Reply-To: <1454606941-9523-1-git-send-email-tn@semihalf.com> mmconfig_64.c functions responsible for ECAM regions mapping are generic enough to use them for other architectures, GENERIC_ECAM_MAP should be selected in that case (like 64bit x86). Some hosts may need arch-specific mapping logic, thus they are obligated to provide own implementation and resign GENERIC_ECAM_MAP feature (like 32bit x86 does). Note, we leaved x86-specific PCI config accessors in the corresponding files. Signed-off-by: Tomasz Nowicki <tn@semihalf.com> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> Tested-by: Jeremy Linton <jeremy.linton@arm.com> Tested-by: Duc Dang <dhdang@apm.com> Tested-by: Dongdong Liu <liudongdong3@huawei.com> Tested-by: Hanjun Guo <hanjun.guo@linaro.org> Tested-by: Graeme Gregory <graeme.gregory@linaro.org> Tested-by: Sinan Kaya <okaya@codeaurora.org> --- arch/x86/Kconfig | 1 + arch/x86/include/asm/pci_x86.h | 4 --- arch/x86/pci/mmconfig_64.c | 55 --------------------------------------- drivers/acpi/mcfg.c | 2 -- drivers/pci/Kconfig | 3 +++ drivers/pci/ecam.c | 59 +++++++++++++++++++++++++++++++++++++++++- include/linux/ecam.h | 6 +++++ 7 files changed, 68 insertions(+), 62 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index a74acce..15674b9 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -65,6 +65,7 @@ config X86 select GENERIC_CMOS_UPDATE select GENERIC_CPU_AUTOPROBE select GENERIC_EARLY_IOREMAP + select GENERIC_ECAM_MAP if X86_64 select GENERIC_FIND_FIRST_BIT select GENERIC_IOMAP select GENERIC_IRQ_PROBE diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 26e7dd4..6e14518 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -122,10 +122,6 @@ extern int pci_legacy_init(void); extern void pcibios_fixup_irqs(void); /* pci-mmconfig.c */ -extern int __init pci_mmcfg_arch_init(void); -extern void __init pci_mmcfg_arch_free(void); -extern int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); -extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); extern int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end, phys_addr_t addr); diff --git a/arch/x86/pci/mmconfig_64.c b/arch/x86/pci/mmconfig_64.c index d0c48eb..fd356cc 100644 --- a/arch/x86/pci/mmconfig_64.c +++ b/arch/x86/pci/mmconfig_64.c @@ -90,58 +90,3 @@ int pci_mmcfg_write(unsigned int seg, unsigned int bus, return 0; } - -static void __iomem *mcfg_ioremap(struct pci_mmcfg_region *cfg) -{ - void __iomem *addr; - u64 start, size; - int num_buses; - - start = cfg->address + PCI_MMCFG_BUS_OFFSET(cfg->start_bus); - num_buses = cfg->end_bus - cfg->start_bus + 1; - size = PCI_MMCFG_BUS_OFFSET(num_buses); - addr = ioremap_nocache(start, size); - if (addr) - addr -= PCI_MMCFG_BUS_OFFSET(cfg->start_bus); - return addr; -} - -int __init pci_mmcfg_arch_init(void) -{ - struct pci_mmcfg_region *cfg; - - list_for_each_entry(cfg, &pci_mmcfg_list, list) - if (pci_mmcfg_arch_map(cfg)) { - pci_mmcfg_arch_free(); - return 0; - } - - return 1; -} - -void __init pci_mmcfg_arch_free(void) -{ - struct pci_mmcfg_region *cfg; - - list_for_each_entry(cfg, &pci_mmcfg_list, list) - pci_mmcfg_arch_unmap(cfg); -} - -int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) -{ - cfg->virt = mcfg_ioremap(cfg); - if (!cfg->virt) { - pr_err(PREFIX "can't map MMCONFIG at %pR\n", &cfg->res); - return -ENOMEM; - } - - return 0; -} - -void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg) -{ - if (cfg && cfg->virt) { - iounmap(cfg->virt + PCI_MMCFG_BUS_OFFSET(cfg->start_bus)); - cfg->virt = NULL; - } -} diff --git a/drivers/acpi/mcfg.c b/drivers/acpi/mcfg.c index fad9917..745b83e 100644 --- a/drivers/acpi/mcfg.c +++ b/drivers/acpi/mcfg.c @@ -10,8 +10,6 @@ #include <linux/acpi.h> #include <linux/ecam.h> -#include <asm/pci_x86.h> /* Temp hack before refactoring arch-specific calls */ - #define PREFIX "MCFG: " int __init acpi_parse_mcfg(struct acpi_table_header *header) diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 9950248..dd26f39 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -33,6 +33,9 @@ config PCI_ECAM config HAVE_PCI_ECAM bool +config GENERIC_ECAM_MAP + bool + config PCI_DEBUG bool "PCI Debugging" depends on PCI && DEBUG_KERNEL diff --git a/drivers/pci/ecam.c b/drivers/pci/ecam.c index d221dba..7bc75af 100644 --- a/drivers/pci/ecam.c +++ b/drivers/pci/ecam.c @@ -16,7 +16,6 @@ #include <linux/ecam.h> #include <asm/io.h> -#include <asm/pci_x86.h> /* Temp hack before refactoring arch-specific calls */ #define PREFIX "PCI: " @@ -24,6 +23,64 @@ static DEFINE_MUTEX(pci_mmcfg_lock); LIST_HEAD(pci_mmcfg_list); +#ifdef CONFIG_GENERIC_ECAM_MAP + +static void __iomem *mcfg_ioremap(struct pci_mmcfg_region *cfg) +{ + void __iomem *addr; + u64 start, size; + int num_buses; + + start = cfg->address + PCI_MMCFG_BUS_OFFSET(cfg->start_bus); + num_buses = cfg->end_bus - cfg->start_bus + 1; + size = PCI_MMCFG_BUS_OFFSET(num_buses); + addr = ioremap_nocache(start, size); + if (addr) + addr -= PCI_MMCFG_BUS_OFFSET(cfg->start_bus); + return addr; +} + +int __init pci_mmcfg_arch_init(void) +{ + struct pci_mmcfg_region *cfg; + + list_for_each_entry(cfg, &pci_mmcfg_list, list) + if (pci_mmcfg_arch_map(cfg)) { + pci_mmcfg_arch_free(); + return 0; + } + + return 1; +} + +void __init pci_mmcfg_arch_free(void) +{ + struct pci_mmcfg_region *cfg; + + list_for_each_entry(cfg, &pci_mmcfg_list, list) + pci_mmcfg_arch_unmap(cfg); +} + +int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) +{ + cfg->virt = mcfg_ioremap(cfg); + if (!cfg->virt) { + pr_err(PREFIX "can't map MMCONFIG at %pR\n", &cfg->res); + return -ENOMEM; + } + + return 0; +} + +void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg) +{ + if (cfg && cfg->virt) { + iounmap(cfg->virt + PCI_MMCFG_BUS_OFFSET(cfg->start_bus)); + cfg->virt = NULL; + } +} +#endif /* CONFIG_GENERIC_ECAM_MAP */ + static void __init pci_mmconfig_remove(struct pci_mmcfg_region *cfg) { if (cfg->res.parent) diff --git a/include/linux/ecam.h b/include/linux/ecam.h index dec3b52..813acd1 100644 --- a/include/linux/ecam.h +++ b/include/linux/ecam.h @@ -29,6 +29,12 @@ void list_add_sorted(struct pci_mmcfg_region *new); void free_all_mmcfg(void); int pci_mmconfig_delete(u16 seg, u8 start, u8 end); +/* Arch specific calls */ +int pci_mmcfg_arch_init(void); +void pci_mmcfg_arch_free(void); +int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); +void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); + extern struct list_head pci_mmcfg_list; #define PCI_MMCFG_BUS_OFFSET(bus) ((bus) << 20) -- 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 V4 05/23] x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM driver. Date: Thu, 4 Feb 2016 18:28:43 +0100 [thread overview] Message-ID: <1454606941-9523-6-git-send-email-tn@semihalf.com> (raw) In-Reply-To: <1454606941-9523-1-git-send-email-tn@semihalf.com> mmconfig_64.c functions responsible for ECAM regions mapping are generic enough to use them for other architectures, GENERIC_ECAM_MAP should be selected in that case (like 64bit x86). Some hosts may need arch-specific mapping logic, thus they are obligated to provide own implementation and resign GENERIC_ECAM_MAP feature (like 32bit x86 does). Note, we leaved x86-specific PCI config accessors in the corresponding files. Signed-off-by: Tomasz Nowicki <tn@semihalf.com> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> Tested-by: Jeremy Linton <jeremy.linton@arm.com> Tested-by: Duc Dang <dhdang@apm.com> Tested-by: Dongdong Liu <liudongdong3@huawei.com> Tested-by: Hanjun Guo <hanjun.guo@linaro.org> Tested-by: Graeme Gregory <graeme.gregory@linaro.org> Tested-by: Sinan Kaya <okaya@codeaurora.org> --- arch/x86/Kconfig | 1 + arch/x86/include/asm/pci_x86.h | 4 --- arch/x86/pci/mmconfig_64.c | 55 --------------------------------------- drivers/acpi/mcfg.c | 2 -- drivers/pci/Kconfig | 3 +++ drivers/pci/ecam.c | 59 +++++++++++++++++++++++++++++++++++++++++- include/linux/ecam.h | 6 +++++ 7 files changed, 68 insertions(+), 62 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index a74acce..15674b9 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -65,6 +65,7 @@ config X86 select GENERIC_CMOS_UPDATE select GENERIC_CPU_AUTOPROBE select GENERIC_EARLY_IOREMAP + select GENERIC_ECAM_MAP if X86_64 select GENERIC_FIND_FIRST_BIT select GENERIC_IOMAP select GENERIC_IRQ_PROBE diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 26e7dd4..6e14518 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -122,10 +122,6 @@ extern int pci_legacy_init(void); extern void pcibios_fixup_irqs(void); /* pci-mmconfig.c */ -extern int __init pci_mmcfg_arch_init(void); -extern void __init pci_mmcfg_arch_free(void); -extern int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); -extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); extern int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end, phys_addr_t addr); diff --git a/arch/x86/pci/mmconfig_64.c b/arch/x86/pci/mmconfig_64.c index d0c48eb..fd356cc 100644 --- a/arch/x86/pci/mmconfig_64.c +++ b/arch/x86/pci/mmconfig_64.c @@ -90,58 +90,3 @@ int pci_mmcfg_write(unsigned int seg, unsigned int bus, return 0; } - -static void __iomem *mcfg_ioremap(struct pci_mmcfg_region *cfg) -{ - void __iomem *addr; - u64 start, size; - int num_buses; - - start = cfg->address + PCI_MMCFG_BUS_OFFSET(cfg->start_bus); - num_buses = cfg->end_bus - cfg->start_bus + 1; - size = PCI_MMCFG_BUS_OFFSET(num_buses); - addr = ioremap_nocache(start, size); - if (addr) - addr -= PCI_MMCFG_BUS_OFFSET(cfg->start_bus); - return addr; -} - -int __init pci_mmcfg_arch_init(void) -{ - struct pci_mmcfg_region *cfg; - - list_for_each_entry(cfg, &pci_mmcfg_list, list) - if (pci_mmcfg_arch_map(cfg)) { - pci_mmcfg_arch_free(); - return 0; - } - - return 1; -} - -void __init pci_mmcfg_arch_free(void) -{ - struct pci_mmcfg_region *cfg; - - list_for_each_entry(cfg, &pci_mmcfg_list, list) - pci_mmcfg_arch_unmap(cfg); -} - -int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) -{ - cfg->virt = mcfg_ioremap(cfg); - if (!cfg->virt) { - pr_err(PREFIX "can't map MMCONFIG at %pR\n", &cfg->res); - return -ENOMEM; - } - - return 0; -} - -void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg) -{ - if (cfg && cfg->virt) { - iounmap(cfg->virt + PCI_MMCFG_BUS_OFFSET(cfg->start_bus)); - cfg->virt = NULL; - } -} diff --git a/drivers/acpi/mcfg.c b/drivers/acpi/mcfg.c index fad9917..745b83e 100644 --- a/drivers/acpi/mcfg.c +++ b/drivers/acpi/mcfg.c @@ -10,8 +10,6 @@ #include <linux/acpi.h> #include <linux/ecam.h> -#include <asm/pci_x86.h> /* Temp hack before refactoring arch-specific calls */ - #define PREFIX "MCFG: " int __init acpi_parse_mcfg(struct acpi_table_header *header) diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 9950248..dd26f39 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -33,6 +33,9 @@ config PCI_ECAM config HAVE_PCI_ECAM bool +config GENERIC_ECAM_MAP + bool + config PCI_DEBUG bool "PCI Debugging" depends on PCI && DEBUG_KERNEL diff --git a/drivers/pci/ecam.c b/drivers/pci/ecam.c index d221dba..7bc75af 100644 --- a/drivers/pci/ecam.c +++ b/drivers/pci/ecam.c @@ -16,7 +16,6 @@ #include <linux/ecam.h> #include <asm/io.h> -#include <asm/pci_x86.h> /* Temp hack before refactoring arch-specific calls */ #define PREFIX "PCI: " @@ -24,6 +23,64 @@ static DEFINE_MUTEX(pci_mmcfg_lock); LIST_HEAD(pci_mmcfg_list); +#ifdef CONFIG_GENERIC_ECAM_MAP + +static void __iomem *mcfg_ioremap(struct pci_mmcfg_region *cfg) +{ + void __iomem *addr; + u64 start, size; + int num_buses; + + start = cfg->address + PCI_MMCFG_BUS_OFFSET(cfg->start_bus); + num_buses = cfg->end_bus - cfg->start_bus + 1; + size = PCI_MMCFG_BUS_OFFSET(num_buses); + addr = ioremap_nocache(start, size); + if (addr) + addr -= PCI_MMCFG_BUS_OFFSET(cfg->start_bus); + return addr; +} + +int __init pci_mmcfg_arch_init(void) +{ + struct pci_mmcfg_region *cfg; + + list_for_each_entry(cfg, &pci_mmcfg_list, list) + if (pci_mmcfg_arch_map(cfg)) { + pci_mmcfg_arch_free(); + return 0; + } + + return 1; +} + +void __init pci_mmcfg_arch_free(void) +{ + struct pci_mmcfg_region *cfg; + + list_for_each_entry(cfg, &pci_mmcfg_list, list) + pci_mmcfg_arch_unmap(cfg); +} + +int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) +{ + cfg->virt = mcfg_ioremap(cfg); + if (!cfg->virt) { + pr_err(PREFIX "can't map MMCONFIG at %pR\n", &cfg->res); + return -ENOMEM; + } + + return 0; +} + +void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg) +{ + if (cfg && cfg->virt) { + iounmap(cfg->virt + PCI_MMCFG_BUS_OFFSET(cfg->start_bus)); + cfg->virt = NULL; + } +} +#endif /* CONFIG_GENERIC_ECAM_MAP */ + static void __init pci_mmconfig_remove(struct pci_mmcfg_region *cfg) { if (cfg->res.parent) diff --git a/include/linux/ecam.h b/include/linux/ecam.h index dec3b52..813acd1 100644 --- a/include/linux/ecam.h +++ b/include/linux/ecam.h @@ -29,6 +29,12 @@ void list_add_sorted(struct pci_mmcfg_region *new); void free_all_mmcfg(void); int pci_mmconfig_delete(u16 seg, u8 start, u8 end); +/* Arch specific calls */ +int pci_mmcfg_arch_init(void); +void pci_mmcfg_arch_free(void); +int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); +void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); + extern struct list_head pci_mmcfg_list; #define PCI_MMCFG_BUS_OFFSET(bus) ((bus) << 20) -- 1.9.1
next prev parent reply other threads:[~2016-02-04 17:28 UTC|newest] Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-02-04 17:28 [PATCH V4 00/23] MMCONFIG refactoring and support for ARM64 PCI hostbridge init based on ACPI Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 01/23] x86, pci: Reorder logic of pci_mmconfig_insert() function Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 02/23] x86, pci, acpi: Move arch-agnostic MMCONFIG (aka ECAM) and ACPI code out of arch/x86/ directory Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 03/23] pci, acpi, mcfg: Provide generic implementation of MCFG code initialization Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 04/23] x86, pci: mmconfig_{32, 64}.c code refactoring - remove code duplication Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 04/23] x86, pci: mmconfig_{32,64}.c " Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki [this message] 2016-02-04 17:28 ` [PATCH V4 05/23] x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM driver Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 06/23] XEN / PCI: Remove the dependence on arch x86 when PCI_MMCONFIG=y Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 07/23] pci, acpi, mcfg: Provide default RAW ACPI PCI config space accessors Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 08/23] arm64, acpi: Use MCFG and empty PCI config space accessors from mcfg.c file Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 09/23] pci, acpi, ecam: Add flag to indicate whether ECAM region was hot added or not Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 10/23] x86, pci: Cleanup platform specific MCFG data by using ECAM hot_added flag Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 11/23] pci, acpi: Move ACPI host bridge device companion assignment to core code Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-09 18:02 ` Lorenzo Pieralisi 2016-02-09 18:02 ` Lorenzo Pieralisi 2016-02-10 21:09 ` Tomasz Nowicki 2016-02-10 21:09 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 12/23] x86, ia64, pci: Remove ACPI companion device from platform specific data Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-09 17:28 ` Lorenzo Pieralisi 2016-02-09 17:28 ` Lorenzo Pieralisi 2016-02-10 21:21 ` Tomasz Nowicki 2016-02-10 21:21 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 13/23] pci, acpi: Provide generic way to assign bus domain number Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 14/23] x86, ia64: Include acpi_pci_{add|remove}_bus to the default pcibios_{add|remove}_bus implementation Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 15/23] acpi, mcfg: Implement two calls that might be used to inject/remove MCFG region Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-10 14:06 ` Lorenzo Pieralisi 2016-02-10 14:06 ` Lorenzo Pieralisi 2016-02-12 8:56 ` Tomasz Nowicki 2016-02-12 8:56 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 16/23] x86, acpi, pci: Use equivalent function from mcfg.c driver Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 17/23] acpi, mcfg: Add default PCI config accessors implementation and initial support for related quirks Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-29 8:03 ` Jayachandran Chandrashekaran Nair 2016-02-29 8:03 ` Jayachandran Chandrashekaran Nair 2016-02-29 8:03 ` Jayachandran Chandrashekaran Nair 2016-03-02 10:42 ` Lorenzo Pieralisi 2016-03-02 10:42 ` Lorenzo Pieralisi 2016-03-02 10:42 ` Lorenzo Pieralisi 2016-02-04 17:28 ` [PATCH V4 18/23] pci, of: Move the PCI I/O space management to PCI core code Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 19/23] drivers: pci: add generic code to claim bus resources Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 20/23] pci, acpi: Support for ACPI based generic PCI host controller init Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:28 ` [PATCH V4 21/23] pci, acpi: Match PCI config space accessors against platfrom specific quirks Tomasz Nowicki 2016-02-04 17:28 ` Tomasz Nowicki 2016-02-04 17:29 ` [PATCH V4 22/23] arm64, pci, acpi: Assign legacy IRQs once device is enable Tomasz Nowicki 2016-02-04 17:29 ` Tomasz Nowicki 2016-02-11 11:58 ` Lorenzo Pieralisi 2016-02-11 11:58 ` Lorenzo Pieralisi 2016-02-11 17:17 ` Lorenzo Pieralisi 2016-02-11 17:17 ` Lorenzo Pieralisi 2016-02-11 18:39 ` Tomasz Nowicki 2016-02-11 18:39 ` Tomasz Nowicki 2016-02-11 18:46 ` Tomasz Nowicki 2016-02-11 18:46 ` Tomasz Nowicki 2016-02-04 17:29 ` [PATCH V4 23/23] arm64, pci, acpi: Start using ACPI based PCI host bridge driver for ARM64 Tomasz Nowicki 2016-02-04 17:29 ` Tomasz Nowicki
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=1454606941-9523-6-git-send-email-tn@semihalf.com \ --to=tn@semihalf.com \ --cc=Liviu.Dudau@arm.com \ --cc=Lorenzo.Pieralisi@arm.com \ --cc=Stefano.Stabellini@eu.citrix.com \ --cc=Suravee.Suthikulpanit@amd.com \ --cc=arnd@arndb.de \ --cc=bhelgaas@google.com \ --cc=catalin.marinas@arm.com \ --cc=ddaney@caviumnetworks.com \ --cc=hanjun.guo@linaro.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=rjw@rjwysocki.net \ --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.