diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-10-25 23:46:31 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-10-25 23:46:31 +0000 |
commit | 523c773acc05f900d296bf6641c78c9a77c520d7 (patch) | |
tree | 299bac0bc74969118b35b4d47a6e33cb0dbb7f9b /sys/pci/if_vr.c | |
parent | 385109d266621a3c0f5501c28b46d32a772afc77 (diff) | |
download | FreeBSD-src-523c773acc05f900d296bf6641c78c9a77c520d7.zip FreeBSD-src-523c773acc05f900d296bf6641c78c9a77c520d7.tar.gz |
Set the DC_TX_INTR_ALWAYS and DC_TX_STORENFWD flags for the Davicom
DM9100/DM9102 chips. Do not set DC_TX_ONE. The DC_TX_USE_TX_INTR flag
causes dc_encap() to set the 'interrupt on TX completion' bit only
once every 64 packets. This is an attempt to reduce the number
of interrupts generated by the chip. You're supposed to get a 'no more
TX buffers left' interrupt once you hit the last packet whether you
ask for one or not, however it seems the Davicom chip doesn't generate
this interrupt, or at least it doesn't generate it under the same
circumstances. The result is that if you transmit n packets, where
n is less than 64, and then wait 5 seconds, you'll get a watchdog
timeout whether you want one or not. The DC_TX_INTR_ALWAYS causes
dc_encap() to request an interrupt for every frame.
I'm still waiting on confirmation from a couple of users to see if this
fixes their problems with the Davicom DM9102 before I merge this into
-stable, but this fixed the problem for me in my own testing so I'm
willing to make the change to -current right away.
Diffstat (limited to 'sys/pci/if_vr.c')
0 files changed, 0 insertions, 0 deletions