diff options
| author | msaitoh <msaitoh@NetBSD.org> | 2014-06-16 16:48:16 +0000 |
|---|---|---|
| committer | msaitoh <msaitoh@NetBSD.org> | 2014-06-16 16:48:16 +0000 |
| commit | a7fbee7bb47f2af94d3c652e1b2cf1d8df2a8a8e (patch) | |
| tree | db3988c3c2c4f4f44cad36db138948d028e65fb5 /sys/dev/mii | |
| parent | a9d0691a48d599ae8413256b03c9d7cdde8f9a9b (diff) | |
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.
Diffstat (limited to 'sys/dev/mii')
| -rw-r--r-- | sys/dev/mii/acphy.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/amhphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/brgphy.c | 12 | ||||
| -rw-r--r-- | sys/dev/mii/ciphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/dmphy.c | 8 | ||||
| -rw-r--r-- | sys/dev/mii/gentbi.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/glxtphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/gphyter.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/icsphy.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/igphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/ihphy.c | 9 | ||||
| -rw-r--r-- | sys/dev/mii/ikphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/inphy.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/iophy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/lxtphy.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/makphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/mvphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/nsphy.c | 15 | ||||
| -rw-r--r-- | sys/dev/mii/nsphyter.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/qsphy.c | 10 | ||||
| -rw-r--r-- | sys/dev/mii/rlphy.c | 12 | ||||
| -rw-r--r-- | sys/dev/mii/sqphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/tlphy.c | 6 | ||||
| -rw-r--r-- | sys/dev/mii/tqphy.c | 7 | ||||
| -rw-r--r-- | sys/dev/mii/ukphy_subr.c | 12 | ||||
| -rw-r--r-- | sys/dev/mii/urlphy.c | 7 |
26 files changed, 121 insertions, 78 deletions
diff --git a/sys/dev/mii/acphy.c b/sys/dev/mii/acphy.c index ca0ee0b2f29..0dc3c359b95 100644 --- a/sys/dev/mii/acphy.c +++ b/sys/dev/mii/acphy.c @@ -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; } diff --git a/sys/dev/mii/amhphy.c b/sys/dev/mii/amhphy.c index f69bac97b24..a2e4d958d7a 100644 --- a/sys/dev/mii/amhphy.c +++ b/sys/dev/mii/amhphy.c @@ -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; } diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c index 7867e73e19a..479b1455845 100644 --- a/sys/dev/mii/brgphy.c +++ b/sys/dev/mii/brgphy.c @@ -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: diff --git a/sys/dev/mii/ciphy.c b/sys/dev/mii/ciphy.c index fcc7362d509..1d37ea68333 100644 --- a/sys/dev/mii/ciphy.c +++ b/sys/dev/mii/ciphy.c @@ -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; } diff --git a/sys/dev/mii/dmphy.c b/sys/dev/mii/dmphy.c index 5347f9929ba..8aae3e04c76 100644 --- a/sys/dev/mii/dmphy.c +++ b/sys/dev/mii/dmphy.c @@ -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 diff --git a/sys/dev/mii/gentbi.c b/sys/dev/mii/gentbi.c index 59828dd6ab7..799ebcf2732 100644 --- a/sys/dev/mii/gentbi.c +++ b/sys/dev/mii/gentbi.c @@ -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; } diff --git a/sys/dev/mii/glxtphy.c b/sys/dev/mii/glxtphy.c index f80bad263d5..7811293576f 100644 --- a/sys/dev/mii/glxtphy.c +++ b/sys/dev/mii/glxtphy.c @@ -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; } diff --git a/sys/dev/mii/gphyter.c b/sys/dev/mii/gphyter.c index fc8c57a23f9..f9ed7004d98 100644 --- a/sys/dev/mii/gphyter.c +++ b/sys/dev/mii/gphyter.c @@ -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; } diff --git a/sys/dev/mii/icsphy.c b/sys/dev/mii/icsphy.c index ea1c7bd574c..dfddaf858c3 100644 --- a/sys/dev/mii/icsphy.c +++ b/sys/dev/mii/icsphy.c @@ -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; } diff --git a/sys/dev/mii/igphy.c b/sys/dev/mii/igphy.c index 683b9430fc9..890dc641b01 100644 --- a/sys/dev/mii/igphy.c +++ b/sys/dev/mii/igphy.c @@ -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; } diff --git a/sys/dev/mii/ihphy.c b/sys/dev/mii/ihphy.c index 74010da0bf3..6a68b3e482a 100644 --- a/sys/dev/mii/ihphy.c +++ b/sys/dev/mii/ihphy.c @@ -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 diff --git a/sys/dev/mii/ikphy.c b/sys/dev/mii/ikphy.c index d8b7dfd39c1..778a54cb2b8 100644 --- a/sys/dev/mii/ikphy.c +++ b/sys/dev/mii/ikphy.c @@ -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); diff --git a/sys/dev/mii/inphy.c b/sys/dev/mii/inphy.c index 9f226bafcd0..637b4346405 100644 --- a/sys/dev/mii/inphy.c +++ b/sys/dev/mii/inphy.c @@ -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); diff --git a/sys/dev/mii/iophy.c b/sys/dev/mii/iophy.c index 1ac02bcc8dc..8d61294ef5d 100644 --- a/sys/dev/mii/iophy.c +++ b/sys/dev/mii/iophy.c @@ -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; } diff --git a/sys/dev/mii/lxtphy.c b/sys/dev/mii/lxtphy.c index 71152abd3bb..c34e99a1295 100644 --- a/sys/dev/mii/lxtphy.c +++ b/sys/dev/mii/lxtphy.c @@ -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; } diff --git a/sys/dev/mii/makphy.c b/sys/dev/mii/makphy.c index 487f592807c..4dcd6ddd8cd 100644 --- a/sys/dev/mii/makphy.c +++ b/sys/dev/mii/makphy.c @@ -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; } diff --git a/sys/dev/mii/mvphy.c b/sys/dev/mii/mvphy.c index 7ef704615f7..f24c9e902dd 100644 --- a/sys/dev/mii/mvphy.c +++ b/sys/dev/mii/mvphy.c @@ -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 */ diff --git a/sys/dev/mii/nsphy.c b/sys/dev/mii/nsphy.c index e8fbdb132d8..769c5a13180 100644 --- a/sys/dev/mii/nsphy.c +++ b/sys/dev/mii/nsphy.c @@ -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; } diff --git a/sys/dev/mii/nsphyter.c b/sys/dev/mii/nsphyter.c index 91c2debd398..b2b995ad7d8 100644 --- a/sys/dev/mii/nsphyter.c +++ b/sys/dev/mii/nsphyter.c @@ -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; } diff --git a/sys/dev/mii/qsphy.c b/sys/dev/mii/qsphy.c index 32104b978ab..27172a61383 100644 --- a/sys/dev/mii/qsphy.c +++ b/sys/dev/mii/qsphy.c @@ -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. */ diff --git a/sys/dev/mii/rlphy.c b/sys/dev/mii/rlphy.c index 3c20faa31d2..928d508192e 100644 --- a/sys/dev/mii/rlphy.c +++ b/sys/dev/mii/rlphy.c @@ -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; } diff --git a/sys/dev/mii/sqphy.c b/sys/dev/mii/sqphy.c index 8ae00ff8a0e..d9d7f00d33d 100644 --- a/sys/dev/mii/sqphy.c +++ b/sys/dev/mii/sqphy.c @@ -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; } diff --git a/sys/dev/mii/tlphy.c b/sys/dev/mii/tlphy.c index 15f36eb6b81..0c2c86b3753 100644 --- a/sys/dev/mii/tlphy.c +++ b/sys/dev/mii/tlphy.c @@ -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; } diff --git a/sys/dev/mii/tqphy.c b/sys/dev/mii/tqphy.c index d6519e173c2..c2405820bf7 100644 --- a/sys/dev/mii/tqphy.c +++ b/sys/dev/mii/tqphy.c @@ -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; } diff --git a/sys/dev/mii/ukphy_subr.c b/sys/dev/mii/ukphy_subr.c index 1c082aeb545..69e5afc3b3f 100644 --- a/sys/dev/mii/ukphy_subr.c +++ b/sys/dev/mii/ukphy_subr.c @@ -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; diff --git a/sys/dev/mii/urlphy.c b/sys/dev/mii/urlphy.c index 06679114e00..fcb206f8068 100644 --- a/sys/dev/mii/urlphy.c +++ b/sys/dev/mii/urlphy.c @@ -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 <nabe@nabechan.org>. 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; } |
