Subject: Re: tg3 issues

From: "Michael Chan" <[email-masked]>
Date: Mon, 23 Jul 2007 14:34:56 -0700

On Sun, 2007-07-22 at 13:43 +0200, patric wrote:
> patric wrote:
> 
> > Hi,
> >
> > Think i got something working for me at least, and the fix is quite 
> > minimal and only downside that i could see from it was that you might 
> > get a small delay when bringing up the interface, but that's probably 
> > better than getting a non-functional interface that reports that it's up.
> >
> > The fix seems to be quite simple with just a random sleep at the end 
> > of  "tg3_setup_fiber_by_hand():"
> >
> >                tw32_f(MAC_MODE, tp->mac_mode);
> >                udelay(40);
> >        }
> >
> > out:
> >        udelay( net_random() % 400 );
> >        return current_link_up;
> > }
> >
> > Not sure that this is a good fix or if it might break on other 
> > systems, but maybe you could have a quick look at that?
> >
> > Regards,
> > Patric
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe netdev" in
> > the body of a message to [email-masked]
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> Last update on this.
> 
> "udelay( 100 + net_random % 300 )" seems to work much better and i have 
> not had a single problem getting the link up within 10 seconds of a cold 
> or warm-boot, and most often the link comes up directly without any sort 
> of delay instead like before when it could hang for 30 seconds before 
> getting a link, if you even got a link.
> 

We'll have to do some testing to see if we can find a better solution.
Adding up to 400 usec of busy wait is not ideal.  Are you connecting two
5701 fiber cards directly to each other in your setup?