Module Name: src Committed By: msaitoh Date: Thu Jun 6 03:10:48 UTC 2013
Modified Files: src/sys/dev/mii: atphy.c brgphy.c ciphy.c mii_physubr.c rgephy.c urlphy.c Log Message: Fix a bug that the auto negotiation timer isn't cleard as we expected. To not to forget clearing the timer and to reduce the code duplication, clear mii_ticks in *mii_phy_auto(). To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/dev/mii/atphy.c cvs rdiff -u -r1.63 -r1.64 src/sys/dev/mii/brgphy.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/mii/ciphy.c cvs rdiff -u -r1.75 -r1.76 src/sys/dev/mii/mii_physubr.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/mii/rgephy.c cvs rdiff -u -r1.25 -r1.26 src/sys/dev/mii/urlphy.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/dev/mii/atphy.c diff -u src/sys/dev/mii/atphy.c:1.12 src/sys/dev/mii/atphy.c:1.13 --- src/sys/dev/mii/atphy.c:1.12 Mon Jul 23 00:09:49 2012 +++ src/sys/dev/mii/atphy.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: atphy.c,v 1.12 2012/07/23 00:09:49 matt Exp $ */ +/* $NetBSD: atphy.c,v 1.13 2013/06/06 03:10:48 msaitoh Exp $ */ /* $OpenBSD: atphy.c,v 1.1 2008/09/25 20:47:16 brad Exp $ */ /*- @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: atphy.c,v 1.12 2012/07/23 00:09:49 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: atphy.c,v 1.13 2013/06/06 03:10:48 msaitoh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -289,7 +289,6 @@ done: if (sc->mii_ticks <= sc->mii_anegticks) break; - sc->mii_ticks = 0; atphy_mii_phy_auto(sc); break; } @@ -405,6 +404,7 @@ atphy_mii_phy_auto(struct mii_softc *sc) { uint16_t anar; + sc->mii_ticks = 0; anar = BMSR_MEDIA_TO_ANAR(sc->mii_capabilities) | ANAR_CSMA; if (sc->mii_flags & MIIF_DOPAUSE) anar |= ANAR_X_PAUSE_TOWARDS; Index: src/sys/dev/mii/brgphy.c diff -u src/sys/dev/mii/brgphy.c:1.63 src/sys/dev/mii/brgphy.c:1.64 --- src/sys/dev/mii/brgphy.c:1.63 Mon Apr 1 13:41:37 2013 +++ src/sys/dev/mii/brgphy.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: brgphy.c,v 1.63 2013/04/01 13:41:37 msaitoh Exp $ */ +/* $NetBSD: brgphy.c,v 1.64 2013/06/06 03:10:48 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.63 2013/04/01 13:41:37 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: brgphy.c,v 1.64 2013/06/06 03:10:48 msaitoh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -581,6 +581,7 @@ brgphy_mii_phy_auto(struct mii_softc *sc { int anar, ktcr = 0; + sc->mii_ticks = 0; brgphy_loop(sc); PHY_RESET(sc); Index: src/sys/dev/mii/ciphy.c diff -u src/sys/dev/mii/ciphy.c:1.19 src/sys/dev/mii/ciphy.c:1.20 --- src/sys/dev/mii/ciphy.c:1.19 Tue May 12 14:31:27 2009 +++ src/sys/dev/mii/ciphy.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: ciphy.c,v 1.19 2009/05/12 14:31:27 cegger Exp $ */ +/* $NetBSD: ciphy.c,v 1.20 2013/06/06 03:10:48 msaitoh Exp $ */ /*- * Copyright (c) 2004 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ciphy.c,v 1.19 2009/05/12 14:31:27 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ciphy.c,v 1.20 2013/06/06 03:10:48 msaitoh Exp $"); /* * Driver for the Cicada CS8201 10/100/1000 copper PHY. @@ -275,7 +275,6 @@ setit: if (++sc->mii_ticks <= MII_ANEGTICKS) break; - sc->mii_ticks = 0; mii_phy_auto(sc, 0); return (0); } Index: src/sys/dev/mii/mii_physubr.c diff -u src/sys/dev/mii/mii_physubr.c:1.75 src/sys/dev/mii/mii_physubr.c:1.76 --- src/sys/dev/mii/mii_physubr.c:1.75 Wed Oct 3 07:08:58 2012 +++ src/sys/dev/mii/mii_physubr.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: mii_physubr.c,v 1.75 2012/10/03 07:08:58 mlelstv Exp $ */ +/* $NetBSD: mii_physubr.c,v 1.76 2013/06/06 03:10:48 msaitoh Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.75 2012/10/03 07:08:58 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.76 2013/06/06 03:10:48 msaitoh Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -202,6 +202,7 @@ mii_phy_auto(struct mii_softc *sc, int w struct mii_data *mii = sc->mii_pdata; struct ifmedia_entry *ife = mii->mii_media.ifm_cur; + sc->mii_ticks = 0; if ((sc->mii_flags & MIIF_DOINGAUTO) == 0) { /* * Check for 1000BASE-X. Autonegotiation is a bit @@ -346,7 +347,6 @@ mii_phy_tick(struct mii_softc *sc) if (++sc->mii_ticks <= sc->mii_anegticks) return (EJUSTRETURN); - sc->mii_ticks = 0; PHY_RESET(sc); if (mii_phy_auto(sc, 0) == EJUSTRETURN) Index: src/sys/dev/mii/rgephy.c diff -u src/sys/dev/mii/rgephy.c:1.29 src/sys/dev/mii/rgephy.c:1.30 --- src/sys/dev/mii/rgephy.c:1.29 Sun Jul 18 03:00:39 2010 +++ src/sys/dev/mii/rgephy.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: rgephy.c,v 1.29 2010/07/18 03:00:39 jakllsch Exp $ */ +/* $NetBSD: rgephy.c,v 1.30 2013/06/06 03:10:48 msaitoh Exp $ */ /* * Copyright (c) 2003 @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rgephy.c,v 1.29 2010/07/18 03:00:39 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rgephy.c,v 1.30 2013/06/06 03:10:48 msaitoh Exp $"); /* @@ -319,7 +319,6 @@ rgephy_service(struct mii_softc *sc, str if (sc->mii_ticks <= sc->mii_anegticks) return 0; - sc->mii_ticks = 0; rgephy_mii_phy_auto(sc); break; } @@ -428,6 +427,7 @@ rgephy_mii_phy_auto(struct mii_softc *mi { int anar; + mii->mii_ticks = 0; rgephy_loop(mii); rgephy_reset(mii); Index: src/sys/dev/mii/urlphy.c diff -u src/sys/dev/mii/urlphy.c:1.25 src/sys/dev/mii/urlphy.c:1.26 --- src/sys/dev/mii/urlphy.c:1.25 Sat Jan 31 05:44:05 2009 +++ src/sys/dev/mii/urlphy.c Thu Jun 6 03:10:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: urlphy.c,v 1.25 2009/01/31 05:44:05 hira Exp $ */ +/* $NetBSD: urlphy.c,v 1.26 2013/06/06 03:10:48 msaitoh Exp $ */ /* * Copyright (c) 2001, 2002 * Shingo WATANABE <n...@nabechan.org>. All rights reserved. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: urlphy.c,v 1.25 2009/01/31 05:44:05 hira Exp $"); +__KERNEL_RCSID(0, "$NetBSD: urlphy.c,v 1.26 2013/06/06 03:10:48 msaitoh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -196,7 +196,6 @@ urlphy_service(struct mii_softc *sc, str if (++sc->mii_ticks <= sc->mii_anegticks) return (0); - sc->mii_ticks = 0; PHY_RESET(sc); if (mii_phy_auto(sc, 0) == EJUSTRETURN)