diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-06-01 05:01:11 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-06-03 14:19:49 -0400 |
commit | bdf492f502ad4f646e9905db1b89e11822826edd (patch) | |
tree | f22cd5fa0fd1cfce8075885d04fd20c6ca15c571 /drivers/ssb | |
parent | dfe21582ac5ebc460dda98c67e8589dd506d02cd (diff) |
ssb: fix PCI(e) driver regression causing oops on PCI cards
We were incorrectly executing PCIe specific workarounds on PCI cards.
This resulted in:
Machine check in kernel mode.
Caused by (from SRR1=149030): Transfer error ack signal
Oops: Machine check, sig: 7 [#1]
Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/ssb')
-rw-r--r-- | drivers/ssb/driver_pcicore.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c index 82feb348c8bb..2a20dabec76d 100644 --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c | |||
@@ -539,10 +539,12 @@ void ssb_pcicore_init(struct ssb_pcicore *pc) | |||
539 | if (!pc->hostmode) | 539 | if (!pc->hostmode) |
540 | ssb_pcicore_init_clientmode(pc); | 540 | ssb_pcicore_init_clientmode(pc); |
541 | 541 | ||
542 | /* Additional always once-executed workarounds */ | 542 | /* Additional PCIe always once-executed workarounds */ |
543 | ssb_pcicore_serdes_workaround(pc); | 543 | if (dev->id.coreid == SSB_DEV_PCIE) { |
544 | /* TODO: ASPM */ | 544 | ssb_pcicore_serdes_workaround(pc); |
545 | /* TODO: Clock Request Update */ | 545 | /* TODO: ASPM */ |
546 | /* TODO: Clock Request Update */ | ||
547 | } | ||
546 | } | 548 | } |
547 | 549 | ||
548 | static u32 ssb_pcie_read(struct ssb_pcicore *pc, u32 address) | 550 | static u32 ssb_pcie_read(struct ssb_pcicore *pc, u32 address) |