diff options
author | jlemon <jlemon@FreeBSD.org> | 2001-06-02 19:51:02 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2001-06-02 19:51:02 +0000 |
commit | e2b8fe4ab9c687c65725487e986465bb7b9b7fa1 (patch) | |
tree | 9671662ee1743aaee2fb4f38485b8e681943bf35 /sys/dev/mii | |
parent | bc9d23ecbee02e172eeccf976ad5376f9c0cca1f (diff) | |
download | FreeBSD-src-e2b8fe4ab9c687c65725487e986465bb7b9b7fa1.zip FreeBSD-src-e2b8fe4ab9c687c65725487e986465bb7b9b7fa1.tar.gz |
Only touch the PCR register in order to set bits for the fxp driver.
The 3C509-TX card apparently had a slightly different version of the
chip, and has problems when this register is set. The problem does
not appear on the 3C509{BC} cards, but since only the fxp driver needs
specific bits set, conditionalize on that.
Diffstat (limited to 'sys/dev/mii')
-rw-r--r-- | sys/dev/mii/nsphy.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/mii/nsphy.c b/sys/dev/mii/nsphy.c index 37f3e9c..f0c1336 100644 --- a/sys/dev/mii/nsphy.c +++ b/sys/dev/mii/nsphy.c @@ -276,7 +276,9 @@ nsphy_service(sc, mii, cmd) */ reg |= 0x0100 | 0x0400; - PHY_WRITE(sc, MII_NSPHY_PCR, reg); + if (strcmp(device_get_name(device_get_parent(sc->mii_dev)), + "fxp") == 0) + PHY_WRITE(sc, MII_NSPHY_PCR, reg); switch (IFM_SUBTYPE(ife->ifm_media)) { case IFM_AUTO: |