aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-12-17 22:14:10 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-12-17 22:14:10 +0000
commita6622ee6bfec7eb173d5b3bf7cb009b98551238c (patch)
tree71b369de9567f257ae451d1dea50243a2b397734
parente9aefa66db01fcaca59d108c1c26452c963281be (diff)
downloadupstream-a6622ee6bfec7eb173d5b3bf7cb009b98551238c.tar.gz
upstream-a6622ee6bfec7eb173d5b3bf7cb009b98551238c.tar.bz2
upstream-a6622ee6bfec7eb173d5b3bf7cb009b98551238c.zip
ar71xx: implement callback in mdio reset
This enables us to add fixups to the board specific code for boards that require special treatment of PHYs on mdio bus reset. Signed-off-by: Felix Kaechele <heffer@fedoraproject.org> http://patchwork.openwrt.org/patch/4614/ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39127 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h2
-rw-r--r--target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h
index 656a6ef860..68aea202bd 100644
--- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h
+++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h
@@ -55,6 +55,8 @@ struct ag71xx_mdio_platform_data {
u8 is_ar934x:1;
unsigned long mdio_clock;
unsigned long ref_clock;
+
+ void (*reset)(struct mii_bus *bus);
};
#endif /* __ASM_MACH_ATH79_PLATFORM_H */
diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c
index ec8823341e..71ae8258b2 100644
--- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c
+++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c
@@ -181,6 +181,9 @@ static int ag71xx_mdio_reset(struct mii_bus *bus)
ag71xx_mdio_wr(am, AG71XX_REG_MII_CFG, t);
udelay(100);
+ if (am->pdata->reset)
+ am->pdata->reset(bus);
+
return 0;
}