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