diff options
| author | Helge Deller <deller@gmx.de> | 2013-05-31 22:24:58 +0000 | 
|---|---|---|
| committer | Helge Deller <deller@gmx.de> | 2013-06-01 14:44:25 +0200 | 
| commit | b204a4d2d4f2061659bb5c33f5a4013fb0f6ffbe (patch) | |
| tree | 9f2f4deec31508581b8ed7d7da2f00f2da07d706 | |
| parent | b47d4934e71d918814aee4a1d0211f81329b767e (diff) | |
parisc/PCI: lba: fix: convert to pci_create_root_bus() for correct root bus resources (v2)
commit dc7dce280a
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Fri Oct 28 16:27:27 2011 -0600
   parisc/PCI: lba: convert to pci_create_root_bus() for correct root bus
                    resources
  Supply root bus resources to pci_create_root_bus() so they're correct
  immediately.  This fixes the problem of "early" and "header" quirks seeing
  incorrect root bus resources.
added tests for elmmio_space.start while it should use
elmmio_space.flags.  This for example led to incorrect resource
assignments and a non-working stifb framebuffer on most parisc machines.
LBA 10:1: PCI host bridge to bus 0000:01
pci_bus 0000:01: root bus resource [io  0x12000-0x13fff] (bus address [0x2000-0x3fff])
pci_bus 0000:01: root bus resource [mem 0xfffffffffa000000-0xfffffffffbffffff] (bus address [0xfa000000-0xfbffffff])
pci_bus 0000:01: root bus resource [mem 0xfffffffff4800000-0xfffffffff4ffffff] (bus address [0xf4800000-0xf4ffffff])
pci_bus 0000:01: root bus resource [??? 0x00000001 flags 0x0]
Signed-off-by: Helge Deller <deller@gmx.de>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
| -rw-r--r-- | drivers/parisc/lba_pci.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index 5d25038ef4b0..1f05913ae677 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c @@ -668,7 +668,7 @@ lba_fixup_bus(struct pci_bus *bus)  			BUG();  		} -		if (ldev->hba.elmmio_space.start) { +		if (ldev->hba.elmmio_space.flags) {  			err = request_resource(&iomem_resource,  					&(ldev->hba.elmmio_space));  			if (err < 0) { @@ -993,7 +993,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)  		case PAT_LMMIO:  			/* used to fix up pre-initialized MEM BARs */ -			if (!lba_dev->hba.lmmio_space.start) { +			if (!lba_dev->hba.lmmio_space.flags) {  				sprintf(lba_dev->hba.lmmio_name,  						"PCI%02x LMMIO",  						(int)lba_dev->hba.bus_num.start); @@ -1001,7 +1001,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)  					io->start;  				r = &lba_dev->hba.lmmio_space;  				r->name = lba_dev->hba.lmmio_name; -			} else if (!lba_dev->hba.elmmio_space.start) { +			} else if (!lba_dev->hba.elmmio_space.flags) {  				sprintf(lba_dev->hba.elmmio_name,  						"PCI%02x ELMMIO",  						(int)lba_dev->hba.bus_num.start); @@ -1495,7 +1495,7 @@ lba_driver_probe(struct parisc_device *dev)  	pci_add_resource_offset(&resources, &lba_dev->hba.io_space,  				HBA_PORT_BASE(lba_dev->hba.hba_num)); -	if (lba_dev->hba.elmmio_space.start) +	if (lba_dev->hba.elmmio_space.flags)  		pci_add_resource_offset(&resources, &lba_dev->hba.elmmio_space,  					lba_dev->hba.lmmio_space_offset);  	if (lba_dev->hba.lmmio_space.flags)  | 
