On Friday, 20th September 2002, John Baldwin wrote:

>On 20-Sep-2002 Stephen McKay wrote:
>> 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.

Not quite.  Davicom cards (and your card) fail to idle the receiver.
PNIC cards fail to idle the transmitter.  So it makes just as much
sense as any other idea to check those bits only on cards that document
that you have to check those bits.  My documentation only covers Intel. :-)

>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.

Except that the documentation states you have to idle the TX and RX to
change the full duplex bit, whereas you only have to idle the TX to
change the transmit fifo threshold.  And in dc_tx_underrun() only
the genuine Intel chips are treated specially.  Clones seem to work
without idling the transmitter.  Except the poor Davicom, which gets
reset on every underrun (if anyone has one, and it gets underruns, you
could try including it with the DC_IS_INTEL(sc) case and see what happens).


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to