[net-next-2.6 #2 03/08] r8169: use device dependent methods to access the MII registers.

Previous thread: [net-next-2.6 #2 02/08] r8169: identify different registers. by Francois Romieu on Monday, January 3, 2011 - 6:07 pm. (1 message)

Next thread: [net-next-2.6 #2 04/08] r8169: 8168DP specific MII registers access methods. by Francois Romieu on Monday, January 3, 2011 - 6:08 pm. (1 message)
From: Francois Romieu
Date: Monday, January 3, 2011 - 6:07 pm

Current mdio_{read/write} needs device specific information to work
correctly with newer chipsets.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Hayes <hayeswang@realtek.com>
---
 drivers/net/r8169.c |  307 ++++++++++++++++++++++++++-------------------------
 1 files changed, 157 insertions(+), 150 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 33c3fbf..b5ced5e 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -502,9 +502,9 @@ struct rtl8169_private {
 #endif
 	int (*set_speed)(struct net_device *, u8 autoneg, u16 speed, u8 duplex);
 	int (*get_settings)(struct net_device *, struct ethtool_cmd *);
-	void (*phy_reset_enable)(void __iomem *);
+	void (*phy_reset_enable)(struct rtl8169_private *tp);
 	void (*hw_start)(struct net_device *);
-	unsigned int (*phy_reset_pending)(void __iomem *);
+	unsigned int (*phy_reset_pending)(struct rtl8169_private *tp);
 	unsigned int (*link_ok)(void __iomem *);
 	int (*do_ioctl)(struct rtl8169_private *tp, struct mii_ioctl_data *data, int cmd);
 	int pcie_cap;
@@ -547,7 +547,7 @@ static int rtl8169_poll(struct napi_struct *napi, int budget);
 static const unsigned int rtl8169_rx_config =
 	(RX_FIFO_THRESH << RxCfgFIFOShift) | (RX_DMA_BURST << RxCfgDMAShift);
 
-static void mdio_write(void __iomem *ioaddr, int reg_addr, int value)
+static void r8169_mdio_write(void __iomem *ioaddr, int reg_addr, int value)
 {
 	int i;
 
@@ -569,7 +569,7 @@ static void mdio_write(void __iomem *ioaddr, int reg_addr, int value)
 	udelay(20);
 }
 
-static int mdio_read(void __iomem *ioaddr, int reg_addr)
+static int r8169_mdio_read(void __iomem *ioaddr, int reg_addr)
 {
 	int i, value = -1;
 
@@ -595,34 +595,42 @@ static int mdio_read(void __iomem *ioaddr, int reg_addr)
 	return value;
 }
 
-static void mdio_patch(void __iomem *ioaddr, int reg_addr, int value)
+static void rtl_writephy(struct rtl8169_private *tp, int location, u32 val)
 {
-	mdio_write(ioaddr, reg_addr, mdio_read(ioaddr, reg_addr) ...
Previous thread: [net-next-2.6 #2 02/08] r8169: identify different registers. by Francois Romieu on Monday, January 3, 2011 - 6:07 pm. (1 message)

Next thread: [net-next-2.6 #2 04/08] r8169: 8168DP specific MII registers access methods. by Francois Romieu on Monday, January 3, 2011 - 6:08 pm. (1 message)