diff options
Diffstat (limited to 'drivers/pci/pci.c')
| -rw-r--r-- | drivers/pci/pci.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 50ca6b0ba..7944b6684 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -425,6 +425,9 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)  	     dev <  PCI_BDF(bus,PCI_MAX_PCI_DEVICES-1,PCI_MAX_PCI_FUNCTIONS-1);  	     dev += PCI_BDF(0,0,1))  	{ + +	/* Bus 0 is not necessarily PCI bridge. */ +#if defined(CONFIG_PCI_SKIP_HOST_BRIDGE)  		/* Skip our host bridge */  		if ( dev == PCI_BDF(hose->first_busno,0,0) ) {  #if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE)              /* don't skip host bridge */ @@ -434,10 +437,11 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)  			if (getenv("pciconfighost") == NULL) {  				continue; /* Skip our host bridge */  			} -#else +#else /* CONFIG_PCI_CONFIG_HOST_BRIDGE */  			continue; /* Skip our host bridge */ -#endif +#endif /* CONFIG_PCI_CONFIG_HOST_BRIDGE */  		} +#endif /* CONFIG_PCI_SKIP_HOST_BRIDGE */  		if (PCI_FUNC(dev) && !found_multi)  			continue; @@ -473,8 +477,11 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)  				hose->fixup_irq(hose, dev);  #ifdef CONFIG_PCI_SCAN_SHOW +#if defined(CONFIG_PCI_SKIP_HOST_BRIDGE)  			/* Skip our host bridge */ -			if ( dev != PCI_BDF(hose->first_busno,0,0) ) { +			if ( dev != PCI_BDF(hose->first_busno,0,0) ) +#endif +			{  			    unsigned char int_line;  			    pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_LINE,  |