On Wed, 2006-09-27 at 16:08 -0700, David Miller wrote:

> > @@ -491,6 +513,9 @@ static inline void tg3_cond_int(struct t
> >     if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS) &&
> >         (tp->hw_status->status & SD_STATUS_UPDATED))
> >             tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl | GRC_LCLCTRL_SETINT);
> > +   else
> > +           tw32(HOSTCC_MODE, tp->coalesce_mode |
> > +                (HOSTCC_MODE_ENABLE | HOSTCC_MODE_NOW));
> >  }
> >  
> >  static void tg3_enable_ints(struct tg3 *tp)
> 
> Why are we forcing a coalescing event here now?  This seems
> to apply in quite a large number of cases.  It will trigger
> if either:
> 
> 1) using tagged status
> 2) SD_STATUS_UPDATED is not indicated in the status block
> 
> In particular, how is this a 5906 specific support change
> when there are no 5906 or other chipset conditionals guarding
> the logic here?
> 

It was found that on rare occasions, the 5906 will miss the first
interrupt after reset without the COALESCE_NOW.  It was also felt that
other chips may also have this problem, and therefore it is a good and a
safe thing to do for all chips using the tagged mode.

This call is only made after resetting the chip, and so there's no
performance impact at all during run-time.

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to