Skip to content

Commit 329456d

Browse files
haukelinvjw
authored andcommitted
ssb: fix init regression with SoCs
This fixes a Data bus error on some SoCs. The first fix for this problem did not solve it on all devices. commit 6ae8ec2 Author: Rafał Miłecki <[email protected]> Date: Tue Jul 5 17:25:32 2011 +0200 ssb: fix init regression of hostmode PCI core In ssb_pcicore_fix_sprom_core_index() the sprom on the PCI core is accessed, but the sprom only exists when the ssb bus is connected over a PCI bus to the rest of the system and not when the SSB Bus is the main system bus. SoCs sometimes have a PCI host controller and there this code will not be executed, but there are some old SoCs with an PCI controller in client mode around and ssb_pcicore_fix_sprom_core_index() should not be called on these devices too. The PCI controller on these devices are unused, but without this fix it results in an Data bus error when it gets initialized. Cc: Michael Buesch <[email protected]> Cc: Rafał Miłecki <[email protected]> Signed-off-by: Hauke Mehrtens <[email protected]> Cc: [email protected] Signed-off-by: John W. Linville <[email protected]>
1 parent 91ddff8 commit 329456d

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

drivers/ssb/driver_pcicore.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,14 @@ static void ssb_pcicore_pcie_setup_workarounds(struct ssb_pcicore *pc)
516516

517517
static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
518518
{
519-
ssb_pcicore_fix_sprom_core_index(pc);
519+
struct ssb_device *pdev = pc->dev;
520+
struct ssb_bus *bus = pdev->bus;
521+
522+
if (bus->bustype == SSB_BUSTYPE_PCI)
523+
ssb_pcicore_fix_sprom_core_index(pc);
520524

521525
/* Disable PCI interrupts. */
522-
ssb_write32(pc->dev, SSB_INTVEC, 0);
526+
ssb_write32(pdev, SSB_INTVEC, 0);
523527

524528
/* Additional PCIe always once-executed workarounds */
525529
if (pc->dev->id.coreid == SSB_DEV_PCIE) {

0 commit comments

Comments
 (0)