Date: Fri, 20 Sep 2002 11:00:42 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: Stephen McKay <smckay@internode.on.net> Cc: current@FreeBSD.org Subject: Re: dc(4) patch Message-ID: <XFMail.20020920110042.jhb@FreeBSD.org> In-Reply-To: <200209201448.g8KEmt330410@dungeon.home>
next in thread | previous in thread | raw e-mail | index | archive | help
On 20-Sep-2002 Stephen McKay wrote: > On Thursday, 19th September 2002, John Baldwin wrote: > >>--- if_dc.c 4 Sep 2002 18:14:17 -0000 1.77 >>+++ if_dc.c 19 Sep 2002 20:57:03 -0000 >>@@ -1366,7 +1370,8 @@ >> for (i = 0; i < DC_TIMEOUT; i++) { >> isr = CSR_READ_4(sc, DC_ISR); >> if (isr & DC_ISR_TX_IDLE && > - (isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED) >>+ ((isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED || >>+ (isr & DC_ISR_RX_STATE) == DC_RXSTATE_WAIT)) >> break; >> DELAY(10); >> } > > Sadly this change is insufficient to satisfy all cards. Well. I think we can keep the check for TX going idle and just not do the check for RX going idle. The original code basically did this until you submitted a patch to wpaul@ that fixed a logic bug (used || above instead of &&) that effectively didn't do the RX idle check. Perhaps we should do the same here? This would be similar to what we do in dc_tx_underrun() where we only make sure the TX is idle. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020920110042.jhb>