FIFOE/BCIS/LVBCI bits; it's is cleared automatically by the hardware.
- Separate AUICH_DEBUG out from AUDIO_DEBUG and make it possible to debug
interrupt handling separately.
- A little KNF.
on transmit.
- On 82544 and up, allocate 4096 Tx descriptors rather than just 256.
82543 and down must still use 256, due to errata.
- Allow up to 256 DMA segments per packet. I have observed some truly
pathological mbuf chains under certain (admittedly uncommon) workloads
when jumbo frames are in use.
In default_chip_map() we'll do further checks to see if the channel should
really be enabled, and in case it's not we would keep the interrupt mapped.
Fix kern/26502 from Christian Biere.
according to the controller-dependant registers while wdc was not waiting for
an interrupt). A reset can generate spurious interrupts (or even a flow of
spurious interrupts on the promise) that needs to be properly acknowledged.
Eliminating redundant pointers in the tables saves nearly 20K (20% of the table
size). In the process, add a pci_findproduct() and make that and
pci_findvendor() return a "const char *".
gets used if nothing else is defined in MD headers,
introduce a "PCI_MACHDEP_ENUMERATE_BUS" CPP definition which can
be used by MD headers (just 1 port atm) to plug in special code
Bump the default values for these to the values used by FreeBSD,
and also adjust ti_init_rx_ring_jumbo() to use the same constant
that FreeBSD uses. Yes, this consumes more kernel memory.
The effect of this is that you can use jumbo frames in a back-to-back
setup with TCP windows up to about 250KB and get ~930Mbit/s throughput,
while we were earlier limited to around 3-400Mbit/s, and trying to push
above that mark by widening the TCP window caused
ti0: jumbo buffer allocation failed
messages to be logged and a corresponding stall in the traffic.
NatSemi) Geode SC1100 controller (as found on the Soekris
NET4801). The chip has two bugs: the first requires dword
alignment, and the second cannot handle exact 64K transfers.
Also, fix a few typos while we're here.
Timings from FreeBSD. Reviewed by Manuel Bouyer.
when setting CARD_LEADTEK. now with just
options BKTR_SYSTEM_DEFAULT=BROOKTREE_PAL
i get a shiny happy working card on my macppc box:
bktr0 at pci1 dev 18 function 0
bktr0: interrupting at irq 52
bktr0: Leadtek WinFast TV2000/VC100, Philips FR1216 PAL FM tuner.
Begin conditioning device configuration on revision number. Four
revisions are known:
1.1/1.5 -> ADM8211A,
2.0 -> ADM8211B,
3.0 -> ADM8211C.
The B and C parts, which are not supported yet, have AP capability.
attachment instead of dereferencing NULL and so
(this needs a serious cleanup -- the framework was thought to be generally
usable for ~all PCI ISDN cards; this didn't work out, so we are left
with a lot of nonsense to support just 1 particular card type...)
the chipset revision - by pci_find_device().
While the latter isn't better technically (works around the otherwise
hierarchical device tree), using it doesn't require PCI configuration
functions to support stuff which philosophically doesn't belong there.
So we get the hands free to restructure things for better loadable
driver support.
(Actually, since this is about chipset internal IDE interfaces where
the PCI device/function numbers are well known, this all is unnecessary.)