aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mii
diff options
context:
space:
mode:
authorMarius Strobl <marius@FreeBSD.org>2011-01-14 19:29:53 +0000
committerMarius Strobl <marius@FreeBSD.org>2011-01-14 19:29:53 +0000
commit87a303dc63455d4c98f8b3baefe0cb55557200b1 (patch)
treedc8d4cfb175320bd42ead1837e44df41ab18484d /sys/dev/mii
parent34259ba39bbeab8b1648592405ef63fd9da6f098 (diff)
Notes
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/brgphy.c2
-rw-r--r--sys/dev/mii/ciphy.c25
-rw-r--r--sys/dev/mii/xmphy.c2
3 files changed, 13 insertions, 16 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 58adc5325d3c..024274d39df7 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -453,7 +453,7 @@ brgphy_setmedia(struct mii_softc *sc, int media)
break;
}
- if ((media & IFM_GMASK) == IFM_FDX) {
+ if ((media & IFM_FDX) != 0) {
bmcr |= BRGPHY_BMCR_FDX;
gig = BRGPHY_1000CTL_AFD;
} else {
diff --git a/sys/dev/mii/ciphy.c b/sys/dev/mii/ciphy.c
index 3f320fb4a464..919680bd8708 100644
--- a/sys/dev/mii/ciphy.c
+++ b/sys/dev/mii/ciphy.c
@@ -176,26 +176,23 @@ ciphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
case IFM_10_T:
speed = CIPHY_S10;
setit:
- if ((ife->ifm_media & IFM_GMASK) == IFM_FDX) {
+ if ((ife->ifm_media & IFM_FDX) != 0) {
speed |= CIPHY_BMCR_FDX;
gig = CIPHY_1000CTL_AFD;
- } else {
+ } else
gig = CIPHY_1000CTL_AHD;
- }
- PHY_WRITE(sc, CIPHY_MII_1000CTL, 0);
+ if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {
+ gig |= CIPHY_1000CTL_MSE;
+ if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
+ gig |= CIPHY_1000CTL_MSC;
+ speed |=
+ CIPHY_BMCR_AUTOEN | CIPHY_BMCR_STARTNEG;
+ } else
+ gig = 0;
+ PHY_WRITE(sc, CIPHY_MII_1000CTL, gig);
PHY_WRITE(sc, CIPHY_MII_BMCR, speed);
PHY_WRITE(sc, CIPHY_MII_ANAR, CIPHY_SEL_TYPE);
-
- if (IFM_SUBTYPE(ife->ifm_media) != IFM_1000_T)
- break;
-
- gig |= CIPHY_1000CTL_MSE;
- if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
- gig |= CIPHY_1000CTL_MSC;
- PHY_WRITE(sc, CIPHY_MII_1000CTL, gig);
- PHY_WRITE(sc, CIPHY_MII_BMCR,
- speed | CIPHY_BMCR_AUTOEN | CIPHY_BMCR_STARTNEG);
break;
case IFM_NONE:
PHY_WRITE(sc, MII_BMCR, BMCR_ISO | BMCR_PDOWN);
diff --git a/sys/dev/mii/xmphy.c b/sys/dev/mii/xmphy.c
index d662687a243e..9867f0e244a5 100644
--- a/sys/dev/mii/xmphy.c
+++ b/sys/dev/mii/xmphy.c
@@ -171,7 +171,7 @@ xmphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
break;
case IFM_1000_SX:
mii_phy_reset(sc);
- if ((ife->ifm_media & IFM_GMASK) == IFM_FDX) {
+ if ((ife->ifm_media & IFM_FDX) != 0) {
PHY_WRITE(sc, XMPHY_MII_ANAR, XMPHY_ANAR_FDX);
PHY_WRITE(sc, XMPHY_MII_BMCR, XMPHY_BMCR_FDX);
} else {