bge(4) one packet wedge
Oleg Bulyzhin
oleg at FreeBSD.org
Thu Aug 24 01:35:41 UTC 2006
On Wed, Aug 23, 2006 at 06:21:28PM -0700, David Christensen wrote:
> Here's how it's done in Linux:
>
> static void tg3_disable_ints(struct tg3 *tp)
> {
> tw32(TG3PCI_MISC_HOST_CTRL,
> (tp->misc_host_ctrl | MISC_HOST_CTRL_MASK_PCI_INT));
> tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW,
> 0x00000001);
> }
>
> static void tg3_enable_ints(struct tg3 *tp)
> {
> tp->irq_sync = 0;
> wmb();
>
> tw32(TG3PCI_MISC_HOST_CTRL,
> (tp->misc_host_ctrl & ~MISC_HOST_CTRL_MASK_PCI_INT));
> tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW,
> (tp->last_tag << 24));
> if (tp->tg3_flags2 & TG3_FLG2_1SHOT_MSI)
> tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW,
> (tp->last_tag << 24));
> tg3_cond_int(tp);
> }
>
> >
> > P.S. bcm5705 does not support tagged status mode, am i right?
>
> No, the 5705 should support tagged status mode, only the 5788 doesn't
> support it. The 5705 and 5788 are very closely related though.
>
Thank you. I'll look what's wrong with my interrupt handler.
--
Oleg.
More information about the freebsd-net
mailing list