aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2010-06-05 13:24:35 -0400
committerDavid S. Miller <davem@davemloft.net>2010-06-06 20:56:01 -0400
commit57d8b88030ca9f295bb72ef65228c6d86bed22f6 (patch)
tree3cafb558c5027cb092080d136d946eee55284305 /drivers/net/tg3.c
parent2430b031be8d3eb57f22f2df6fb3784564109db0 (diff)
tg3: 5717: Allow serdes link via parallel detect
The 5717 serdes phy brings link up via parallel detection without any additional help from the driver. This patch changes the tg3_setup_fiber_mii_phy() function to detect and allow the use of this feature. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-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.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index d169337bc7ef..2dcde1343cc7 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4206,6 +4206,8 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset)
4206 current_duplex = DUPLEX_FULL; 4206 current_duplex = DUPLEX_FULL;
4207 else 4207 else
4208 current_duplex = DUPLEX_HALF; 4208 current_duplex = DUPLEX_HALF;
4209 } else if (!(tp->tg3_flags2 & TG3_FLG2_5780_CLASS)) {
4210 /* Link is up via parallel detect */
4209 } else { 4211 } else {
4210 current_link_up = 0; 4212 current_link_up = 0;
4211 } 4213 }
@@ -8531,8 +8533,10 @@ static void tg3_timer(unsigned long __opaque)
8531 } 8533 }
8532 tg3_setup_phy(tp, 0); 8534 tg3_setup_phy(tp, 0);
8533 } 8535 }
8534 } else if (tp->tg3_flags2 & TG3_FLG2_MII_SERDES) 8536 } else if ((tp->tg3_flags2 & TG3_FLG2_MII_SERDES) &&
8537 !(tp->tg3_flags2 & TG3_FLG2_5780_CLASS)) {
8535 tg3_serdes_parallel_detect(tp); 8538 tg3_serdes_parallel_detect(tp);
8539 }
8536 8540
8537 tp->timer_counter = tp->timer_multiplier; 8541 tp->timer_counter = tp->timer_multiplier;
8538 } 8542 }