summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2007-02-12 22:51:25 +0000
committerjkim <jkim@FreeBSD.org>2007-02-12 22:51:25 +0000
commitedec07ff3ac5ec95545cb6072c7fa293976cd444 (patch)
treebd96fdc4703a43f6c5ab30eec2cfba3d05f6dd21 /sys/dev/bge
parentd248b7fe82f187ff5a7b49609be9ece339b3bac8 (diff)
downloadFreeBSD-src-edec07ff3ac5ec95545cb6072c7fa293976cd444.zip
FreeBSD-src-edec07ff3ac5ec95545cb6072c7fa293976cd444.tar.gz
Add PHY DSP code for BCM5755M.
Obtained from: OpenBSD
Diffstat (limited to 'sys/dev/bge')
-rw-r--r--sys/dev/bge/if_bge.c5
-rw-r--r--sys/dev/bge/if_bgereg.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index f1ba0a4..838f6ad 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -1687,6 +1687,8 @@ bge_probe(device_t dev)
device_set_desc_copy(dev, buf);
if (pci_get_subvendor(dev) == DELL_VENDORID)
sc->bge_flags |= BGE_FLAG_NO_3LED;
+ if (did == BCOM_DEVICEID_BCM5755M)
+ sc->bge_flags |= BGE_FLAG_ADJUST_TRIM;
return (0);
}
t++;
@@ -2219,7 +2221,8 @@ bge_attach(device_t dev)
sc->bge_flags |= BGE_FLAG_ADC_BUG;
if (sc->bge_chipid == BGE_CHIPID_BCM5704_A0)
sc->bge_flags |= BGE_FLAG_5704_A0_BUG;
- if (BGE_IS_5705_PLUS(sc)) {
+ if (BGE_IS_5705_PLUS(sc) &&
+ !(sc->bge_flags & BGE_FLAG_ADJUST_TRIM)) {
if (sc->bge_asicrev == BGE_ASICREV_BCM5755 ||
sc->bge_asicrev == BGE_ASICREV_BCM5787)
sc->bge_flags |= BGE_FLAG_JITTER_BUG;
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h
index 80a04f6..a25b6af 100644
--- a/sys/dev/bge/if_bgereg.h
+++ b/sys/dev/bge/if_bgereg.h
@@ -2463,6 +2463,7 @@ struct bge_softc {
#define BGE_FLAG_5704_A0_BUG 0x00800000
#define BGE_FLAG_JITTER_BUG 0x01000000
#define BGE_FLAG_BER_BUG 0x02000000
+#define BGE_FLAG_ADJUST_TRIM 0x04000000
uint32_t bge_chipid;
uint8_t bge_asicrev;
uint8_t bge_chiprev;
OpenPOWER on IntegriCloud