diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-01-03 18:59:25 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-08 23:30:10 -0800 |
commit | 87c4ac841c1d524416ab36c19689550bf302dab1 (patch) | |
tree | 4a1124cba1a76581e5f4bdf970d4ae16003dda67 | |
parent | 4ec2411980d0fd2995e8dea8a06fe57aa47523cb (diff) |
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 <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/ssb/scan.c | 11 |
1 files changed, 11 insertions, 0 deletions
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"); |