freebsd-nq/sys/pci
Pyun YongHyeon 818951afd8 It seems that RealTek PCIe controllers require an explicit Tx poll
command whenever Tx completion interrupt is raised. The Tx poll
bit is cleared when all packets waiting to be transferred have been
processed. This means the second Tx poll command can be silently
ignored as the Tx poll bit could be still active while processing
of previous Tx poll command is in progress.
To address the issue re(4) used to invoke the Tx poll command in Tx
completion handler whenever it detects there are pending packets in
TxQ. However that still does not seem to completely eliminate
watchdog timeouts seen on RealTek PCIe controllers. To fix the
issue kick Tx poll command only after Tx completion interrupt is
raised as this would indicate Tx is now idle state such that it can
accept new Tx poll command again. While here apply this workaround
for PCIe based controllers as other controllers does not seem to
have this limitation.

Tested by:	Victor Balada Diaz < victor <> bsdes DOT net >
2008-12-17 08:18:11 +00:00
..
alpm.c
amdpm.c - Use bus_foo() rather than bus_space_foo() and remove bus space tag/handle 2008-06-06 18:29:56 +00:00
amdsmb.c - Use bus_foo() rather than bus_space_foo() and remove bus space tag/handle 2008-06-06 18:29:56 +00:00
if_rl.c By default assume a 8139 chip if the EEPROM contents prove inconclusive. The 2008-12-15 21:54:23 +00:00
if_rlreg.h It seems that RealTek PCIe controllers require an explicit Tx poll 2008-12-17 08:18:11 +00:00
intpm.c - Use bus_foo() rather than bus_space_foo() and remove bus space tag/handle 2008-06-06 18:29:56 +00:00
intpmreg.h
locate.pl
ncr.c
ncrreg.h
nfsmb.c Add the SMB functionality for the MCP65 chipset I happen to 2008-06-18 20:39:56 +00:00
viapm.c Add locking to the various iicbus(4) bridge drivers: 2008-08-04 20:46:15 +00:00