Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/mii Restructure the PHY entry points to use a struct...
details: https://anonhg.NetBSD.org/src/rev/c51279ccba3a
branches: trunk
changeset: 494224:c51279ccba3a
user: thorpej <thorpej%NetBSD.org@localhost>
date: Tue Jul 04 03:28:59 2000 +0000
description:
Restructure the PHY entry points to use a structure of entry points
instead of discrete function pointers, and extend this to include
a "reset" entry point. Make sure any PHY-specific reset routine is
always used, and provide one for the LXT-970 which disables MII
interrupts (as is done for a few other PHYs we have drivers for).
diffstat:
sys/dev/mii/dmphy.c | 11 +++++++----
sys/dev/mii/exphy.c | 13 ++++++++-----
sys/dev/mii/icsphy.c | 15 +++++++++------
sys/dev/mii/inphy.c | 13 ++++++++-----
sys/dev/mii/iophy.c | 13 ++++++++-----
sys/dev/mii/lxtphy.c | 24 +++++++++++++++++++-----
sys/dev/mii/mii.c | 10 +++++-----
sys/dev/mii/mii_physubr.c | 8 ++++----
sys/dev/mii/miivar.h | 30 +++++++++++++++++++-----------
sys/dev/mii/nsphy.c | 13 ++++++++-----
sys/dev/mii/nsphyter.c | 13 ++++++++-----
sys/dev/mii/qsphy.c | 15 +++++++++------
sys/dev/mii/sqphy.c | 13 ++++++++-----
sys/dev/mii/tlphy.c | 13 ++++++++-----
sys/dev/mii/tqphy.c | 13 ++++++++-----
sys/dev/mii/ukphy.c | 13 ++++++++-----
16 files changed, 144 insertions(+), 86 deletions(-)
diffs (truncated from 674 to 300 lines):
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/dmphy.c
--- a/sys/dev/mii/dmphy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/dmphy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dmphy.c,v 1.7 2000/04/02 03:06:19 tsutsui Exp $ */
+/* $NetBSD: dmphy.c,v 1.8 2000/07/04 03:28:59 thorpej Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -99,6 +99,10 @@
int dmphy_service __P((struct mii_softc *, struct mii_data *, int));
void dmphy_status __P((struct mii_softc *));
+const struct mii_phy_funcs dmphy_funcs = {
+ dmphy_service, dmphy_status, mii_phy_reset,
+};
+
int
dmphymatch(parent, match, aux)
struct device *parent;
@@ -129,12 +133,11 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = dmphy_service;
- sc->mii_status = dmphy_status;
+ sc->mii_funcs = &dmphy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
- mii_phy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/exphy.c
--- a/sys/dev/mii/exphy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/exphy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: exphy.c,v 1.24 2000/03/06 20:56:56 thorpej Exp $ */
+/* $NetBSD: exphy.c,v 1.25 2000/07/04 03:28:59 thorpej Exp $ */
/*-
- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -95,6 +95,10 @@
int exphy_service __P((struct mii_softc *, struct mii_data *, int));
void exphy_reset __P((struct mii_softc *));
+const struct mii_phy_funcs exphy_funcs = {
+ exphy_service, ukphy_status, exphy_reset,
+};
+
int
exphymatch(parent, match, aux)
struct device *parent;
@@ -132,8 +136,7 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = exphy_service;
- sc->mii_status = ukphy_status;
+ sc->mii_funcs = &exphy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
@@ -148,7 +151,7 @@
}
sc->mii_flags |= MIIF_NOISOLATE;
- exphy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/icsphy.c
--- a/sys/dev/mii/icsphy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/icsphy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: icsphy.c,v 1.18 2000/03/06 20:56:57 thorpej Exp $ */
+/* $NetBSD: icsphy.c,v 1.19 2000/07/04 03:28:59 thorpej Exp $ */
/*-
- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -96,8 +96,12 @@
};
int icsphy_service __P((struct mii_softc *, struct mii_data *, int));
+void icsphy_status __P((struct mii_softc *));
void icsphy_reset __P((struct mii_softc *));
-void icsphy_status __P((struct mii_softc *));
+
+const struct mii_phy_funcs icsphy_funcs = {
+ icsphy_service, icsphy_status, icsphy_reset,
+};
int
icsphymatch(parent, match, aux)
@@ -128,12 +132,11 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = icsphy_service;
- sc->mii_status = icsphy_status;
+ sc->mii_funcs = &icsphy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
- icsphy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/inphy.c
--- a/sys/dev/mii/inphy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/inphy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: inphy.c,v 1.19 2000/03/06 20:56:57 thorpej Exp $ */
+/* $NetBSD: inphy.c,v 1.20 2000/07/04 03:28:59 thorpej Exp $ */
/*-
- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -99,6 +99,10 @@
int inphy_service __P((struct mii_softc *, struct mii_data *, int));
void inphy_status __P((struct mii_softc *));
+const struct mii_phy_funcs inphy_funcs = {
+ inphy_service, inphy_status, mii_phy_reset,
+};
+
int
inphymatch(parent, match, aux)
struct device *parent;
@@ -128,12 +132,11 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = inphy_service;
- sc->mii_status = inphy_status;
+ sc->mii_funcs = &inphy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
- mii_phy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/iophy.c
--- a/sys/dev/mii/iophy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/iophy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: iophy.c,v 1.9 2000/03/06 20:56:57 thorpej Exp $ */
+/* $NetBSD: iophy.c,v 1.10 2000/07/04 03:28:59 thorpej Exp $ */
/*
- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -97,6 +97,10 @@
int iophy_service __P((struct mii_softc *, struct mii_data *, int));
void iophy_status __P((struct mii_softc *));
+const struct mii_phy_funcs iophy_funcs = {
+ iophy_service, iophy_status, mii_phy_reset,
+};
+
int
iophymatch(parent, match, aux)
struct device *parent;
@@ -130,12 +134,11 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = iophy_service;
- sc->mii_status = iophy_status;
+ sc->mii_funcs = &iophy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
- mii_phy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/lxtphy.c
--- a/sys/dev/mii/lxtphy.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/lxtphy.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,7 +1,7 @@
-/* $NetBSD: lxtphy.c,v 1.20 2000/03/06 20:56:57 thorpej Exp $ */
+/* $NetBSD: lxtphy.c,v 1.21 2000/07/04 03:28:59 thorpej Exp $ */
/*-
- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -98,6 +98,11 @@
int lxtphy_service __P((struct mii_softc *, struct mii_data *, int));
void lxtphy_status __P((struct mii_softc *));
+void lxtphy_reset __P((struct mii_softc *));
+
+const struct mii_phy_funcs lxtphy_funcs = {
+ lxtphy_service, lxtphy_status, lxtphy_reset,
+};
int
lxtphymatch(parent, match, aux)
@@ -128,12 +133,11 @@
sc->mii_inst = mii->mii_instance;
sc->mii_phy = ma->mii_phyno;
- sc->mii_service = lxtphy_service;
- sc->mii_status = lxtphy_status;
+ sc->mii_funcs = &lxtphy_funcs;
sc->mii_pdata = mii;
sc->mii_flags = mii->mii_flags;
- mii_phy_reset(sc);
+ PHY_RESET(sc);
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
@@ -256,3 +260,13 @@
} else
mii->mii_media_active = ife->ifm_media;
}
+
+void
+lxtphy_reset(sc)
+ struct mii_softc *sc;
+{
+
+ mii_phy_reset(sc);
+ PHY_WRITE(sc, MII_LXTPHY_IER,
+ PHY_READ(sc, MII_LXTPHY_IER) & ~IER_INTEN);
+}
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/mii.c
--- a/sys/dev/mii/mii.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/mii.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mii.c,v 1.20 2000/03/23 07:01:36 thorpej Exp $ */
+/* $NetBSD: mii.c,v 1.21 2000/07/04 03:28:59 thorpej Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -265,7 +265,7 @@
for (child = LIST_FIRST(&mii->mii_phys); child != NULL;
child = LIST_NEXT(child, mii_list)) {
- rv = (*child->mii_service)(child, mii, MII_MEDIACHG);
+ rv = PHY_SERVICE(child, mii, MII_MEDIACHG);
if (rv)
return (rv);
}
@@ -283,7 +283,7 @@
for (child = LIST_FIRST(&mii->mii_phys); child != NULL;
child = LIST_NEXT(child, mii_list))
- (void) (*child->mii_service)(child, mii, MII_TICK);
+ (void) PHY_SERVICE(child, mii, MII_TICK);
}
/*
@@ -300,7 +300,7 @@
for (child = LIST_FIRST(&mii->mii_phys); child != NULL;
child = LIST_NEXT(child, mii_list))
- (void) (*child->mii_service)(child, mii, MII_POLLSTAT);
+ (void) PHY_SERVICE(child, mii, MII_POLLSTAT);
}
/*
@@ -314,5 +314,5 @@
for (child = LIST_FIRST(&mii->mii_phys); child != NULL;
child = LIST_NEXT(child, mii_list))
- (void) (*child->mii_service)(child, mii, MII_DOWN);
+ (void) PHY_SERVICE(child, mii, MII_DOWN);
}
diff -r bb1e69e8c405 -r c51279ccba3a sys/dev/mii/mii_physubr.c
--- a/sys/dev/mii/mii_physubr.c Tue Jul 04 02:37:51 2000 +0000
+++ b/sys/dev/mii/mii_physubr.c Tue Jul 04 03:28:59 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mii_physubr.c,v 1.17 2000/03/23 07:01:36 thorpej Exp $ */
Home |
Main Index |
Thread Index |
Old Index