summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2012-10-10 02:35:10 +0000
committeryongari <yongari@FreeBSD.org>2012-10-10 02:35:10 +0000
commit558710fce12b8f87c85311190ff5c12f72982576 (patch)
tree73e54f5a1baac2cc3b7e488496a64a49dbbb4f64 /sys/dev/bge
parent9ab5cfcb7e53eb8deecd01652fe26c8799272641 (diff)
downloadFreeBSD-src-558710fce12b8f87c85311190ff5c12f72982576.zip
FreeBSD-src-558710fce12b8f87c85311190ff5c12f72982576.tar.gz
Do not force PCIe 1.0a mode in device reset on BCM5717 and newer
controllers. BCM5785 does not require PCI 1.0a mode as well during reset.
Diffstat (limited to 'sys/dev/bge')
-rw-r--r--sys/dev/bge/if_bge.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 8989059..bfa0769 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -3604,8 +3604,11 @@ bge_reset(struct bge_softc *sc)
/* XXX: Broadcom Linux driver. */
if (sc->bge_flags & BGE_FLAG_PCIE) {
- if (CSR_READ_4(sc, 0x7E2C) == 0x60) /* PCIE 1.0 */
- CSR_WRITE_4(sc, 0x7E2C, 0x20);
+ if (sc->bge_asicrev != BGE_ASICREV_BCM5785 &&
+ (sc->bge_flags & BGE_FLAG_5717_PLUS) == 0) {
+ if (CSR_READ_4(sc, 0x7E2C) == 0x60) /* PCIE 1.0 */
+ CSR_WRITE_4(sc, 0x7E2C, 0x20);
+ }
if (sc->bge_chipid != BGE_CHIPID_BCM5750_A0) {
/* Prevent PCIE link training during global reset */
CSR_WRITE_4(sc, BGE_MISC_CFG, 1 << 29);
OpenPOWER on IntegriCloud