PCI: mvebu: 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(). Signed-off-by: Yijing Wang <wangyijing@huawei.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
7840cba885
commit
26914233b1
@ -774,12 +774,6 @@ static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys)
|
|||||||
return bus;
|
return bus;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mvebu_pcie_add_bus(struct pci_bus *bus)
|
|
||||||
{
|
|
||||||
struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata);
|
|
||||||
bus->msi = pcie->msi;
|
|
||||||
}
|
|
||||||
|
|
||||||
static resource_size_t mvebu_pcie_align_resource(struct pci_dev *dev,
|
static resource_size_t mvebu_pcie_align_resource(struct pci_dev *dev,
|
||||||
const struct resource *res,
|
const struct resource *res,
|
||||||
resource_size_t start,
|
resource_size_t start,
|
||||||
@ -816,6 +810,10 @@ static void mvebu_pcie_enable(struct mvebu_pcie *pcie)
|
|||||||
|
|
||||||
memset(&hw, 0, sizeof(hw));
|
memset(&hw, 0, sizeof(hw));
|
||||||
|
|
||||||
|
#ifdef CONFIG_PCI_MSI
|
||||||
|
hw.msi_ctrl = pcie->msi;
|
||||||
|
#endif
|
||||||
|
|
||||||
hw.nr_controllers = 1;
|
hw.nr_controllers = 1;
|
||||||
hw.private_data = (void **)&pcie;
|
hw.private_data = (void **)&pcie;
|
||||||
hw.setup = mvebu_pcie_setup;
|
hw.setup = mvebu_pcie_setup;
|
||||||
@ -823,7 +821,6 @@ static void mvebu_pcie_enable(struct mvebu_pcie *pcie)
|
|||||||
hw.map_irq = of_irq_parse_and_map_pci;
|
hw.map_irq = of_irq_parse_and_map_pci;
|
||||||
hw.ops = &mvebu_pcie_ops;
|
hw.ops = &mvebu_pcie_ops;
|
||||||
hw.align_resource = mvebu_pcie_align_resource;
|
hw.align_resource = mvebu_pcie_align_resource;
|
||||||
hw.add_bus = mvebu_pcie_add_bus;
|
|
||||||
|
|
||||||
pci_common_init(&hw);
|
pci_common_init(&hw);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user