diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2010-01-20 11:58:05 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-01-20 22:20:59 -0500 |
commit | ecf1410b9d70b3034e5955e92bb0c3e02ff21e9c (patch) | |
tree | e37b5e44fea34028cba9b57a881dbc5201e3e40f /drivers/net/tg3.c | |
parent | 9b952f51d019db37276bdb2924e776ca09132fc1 (diff) |
tg3: Abort phy init for 5717 serdes devices
The 5717 serdes devices have a different phy register layout than all
other previous serdes devices. This patch aborts the phy init sequence
in tg3_phy_reset() if the device is a 5717 serdes. It also aborts the
tg3_phy_toggle_apd() operation. Most other operations in the MII_SERDES
path are O.K.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r-- | drivers/net/tg3.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 4a653478edd6..7a36bf4dc968 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -1560,7 +1560,9 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable) | |||
1560 | { | 1560 | { |
1561 | u32 reg; | 1561 | u32 reg; |
1562 | 1562 | ||
1563 | if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS)) | 1563 | if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) || |
1564 | (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 && | ||
1565 | (tp->tg3_flags2 & TG3_FLG2_MII_SERDES))) | ||
1564 | return; | 1566 | return; |
1565 | 1567 | ||
1566 | if (tp->tg3_flags3 & TG3_FLG3_PHY_IS_FET) { | 1568 | if (tp->tg3_flags3 & TG3_FLG3_PHY_IS_FET) { |
@@ -1935,6 +1937,10 @@ static int tg3_phy_reset(struct tg3 *tp) | |||
1935 | } | 1937 | } |
1936 | } | 1938 | } |
1937 | 1939 | ||
1940 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 && | ||
1941 | (tp->tg3_flags2 & TG3_FLG2_MII_SERDES)) | ||
1942 | return 0; | ||
1943 | |||
1938 | tg3_phy_apply_otp(tp); | 1944 | tg3_phy_apply_otp(tp); |
1939 | 1945 | ||
1940 | if (tp->tg3_flags3 & TG3_FLG3_PHY_ENABLE_APD) | 1946 | if (tp->tg3_flags3 & TG3_FLG3_PHY_ENABLE_APD) |