diff options
| author | Yinghai Lu <yinghai@kernel.org> | 2012-05-17 18:51:12 -0700 | 
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2012-06-13 15:42:24 -0600 | 
| commit | 30aa80da43a5f23728eae1516e3a1aad40e808dd (patch) | |
| tree | f60ac025d7648e5b4b0960480e08d11d698b22cc /drivers/parisc/lba_pci.c | |
| parent | be8e60d8bed118b19bd7038ac2f6ac6688d072d9 (diff) | |
| download | olio-linux-3.10-30aa80da43a5f23728eae1516e3a1aad40e808dd.tar.xz olio-linux-3.10-30aa80da43a5f23728eae1516e3a1aad40e808dd.zip  | |
parisc/PCI: register busn_res for root buses
Add the host bridge bus number aperture to the resource list.
Like the MMIO and I/O port apertures, this is used when assigning
resources to hot-added devices or in the case of conflicts.
[bhelgaas: changelog, set flags directly, at LBA bus_num init]
CC: Kyle McMartin <kyle@mcmartin.ca>
CC: Helge Deller <deller@gmx.de>
CC: linux-parisc@vger.kernel.org
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/parisc/lba_pci.c')
| -rw-r--r-- | drivers/parisc/lba_pci.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index cd8f9ce8720..4f9cf2456f4 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c @@ -989,6 +989,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)  		case PAT_PBNUM:  			lba_dev->hba.bus_num.start = p->start;  			lba_dev->hba.bus_num.end   = p->end; +			lba_dev->hba.bus_num.flags = IORESOURCE_BUS;  			break;  		case PAT_LMMIO: @@ -1366,6 +1367,7 @@ lba_driver_probe(struct parisc_device *dev)  	void *tmp_obj;  	char *version;  	void __iomem *addr = ioremap_nocache(dev->hpa.start, 4096); +	int max;  	/* Read HW Rev First */  	func_class = READ_REG32(addr + LBA_FCLASS); @@ -1502,6 +1504,8 @@ lba_driver_probe(struct parisc_device *dev)  	if (lba_dev->hba.gmmio_space.flags)  		pci_add_resource(&resources, &lba_dev->hba.gmmio_space); +	pci_add_resource(&resources, &lba_dev->hba.bus_num); +  	dev->dev.platform_data = lba_dev;  	lba_bus = lba_dev->hba.hba_bus =  		pci_create_root_bus(&dev->dev, lba_dev->hba.bus_num.start, @@ -1511,7 +1515,7 @@ lba_driver_probe(struct parisc_device *dev)  		return 0;  	} -	lba_bus->busn_res.end = pci_scan_child_bus(lba_bus); +	max = pci_scan_child_bus(lba_bus);  	/* This is in lieu of calling pci_assign_unassigned_resources() */  	if (is_pdc_pat()) { @@ -1541,7 +1545,7 @@ lba_driver_probe(struct parisc_device *dev)  		lba_dev->flags |= LBA_FLAG_SKIP_PROBE;  	} -	lba_next_bus = lba_res->busn_res.end + 1; +	lba_next_bus = max + 1;  	pci_bus_add_devices(lba_bus);  	/* Whew! Finally done! Tell services we got this one covered. */  |