On Thu, 2008-05-15 at 10:15 -0700, Matt Carlson wrote:
> If you were to start with the original file, does the following patch
> fix the problem?
> 
> 
> diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
> index 07b3f77..4c248d7 100644
> --- a/drivers/net/tg3.c
> +++ b/drivers/net/tg3.c
> @@ -3168,8 +3168,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int 
> force_reset)
>       err |= tg3_readphy(tp, MII_BMCR, &bmcr);
>  
>       if ((tp->link_config.autoneg == AUTONEG_ENABLE) && !force_reset &&
> -         (tp->tg3_flags2 & TG3_FLG2_PARALLEL_DETECT) &&
> -          tp->link_config.flowctrl == tp->link_config.active_flowctrl) {
> +         (tp->tg3_flags2 & TG3_FLG2_PARALLEL_DETECT)) {
>               /* do nothing, just check for link up at the end */
>       } else if (tp->link_config.autoneg == AUTONEG_ENABLE) {
>               u32 adv, new_adv;
> 

Matt, I think that's very likely the problem.  If we are trying to
establish link in parallel detect mode, the flow control settings may
not match.  If we do not enter the if statement to do nothing, we will
keep autonegotiating forever and never establish link.

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to