aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mii
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>2000-10-05 17:36:14 +0000
committerBill Paul <wpaul@FreeBSD.org>2000-10-05 17:36:14 +0000
commit5c1cfac46e47ae5f83346be09703ae711e47b4a4 (patch)
tree4b47a08c23d6c1d8c369e0700170c125e8bc4f89 /sys/dev/mii
parentb75e82a0e60b039d0eca71e903a01a8bdc76813f (diff)
Notes
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/dcphy.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/mii/dcphy.c b/sys/dev/mii/dcphy.c
index 73e241e8f5cc..ad2599c69583 100644
--- a/sys/dev/mii/dcphy.c
+++ b/sys/dev/mii/dcphy.c
@@ -179,12 +179,17 @@ static int dcphy_attach(dev)
sc->mii_capabilities = BMSR_ANEG|BMSR_10TFDX|BMSR_10THDX;
break;
default:
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP,
- sc->mii_inst), BMCR_LOOP|BMCR_S100);
+ if (dc_sc->dc_pmode == DC_PMODE_SIA) {
+ sc->mii_capabilities =
+ BMSR_ANEG|BMSR_10TFDX|BMSR_10THDX;
+ } else {
+ ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP,
+ sc->mii_inst), BMCR_LOOP|BMCR_S100);
- sc->mii_capabilities =
- BMSR_ANEG|BMSR_100TXFDX|BMSR_100TXHDX|
- BMSR_10TFDX|BMSR_10THDX;
+ sc->mii_capabilities =
+ BMSR_ANEG|BMSR_100TXFDX|BMSR_100TXHDX|
+ BMSR_10TFDX|BMSR_10THDX;
+ }
break;
}
@@ -429,10 +434,11 @@ dcphy_status(sc)
}
skip:
- if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_SCRAMBLER)
- mii->mii_media_active |= IFM_100_TX;
- else
+
+ if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_SPEEDSEL)
mii->mii_media_active |= IFM_10_T;
+ else
+ mii->mii_media_active |= IFM_100_TX;
if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
mii->mii_media_active |= IFM_FDX;