summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/nsphy.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2001-06-02 19:51:02 +0000
committerjlemon <jlemon@FreeBSD.org>2001-06-02 19:51:02 +0000
commite2b8fe4ab9c687c65725487e986465bb7b9b7fa1 (patch)
tree9671662ee1743aaee2fb4f38485b8e681943bf35 /sys/dev/mii/nsphy.c
parentbc9d23ecbee02e172eeccf976ad5376f9c0cca1f (diff)
downloadFreeBSD-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/nsphy.c')
-rw-r--r--sys/dev/mii/nsphy.c4
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:
OpenPOWER on IntegriCloud