summaryrefslogtreecommitdiffstats
path: root/sys/dev/dc/dcphy.c
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2011-01-14 20:26:59 +0000
committermarius <marius@FreeBSD.org>2011-01-14 20:26:59 +0000
commit953bb11fc96bd5917a100aed63201de5a81734b9 (patch)
treee2ab91d30fc4ca58a8e7e13484aab765b7f3cdb0 /sys/dev/dc/dcphy.c
parent5e29e07a8194515a467fb0cf8ecd2df710270422 (diff)
downloadFreeBSD-src-953bb11fc96bd5917a100aed63201de5a81734b9.zip
FreeBSD-src-953bb11fc96bd5917a100aed63201de5a81734b9.tar.gz
- Even after masking the media with IFM_GMASK the result may have bits
besides the duplex ones set so just comparing it with IFM_FDX may lead to false negatives. - Just let the default case handle all unsupported media types. - In pnphy_status() don't unnecessarily read a register twice. - Remove unnused macros. MFC after: 1 week
Diffstat (limited to 'sys/dev/dc/dcphy.c')
-rw-r--r--sys/dev/dc/dcphy.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/dev/dc/dcphy.c b/sys/dev/dc/dcphy.c
index 64294df..99aca0f 100644
--- a/sys/dev/dc/dcphy.c
+++ b/sys/dev/dc/dcphy.c
@@ -222,17 +222,12 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
/*dcphy_reset(sc);*/
(void) dcphy_auto(sc);
break;
- case IFM_100_T4:
- /*
- * XXX Not supported as a manual setting right now.
- */
- return (EINVAL);
case IFM_100_TX:
dcphy_reset(sc);
DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
mode |= DC_NETCFG_PORTSEL | DC_NETCFG_PCS |
DC_NETCFG_SCRAMBLER;
- if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+ if ((ife->ifm_media & IFM_FDX) != 0)
mode |= DC_NETCFG_FULLDUPLEX;
else
mode &= ~DC_NETCFG_FULLDUPLEX;
@@ -241,7 +236,7 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
case IFM_10_T:
DC_CLRBIT(dc_sc, DC_SIARESET, DC_SIA_RESET);
DC_CLRBIT(dc_sc, DC_10BTCTRL, 0xFFFF);
- if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+ if ((ife->ifm_media & IFM_FDX) != 0)
DC_SETBIT(dc_sc, DC_10BTCTRL, 0x7F3D);
else
DC_SETBIT(dc_sc, DC_10BTCTRL, 0x7F3F);
@@ -249,7 +244,7 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
mode &= ~DC_NETCFG_PORTSEL;
mode |= DC_NETCFG_SPEEDSEL;
- if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+ if ((ife->ifm_media & IFM_FDX) != 0)
mode |= DC_NETCFG_FULLDUPLEX;
else
mode &= ~DC_NETCFG_FULLDUPLEX;
OpenPOWER on IntegriCloud