PCI/MSI: Get rid of PCI_MSI_IRQ_DOMAIN
What a zoo: PCI_MSI select GENERIC_MSI_IRQ PCI_MSI_IRQ_DOMAIN def_bool y depends on PCI_MSI select GENERIC_MSI_IRQ_DOMAIN Ergo PCI_MSI enables PCI_MSI_IRQ_DOMAIN which in turn selects GENERIC_MSI_IRQ_DOMAIN. So all the dependencies on PCI_MSI_IRQ_DOMAIN are just an indirection to PCI_MSI. Match the reality and just admit that PCI_MSI requires GENERIC_MSI_IRQ_DOMAIN. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://lore.kernel.org/r/20221111122014.467556921@linutronix.de
This commit is contained in:
parent
b2bdda205c
commit
a474d3fbe2
11 changed files with 58 additions and 75 deletions
|
@ -381,7 +381,6 @@ config UML_PCI_OVER_VIRTIO
|
||||||
select UML_IOMEM_EMULATION
|
select UML_IOMEM_EMULATION
|
||||||
select UML_DMA_EMULATION
|
select UML_DMA_EMULATION
|
||||||
select PCI_MSI
|
select PCI_MSI
|
||||||
select PCI_MSI_IRQ_DOMAIN
|
|
||||||
select PCI_LOCKLESS_CONFIG
|
select PCI_LOCKLESS_CONFIG
|
||||||
|
|
||||||
config UML_PCI_OVER_VIRTIO_DEVICE_ID
|
config UML_PCI_OVER_VIRTIO_DEVICE_ID
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
/* Generic PCI */
|
/* Generic PCI */
|
||||||
#include <asm-generic/pci.h>
|
#include <asm-generic/pci.h>
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
#ifdef CONFIG_PCI_MSI
|
||||||
/*
|
/*
|
||||||
* This is a bit of an annoying hack, and it assumes we only have
|
* This is a bit of an annoying hack, and it assumes we only have
|
||||||
* the virt-pci (if anything). Which is true, but still.
|
* the virt-pci (if anything). Which is true, but still.
|
||||||
|
|
|
@ -1109,7 +1109,6 @@ config X86_LOCAL_APIC
|
||||||
def_bool y
|
def_bool y
|
||||||
depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
|
depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
|
||||||
select IRQ_DOMAIN_HIERARCHY
|
select IRQ_DOMAIN_HIERARCHY
|
||||||
select PCI_MSI_IRQ_DOMAIN if PCI_MSI
|
|
||||||
|
|
||||||
config X86_IO_APIC
|
config X86_IO_APIC
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
|
@ -21,7 +21,7 @@ struct pci_sysdata {
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
void *iommu; /* IOMMU private data */
|
void *iommu; /* IOMMU private data */
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
#ifdef CONFIG_PCI_MSI
|
||||||
void *fwnode; /* IRQ domain for MSI assignment */
|
void *fwnode; /* IRQ domain for MSI assignment */
|
||||||
#endif
|
#endif
|
||||||
#if IS_ENABLED(CONFIG_VMD)
|
#if IS_ENABLED(CONFIG_VMD)
|
||||||
|
@ -52,7 +52,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
#ifdef CONFIG_PCI_MSI
|
||||||
static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
|
static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
return to_pci_sysdata(bus)->fwnode;
|
return to_pci_sysdata(bus)->fwnode;
|
||||||
|
|
|
@ -38,6 +38,7 @@ source "drivers/pci/pcie/Kconfig"
|
||||||
|
|
||||||
config PCI_MSI
|
config PCI_MSI
|
||||||
bool "Message Signaled Interrupts (MSI and MSI-X)"
|
bool "Message Signaled Interrupts (MSI and MSI-X)"
|
||||||
|
select GENERIC_MSI_IRQ_DOMAIN
|
||||||
select GENERIC_MSI_IRQ
|
select GENERIC_MSI_IRQ
|
||||||
help
|
help
|
||||||
This allows device drivers to enable MSI (Message Signaled
|
This allows device drivers to enable MSI (Message Signaled
|
||||||
|
@ -51,11 +52,6 @@ config PCI_MSI
|
||||||
|
|
||||||
If you don't know what to do here, say Y.
|
If you don't know what to do here, say Y.
|
||||||
|
|
||||||
config PCI_MSI_IRQ_DOMAIN
|
|
||||||
def_bool y
|
|
||||||
depends on PCI_MSI
|
|
||||||
select GENERIC_MSI_IRQ_DOMAIN
|
|
||||||
|
|
||||||
config PCI_MSI_ARCH_FALLBACKS
|
config PCI_MSI_ARCH_FALLBACKS
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
@ -192,7 +188,7 @@ config PCI_LABEL
|
||||||
|
|
||||||
config PCI_HYPERV
|
config PCI_HYPERV
|
||||||
tristate "Hyper-V PCI Frontend"
|
tristate "Hyper-V PCI Frontend"
|
||||||
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && SYSFS
|
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && SYSFS
|
||||||
select PCI_HYPERV_INTERFACE
|
select PCI_HYPERV_INTERFACE
|
||||||
help
|
help
|
||||||
The PCI device frontend driver allows the kernel to import arbitrary
|
The PCI device frontend driver allows the kernel to import arbitrary
|
||||||
|
|
|
@ -19,7 +19,7 @@ config PCI_AARDVARK
|
||||||
tristate "Aardvark PCIe controller"
|
tristate "Aardvark PCIe controller"
|
||||||
depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
|
depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCI_BRIDGE_EMUL
|
select PCI_BRIDGE_EMUL
|
||||||
help
|
help
|
||||||
Add support for Aardvark 64bit PCIe Host Controller. This
|
Add support for Aardvark 64bit PCIe Host Controller. This
|
||||||
|
@ -29,7 +29,7 @@ config PCI_AARDVARK
|
||||||
config PCIE_XILINX_NWL
|
config PCIE_XILINX_NWL
|
||||||
bool "NWL PCIe Core"
|
bool "NWL PCIe Core"
|
||||||
depends on ARCH_ZYNQMP || COMPILE_TEST
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want kernel support for Xilinx
|
Say 'Y' here if you want kernel support for Xilinx
|
||||||
NWL PCIe controller. The controller can act as Root Port
|
NWL PCIe controller. The controller can act as Root Port
|
||||||
|
@ -53,7 +53,7 @@ config PCI_IXP4XX
|
||||||
config PCI_TEGRA
|
config PCI_TEGRA
|
||||||
bool "NVIDIA Tegra PCIe controller"
|
bool "NVIDIA Tegra PCIe controller"
|
||||||
depends on ARCH_TEGRA || COMPILE_TEST
|
depends on ARCH_TEGRA || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say Y here if you want support for the PCIe host controller found
|
Say Y here if you want support for the PCIe host controller found
|
||||||
on NVIDIA Tegra SoCs.
|
on NVIDIA Tegra SoCs.
|
||||||
|
@ -70,7 +70,7 @@ config PCI_RCAR_GEN2
|
||||||
config PCIE_RCAR_HOST
|
config PCIE_RCAR_HOST
|
||||||
bool "Renesas R-Car PCIe host controller"
|
bool "Renesas R-Car PCIe host controller"
|
||||||
depends on ARCH_RENESAS || COMPILE_TEST
|
depends on ARCH_RENESAS || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe controller support on R-Car SoCs in host
|
Say Y here if you want PCIe controller support on R-Car SoCs in host
|
||||||
mode.
|
mode.
|
||||||
|
@ -99,7 +99,7 @@ config PCI_HOST_GENERIC
|
||||||
config PCIE_XILINX
|
config PCIE_XILINX
|
||||||
bool "Xilinx AXI PCIe host bridge support"
|
bool "Xilinx AXI PCIe host bridge support"
|
||||||
depends on OF || COMPILE_TEST
|
depends on OF || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
|
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
|
||||||
Host Bridge driver.
|
Host Bridge driver.
|
||||||
|
@ -124,7 +124,7 @@ config PCI_XGENE
|
||||||
config PCI_XGENE_MSI
|
config PCI_XGENE_MSI
|
||||||
bool "X-Gene v1 PCIe MSI feature"
|
bool "X-Gene v1 PCIe MSI feature"
|
||||||
depends on PCI_XGENE
|
depends on PCI_XGENE
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
|
Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
|
||||||
|
@ -170,7 +170,7 @@ config PCIE_IPROC_BCMA
|
||||||
config PCIE_IPROC_MSI
|
config PCIE_IPROC_MSI
|
||||||
bool "Broadcom iProc PCIe MSI support"
|
bool "Broadcom iProc PCIe MSI support"
|
||||||
depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
|
depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
default ARCH_BCM_IPROC
|
default ARCH_BCM_IPROC
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable MSI support for Broadcom's iProc
|
Say Y here if you want to enable MSI support for Broadcom's iProc
|
||||||
|
@ -186,7 +186,7 @@ config PCIE_ALTERA
|
||||||
config PCIE_ALTERA_MSI
|
config PCIE_ALTERA_MSI
|
||||||
tristate "Altera PCIe MSI feature"
|
tristate "Altera PCIe MSI feature"
|
||||||
depends on PCIE_ALTERA
|
depends on PCIE_ALTERA
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe MSI support for the Altera FPGA.
|
Say Y here if you want PCIe MSI support for the Altera FPGA.
|
||||||
This MSI driver supports Altera MSI to GIC controller IP.
|
This MSI driver supports Altera MSI to GIC controller IP.
|
||||||
|
@ -215,7 +215,7 @@ config PCIE_ROCKCHIP_HOST
|
||||||
tristate "Rockchip PCIe host controller"
|
tristate "Rockchip PCIe host controller"
|
||||||
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select MFD_SYSCON
|
select MFD_SYSCON
|
||||||
select PCIE_ROCKCHIP
|
select PCIE_ROCKCHIP
|
||||||
help
|
help
|
||||||
|
@ -239,7 +239,7 @@ config PCIE_MEDIATEK
|
||||||
tristate "MediaTek PCIe controller"
|
tristate "MediaTek PCIe controller"
|
||||||
depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
|
depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable PCIe controller support on
|
Say Y here if you want to enable PCIe controller support on
|
||||||
MediaTek SoCs.
|
MediaTek SoCs.
|
||||||
|
@ -247,7 +247,7 @@ config PCIE_MEDIATEK
|
||||||
config PCIE_MEDIATEK_GEN3
|
config PCIE_MEDIATEK_GEN3
|
||||||
tristate "MediaTek Gen3 PCIe controller"
|
tristate "MediaTek Gen3 PCIe controller"
|
||||||
depends on ARCH_MEDIATEK || COMPILE_TEST
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
help
|
help
|
||||||
Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
|
Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
|
||||||
This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
|
This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
|
||||||
|
@ -277,7 +277,7 @@ config PCIE_BRCMSTB
|
||||||
depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
|
depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
|
||||||
BMIPS_GENERIC || COMPILE_TEST
|
BMIPS_GENERIC || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
default ARCH_BRCMSTB || BMIPS_GENERIC
|
default ARCH_BRCMSTB || BMIPS_GENERIC
|
||||||
help
|
help
|
||||||
Say Y here to enable PCIe host controller support for
|
Say Y here to enable PCIe host controller support for
|
||||||
|
@ -285,7 +285,7 @@ config PCIE_BRCMSTB
|
||||||
|
|
||||||
config PCI_HYPERV_INTERFACE
|
config PCI_HYPERV_INTERFACE
|
||||||
tristate "Hyper-V PCI Interface"
|
tristate "Hyper-V PCI Interface"
|
||||||
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
|
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI
|
||||||
help
|
help
|
||||||
The Hyper-V PCI Interface is a helper driver allows other drivers to
|
The Hyper-V PCI Interface is a helper driver allows other drivers to
|
||||||
have a common interface with the Hyper-V PCI frontend driver.
|
have a common interface with the Hyper-V PCI frontend driver.
|
||||||
|
@ -303,8 +303,6 @@ config PCI_LOONGSON
|
||||||
config PCIE_MICROCHIP_HOST
|
config PCIE_MICROCHIP_HOST
|
||||||
bool "Microchip AXI PCIe host bridge support"
|
bool "Microchip AXI PCIe host bridge support"
|
||||||
depends on PCI_MSI && OF
|
depends on PCI_MSI && OF
|
||||||
select PCI_MSI_IRQ_DOMAIN
|
|
||||||
select GENERIC_MSI_IRQ_DOMAIN
|
|
||||||
select PCI_HOST_COMMON
|
select PCI_HOST_COMMON
|
||||||
help
|
help
|
||||||
Say Y here if you want kernel to support the Microchip AXI PCIe
|
Say Y here if you want kernel to support the Microchip AXI PCIe
|
||||||
|
@ -326,7 +324,7 @@ config PCIE_APPLE
|
||||||
tristate "Apple PCIe controller"
|
tristate "Apple PCIe controller"
|
||||||
depends on ARCH_APPLE || COMPILE_TEST
|
depends on ARCH_APPLE || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCI_HOST_COMMON
|
select PCI_HOST_COMMON
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable PCIe controller support on Apple
|
Say Y here if you want to enable PCIe controller support on Apple
|
||||||
|
|
|
@ -21,7 +21,7 @@ config PCI_DRA7XX_HOST
|
||||||
tristate "TI DRA7xx PCIe controller Host Mode"
|
tristate "TI DRA7xx PCIe controller Host Mode"
|
||||||
depends on SOC_DRA7XX || COMPILE_TEST
|
depends on SOC_DRA7XX || COMPILE_TEST
|
||||||
depends on OF && HAS_IOMEM && TI_PIPE3
|
depends on OF && HAS_IOMEM && TI_PIPE3
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCI_DRA7XX
|
select PCI_DRA7XX
|
||||||
default y if SOC_DRA7XX
|
default y if SOC_DRA7XX
|
||||||
|
@ -53,7 +53,7 @@ config PCIE_DW_PLAT
|
||||||
|
|
||||||
config PCIE_DW_PLAT_HOST
|
config PCIE_DW_PLAT_HOST
|
||||||
bool "Platform bus based DesignWare PCIe Controller - Host mode"
|
bool "Platform bus based DesignWare PCIe Controller - Host mode"
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCIE_DW_PLAT
|
select PCIE_DW_PLAT
|
||||||
help
|
help
|
||||||
|
@ -67,7 +67,7 @@ config PCIE_DW_PLAT_HOST
|
||||||
|
|
||||||
config PCIE_DW_PLAT_EP
|
config PCIE_DW_PLAT_EP
|
||||||
bool "Platform bus based DesignWare PCIe Controller - Endpoint mode"
|
bool "Platform bus based DesignWare PCIe Controller - Endpoint mode"
|
||||||
depends on PCI && PCI_MSI_IRQ_DOMAIN
|
depends on PCI && PCI_MSI
|
||||||
depends on PCI_ENDPOINT
|
depends on PCI_ENDPOINT
|
||||||
select PCIE_DW_EP
|
select PCIE_DW_EP
|
||||||
select PCIE_DW_PLAT
|
select PCIE_DW_PLAT
|
||||||
|
@ -83,7 +83,7 @@ config PCIE_DW_PLAT_EP
|
||||||
config PCI_EXYNOS
|
config PCI_EXYNOS
|
||||||
tristate "Samsung Exynos PCIe controller"
|
tristate "Samsung Exynos PCIe controller"
|
||||||
depends on ARCH_EXYNOS || COMPILE_TEST
|
depends on ARCH_EXYNOS || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Enables support for the PCIe controller in the Samsung Exynos SoCs
|
Enables support for the PCIe controller in the Samsung Exynos SoCs
|
||||||
|
@ -94,13 +94,13 @@ config PCI_EXYNOS
|
||||||
config PCI_IMX6
|
config PCI_IMX6
|
||||||
bool "Freescale i.MX6/7/8 PCIe controller"
|
bool "Freescale i.MX6/7/8 PCIe controller"
|
||||||
depends on ARCH_MXC || COMPILE_TEST
|
depends on ARCH_MXC || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
|
|
||||||
config PCIE_SPEAR13XX
|
config PCIE_SPEAR13XX
|
||||||
bool "STMicroelectronics SPEAr PCIe controller"
|
bool "STMicroelectronics SPEAr PCIe controller"
|
||||||
depends on ARCH_SPEAR13XX || COMPILE_TEST
|
depends on ARCH_SPEAR13XX || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe support on SPEAr13XX SoCs.
|
Say Y here if you want PCIe support on SPEAr13XX SoCs.
|
||||||
|
@ -111,7 +111,7 @@ config PCI_KEYSTONE
|
||||||
config PCI_KEYSTONE_HOST
|
config PCI_KEYSTONE_HOST
|
||||||
bool "PCI Keystone Host Mode"
|
bool "PCI Keystone Host Mode"
|
||||||
depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
|
depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCI_KEYSTONE
|
select PCI_KEYSTONE
|
||||||
help
|
help
|
||||||
|
@ -135,7 +135,7 @@ config PCI_KEYSTONE_EP
|
||||||
config PCI_LAYERSCAPE
|
config PCI_LAYERSCAPE
|
||||||
bool "Freescale Layerscape PCIe controller - Host mode"
|
bool "Freescale Layerscape PCIe controller - Host mode"
|
||||||
depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
|
depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select MFD_SYSCON
|
select MFD_SYSCON
|
||||||
help
|
help
|
||||||
|
@ -160,7 +160,7 @@ config PCI_LAYERSCAPE_EP
|
||||||
config PCI_HISI
|
config PCI_HISI
|
||||||
depends on OF && (ARM64 || COMPILE_TEST)
|
depends on OF && (ARM64 || COMPILE_TEST)
|
||||||
bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
|
bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCI_HOST_COMMON
|
select PCI_HOST_COMMON
|
||||||
help
|
help
|
||||||
|
@ -170,7 +170,7 @@ config PCI_HISI
|
||||||
config PCIE_QCOM
|
config PCIE_QCOM
|
||||||
bool "Qualcomm PCIe controller"
|
bool "Qualcomm PCIe controller"
|
||||||
depends on OF && (ARCH_QCOM || COMPILE_TEST)
|
depends on OF && (ARCH_QCOM || COMPILE_TEST)
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select CRC8
|
select CRC8
|
||||||
help
|
help
|
||||||
|
@ -191,7 +191,7 @@ config PCIE_QCOM_EP
|
||||||
config PCIE_ARMADA_8K
|
config PCIE_ARMADA_8K
|
||||||
bool "Marvell Armada-8K PCIe controller"
|
bool "Marvell Armada-8K PCIe controller"
|
||||||
depends on ARCH_MVEBU || COMPILE_TEST
|
depends on ARCH_MVEBU || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable PCIe controller support on
|
Say Y here if you want to enable PCIe controller support on
|
||||||
|
@ -205,7 +205,7 @@ config PCIE_ARTPEC6
|
||||||
config PCIE_ARTPEC6_HOST
|
config PCIE_ARTPEC6_HOST
|
||||||
bool "Axis ARTPEC-6 PCIe controller Host Mode"
|
bool "Axis ARTPEC-6 PCIe controller Host Mode"
|
||||||
depends on MACH_ARTPEC6 || COMPILE_TEST
|
depends on MACH_ARTPEC6 || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCIE_ARTPEC6
|
select PCIE_ARTPEC6
|
||||||
help
|
help
|
||||||
|
@ -226,7 +226,7 @@ config PCIE_ROCKCHIP_DW_HOST
|
||||||
bool "Rockchip DesignWare PCIe controller"
|
bool "Rockchip DesignWare PCIe controller"
|
||||||
select PCIE_DW
|
select PCIE_DW
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
help
|
help
|
||||||
|
@ -236,7 +236,7 @@ config PCIE_ROCKCHIP_DW_HOST
|
||||||
config PCIE_INTEL_GW
|
config PCIE_INTEL_GW
|
||||||
bool "Intel Gateway PCIe host controller support"
|
bool "Intel Gateway PCIe host controller support"
|
||||||
depends on OF && (X86 || COMPILE_TEST)
|
depends on OF && (X86 || COMPILE_TEST)
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say 'Y' here to enable PCIe Host controller support on Intel
|
Say 'Y' here to enable PCIe Host controller support on Intel
|
||||||
|
@ -250,7 +250,7 @@ config PCIE_KEEMBAY
|
||||||
config PCIE_KEEMBAY_HOST
|
config PCIE_KEEMBAY_HOST
|
||||||
bool "Intel Keem Bay PCIe controller - Host mode"
|
bool "Intel Keem Bay PCIe controller - Host mode"
|
||||||
depends on ARCH_KEEMBAY || COMPILE_TEST
|
depends on ARCH_KEEMBAY || COMPILE_TEST
|
||||||
depends on PCI && PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCIE_KEEMBAY
|
select PCIE_KEEMBAY
|
||||||
help
|
help
|
||||||
|
@ -262,7 +262,7 @@ config PCIE_KEEMBAY_HOST
|
||||||
config PCIE_KEEMBAY_EP
|
config PCIE_KEEMBAY_EP
|
||||||
bool "Intel Keem Bay PCIe controller - Endpoint mode"
|
bool "Intel Keem Bay PCIe controller - Endpoint mode"
|
||||||
depends on ARCH_KEEMBAY || COMPILE_TEST
|
depends on ARCH_KEEMBAY || COMPILE_TEST
|
||||||
depends on PCI && PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
depends on PCI_ENDPOINT
|
depends on PCI_ENDPOINT
|
||||||
select PCIE_DW_EP
|
select PCIE_DW_EP
|
||||||
select PCIE_KEEMBAY
|
select PCIE_KEEMBAY
|
||||||
|
@ -275,7 +275,7 @@ config PCIE_KEEMBAY_EP
|
||||||
config PCIE_KIRIN
|
config PCIE_KIRIN
|
||||||
depends on OF && (ARM64 || COMPILE_TEST)
|
depends on OF && (ARM64 || COMPILE_TEST)
|
||||||
tristate "HiSilicon Kirin series SoCs PCIe controllers"
|
tristate "HiSilicon Kirin series SoCs PCIe controllers"
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe controller support
|
Say Y here if you want PCIe controller support
|
||||||
|
@ -284,7 +284,7 @@ config PCIE_KIRIN
|
||||||
config PCIE_HISI_STB
|
config PCIE_HISI_STB
|
||||||
bool "HiSilicon STB SoCs PCIe controllers"
|
bool "HiSilicon STB SoCs PCIe controllers"
|
||||||
depends on ARCH_HISI || COMPILE_TEST
|
depends on ARCH_HISI || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe controller support on HiSilicon STB SoCs
|
Say Y here if you want PCIe controller support on HiSilicon STB SoCs
|
||||||
|
@ -292,7 +292,7 @@ config PCIE_HISI_STB
|
||||||
config PCI_MESON
|
config PCI_MESON
|
||||||
tristate "MESON PCIe controller"
|
tristate "MESON PCIe controller"
|
||||||
default m if ARCH_MESON
|
default m if ARCH_MESON
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable PCI controller support on Amlogic
|
Say Y here if you want to enable PCI controller support on Amlogic
|
||||||
|
@ -306,7 +306,7 @@ config PCIE_TEGRA194
|
||||||
config PCIE_TEGRA194_HOST
|
config PCIE_TEGRA194_HOST
|
||||||
tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
|
tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
|
||||||
depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
|
depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PHY_TEGRA194_P2U
|
select PHY_TEGRA194_P2U
|
||||||
select PCIE_TEGRA194
|
select PCIE_TEGRA194
|
||||||
|
@ -336,7 +336,7 @@ config PCIE_TEGRA194_EP
|
||||||
config PCIE_VISCONTI_HOST
|
config PCIE_VISCONTI_HOST
|
||||||
bool "Toshiba Visconti PCIe controllers"
|
bool "Toshiba Visconti PCIe controllers"
|
||||||
depends on ARCH_VISCONTI || COMPILE_TEST
|
depends on ARCH_VISCONTI || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
|
Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
|
||||||
|
@ -346,7 +346,7 @@ config PCIE_UNIPHIER
|
||||||
bool "Socionext UniPhier PCIe host controllers"
|
bool "Socionext UniPhier PCIe host controllers"
|
||||||
depends on ARCH_UNIPHIER || COMPILE_TEST
|
depends on ARCH_UNIPHIER || COMPILE_TEST
|
||||||
depends on OF && HAS_IOMEM
|
depends on OF && HAS_IOMEM
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe host controller support on UniPhier SoCs.
|
Say Y here if you want PCIe host controller support on UniPhier SoCs.
|
||||||
|
@ -365,7 +365,7 @@ config PCIE_UNIPHIER_EP
|
||||||
config PCIE_AL
|
config PCIE_AL
|
||||||
bool "Amazon Annapurna Labs PCIe controller"
|
bool "Amazon Annapurna Labs PCIe controller"
|
||||||
depends on OF && (ARM64 || COMPILE_TEST)
|
depends on OF && (ARM64 || COMPILE_TEST)
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
select PCI_ECAM
|
select PCI_ECAM
|
||||||
help
|
help
|
||||||
|
@ -377,7 +377,7 @@ config PCIE_AL
|
||||||
|
|
||||||
config PCIE_FU740
|
config PCIE_FU740
|
||||||
bool "SiFive FU740 PCIe host controller"
|
bool "SiFive FU740 PCIe host controller"
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
depends on SOC_SIFIVE || COMPILE_TEST
|
depends on SOC_SIFIVE || COMPILE_TEST
|
||||||
select PCIE_DW_HOST
|
select PCIE_DW_HOST
|
||||||
help
|
help
|
||||||
|
|
|
@ -8,14 +8,14 @@ config PCIE_MOBIVEIL
|
||||||
|
|
||||||
config PCIE_MOBIVEIL_HOST
|
config PCIE_MOBIVEIL_HOST
|
||||||
bool
|
bool
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_MOBIVEIL
|
select PCIE_MOBIVEIL
|
||||||
|
|
||||||
config PCIE_MOBIVEIL_PLAT
|
config PCIE_MOBIVEIL_PLAT
|
||||||
bool "Mobiveil AXI PCIe controller"
|
bool "Mobiveil AXI PCIe controller"
|
||||||
depends on ARCH_ZYNQMP || COMPILE_TEST
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
||||||
depends on OF
|
depends on OF
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_MOBIVEIL_HOST
|
select PCIE_MOBIVEIL_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want to enable support for the Mobiveil AXI PCIe
|
Say Y here if you want to enable support for the Mobiveil AXI PCIe
|
||||||
|
@ -25,7 +25,7 @@ config PCIE_MOBIVEIL_PLAT
|
||||||
config PCIE_LAYERSCAPE_GEN4
|
config PCIE_LAYERSCAPE_GEN4
|
||||||
bool "Freescale Layerscape PCIe Gen4 controller"
|
bool "Freescale Layerscape PCIe Gen4 controller"
|
||||||
depends on ARCH_LAYERSCAPE || COMPILE_TEST
|
depends on ARCH_LAYERSCAPE || COMPILE_TEST
|
||||||
depends on PCI_MSI_IRQ_DOMAIN
|
depends on PCI_MSI
|
||||||
select PCIE_MOBIVEIL_HOST
|
select PCIE_MOBIVEIL_HOST
|
||||||
help
|
help
|
||||||
Say Y here if you want PCIe Gen4 controller support on
|
Say Y here if you want PCIe Gen4 controller support on
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
# Makefile for the PCI/MSI
|
# Makefile for the PCI/MSI
|
||||||
obj-$(CONFIG_PCI) += pcidev_msi.o
|
obj-$(CONFIG_PCI) += pcidev_msi.o
|
||||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||||
obj-$(CONFIG_PCI_MSI_IRQ_DOMAIN) += irqdomain.o
|
obj-$(CONFIG_PCI_MSI) += irqdomain.o
|
||||||
obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS) += legacy.o
|
obj-$(CONFIG_PCI_MSI_ARCH_FALLBACKS) += legacy.o
|
||||||
|
|
|
@ -842,7 +842,6 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus)
|
||||||
if (!d)
|
if (!d)
|
||||||
d = pci_host_bridge_acpi_msi_domain(bus);
|
d = pci_host_bridge_acpi_msi_domain(bus);
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
|
||||||
/*
|
/*
|
||||||
* If no IRQ domain was found via the OF tree, try looking it up
|
* If no IRQ domain was found via the OF tree, try looking it up
|
||||||
* directly through the fwnode_handle.
|
* directly through the fwnode_handle.
|
||||||
|
@ -854,7 +853,6 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus)
|
||||||
d = irq_find_matching_fwnode(fwnode,
|
d = irq_find_matching_fwnode(fwnode,
|
||||||
DOMAIN_BUS_PCI_MSI);
|
DOMAIN_BUS_PCI_MSI);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
|
@ -238,15 +238,6 @@ static inline void msi_desc_set_iommu_cookie(struct msi_desc *desc,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI
|
|
||||||
struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
|
|
||||||
void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
|
|
||||||
#else /* CONFIG_PCI_MSI */
|
|
||||||
static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_PCI_MSI */
|
|
||||||
|
|
||||||
int msi_add_msi_desc(struct device *dev, struct msi_desc *init_desc);
|
int msi_add_msi_desc(struct device *dev, struct msi_desc *init_desc);
|
||||||
void msi_free_msi_descs_range(struct device *dev, unsigned int first_index, unsigned int last_index);
|
void msi_free_msi_descs_range(struct device *dev, unsigned int first_index, unsigned int last_index);
|
||||||
|
|
||||||
|
@ -259,12 +250,6 @@ static inline void msi_free_msi_descs(struct device *dev)
|
||||||
msi_free_msi_descs_range(dev, 0, MSI_MAX_INDEX);
|
msi_free_msi_descs_range(dev, 0, MSI_MAX_INDEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
|
||||||
void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
|
||||||
|
|
||||||
void pci_msi_mask_irq(struct irq_data *data);
|
|
||||||
void pci_msi_unmask_irq(struct irq_data *data);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The arch hooks to setup up msi irqs. Default functions are implemented
|
* The arch hooks to setup up msi irqs. Default functions are implemented
|
||||||
* as weak symbols so that they /can/ be overriden by architecture specific
|
* as weak symbols so that they /can/ be overriden by architecture specific
|
||||||
|
@ -468,18 +453,26 @@ void platform_msi_device_domain_free(struct irq_domain *domain, unsigned int vir
|
||||||
void *platform_msi_get_host_data(struct irq_domain *domain);
|
void *platform_msi_get_host_data(struct irq_domain *domain);
|
||||||
#endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */
|
#endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
/* PCI specific interfaces */
|
||||||
|
#ifdef CONFIG_PCI_MSI
|
||||||
|
struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
|
||||||
|
void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
|
||||||
|
void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||||
|
void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||||
|
void pci_msi_mask_irq(struct irq_data *data);
|
||||||
|
void pci_msi_unmask_irq(struct irq_data *data);
|
||||||
struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
|
struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
|
||||||
struct msi_domain_info *info,
|
struct msi_domain_info *info,
|
||||||
struct irq_domain *parent);
|
struct irq_domain *parent);
|
||||||
u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
|
u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
|
||||||
struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
|
struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
|
||||||
bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);
|
bool pci_dev_has_special_msi_domain(struct pci_dev *pdev);
|
||||||
#else
|
#else /* CONFIG_PCI_MSI */
|
||||||
static inline struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
|
static inline struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
|
static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg) { }
|
||||||
|
#endif /* !CONFIG_PCI_MSI */
|
||||||
|
|
||||||
#endif /* LINUX_MSI_H */
|
#endif /* LINUX_MSI_H */
|
||||||
|
|
Loading…
Add table
Reference in a new issue