aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFrancois Romieu <romieu@fr.zoreil.com>2012-07-06 14:19:42 -0400
committerFrancois Romieu <romieu@fr.zoreil.com>2012-07-09 17:38:22 -0400
commit24192210a57a24a45b29dc3519dc42e073ea7b0a (patch)
tree7819ad5043401ac874a5f3c6213a9996b78e8307 /drivers
parent5598bfe5191d09cdd622aeac39badc42508b227f (diff)
r8169: mdio_ops signature change.
Further changes need more context down in the call stack. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/realtek/r8169.c46
1 files changed, 26 insertions, 20 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 7afc59336fd7..5360f6de2b0a 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -728,8 +728,8 @@ struct rtl8169_private {
728 u16 event_slow; 728 u16 event_slow;
729 729
730 struct mdio_ops { 730 struct mdio_ops {
731 void (*write)(void __iomem *, int, int); 731 void (*write)(struct rtl8169_private *, int, int);
732 int (*read)(void __iomem *, int); 732 int (*read)(struct rtl8169_private *, int);
733 } mdio_ops; 733 } mdio_ops;
734 734
735 struct pll_power_ops { 735 struct pll_power_ops {
@@ -919,11 +919,12 @@ static int r8168dp_check_dash(struct rtl8169_private *tp)
919 return (ocp_read(tp, 0x0f, reg) & 0x00008000) ? 1 : 0; 919 return (ocp_read(tp, 0x0f, reg) & 0x00008000) ? 1 : 0;
920} 920}
921 921
922static void r8169_mdio_write(void __iomem *ioaddr, int reg_addr, int value) 922static void r8169_mdio_write(struct rtl8169_private *tp, int reg, int value)
923{ 923{
924 void __iomem *ioaddr = tp->mmio_addr;
924 int i; 925 int i;
925 926
926 RTL_W32(PHYAR, 0x80000000 | (reg_addr & 0x1f) << 16 | (value & 0xffff)); 927 RTL_W32(PHYAR, 0x80000000 | (reg & 0x1f) << 16 | (value & 0xffff));
927 928
928 for (i = 20; i > 0; i--) { 929 for (i = 20; i > 0; i--) {
929 /* 930 /*
@@ -941,11 +942,12 @@ static void r8169_mdio_write(void __iomem *ioaddr, int reg_addr, int value)
941 udelay(20); 942 udelay(20);
942} 943}
943 944
944static int r8169_mdio_read(void __iomem *ioaddr, int reg_addr) 945static int r8169_mdio_read(struct rtl8169_private *tp, int reg)
945{ 946{
947 void __iomem *ioaddr = tp->mmio_addr;
946 int i, value = -1; 948 int i, value = -1;
947 949
948 RTL_W32(PHYAR, 0x0 | (reg_addr & 0x1f) << 16); 950 RTL_W32(PHYAR, 0x0 | (reg & 0x1f) << 16);
949 951
950 for (i = 20; i > 0; i--) { 952 for (i = 20; i > 0; i--) {
951 /* 953 /*
@@ -967,12 +969,12 @@ static int r8169_mdio_read(void __iomem *ioaddr, int reg_addr)
967 return value; 969 return value;
968} 970}
969 971
970static void r8168dp_1_mdio_access(void __iomem *ioaddr, int reg_addr, u32 data) 972static void r8168dp_1_mdio_access(struct rtl8169_private *tp, int reg, u32 data)
971{ 973{
974 void __iomem *ioaddr = tp->mmio_addr;
972 int i; 975 int i;
973 976
974 RTL_W32(OCPDR, data | 977 RTL_W32(OCPDR, data | ((reg & OCPDR_REG_MASK) << OCPDR_GPHY_REG_SHIFT));
975 ((reg_addr & OCPDR_REG_MASK) << OCPDR_GPHY_REG_SHIFT));
976 RTL_W32(OCPAR, OCPAR_GPHY_WRITE_CMD); 978 RTL_W32(OCPAR, OCPAR_GPHY_WRITE_CMD);
977 RTL_W32(EPHY_RXER_NUM, 0); 979 RTL_W32(EPHY_RXER_NUM, 0);
978 980
@@ -983,17 +985,18 @@ static void r8168dp_1_mdio_access(void __iomem *ioaddr, int reg_addr, u32 data)
983 } 985 }
984} 986}
985 987
986static void r8168dp_1_mdio_write(void __iomem *ioaddr, int reg_addr, int value) 988static void r8168dp_1_mdio_write(struct rtl8169_private *tp, int reg, int value)
987{ 989{
988 r8168dp_1_mdio_access(ioaddr, reg_addr, OCPDR_WRITE_CMD | 990 r8168dp_1_mdio_access(tp, reg,
989 (value & OCPDR_DATA_MASK)); 991 OCPDR_WRITE_CMD | (value & OCPDR_DATA_MASK));
990} 992}
991 993
992static int r8168dp_1_mdio_read(void __iomem *ioaddr, int reg_addr) 994static int r8168dp_1_mdio_read(struct rtl8169_private *tp, int reg)
993{ 995{
996 void __iomem *ioaddr = tp->mmio_addr;
994 int i; 997 int i;
995 998
996 r8168dp_1_mdio_access(ioaddr, reg_addr, OCPDR_READ_CMD); 999 r8168dp_1_mdio_access(tp, reg, OCPDR_READ_CMD);
997 1000
998 mdelay(1); 1001 mdelay(1);
999 RTL_W32(OCPAR, OCPAR_GPHY_READ_CMD); 1002 RTL_W32(OCPAR, OCPAR_GPHY_READ_CMD);
@@ -1020,22 +1023,25 @@ static void r8168dp_2_mdio_stop(void __iomem *ioaddr)
1020 RTL_W32(0xd0, RTL_R32(0xd0) | R8168DP_1_MDIO_ACCESS_BIT); 1023 RTL_W32(0xd0, RTL_R32(0xd0) | R8168DP_1_MDIO_ACCESS_BIT);
1021} 1024}
1022 1025
1023static void r8168dp_2_mdio_write(void __iomem *ioaddr, int reg_addr, int value) 1026static void r8168dp_2_mdio_write(struct rtl8169_private *tp, int reg, int value)
1024{ 1027{
1028 void __iomem *ioaddr = tp->mmio_addr;
1029
1025 r8168dp_2_mdio_start(ioaddr); 1030 r8168dp_2_mdio_start(ioaddr);
1026 1031
1027 r8169_mdio_write(ioaddr, reg_addr, value); 1032 r8169_mdio_write(tp, reg, value);
1028 1033
1029 r8168dp_2_mdio_stop(ioaddr); 1034 r8168dp_2_mdio_stop(ioaddr);
1030} 1035}
1031 1036
1032static int r8168dp_2_mdio_read(void __iomem *ioaddr, int reg_addr) 1037static int r8168dp_2_mdio_read(struct rtl8169_private *tp, int reg)
1033{ 1038{
1039 void __iomem *ioaddr = tp->mmio_addr;
1034 int value; 1040 int value;
1035 1041
1036 r8168dp_2_mdio_start(ioaddr); 1042 r8168dp_2_mdio_start(ioaddr);
1037 1043
1038 value = r8169_mdio_read(ioaddr, reg_addr); 1044 value = r8169_mdio_read(tp, reg);
1039 1045
1040 r8168dp_2_mdio_stop(ioaddr); 1046 r8168dp_2_mdio_stop(ioaddr);
1041 1047
@@ -1044,12 +1050,12 @@ static int r8168dp_2_mdio_read(void __iomem *ioaddr, int reg_addr)
1044 1050
1045static void rtl_writephy(struct rtl8169_private *tp, int location, u32 val) 1051static void rtl_writephy(struct rtl8169_private *tp, int location, u32 val)
1046{ 1052{
1047 tp->mdio_ops.write(tp->mmio_addr, location, val); 1053 tp->mdio_ops.write(tp, location, val);
1048} 1054}
1049 1055
1050static int rtl_readphy(struct rtl8169_private *tp, int location) 1056static int rtl_readphy(struct rtl8169_private *tp, int location)
1051{ 1057{
1052 return tp->mdio_ops.read(tp->mmio_addr, location); 1058 return tp->mdio_ops.read(tp, location);
1053} 1059}
1054 1060
1055static void rtl_patchphy(struct rtl8169_private *tp, int reg_addr, int value) 1061static void rtl_patchphy(struct rtl8169_private *tp, int reg_addr, int value)