summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2007-11-16 10:25:36 +0000
committeryongari <yongari@FreeBSD.org>2007-11-16 10:25:36 +0000
commit21faca2ee7f073e31d345fd7f2af8494d7060517 (patch)
tree6a96fff67828f66a4043afba1a520e87965e3db4 /sys/dev/mii
parent6a78af898e9fd65c9dd5465d3915905b53846273 (diff)
downloadFreeBSD-src-21faca2ee7f073e31d345fd7f2af8494d7060517.zip
FreeBSD-src-21faca2ee7f073e31d345fd7f2af8494d7060517.tar.gz
IEEE 802.3 Annex 28B.3 explicitly specifies the following relative
priorities of the technologies supported by 802.3 Selector Field value. 1000BASE-T full duplex 1000BASE-T 100BASE-T2 full duplex 100BASE-TX full duplex 100BASE-T2 100BASE-T4 100BASE-TX 10BASE-T full duplex 10BAST-T However PHY drivers didn't honor the order such that 100BASE-T4 had higher priority than 100BASE-TX full duplex. Fix that long standing bugs such that have PHY drivers choose the highest common denominator ability. Fix a bug in dcphy which inadvertently aceepts 100BASE-T4. PR: 92599
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/amphy.c6
-rw-r--r--sys/dev/mii/nsphy.c6
-rw-r--r--sys/dev/mii/rlphy.c6
-rw-r--r--sys/dev/mii/tdkphy.c6
-rw-r--r--sys/dev/mii/ukphy_subr.c4
5 files changed, 14 insertions, 14 deletions
diff --git a/sys/dev/mii/amphy.c b/sys/dev/mii/amphy.c
index 2b9ec72d..f4a9ec6 100644
--- a/sys/dev/mii/amphy.c
+++ b/sys/dev/mii/amphy.c
@@ -228,10 +228,10 @@ amphy_status(struct mii_softc *sc)
if (PHY_READ(sc, MII_ANER) & ANER_LPAN) {
anlpar = PHY_READ(sc, MII_ANAR) &
PHY_READ(sc, MII_ANLPAR);
- if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
- else if (anlpar & ANLPAR_TX_FD)
+ 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;
else if (anlpar & ANLPAR_TX)
mii->mii_media_active |= IFM_100_TX;
else if (anlpar & ANLPAR_10_FD)
diff --git a/sys/dev/mii/nsphy.c b/sys/dev/mii/nsphy.c
index 01429ab..88f0daf 100644
--- a/sys/dev/mii/nsphy.c
+++ b/sys/dev/mii/nsphy.c
@@ -331,10 +331,10 @@ nsphy_status(struct mii_softc *sc)
if (PHY_READ(sc, MII_ANER) & ANER_LPAN) {
anlpar = PHY_READ(sc, MII_ANAR) &
PHY_READ(sc, MII_ANLPAR);
- if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
- else if (anlpar & ANLPAR_TX_FD)
+ 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;
else if (anlpar & ANLPAR_TX)
mii->mii_media_active |= IFM_100_TX;
else if (anlpar & ANLPAR_10_FD)
diff --git a/sys/dev/mii/rlphy.c b/sys/dev/mii/rlphy.c
index aa9ff76..fbbdfd0 100644
--- a/sys/dev/mii/rlphy.c
+++ b/sys/dev/mii/rlphy.c
@@ -261,10 +261,10 @@ rlphy_status(struct mii_softc *phy)
if ((anlpar = PHY_READ(phy, MII_ANAR) &
PHY_READ(phy, MII_ANLPAR))) {
- if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
- else if (anlpar & ANLPAR_TX_FD)
+ 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;
else if (anlpar & ANLPAR_TX)
mii->mii_media_active |= IFM_100_TX;
else if (anlpar & ANLPAR_10_FD)
diff --git a/sys/dev/mii/tdkphy.c b/sys/dev/mii/tdkphy.c
index 1b31ee2..83a394a 100644
--- a/sys/dev/mii/tdkphy.c
+++ b/sys/dev/mii/tdkphy.c
@@ -239,10 +239,10 @@ tdkphy_status(struct mii_softc *phy)
* ANLPAR doesn't get set on my card, but we check it anyway,
* since it is mentioned in the 78Q2120 specs.
*/
- if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
- else if (anlpar & ANLPAR_TX_FD)
+ 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;
else if (anlpar & ANLPAR_TX)
mii->mii_media_active |= IFM_100_TX;
else if (anlpar & ANLPAR_10_FD)
diff --git a/sys/dev/mii/ukphy_subr.c b/sys/dev/mii/ukphy_subr.c
index 9d7df3d..fdfc972 100644
--- a/sys/dev/mii/ukphy_subr.c
+++ b/sys/dev/mii/ukphy_subr.c
@@ -112,10 +112,10 @@ ukphy_status(struct mii_softc *phy)
else if ((gtcr & GTCR_ADV_1000THDX) &&
(gtsr & GTSR_LP_1000THDX))
mii->mii_media_active |= IFM_1000_T;
- else if (anlpar & ANLPAR_T4)
- mii->mii_media_active |= IFM_100_T4;
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;
else if (anlpar & ANLPAR_TX)
mii->mii_media_active |= IFM_100_TX;
else if (anlpar & ANLPAR_10_FD)
OpenPOWER on IntegriCloud