[OpenWrt-Devel] [PATCH 3/5] ar8216: introduce fixup_phys callback in ar8xxx_chip

Heiner Kallweit hkallweit1 at gmail.com
Fri Oct 31 16:33:18 EDT 2014


Move phy fixup code from the chip-specific hw_init functions into a
fixup_phys callback.

Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
---
 target/linux/generic/files/drivers/net/phy/ar8216.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index ffc5dcf..130fad4 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -80,6 +80,7 @@ struct ar8xxx_chip {
 	int (*atu_flush)(struct ar8xxx_priv *priv);
 	void (*vtu_flush)(struct ar8xxx_priv *priv);
 	void (*vtu_load_vlan)(struct ar8xxx_priv *priv, u32 vid, u32 port_mask);
+	void (*fixup_phys)(struct ar8xxx_priv *priv);
 
 	const struct ar8xxx_mib_desc *mib_decs;
 	unsigned num_mibs;
@@ -1634,10 +1635,10 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
 
 	ar8327_leds_init(priv);
 
+	priv->chip->fixup_phys(priv);
+
 	bus = priv->mii_bus;
 	for (i = 0; i < AR8XXX_NUM_PHYS; i++) {
-		ar8327_phy_fixup(priv, i);
-
 		/* start aneg on the PHY */
 		mdiobus_write(bus, i, MII_ADVERTISE, ADVERTISE_ALL |
 						     ADVERTISE_PAUSE_CAP |
@@ -1814,6 +1815,15 @@ ar8327_setup_port(struct ar8xxx_priv *priv, int port, u32 members)
 	priv->write(priv, AR8327_REG_PORT_LOOKUP(port), t);
 }
 
+static void
+ar8327_fixup_phys(struct ar8xxx_priv *priv)
+{
+	int i;
+
+	for (i = 0; i < AR8XXX_NUM_PHYS; i++)
+		ar8327_phy_fixup(priv, i);
+}
+
 static const struct ar8xxx_chip ar8327_chip = {
 	.caps = AR8XXX_CAP_GIGE | AR8XXX_CAP_MIB_COUNTERS,
 	.hw_init = ar8327_hw_init,
@@ -1825,6 +1835,7 @@ static const struct ar8xxx_chip ar8327_chip = {
 	.atu_flush = ar8327_atu_flush,
 	.vtu_flush = ar8327_vtu_flush,
 	.vtu_load_vlan = ar8327_vtu_load_vlan,
+	.fixup_phys = ar8327_fixup_phys,
 
 	.num_mibs = ARRAY_SIZE(ar8236_mibs),
 	.mib_decs = ar8236_mibs,
-- 
2.1.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list