aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2010-02-17 10:17:01 -0500
committerDavid S. Miller <davem@davemloft.net>2010-02-17 20:27:38 -0500
commit9ea4818dd39cc8c6b31c38c9f51d19d5d4ee0be6 (patch)
tree7002135dea5246364c2a17a6f037c050c50b4cb8 /drivers/net/tg3.c
parent0d86df808886d4e56c46a9c356dfb81146e3b6d1 (diff)
tg3: Discover phy address once
The phy address will not change after it has been identified. Move the discovery code to a location that only gets executed once. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r--drivers/net/tg3.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index c38143b7b600..3a62cc50c210 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -1035,6 +1035,17 @@ static void tg3_mdio_start(struct tg3 *tp)
1035 tw32_f(MAC_MI_MODE, tp->mi_mode); 1035 tw32_f(MAC_MI_MODE, tp->mi_mode);
1036 udelay(80); 1036 udelay(80);
1037 1037
1038 if ((tp->tg3_flags3 & TG3_FLG3_MDIOBUS_INITED) &&
1039 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785)
1040 tg3_mdio_config_5785(tp);
1041}
1042
1043static int tg3_mdio_init(struct tg3 *tp)
1044{
1045 int i;
1046 u32 reg;
1047 struct phy_device *phydev;
1048
1038 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) { 1049 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) {
1039 u32 funcnum, is_serdes; 1050 u32 funcnum, is_serdes;
1040 1051
@@ -1054,17 +1065,6 @@ static void tg3_mdio_start(struct tg3 *tp)
1054 } else 1065 } else
1055 tp->phy_addr = TG3_PHY_MII_ADDR; 1066 tp->phy_addr = TG3_PHY_MII_ADDR;
1056 1067
1057 if ((tp->tg3_flags3 & TG3_FLG3_MDIOBUS_INITED) &&
1058 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785)
1059 tg3_mdio_config_5785(tp);
1060}
1061
1062static int tg3_mdio_init(struct tg3 *tp)
1063{
1064 int i;
1065 u32 reg;
1066 struct phy_device *phydev;
1067
1068 tg3_mdio_start(tp); 1068 tg3_mdio_start(tp);
1069 1069
1070 if (!(tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) || 1070 if (!(tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) ||