question: workaround for AX88190 (dev/ed/if_ed.c)
Sogabe Takashi
sogabe at iij.ad.jp
Wed Apr 16 09:00:51 UTC 2008
Hi all,
Does anyone know what kind of problems about following
workaround-code?
I read asix datasheets, but corresponding problem is not
described.
(in sys/dev/ed/if_ed.c)
/*
* Ethernet interface interrupt processor
*/
void
edintr(void *arg)
{
...
/*
* XXX workaround for AX88190
* We limit this to 5000 iterations. At 1us per inb/outb,
* this translates to about 15ms, which should be plenty
* of time, and also gives protection in the card eject
* case.
*/
if (sc->chip_type == ED_CHIP_TYPE_AX88190) {
count = 5000; /* 15ms */
while (count-- && (ed_nic_inb(sc, ED_P0_ISR) & isr)) {
ed_nic_outb(sc, ED_P0_ISR,0);
ed_nic_outb(sc, ED_P0_ISR,isr);
}
if (count == 0)
break;
}
...
}
--
sogabe at iij.ad.jp
More information about the freebsd-drivers
mailing list