From: Michael Buesch Date: Thu, 3 Jan 2008 17:59:25 +0000 (+0100) Subject: ssb: Fix probing of PCI cores if PCI and PCIE core is available X-Git-Tag: v2.6.24-rc8~54^2~17 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=87c4ac841c1d524416ab36c19689550bf302dab1;p=linux-2.6-omap-h63xx.git ssb: Fix probing of PCI cores if PCI and PCIE core is available This will make sure that always the correct core is selected, even if there are both a PCI and PCI-E core on a PCI or PCI-E card. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville --- diff --git a/drivers/ssb/scan.c b/drivers/ssb/scan.c index 96258c60919..63ee5cfbefb 100644 --- a/drivers/ssb/scan.c +++ b/drivers/ssb/scan.c @@ -388,6 +388,17 @@ int ssb_bus_scan(struct ssb_bus *bus, case SSB_DEV_PCI: case SSB_DEV_PCIE: #ifdef CONFIG_SSB_DRIVER_PCICORE + if (bus->bustype == SSB_BUSTYPE_PCI) { + /* Ignore PCI cores on PCI-E cards. + * Ignore PCI-E cores on PCI cards. */ + if (dev->id.coreid == SSB_DEV_PCI) { + if (bus->host_pci->is_pcie) + continue; + } else { + if (!bus->host_pci->is_pcie) + continue; + } + } if (bus->pcicore.dev) { ssb_printk(KERN_WARNING PFX "WARNING: Multiple PCI(E) cores found\n");