[PATCH 00/10] Save MSI chip in pci_sys_data

Yijing Wang wangyijing at huawei.com
Mon Oct 27 00:48:37 PDT 2014


Now PCI host bridge drivers in arm associate MSI chip and
PCI bus by adding .add_bus(), and assign MSI chip pointer
to every PCI bus. Associating MSI chip and every PCI bus
is not necessary. All PCI busses under same PCI host brdige
share the same MSI chip. So saving MSI chip in pci_sys_data
is a better solution, it make PCI host bridge drivers clean.
Because we still need to provide arch spec pcibios_msi_controller()
to extract MSI controller pointer, a better solution is to
refactor PCI host bridge, make a generic pci_host_bridge, and
save common info like PCI domain number, MSI chip, resources
in it. We will do that work in another series as soon.

To Bjorn: Because struct msi_chip defined in struct hw_pci and pci_sys_data
is under the #ifdef CONFIG_PCI_MSI, if we use if(IS_ENABLED(CONFIG_PCI_MSI))
in PCI host bridge drivers, it will cause build errors when the CONFIG_PCI_MSI
is off. So I keep #ifdef CONFIG_PCI_MSI in this series.

Yijing Wang (10):
  MSI: Rename msi_chip to msi_controller for better readability
  PCI/MSI: Introduce weak pcibios_msi_controller()
  arm/MSI: Save MSI controller in pci_sys_data
  PCI: tegra: Save MSI controller in pci_sys_data
  PCI: designware: Save MSI controller in pci_sys_data
  PCI: rcar: Save MSI controller in pci_sys_data
  PCI: mvebu: Save MSI controller in pci_sys_data
  PCI: xilinx: Save MSI controller in pci_sys_data
  arm/PCI: Clean unused pcibios_add_bus() and pcibios_remove_bus()
  PCI/MSI: Remove useless bus->msi assignment

 arch/arm/include/asm/mach/pci.h     |   10 +++++---
 arch/arm/kernel/bios32.c            |   28 ++++++++++--------------
 drivers/irqchip/irq-armada-370-xp.c |   22 +++++++++---------
 drivers/of/of_pci.c                 |   40 +++++++++++++++++-----------------
 drivers/pci/host/pci-keystone-dw.c  |    4 +-
 drivers/pci/host/pci-keystone.h     |    2 +-
 drivers/pci/host/pci-mvebu.c        |   14 ++++-------
 drivers/pci/host/pci-tegra.c        |   37 +++++++++++++-------------------
 drivers/pci/host/pcie-designware.c  |   25 +++++++--------------
 drivers/pci/host/pcie-designware.h  |    2 +-
 drivers/pci/host/pcie-rcar.c        |   37 +++++++++++++-------------------
 drivers/pci/host/pcie-xilinx.c      |   27 +++++++----------------
 drivers/pci/msi.c                   |   22 ++++++++++++++-----
 drivers/pci/probe.c                 |    1 -
 include/linux/msi.h                 |    6 ++--
 include/linux/of_pci.h              |   14 ++++++------
 include/linux/pci.h                 |    2 +-
 17 files changed, 132 insertions(+), 161 deletions(-)




More information about the linux-arm-kernel mailing list