From 49dcc01a9ff2df5fafe50777bec0591c0a588d27 Mon Sep 17 00:00:00 2001 From: Yijing Wang Date: Mon, 27 Oct 2014 15:48:40 +0800 Subject: ARM/PCI: Save MSI controller in pci_sys_data Currently ARM associates an MSI controller with a PCI bus by defining pcibios_add_bus() and using it to call a struct hw_pci.add_bus() method. That method sets the struct pci_bus "msi" member. That's unwieldy and unnecessarily couples MSI with the PCI enumeration code. On ARM, all devices under the same PCI host bridge share an MSI controller, so add an msi_controller pointer to the struct pci_sys_data and implement pcibios_msi_controller() to retrieve it. This is a step toward moving the msi_controller pointer into the generic struct pci_host_bridge. [bhelgaas: changelog, take pci_dev instead of pci_bus] Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas --- arch/arm/include/asm/mach/pci.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'arch/arm/include') diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h index 7fc42784becb..8144d61e5693 100644 --- a/arch/arm/include/asm/mach/pci.h +++ b/arch/arm/include/asm/mach/pci.h @@ -21,6 +21,9 @@ struct device; struct hw_pci { #ifdef CONFIG_PCI_DOMAINS int domain; +#endif +#ifdef CONFIG_PCI_MSI + struct msi_controller *msi_ctrl; #endif struct pci_ops *ops; int nr_controllers; @@ -46,6 +49,9 @@ struct hw_pci { struct pci_sys_data { #ifdef CONFIG_PCI_DOMAINS int domain; +#endif +#ifdef CONFIG_PCI_MSI + struct msi_controller *msi_ctrl; #endif struct list_head node; int busnr; /* primary bus number */ -- cgit v1.2.3