arm/PCI: convert to pci_scan_root_bus() for correct root bus resources
Convert from pci_scan_bus() to pci_scan_root_bus() and remove root bus resource fixups. This fixes the problem of "early" and "header" quirks seeing incorrect root bus resources. CC: Russell King <linux@arm.linux.org.uk> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:

committed by
Jesse Barnes

parent
a2f33da11a
commit
37d15909ff
@@ -359,7 +359,7 @@ static struct resource pre_mem = {
|
||||
.flags = IORESOURCE_MEM | IORESOURCE_PREFETCH,
|
||||
};
|
||||
|
||||
static int __init pci_v3_setup_resources(struct resource **resource)
|
||||
static int __init pci_v3_setup_resources(struct pci_sys_data *sys)
|
||||
{
|
||||
if (request_resource(&iomem_resource, &non_mem)) {
|
||||
printk(KERN_ERR "PCI: unable to allocate non-prefetchable "
|
||||
@@ -374,13 +374,13 @@ static int __init pci_v3_setup_resources(struct resource **resource)
|
||||
}
|
||||
|
||||
/*
|
||||
* bus->resource[0] is the IO resource for this bus
|
||||
* bus->resource[1] is the mem resource for this bus
|
||||
* bus->resource[2] is the prefetch mem resource for this bus
|
||||
* the IO resource for this bus
|
||||
* the mem resource for this bus
|
||||
* the prefetch mem resource for this bus
|
||||
*/
|
||||
resource[0] = &ioport_resource;
|
||||
resource[1] = &non_mem;
|
||||
resource[2] = &pre_mem;
|
||||
pci_add_resource(&sys->resources, &ioport_resource);
|
||||
pci_add_resource(&sys->resources, &non_mem);
|
||||
pci_add_resource(&sys->resources, &pre_mem);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -481,7 +481,7 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys)
|
||||
|
||||
if (nr == 0) {
|
||||
sys->mem_offset = PHYS_PCI_MEM_BASE;
|
||||
ret = pci_v3_setup_resources(sys->resource);
|
||||
ret = pci_v3_setup_resources(sys);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -489,7 +489,8 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys)
|
||||
|
||||
struct pci_bus * __init pci_v3_scan_bus(int nr, struct pci_sys_data *sys)
|
||||
{
|
||||
return pci_scan_bus(sys->busnr, &pci_v3_ops, sys);
|
||||
return pci_scan_root_bus(NULL, sys->busnr, &pci_v3_ops, sys,
|
||||
&sys->resources);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user