Date: Wed, 16 Apr 2008 09:39:38 -0700 From: Alfred Perlstein <alfred@freebsd.org> To: Sogabe Takashi <sogabe@iij.ad.jp> Cc: freebsd-drivers@freebsd.org Subject: Re: question: workaround for AX88190 (dev/ed/if_ed.c) Message-ID: <20080416163938.GM95731@elvis.mu.org> In-Reply-To: <4805BBA7.60806@iij.ad.jp> References: <4805BBA7.60806@iij.ad.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
I think the driver developer found the card buggy and wanted to give it a longer try to clear the status bits, but if it just flat out refuses to clear status, then it just aborts. * Sogabe Takashi <sogabe@iij.ad.jp> [080416 02:00] wrote: > 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@iij.ad.jp > _______________________________________________ > freebsd-drivers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-drivers > To unsubscribe, send any mail to "freebsd-drivers-unsubscribe@freebsd.org" -- - Alfred Perlstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080416163938.GM95731>