asm-generic: Add new pci.h and use it

The asm/pci.h used for many newer architectures share similar definitions.
Move the common parts to asm-generic/pci.h to allow for sharing code.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/lkml/CAK8P3a0JmPeczfmMBE__vn=Jbvf=nkbpVaZCycyv40pZNCJJXQ@mail.gmail.com/
Link: https://lore.kernel.org/r/20220722214944.831438-5-shorne@gmail.com
Signed-off-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Pierre Morel <pmorel@linux.ibm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
Stafford Horne 2022-07-23 06:49:44 +09:00 committed by Bjorn Helgaas
parent f619d23576
commit a2912b45b0
5 changed files with 40 additions and 54 deletions

View File

@ -9,7 +9,6 @@
#include <asm/io.h> #include <asm/io.h>
#define PCIBIOS_MIN_IO 0x1000 #define PCIBIOS_MIN_IO 0x1000
#define PCIBIOS_MIN_MEM 0
/* /*
* Set to 1 if the kernel should re-assign all PCI bus numbers * Set to 1 if the kernel should re-assign all PCI bus numbers
@ -18,13 +17,8 @@
(pci_has_flag(PCI_REASSIGN_ALL_BUS)) (pci_has_flag(PCI_REASSIGN_ALL_BUS))
#define arch_can_pci_mmap_wc() 1 #define arch_can_pci_mmap_wc() 1
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
#ifdef CONFIG_PCI /* Generic PCI */
static inline int pci_proc_domain(struct pci_bus *bus) #include <asm-generic/pci.h>
{
return 1;
}
#endif /* CONFIG_PCI */
#endif /* __ASM_PCI_H */ #endif /* __ASM_PCI_H */

View File

@ -9,20 +9,7 @@
#include <asm/io.h> #include <asm/io.h>
#define PCIBIOS_MIN_IO 0 /* Generic PCI */
#define PCIBIOS_MIN_MEM 0 #include <asm-generic/pci.h>
/* C-SKY shim does not initialize PCI bus */
#define pcibios_assign_all_busses() 1
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
#ifdef CONFIG_PCI
static inline int pci_proc_domain(struct pci_bus *bus)
{
/* always show the domain in /proc */
return 1;
}
#endif /* CONFIG_PCI */
#endif /* __ASM_CSKY_PCI_H */ #endif /* __ASM_CSKY_PCI_H */

View File

@ -12,23 +12,7 @@
#include <asm/io.h> #include <asm/io.h>
#define PCIBIOS_MIN_IO 0 #if defined(CONFIG_PCI) && defined(CONFIG_NUMA)
#define PCIBIOS_MIN_MEM 0
/* RISC-V shim does not initialize PCI bus */
#define pcibios_assign_all_busses() 1
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
#ifdef CONFIG_PCI
static inline int pci_proc_domain(struct pci_bus *bus)
{
/* always show the domain in /proc */
return 1;
}
#ifdef CONFIG_NUMA
static inline int pcibus_to_node(struct pci_bus *bus) static inline int pcibus_to_node(struct pci_bus *bus)
{ {
return dev_to_node(&bus->dev); return dev_to_node(&bus->dev);
@ -38,8 +22,9 @@ static inline int pcibus_to_node(struct pci_bus *bus)
cpu_all_mask : \ cpu_all_mask : \
cpumask_of_node(pcibus_to_node(bus))) cpumask_of_node(pcibus_to_node(bus)))
#endif #endif
#endif /* CONFIG_NUMA */ #endif /* defined(CONFIG_PCI) && defined(CONFIG_NUMA) */
#endif /* CONFIG_PCI */ /* Generic PCI */
#include <asm-generic/pci.h>
#endif /* _ASM_RISCV_PCI_H */ #endif /* _ASM_RISCV_PCI_H */

View File

@ -4,18 +4,8 @@
#include <linux/types.h> #include <linux/types.h>
#include <asm/io.h> #include <asm/io.h>
#define PCIBIOS_MIN_IO 0 /* Generic PCI */
#define PCIBIOS_MIN_MEM 0 #include <asm-generic/pci.h>
#define pcibios_assign_all_busses() 1
#ifdef CONFIG_PCI_DOMAINS
static inline int pci_proc_domain(struct pci_bus *bus)
{
/* always show the domain in /proc */
return 1;
}
#endif /* CONFIG_PCI */
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
/* /*

30
include/asm-generic/pci.h Normal file
View File

@ -0,0 +1,30 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __ASM_GENERIC_PCI_H
#define __ASM_GENERIC_PCI_H
#ifndef PCIBIOS_MIN_IO
#define PCIBIOS_MIN_IO 0
#endif
#ifndef PCIBIOS_MIN_MEM
#define PCIBIOS_MIN_MEM 0
#endif
#ifndef pcibios_assign_all_busses
/* For bootloaders that do not initialize the PCI bus */
#define pcibios_assign_all_busses() 1
#endif
/* Enable generic resource mapping code in drivers/pci/ */
#define ARCH_GENERIC_PCI_MMAP_RESOURCE
#ifdef CONFIG_PCI_DOMAINS
static inline int pci_proc_domain(struct pci_bus *bus)
{
/* always show the domain in /proc */
return 1;
}
#endif /* CONFIG_PCI_DOMAINS */
#endif /* __ASM_GENERIC_PCI_H */