Module Name: src
Committed By: msaitoh
Date: Mon Jun 16 16:48:16 UTC 2014
Modified Files:
src/sys/arch/mips/adm5120/dev: if_admsw.c
src/sys/dev/ic: rtl80x9.c
src/sys/dev/mii: acphy.c amhphy.c brgphy.c ciphy.c dmphy.c gentbi.c
glxtphy.c gphyter.c icsphy.c igphy.c ihphy.c ikphy.c inphy.c
iophy.c lxtphy.c makphy.c mvphy.c nsphy.c nsphyter.c qsphy.c
rlphy.c sqphy.c tlphy.c tqphy.c ukphy_subr.c urlphy.c
src/sys/dev/pci: if_kse.c if_txp.c if_wm.c
Log Message:
IFM_FDX and IFM_HDX use different bit, so set IFM_HDX bit if it's not full
duplex. For many drivers, it recognize half duplex if IFM_FDX isn't set,
but not for others. Same as {Free|Open}BSD.
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/mips/adm5120/dev/if_admsw.c
cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ic/rtl80x9.c
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/mii/acphy.c src/sys/dev/mii/glxtphy.c
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/mii/amhphy.c
cvs rdiff -u -r1.69 -r1.70 src/sys/dev/mii/brgphy.c
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/mii/ciphy.c
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/mii/dmphy.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/mii/gentbi.c
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/mii/gphyter.c src/sys/dev/mii/rlphy.c
cvs rdiff -u -r1.48 -r1.49 src/sys/dev/mii/icsphy.c src/sys/dev/mii/lxtphy.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/mii/igphy.c
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/mii/ihphy.c
cvs rdiff -u -r1.9 -r1.10 src/sys/dev/mii/ikphy.c src/sys/dev/mii/mvphy.c
cvs rdiff -u -r1.52 -r1.53 src/sys/dev/mii/inphy.c
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/mii/iophy.c
cvs rdiff -u -r1.39 -r1.40 src/sys/dev/mii/makphy.c
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/mii/nsphy.c
cvs rdiff -u -r1.37 -r1.38 src/sys/dev/mii/nsphyter.c
cvs rdiff -u -r1.47 -r1.48 src/sys/dev/mii/qsphy.c
cvs rdiff -u -r1.49 -r1.50 src/sys/dev/mii/sqphy.c
cvs rdiff -u -r1.61 -r1.62 src/sys/dev/mii/tlphy.c
cvs rdiff -u -r1.38 -r1.39 src/sys/dev/mii/tqphy.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/mii/ukphy_subr.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/mii/urlphy.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/pci/if_kse.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/pci/if_txp.c
cvs rdiff -u -r1.269 -r1.270 src/sys/dev/pci/if_wm.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/adm5120/dev/if_admsw.c
diff -u src/sys/arch/mips/adm5120/dev/if_admsw.c:1.11 src/sys/arch/mips/adm5120/dev/if_admsw.c:1.12
--- src/sys/arch/mips/adm5120/dev/if_admsw.c:1.11 Sat Oct 27 17:18:01 2012
+++ src/sys/arch/mips/adm5120/dev/if_admsw.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_admsw.c,v 1.11 2012/10/27 17:18:01 chs Exp $ */
+/* $NetBSD: if_admsw.c,v 1.12 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
@@ -76,7 +76,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_admsw.c,v 1.11 2012/10/27 17:18:01 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_admsw.c,v 1.12 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
@@ -1277,4 +1277,6 @@ admsw_mediastatus(struct ifnet *ifp, str
ifmr->ifm_active |= (status & PHY_ST_100M) ? IFM_100_TX : IFM_10_T;
if (status & PHY_ST_FDX)
ifmr->ifm_active |= IFM_FDX;
+ else
+ ifmr->ifm_active |= IFM_HDX;
}
Index: src/sys/dev/ic/rtl80x9.c
diff -u src/sys/dev/ic/rtl80x9.c:1.15 src/sys/dev/ic/rtl80x9.c:1.16
--- src/sys/dev/ic/rtl80x9.c:1.15 Sat Mar 14 15:36:17 2009
+++ src/sys/dev/ic/rtl80x9.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: rtl80x9.c,v 1.15 2009/03/14 15:36:17 dsl Exp $ */
+/* $NetBSD: rtl80x9.c,v 1.16 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtl80x9.c,v 1.15 2009/03/14 15:36:17 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtl80x9.c,v 1.16 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -92,6 +92,8 @@ rtl80x9_mediastatus(struct dp8390_softc
if (NIC_GET(sc->sc_regt, sc->sc_regh, NERTL_RTL3_CONFIG3) &
RTL3_CONFIG3_FUDUP)
ifmr->ifm_active |= IFM_FDX;
+ else
+ ifmr->ifm_active |= IFM_HDX;
}
/* Set NIC to page 0 registers. */
Index: src/sys/dev/mii/acphy.c
diff -u src/sys/dev/mii/acphy.c:1.23 src/sys/dev/mii/acphy.c:1.24
--- src/sys/dev/mii/acphy.c:1.23 Mon Nov 17 03:04:27 2008
+++ src/sys/dev/mii/acphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: acphy.c,v 1.23 2008/11/17 03:04:27 dyoung Exp $ */
+/* $NetBSD: acphy.c,v 1.24 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acphy.c,v 1.23 2008/11/17 03:04:27 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acphy.c,v 1.24 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -248,8 +248,11 @@ acphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
else
mii->mii_media_active |= IFM_10_T;
+
if (dr & DR_DPLX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/glxtphy.c
diff -u src/sys/dev/mii/glxtphy.c:1.23 src/sys/dev/mii/glxtphy.c:1.24
--- src/sys/dev/mii/glxtphy.c:1.23 Mon Oct 19 18:41:13 2009
+++ src/sys/dev/mii/glxtphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: glxtphy.c,v 1.23 2009/10/19 18:41:13 bouyer Exp $ */
+/* $NetBSD: glxtphy.c,v 1.24 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: glxtphy.c,v 1.23 2009/10/19 18:41:13 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: glxtphy.c,v 1.24 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -265,6 +265,8 @@ glxtphy_status(struct mii_softc *sc)
if (qsr & QSR_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/amhphy.c
diff -u src/sys/dev/mii/amhphy.c:1.19 src/sys/dev/mii/amhphy.c:1.20
--- src/sys/dev/mii/amhphy.c:1.19 Mon Nov 17 03:04:27 2008
+++ src/sys/dev/mii/amhphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: amhphy.c,v 1.19 2008/11/17 03:04:27 dyoung Exp $ */
+/* $NetBSD: amhphy.c,v 1.20 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amhphy.c,v 1.19 2008/11/17 03:04:27 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amhphy.c,v 1.20 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -230,6 +230,8 @@ amhphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (ssr & SSR_FD)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/brgphy.c
diff -u src/sys/dev/mii/brgphy.c:1.69 src/sys/dev/mii/brgphy.c:1.70
--- src/sys/dev/mii/brgphy.c:1.69 Thu Jun 12 12:09:47 2014
+++ src/sys/dev/mii/brgphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: brgphy.c,v 1.69 2014/06/12 12:09:47 msaitoh Exp $ */
+/* $NetBSD: brgphy.c,v 1.70 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: brgphy.c,v 1.69 2014/06/12 12:09:47 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: brgphy.c,v 1.70 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -575,7 +575,7 @@ brgphy_status(struct mii_softc *sc)
break;
case BRGPHY_RES_1000HD:
- mii->mii_media_active |= IFM_1000_T;
+ mii->mii_media_active |= IFM_1000_T | IFM_HDX;
gtsr = PHY_READ(sc, MII_100T2SR);
if (gtsr & GTSR_MS_RES)
mii->mii_media_active |= IFM_ETH_MASTER;
@@ -586,11 +586,11 @@ brgphy_status(struct mii_softc *sc)
break;
case BRGPHY_RES_100T4:
- mii->mii_media_active |= IFM_100_T4;
+ mii->mii_media_active |= IFM_100_T4 | IFM_HDX;
break;
case BRGPHY_RES_100HD:
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX | IFM_HDX;
break;
case BRGPHY_RES_10FD:
@@ -598,7 +598,7 @@ brgphy_status(struct mii_softc *sc)
break;
case BRGPHY_RES_10HD:
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T | IFM_HDX;
break;
default:
Index: src/sys/dev/mii/ciphy.c
diff -u src/sys/dev/mii/ciphy.c:1.24 src/sys/dev/mii/ciphy.c:1.25
--- src/sys/dev/mii/ciphy.c:1.24 Tue Jun 11 07:22:08 2013
+++ src/sys/dev/mii/ciphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ciphy.c,v 1.24 2013/06/11 07:22:08 msaitoh Exp $ */
+/* $NetBSD: ciphy.c,v 1.25 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 2004
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ciphy.c,v 1.24 2013/06/11 07:22:08 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ciphy.c,v 1.25 2014/06/16 16:48:16 msaitoh Exp $");
/*
* Driver for the Cicada CS8201 10/100/1000 copper PHY.
@@ -363,6 +363,8 @@ ciphy_status(struct mii_softc *sc)
if (bmsr & CIPHY_AUXCSR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
return;
}
Index: src/sys/dev/mii/dmphy.c
diff -u src/sys/dev/mii/dmphy.c:1.34 src/sys/dev/mii/dmphy.c:1.35
--- src/sys/dev/mii/dmphy.c:1.34 Mon Oct 19 18:41:13 2009
+++ src/sys/dev/mii/dmphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: dmphy.c,v 1.34 2009/10/19 18:41:13 bouyer Exp $ */
+/* $NetBSD: dmphy.c,v 1.35 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dmphy.c,v 1.34 2009/10/19 18:41:13 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dmphy.c,v 1.35 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -247,11 +247,11 @@ dmphy_status(struct mii_softc *sc)
if (dscsr & DSCSR_100FDX)
mii->mii_media_active |= IFM_100_TX|IFM_FDX;
else if (dscsr & DSCSR_100HDX)
- mii->mii_media_active |= IFM_100_TX;
+ mii->mii_media_active |= IFM_100_TX|IFM_HDX;
else if (dscsr & DSCSR_10FDX)
mii->mii_media_active |= IFM_10_T|IFM_FDX;
else if (dscsr & DSCSR_10HDX)
- mii->mii_media_active |= IFM_10_T;
+ mii->mii_media_active |= IFM_10_T|IFM_HDX;
else
mii->mii_media_active |= IFM_NONE;
} else
Index: src/sys/dev/mii/gentbi.c
diff -u src/sys/dev/mii/gentbi.c:1.26 src/sys/dev/mii/gentbi.c:1.27
--- src/sys/dev/mii/gentbi.c:1.26 Mon Jun 16 14:43:22 2014
+++ src/sys/dev/mii/gentbi.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: gentbi.c,v 1.26 2014/06/16 14:43:22 msaitoh Exp $ */
+/* $NetBSD: gentbi.c,v 1.27 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gentbi.c,v 1.26 2014/06/16 14:43:22 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gentbi.c,v 1.27 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -281,6 +281,8 @@ gentbi_status(struct mii_softc *sc)
(anlpar & ANLPAR_X_FD) != 0)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/gphyter.c
diff -u src/sys/dev/mii/gphyter.c:1.28 src/sys/dev/mii/gphyter.c:1.29
--- src/sys/dev/mii/gphyter.c:1.28 Thu Jan 7 09:30:28 2010
+++ src/sys/dev/mii/gphyter.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: gphyter.c,v 1.28 2010/01/07 09:30:28 jdc Exp $ */
+/* $NetBSD: gphyter.c,v 1.29 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gphyter.c,v 1.28 2010/01/07 09:30:28 jdc Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gphyter.c,v 1.29 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -300,6 +300,8 @@ gphyter_status(struct mii_softc *sc)
if (physup & PHY_SUP_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/rlphy.c
diff -u src/sys/dev/mii/rlphy.c:1.28 src/sys/dev/mii/rlphy.c:1.29
--- src/sys/dev/mii/rlphy.c:1.28 Mon Jun 16 14:43:22 2014
+++ src/sys/dev/mii/rlphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: rlphy.c,v 1.28 2014/06/16 14:43:22 msaitoh Exp $ */
+/* $NetBSD: rlphy.c,v 1.29 2014/06/16 16:48:16 msaitoh Exp $ */
/* $OpenBSD: rlphy.c,v 1.20 2005/07/31 05:27:30 pvalchev Exp $ */
/*
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rlphy.c,v 1.28 2014/06/16 14:43:22 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rlphy.c,v 1.29 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -246,13 +246,13 @@ rlphy_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;
@@ -296,7 +296,7 @@ rlphy_status(struct mii_softc *sc)
else
mii->mii_media_active |= IFM_100_TX;
}
-
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/icsphy.c
diff -u src/sys/dev/mii/icsphy.c:1.48 src/sys/dev/mii/icsphy.c:1.49
--- src/sys/dev/mii/icsphy.c:1.48 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/icsphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: icsphy.c,v 1.48 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: icsphy.c,v 1.49 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: icsphy.c,v 1.48 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: icsphy.c,v 1.49 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -252,8 +252,11 @@ icsphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
else
mii->mii_media_active |= IFM_10_T;
+
if (qpr & QPR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/lxtphy.c
diff -u src/sys/dev/mii/lxtphy.c:1.48 src/sys/dev/mii/lxtphy.c:1.49
--- src/sys/dev/mii/lxtphy.c:1.48 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/lxtphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: lxtphy.c,v 1.48 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: lxtphy.c,v 1.49 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lxtphy.c,v 1.48 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lxtphy.c,v 1.49 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -272,8 +272,11 @@ lxtphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
else
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;
}
Index: src/sys/dev/mii/igphy.c
diff -u src/sys/dev/mii/igphy.c:1.22 src/sys/dev/mii/igphy.c:1.23
--- src/sys/dev/mii/igphy.c:1.22 Thu Oct 18 08:22:37 2012
+++ src/sys/dev/mii/igphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: igphy.c,v 1.22 2012/10/18 08:22:37 msaitoh Exp $ */
+/* $NetBSD: igphy.c,v 1.23 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* The Intel copyright applies to the analog register setup, and the
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: igphy.c,v 1.22 2012/10/18 08:22:37 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: igphy.c,v 1.23 2014/06/16 16:48:16 msaitoh Exp $");
#include "opt_mii.h"
@@ -482,6 +482,8 @@ igphy_status(struct mii_softc *sc)
if (pssr & PSSR_FULL_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/ihphy.c
diff -u src/sys/dev/mii/ihphy.c:1.7 src/sys/dev/mii/ihphy.c:1.8
--- src/sys/dev/mii/ihphy.c:1.7 Wed Jun 19 15:30:25 2013
+++ src/sys/dev/mii/ihphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ihphy.c,v 1.7 2013/06/19 15:30:25 msaitoh Exp $ */
+/* $NetBSD: ihphy.c,v 1.8 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ihphy.c,v 1.7 2013/06/19 15:30:25 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ihphy.c,v 1.8 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -290,8 +290,9 @@ ihphy_status(struct mii_softc *sc)
}
if (esr & IHPHY_ESR_DUPLEX)
- mii->mii_media_active |=
- IFM_FDX | mii_phy_flowstatus(sc);
+ mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
}
static void
Index: src/sys/dev/mii/ikphy.c
diff -u src/sys/dev/mii/ikphy.c:1.9 src/sys/dev/mii/ikphy.c:1.10
--- src/sys/dev/mii/ikphy.c:1.9 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/ikphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ikphy.c,v 1.9 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: ikphy.c,v 1.10 2014/06/16 16:48:16 msaitoh Exp $ */
/*******************************************************************************
Copyright (c) 2001-2005, Intel Corporation
@@ -59,7 +59,7 @@ POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ikphy.c,v 1.9 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ikphy.c,v 1.10 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -342,6 +342,8 @@ ikphy_status(struct mii_softc *sc)
if (pssr & GG82563_PSSR_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
kmrn = PHY_READ(sc, GG82563_PHY_KMRN_MODE_CTRL);
Index: src/sys/dev/mii/mvphy.c
diff -u src/sys/dev/mii/mvphy.c:1.9 src/sys/dev/mii/mvphy.c:1.10
--- src/sys/dev/mii/mvphy.c:1.9 Thu Jun 18 08:40:26 2009
+++ src/sys/dev/mii/mvphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: mvphy.c,v 1.9 2009/06/18 08:40:26 rjs Exp $ */
+/* $NetBSD: mvphy.c,v 1.10 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 2006 Sam Leffler, Errno Consulting
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvphy.c,v 1.9 2009/06/18 08:40:26 rjs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvphy.c,v 1.10 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -290,6 +290,8 @@ mvphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (hwstatus & MV_STATUS_RESOLVED_DUPLEX_FULL)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else {
mii->mii_media_active |= IFM_NONE;
/* XXX flush ATU only on link down transition */
Index: src/sys/dev/mii/inphy.c
diff -u src/sys/dev/mii/inphy.c:1.52 src/sys/dev/mii/inphy.c:1.53
--- src/sys/dev/mii/inphy.c:1.52 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/inphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: inphy.c,v 1.52 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: inphy.c,v 1.53 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: inphy.c,v 1.52 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: inphy.c,v 1.53 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -252,8 +252,11 @@ inphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_T4;
else
mii->mii_media_active |= IFM_10_T;
+
if (scr & SCR_FDX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
if (mii->mii_media_active & IFM_FDX)
mii->mii_media_active |= mii_phy_flowstatus(sc);
Index: src/sys/dev/mii/iophy.c
diff -u src/sys/dev/mii/iophy.c:1.36 src/sys/dev/mii/iophy.c:1.37
--- src/sys/dev/mii/iophy.c:1.36 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/iophy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: iophy.c,v 1.36 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: iophy.c,v 1.37 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: iophy.c,v 1.36 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: iophy.c,v 1.37 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -246,6 +246,8 @@ iophy_status(struct mii_softc *sc)
if (ext0 & EXT0_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/makphy.c
diff -u src/sys/dev/mii/makphy.c:1.39 src/sys/dev/mii/makphy.c:1.40
--- src/sys/dev/mii/makphy.c:1.39 Tue May 13 02:11:26 2014
+++ src/sys/dev/mii/makphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: makphy.c,v 1.39 2014/05/13 02:11:26 christos Exp $ */
+/* $NetBSD: makphy.c,v 1.40 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: makphy.c,v 1.39 2014/05/13 02:11:26 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: makphy.c,v 1.40 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -344,6 +344,8 @@ makphy_status(struct mii_softc *sc)
if (pssr & PSSR_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/nsphy.c
diff -u src/sys/dev/mii/nsphy.c:1.58 src/sys/dev/mii/nsphy.c:1.59
--- src/sys/dev/mii/nsphy.c:1.58 Mon Jun 16 14:43:22 2014
+++ src/sys/dev/mii/nsphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: nsphy.c,v 1.58 2014/06/16 14:43:22 msaitoh Exp $ */
+/* $NetBSD: nsphy.c,v 1.59 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nsphy.c,v 1.58 2014/06/16 14:43:22 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nsphy.c,v 1.59 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -284,13 +284,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;
@@ -306,10 +306,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;
}
Index: src/sys/dev/mii/nsphyter.c
diff -u src/sys/dev/mii/nsphyter.c:1.37 src/sys/dev/mii/nsphyter.c:1.38
--- src/sys/dev/mii/nsphyter.c:1.37 Fri Aug 24 09:01:22 2012
+++ src/sys/dev/mii/nsphyter.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: nsphyter.c,v 1.37 2012/08/24 09:01:22 msaitoh Exp $ */
+/* $NetBSD: nsphyter.c,v 1.38 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nsphyter.c,v 1.37 2012/08/24 09:01:22 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nsphyter.c,v 1.38 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -256,9 +256,12 @@ nsphyter_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
else
mii->mii_media_active |= IFM_100_TX;
+
if (physts & PHYSTS_DUPLEX)
mii->mii_media_active |=
IFM_FDX | mii_phy_flowstatus(sc);
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/qsphy.c
diff -u src/sys/dev/mii/qsphy.c:1.47 src/sys/dev/mii/qsphy.c:1.48
--- src/sys/dev/mii/qsphy.c:1.47 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/qsphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: qsphy.c,v 1.47 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: qsphy.c,v 1.48 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: qsphy.c,v 1.47 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: qsphy.c,v 1.48 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -236,19 +236,19 @@ qsphy_status(struct mii_softc *sc)
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;
default:
/* Erg... this shouldn't happen. */
Index: src/sys/dev/mii/sqphy.c
diff -u src/sys/dev/mii/sqphy.c:1.49 src/sys/dev/mii/sqphy.c:1.50
--- src/sys/dev/mii/sqphy.c:1.49 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/sqphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sqphy.c,v 1.49 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: sqphy.c,v 1.50 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sqphy.c,v 1.49 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sqphy.c,v 1.50 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -264,6 +264,8 @@ sqphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_10_T;
if (status & STATUS_DPLX_DET)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/tlphy.c
diff -u src/sys/dev/mii/tlphy.c:1.61 src/sys/dev/mii/tlphy.c:1.62
--- src/sys/dev/mii/tlphy.c:1.61 Tue Jun 11 07:22:08 2013
+++ src/sys/dev/mii/tlphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: tlphy.c,v 1.61 2013/06/11 07:22:08 msaitoh Exp $ */
+/* $NetBSD: tlphy.c,v 1.62 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tlphy.c,v 1.61 2013/06/11 07:22:08 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tlphy.c,v 1.62 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -327,6 +327,8 @@ tlphy_status(struct mii_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;
}
Index: src/sys/dev/mii/tqphy.c
diff -u src/sys/dev/mii/tqphy.c:1.38 src/sys/dev/mii/tqphy.c:1.39
--- src/sys/dev/mii/tqphy.c:1.38 Mon Oct 19 18:41:14 2009
+++ src/sys/dev/mii/tqphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: tqphy.c,v 1.38 2009/10/19 18:41:14 bouyer Exp $ */
+/* $NetBSD: tqphy.c,v 1.39 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tqphy.c,v 1.38 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tqphy.c,v 1.39 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -250,8 +250,11 @@ tqphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
else
mii->mii_media_active |= IFM_10_T;
+
if (diag & DIAG_DPLX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/mii/ukphy_subr.c
diff -u src/sys/dev/mii/ukphy_subr.c:1.12 src/sys/dev/mii/ukphy_subr.c:1.13
--- src/sys/dev/mii/ukphy_subr.c:1.12 Mon Jun 16 14:43:22 2014
+++ src/sys/dev/mii/ukphy_subr.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ukphy_subr.c,v 1.12 2014/06/16 14:43:22 msaitoh Exp $ */
+/* $NetBSD: ukphy_subr.c,v 1.13 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ukphy_subr.c,v 1.12 2014/06/16 14:43:22 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ukphy_subr.c,v 1.13 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -102,17 +102,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;
Index: src/sys/dev/mii/urlphy.c
diff -u src/sys/dev/mii/urlphy.c:1.29 src/sys/dev/mii/urlphy.c:1.30
--- src/sys/dev/mii/urlphy.c:1.29 Sun Jun 9 09:56:17 2013
+++ src/sys/dev/mii/urlphy.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: urlphy.c,v 1.29 2013/06/09 09:56:17 msaitoh Exp $ */
+/* $NetBSD: urlphy.c,v 1.30 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright (c) 2001, 2002
* Shingo WATANABE <[email protected]>. All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: urlphy.c,v 1.29 2013/06/09 09:56:17 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: urlphy.c,v 1.30 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -268,8 +268,11 @@ urlphy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_100_TX;
else
mii->mii_media_active |= IFM_10_T;
+
if (msr & URLPHY_MSR_DUPLEX)
mii->mii_media_active |= IFM_FDX;
+ else
+ mii->mii_media_active |= IFM_HDX;
} else
mii->mii_media_active = ife->ifm_media;
}
Index: src/sys/dev/pci/if_kse.c
diff -u src/sys/dev/pci/if_kse.c:1.27 src/sys/dev/pci/if_kse.c:1.28
--- src/sys/dev/pci/if_kse.c:1.27 Sat Mar 29 19:28:24 2014
+++ src/sys/dev/pci/if_kse.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_kse.c,v 1.27 2014/03/29 19:28:24 christos Exp $ */
+/* $NetBSD: if_kse.c,v 1.28 2014/06/16 16:48:16 msaitoh Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.27 2014/03/29 19:28:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.28 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
@@ -1315,11 +1315,11 @@ ifmedia_sts(struct ifnet *ifp, struct if
if (result & (1U << 3))
ifmr->ifm_active |= IFM_100_TX|IFM_FDX;
else if (result & (1U << 2))
- ifmr->ifm_active |= IFM_100_TX;
+ ifmr->ifm_active |= IFM_100_TX|IFM_HDX;
else if (result & (1U << 1))
ifmr->ifm_active |= IFM_10_T|IFM_FDX;
else if (result & (1U << 0))
- ifmr->ifm_active |= IFM_10_T;
+ ifmr->ifm_active |= IFM_10_T|IFM_HDX;
else
ifmr->ifm_active |= IFM_NONE;
if (ctl & (1U << 4))
Index: src/sys/dev/pci/if_txp.c
diff -u src/sys/dev/pci/if_txp.c:1.40 src/sys/dev/pci/if_txp.c:1.41
--- src/sys/dev/pci/if_txp.c:1.40 Sat Mar 29 19:28:25 2014
+++ src/sys/dev/pci/if_txp.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_txp.c,v 1.40 2014/03/29 19:28:25 christos Exp $ */
+/* $NetBSD: if_txp.c,v 1.41 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright (c) 2001
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_txp.c,v 1.40 2014/03/29 19:28:25 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_txp.c,v 1.41 2014/06/16 16:48:16 msaitoh Exp $");
#include "opt_inet.h"
@@ -1838,13 +1838,13 @@ txp_ifmedia_sts(struct ifnet *ifp, struc
if (anlpar & ANLPAR_TX_FD)
ifmr->ifm_active |= IFM_100_TX|IFM_FDX;
else if (anlpar & ANLPAR_T4)
- ifmr->ifm_active |= IFM_100_T4;
+ ifmr->ifm_active |= IFM_100_T4|IFM_HDX;
else if (anlpar & ANLPAR_TX)
- ifmr->ifm_active |= IFM_100_TX;
+ ifmr->ifm_active |= IFM_100_TX|IFM_HDX;
else if (anlpar & ANLPAR_10_FD)
ifmr->ifm_active |= IFM_10_T|IFM_FDX;
else if (anlpar & ANLPAR_10)
- ifmr->ifm_active |= IFM_10_T;
+ ifmr->ifm_active |= IFM_10_T|IFM_HDX;
else
ifmr->ifm_active |= IFM_NONE;
} else
Index: src/sys/dev/pci/if_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.269 src/sys/dev/pci/if_wm.c:1.270
--- src/sys/dev/pci/if_wm.c:1.269 Tue May 27 02:21:29 2014
+++ src/sys/dev/pci/if_wm.c Mon Jun 16 16:48:16 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_wm.c,v 1.269 2014/05/27 02:21:29 tls Exp $ */
+/* $NetBSD: if_wm.c,v 1.270 2014/06/16 16:48:16 msaitoh Exp $ */
/*
* Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -76,7 +76,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.269 2014/05/27 02:21:29 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.270 2014/06/16 16:48:16 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -5968,6 +5968,8 @@ wm_tbi_mediastatus(struct ifnet *ifp, st
ifmr->ifm_active |= IFM_1000_SX;
if (CSR_READ(sc, WMREG_STATUS) & STATUS_FD)
ifmr->ifm_active |= IFM_FDX;
+ else
+ ifmr->ifm_active |= IFM_HDX;
ctrl = CSR_READ(sc, WMREG_CTRL);
if (ctrl & CTRL_RFCE)
ifmr->ifm_active |= IFM_FLOW | IFM_ETH_RXPAUSE;