diff options
author | Yijing Wang <wangyijing@huawei.com> | 2014-11-11 17:35:05 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2014-11-21 11:33:45 -0500 |
commit | 7ec725b2d5757754bd8bc5fd13d5f8c53d44ce80 (patch) | |
tree | 94c726fc99b1f437cd975bc622d90d7f07495bc6 /drivers | |
parent | 49dcc01a9ff2df5fafe50777bec0591c0a588d27 (diff) |
PCI: tegra: Save MSI controller in pci_sys_data
Save MSI controller in pci_sys_data instead of assigning MSI controller
pointer to every PCI bus in .add_bus().
[bhelgaas: use struct tegra_msi.chip, not ctrl]
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/host/pci-tegra.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c index 5529de7328ba..1f01faa918cc 100644 --- a/drivers/pci/host/pci-tegra.c +++ b/drivers/pci/host/pci-tegra.c | |||
@@ -694,15 +694,6 @@ static int tegra_pcie_map_irq(const struct pci_dev *pdev, u8 slot, u8 pin) | |||
694 | return irq; | 694 | return irq; |
695 | } | 695 | } |
696 | 696 | ||
697 | static void tegra_pcie_add_bus(struct pci_bus *bus) | ||
698 | { | ||
699 | if (IS_ENABLED(CONFIG_PCI_MSI)) { | ||
700 | struct tegra_pcie *pcie = sys_to_pcie(bus->sysdata); | ||
701 | |||
702 | bus->msi = &pcie->msi.chip; | ||
703 | } | ||
704 | } | ||
705 | |||
706 | static struct pci_bus *tegra_pcie_scan_bus(int nr, struct pci_sys_data *sys) | 697 | static struct pci_bus *tegra_pcie_scan_bus(int nr, struct pci_sys_data *sys) |
707 | { | 698 | { |
708 | struct tegra_pcie *pcie = sys_to_pcie(sys); | 699 | struct tegra_pcie *pcie = sys_to_pcie(sys); |
@@ -1882,11 +1873,14 @@ static int tegra_pcie_enable(struct tegra_pcie *pcie) | |||
1882 | 1873 | ||
1883 | memset(&hw, 0, sizeof(hw)); | 1874 | memset(&hw, 0, sizeof(hw)); |
1884 | 1875 | ||
1876 | #ifdef CONFIG_PCI_MSI | ||
1877 | hw.msi_ctrl = &pcie->msi.chip; | ||
1878 | #endif | ||
1879 | |||
1885 | hw.nr_controllers = 1; | 1880 | hw.nr_controllers = 1; |
1886 | hw.private_data = (void **)&pcie; | 1881 | hw.private_data = (void **)&pcie; |
1887 | hw.setup = tegra_pcie_setup; | 1882 | hw.setup = tegra_pcie_setup; |
1888 | hw.map_irq = tegra_pcie_map_irq; | 1883 | hw.map_irq = tegra_pcie_map_irq; |
1889 | hw.add_bus = tegra_pcie_add_bus; | ||
1890 | hw.scan = tegra_pcie_scan_bus; | 1884 | hw.scan = tegra_pcie_scan_bus; |
1891 | hw.ops = &tegra_pcie_ops; | 1885 | hw.ops = &tegra_pcie_ops; |
1892 | 1886 | ||