1 --- a/drivers/ssb/driver_pcicore.c
2 +++ b/drivers/ssb/driver_pcicore.c
3 @@ -516,10 +516,14 @@ static void ssb_pcicore_pcie_setup_worka
5 static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
7 - ssb_pcicore_fix_sprom_core_index(pc);
8 + struct ssb_device *pdev = pc->dev;
9 + struct ssb_bus *bus = pdev->bus;
11 + if (bus->bustype == SSB_BUSTYPE_PCI)
12 + ssb_pcicore_fix_sprom_core_index(pc);
14 /* Disable PCI interrupts. */
15 - ssb_write32(pc->dev, SSB_INTVEC, 0);
16 + ssb_write32(pdev, SSB_INTVEC, 0);
18 /* Additional PCIe always once-executed workarounds */
19 if (pc->dev->id.coreid == SSB_DEV_PCIE) {