diff options
Diffstat (limited to 'arch/x86/pci/bus_numa.c')
| -rw-r--r-- | arch/x86/pci/bus_numa.c | 31 | 
1 files changed, 18 insertions, 13 deletions
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c index 64a122883896..fd3f65510e9d 100644 --- a/arch/x86/pci/bus_numa.c +++ b/arch/x86/pci/bus_numa.c @@ -7,45 +7,50 @@  int pci_root_num;  struct pci_root_info pci_root_info[PCI_ROOT_NR]; -void x86_pci_root_bus_res_quirks(struct pci_bus *b) +void x86_pci_root_bus_resources(int bus, struct list_head *resources)  {  	int i;  	int j;  	struct pci_root_info *info; -	/* don't go for it if _CRS is used already */ -	if (b->resource[0] != &ioport_resource || -	    b->resource[1] != &iomem_resource) -		return; -  	if (!pci_root_num) -		return; +		goto default_resources;  	for (i = 0; i < pci_root_num; i++) { -		if (pci_root_info[i].bus_min == b->number) +		if (pci_root_info[i].bus_min == bus)  			break;  	}  	if (i == pci_root_num) -		return; +		goto default_resources; -	printk(KERN_DEBUG "PCI: peer root bus %02x res updated from pci conf\n", -			b->number); +	printk(KERN_DEBUG "PCI: root bus %02x: hardware-probed resources\n", +	       bus); -	pci_bus_remove_resources(b);  	info = &pci_root_info[i];  	for (j = 0; j < info->res_num; j++) {  		struct resource *res;  		struct resource *root;  		res = &info->res[j]; -		pci_bus_add_resource(b, res, 0); +		pci_add_resource(resources, res);  		if (res->flags & IORESOURCE_IO)  			root = &ioport_resource;  		else  			root = &iomem_resource;  		insert_resource(root, res);  	} +	return; + +default_resources: +	/* +	 * We don't have any host bridge aperture information from the +	 * "native host bridge drivers," e.g., amd_bus or broadcom_bus, +	 * so fall back to the defaults historically used by pci_create_bus(). +	 */ +	printk(KERN_DEBUG "PCI: root bus %02x: using default resources\n", bus); +	pci_add_resource(resources, &ioport_resource); +	pci_add_resource(resources, &iomem_resource);  }  void __devinit update_res(struct pci_root_info *info, resource_size_t start,  | 
