svn commit: r213384 - in head/sys/dev: dc mii
Marius Strobl
marius at FreeBSD.org
Sun Oct 3 17:00:57 UTC 2010
Author: marius
Date: Sun Oct 3 17:00:57 2010
New Revision: 213384
URL: http://svn.freebsd.org/changeset/base/213384
Log:
Consistently always explicitly set IFM_HDX for half-duplex.
Obtained from: OpenBSD (mostly)
Modified:
head/sys/dev/dc/dcphy.c
head/sys/dev/dc/pnphy.c
head/sys/dev/mii/acphy.c
head/sys/dev/mii/amphy.c
head/sys/dev/mii/axphy.c
head/sys/dev/mii/bmtphy.c
head/sys/dev/mii/gentbi.c
head/sys/dev/mii/inphy.c
head/sys/dev/mii/lxtphy.c
head/sys/dev/mii/nsphy.c
head/sys/dev/mii/qsphy.c
head/sys/dev/mii/rlphy.c
head/sys/dev/mii/ruephy.c
head/sys/dev/mii/tdkphy.c
head/sys/dev/mii/tlphy.c
head/sys/dev/mii/ukphy_subr.c
Modified: head/sys/dev/dc/dcphy.c
==============================================================================
--- head/sys/dev/dc/dcphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/dc/dcphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -341,14 +341,14 @@ dcphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX | IFM_FDX;
else if (anlpar & ANLPAR_T4 &&
sc->mii_capabilities & BMSR_100T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4 | IFM_HDX;
else if (anlpar & ANLPAR_TX &&
sc->mii_capabilities & BMSR_100TXHDX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX | IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T | IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T | IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
if (DC_IS_INTEL(dc_sc))
@@ -366,9 +366,9 @@ dcphy_status(struct mii_softc *sc)
* change the media settings if we're wrong.
*/
if (!(reg & DC_TSTAT_LS100))
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX | IFM_HDX;
else if (!(reg & DC_TSTAT_LS10))
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T | IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
if (DC_IS_INTEL(dc_sc))
@@ -383,6 +383,8 @@ skip:
mii->mii_media_active |= IFM_100_TX;
if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
}
static int
Modified: head/sys/dev/dc/pnphy.c
==============================================================================
--- head/sys/dev/dc/pnphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/dc/pnphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -237,4 +237,6 @@ pnphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
}
Modified: head/sys/dev/mii/acphy.c
==============================================================================
--- head/sys/dev/mii/acphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/acphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -245,6 +245,8 @@ acphy_status(struct mii_softc *sc)
if (diag & AC_DIAG_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/amphy.c
==============================================================================
--- head/sys/dev/mii/amphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/amphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -206,13 +206,13 @@ amphy_status(struct mii_softc *sc)
if (anlpar & ANLPAR_TX_FD)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
return;
@@ -225,11 +225,11 @@ amphy_status(struct mii_softc *sc)
if (par & DSCSR_100FDX)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (par & DSCSR_100HDX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (par & DSCSR_10FDX)
mii->mii_media_active |= IFM_10_T|IFM_HDX;
else if (par & DSCSR_10HDX)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/axphy.c
==============================================================================
--- head/sys/dev/mii/axphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/axphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -189,6 +189,8 @@ axphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (scr & SCR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
#endif
} else
mii->mii_media_active = ife->ifm_media;
Modified: head/sys/dev/mii/bmtphy.c
==============================================================================
--- head/sys/dev/mii/bmtphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/bmtphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -243,6 +243,8 @@ bmtphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (aux_csr & AUX_CSR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/gentbi.c
==============================================================================
--- head/sys/dev/mii/gentbi.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/gentbi.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -263,11 +263,12 @@ gentbi_status(struct mii_softc *sc)
* see if we're doing full-duplex.
*/
mii->mii_media_active |= IFM_1000_SX;
-
anlpar = PHY_READ(sc, MII_ANLPAR);
if ((sc->mii_extcapabilities & EXTSR_1000XFDX) != 0 &&
(anlpar & ANLPAR_X_FD) != 0)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/inphy.c
==============================================================================
--- head/sys/dev/mii/inphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/inphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -197,6 +197,8 @@ inphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (scr & SCR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/lxtphy.c
==============================================================================
--- head/sys/dev/mii/lxtphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/lxtphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -250,6 +250,8 @@ lxtphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (csr & CSR_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/nsphy.c
==============================================================================
--- head/sys/dev/mii/nsphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/nsphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -298,13 +298,13 @@ nsphy_status(struct mii_softc *sc)
if (anlpar & ANLPAR_TX_FD)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
return;
@@ -320,10 +320,7 @@ nsphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
else
mii->mii_media_active |= IFM_100_TX;
-#if 0
- if (par & PAR_FDX)
- mii->mii_media_active |= IFM_FDX;
-#endif
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/qsphy.c
==============================================================================
--- head/sys/dev/mii/qsphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/qsphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -215,19 +215,19 @@ qsphy_status(struct mii_softc *sc)
pctl = PHY_READ(sc, MII_QSPHY_PCTL);
switch (pctl & PCTL_OPMASK) {
case PCTL_10_T:
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
break;
case PCTL_10_T_FDX:
mii->mii_media_active |= IFM_10_T|IFM_FDX;
break;
case PCTL_100_TX:
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
break;
case PCTL_100_TX_FDX:
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
break;
case PCTL_100_T4:
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
break;
case PCTL_AN:
mii->mii_media_active |= IFM_NONE;
Modified: head/sys/dev/mii/rlphy.c
==============================================================================
--- head/sys/dev/mii/rlphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/rlphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -249,13 +249,13 @@ rlphy_status(struct mii_softc *phy)
if (anlpar & ANLPAR_TX_FD)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
return;
@@ -299,6 +299,7 @@ rlphy_status(struct mii_softc *phy)
else
mii->mii_media_active |= IFM_100_TX;
}
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/ruephy.c
==============================================================================
--- head/sys/dev/mii/ruephy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/ruephy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -244,6 +244,8 @@ ruephy_status(struct mii_softc *phy)
if (msr & RUEPHY_MSR_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Modified: head/sys/dev/mii/tdkphy.c
==============================================================================
--- head/sys/dev/mii/tdkphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/tdkphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -217,13 +217,13 @@ tdkphy_status(struct mii_softc *phy)
if (anlpar & ANLPAR_TX_FD)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else {
/*
* ANLPAR isn't set, which leaves two possibilities:
@@ -234,10 +234,12 @@ tdkphy_status(struct mii_softc *phy)
*/
diag = PHY_READ(phy, MII_DIAG);
if (diag & DIAG_NEGFAIL) /* assume 10baseT if no neg */
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else {
if (diag & DIAG_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
if (diag & DIAG_RATE_100)
mii->mii_media_active |= IFM_100_TX;
else
Modified: head/sys/dev/mii/tlphy.c
==============================================================================
--- head/sys/dev/mii/tlphy.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/tlphy.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -333,6 +333,8 @@ tlphy_status(struct tlphy_softc *sc)
*/
if (bmcr & BMCR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
mii->mii_media_active |= IFM_10_T;
}
Modified: head/sys/dev/mii/ukphy_subr.c
==============================================================================
--- head/sys/dev/mii/ukphy_subr.c Sun Oct 3 16:02:53 2010 (r213383)
+++ head/sys/dev/mii/ukphy_subr.c Sun Oct 3 17:00:57 2010 (r213384)
@@ -104,17 +104,17 @@ ukphy_status(struct mii_softc *phy)
mii->mii_media_active |= IFM_1000_T|IFM_FDX;
else if ((gtcr & GTCR_ADV_1000THDX) &&
(gtsr & GTSR_LP_1000THDX))
- mii->mii_media_active |= IFM_1000_T;
+ mii->mii_media_active |= IFM_1000_T|IFM_HDX;
else if (anlpar & ANLPAR_TX_FD)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
} else
More information about the svn-src-head
mailing list