Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: mvebu: Remove mvebu_pcie_scan_bus()

After b97ea289cf6a ("PCI: Assign resources before drivers claim devices
(pci_scan_root_bus())"), pci_scan_root_bus() no longer adds the devices, so
it is equivalent to mvebu_pcie_scan_bus().

Remove mvebu_pcie_scan_bus() (the hw.scan method), so we use the generic
pci_scan_root_bus() path. We also need to use pci_common_init_dev()
instead of pci_common_init() so we can supply the host bridge device
pointer.

[bhelgaas: changelog]
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Jason Cooper <jason@lakedaemon.net>

authored by

Yijing Wang and committed by
Bjorn Helgaas
2dead00b 5ebe6afa

+1 -17
+1 -17
drivers/pci/host/pci-mvebu.c
··· 751 751 return 1; 752 752 } 753 753 754 - static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys) 755 - { 756 - struct mvebu_pcie *pcie = sys_to_pcie(sys); 757 - struct pci_bus *bus; 758 - 759 - bus = pci_create_root_bus(&pcie->pdev->dev, sys->busnr, 760 - &mvebu_pcie_ops, sys, &sys->resources); 761 - if (!bus) 762 - return NULL; 763 - 764 - pci_scan_child_bus(bus); 765 - 766 - return bus; 767 - } 768 - 769 754 static resource_size_t mvebu_pcie_align_resource(struct pci_dev *dev, 770 755 const struct resource *res, 771 756 resource_size_t start, ··· 794 809 hw.nr_controllers = 1; 795 810 hw.private_data = (void **)&pcie; 796 811 hw.setup = mvebu_pcie_setup; 797 - hw.scan = mvebu_pcie_scan_bus; 798 812 hw.map_irq = of_irq_parse_and_map_pci; 799 813 hw.ops = &mvebu_pcie_ops; 800 814 hw.align_resource = mvebu_pcie_align_resource; 801 815 802 - pci_common_init(&hw); 816 + pci_common_init_dev(&pcie->pdev->dev, &hw); 803 817 } 804 818 805 819 /*