summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2007-02-12 20:26:56 +0000
committerjkim <jkim@FreeBSD.org>2007-02-12 20:26:56 +0000
commit11b889abd11dc55a6a622564b74f87f31b015d61 (patch)
treed3a1fb8bb2a90c84ca1ed8f5bdb453ba8e5d47da /sys/dev/mii
parentabb3ed529cfea1325d1e7d64234e223d817eef97 (diff)
downloadFreeBSD-src-11b889abd11dc55a6a622564b74f87f31b015d61.zip
FreeBSD-src-11b889abd11dc55a6a622564b74f87f31b015d61.tar.gz
BCM5701 PHY cannot read-modify-write. Just re-use the magic number from DSP
init code.
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/brgphy.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 4a6033e..52a94cb 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -623,14 +623,19 @@ brgphy_ethernet_wirespeed(struct mii_softc *sc)
static void
brgphy_jumbo_settings(struct mii_softc *sc, u_long mtu)
{
+ struct brgphy_softc *bsc = (struct brgphy_softc *)sc;
u_int32_t val;
/* Set or clear jumbo frame settings in the PHY. */
if (mtu > ETHER_MAX_LEN) {
- PHY_WRITE(sc, BRGPHY_MII_AUXCTL, 0x7);
- val = PHY_READ(sc, BRGPHY_MII_AUXCTL);
- PHY_WRITE(sc, BRGPHY_MII_AUXCTL,
- val | BRGPHY_AUXCTL_LONG_PKT);
+ if (bsc->mii_model == MII_MODEL_xxBROADCOM_BCM5401)
+ PHY_WRITE(sc, BRGPHY_MII_AUXCTL, 0x4c20);
+ else {
+ PHY_WRITE(sc, BRGPHY_MII_AUXCTL, 0x7);
+ val = PHY_READ(sc, BRGPHY_MII_AUXCTL);
+ PHY_WRITE(sc, BRGPHY_MII_AUXCTL,
+ val | BRGPHY_AUXCTL_LONG_PKT);
+ }
val = PHY_READ(sc, BRGPHY_MII_PHY_EXTCTL);
PHY_WRITE(sc, BRGPHY_MII_PHY_EXTCTL,
OpenPOWER on IntegriCloud