diff options
author | marius <marius@FreeBSD.org> | 2011-01-14 20:26:59 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2011-01-14 20:26:59 +0000 |
commit | 953bb11fc96bd5917a100aed63201de5a81734b9 (patch) | |
tree | e2ab91d30fc4ca58a8e7e13484aab765b7f3cdb0 /sys/dev/dc/dcphy.c | |
parent | 5e29e07a8194515a467fb0cf8ecd2df710270422 (diff) | |
download | FreeBSD-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.c | 11 |
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; |