diff options
author | jkim <jkim@FreeBSD.org> | 2007-02-12 20:26:56 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2007-02-12 20:26:56 +0000 |
commit | 11b889abd11dc55a6a622564b74f87f31b015d61 (patch) | |
tree | d3a1fb8bb2a90c84ca1ed8f5bdb453ba8e5d47da /sys/dev | |
parent | abb3ed529cfea1325d1e7d64234e223d817eef97 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/mii/brgphy.c | 13 |
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, |