63c14f2d75
Anne Hutton <hutton@isi.edu>]: - add support for Adaptec 155 PCI ATM cards (e.g. ANA-5940) - add sc->is_adaptec to handle differences between cards. - break out MID_MK_TXQ/MID_MK_RXQ seperate macros to handle the new Adaptec format TXQ/RXQ. - adjust en_dqneed to return 1 on ADP (since the Adaptec can DMA anything in one DRQ/DTQ!) - add hook for a bus specific reset function (adaptec has a seperate reset register that needs to be hit when resettting the midway). - adjust DMA test to not worry about burst sizes on the adaptec (since it handles it all for us!) and to handle the new DTQ/DRQ format. - add Adaptec DMA support to en_txlaunch() and en_service() BUG FIXES: - fixed receiver panic under heavy load ("lost mbuf in slot 0!"). when the reassembly buffer overflows, the T-bit is set in the RDB and the data field is empty. en_service() sets up a 4-byte (RDB size) dummy DMA without IF_ENQUEUE. but the recv intr handling in en_intr() always does IF_DEQUEUE. as a result, a successive recv intr loses its mbuf and leads to a panic. the solution is to only IF_DEQUEUE if the interrupt has non-zero length (indicating that there is an mbuf to get). in order for this to work, EN_DQ_MK must always be non-zero. we do this by or'ing in an unused bit (0x80000). reported by: Kenjiro Cho <kjc@csl.sony.co.jp> - fix setting of transmit channel when txspeed[] is non-zero (e.g. traffic shaping). the old scheme didn't work properly (it allowed the same VCI to use multiple tx channels thus defeating the txspeed[] parameter). the new scheme statically assigns a VC to a channel when txspeed[] is set. [note that the code to set txspeed[] isn't in the driver right now since a MI interface to do this hasn't been made yet] we add sc->txvc2slot[] and sc->txslot[n].nref for this. reported by: Kenjiro Cho <kjc@csl.sony.co.jp>, Milind M Buddihikot <milind@ccrc.wustl.edu>, Dong Lin <dong@eecs.harvard.edu> - when doing SRAM copies, be sure to round up the length to the next largest word (otherwise the driver will try to do a byte clean up DMA and then get an ID error interrupt). MINOR CLEANUPS: - clean up loops in DMA test contributed by: Kenjiro Cho <kjc@csl.sony.co.jp> - restructure and cleanup of en_read/en_write macros/inlines - clean up some byte ordering stuff so that we are consistant throughout the driver |
||
---|---|---|
.. | ||
ad1848reg.h | ||
aha.c | ||
ahareg.h | ||
ahavar.h | ||
aic7xxx.c | ||
aic7xxxreg.h | ||
aic7xxxvar.h | ||
aic6360.c | ||
am7930.c | ||
am7930reg.h | ||
am7930var.h | ||
am7990.c | ||
am7990reg.h | ||
am7990var.h | ||
bha.c | ||
bhareg.h | ||
bhavar.h | ||
cd1400reg.h | ||
com.c | ||
comreg.h | ||
comvar.h | ||
cs4231reg.h | ||
cy.c | ||
cyreg.h | ||
cyvar.h | ||
dc21040reg.h | ||
dp8390reg.h | ||
elink3.c | ||
elink3reg.h | ||
elink3var.h | ||
hayespreg.h | ||
i8042reg.h | ||
i8237reg.h | ||
i8253reg.h | ||
i82586reg.h | ||
i82595reg.h | ||
ics2101reg.h | ||
isp.c | ||
ispmbox.h | ||
ispreg.h | ||
ispvar.h | ||
lpt.c | ||
lptreg.h | ||
lptvar.h | ||
mb86960.c | ||
mb86960reg.h | ||
mb86960var.h | ||
mc146818reg.h | ||
midway.c | ||
midwayreg.h | ||
midwayvar.h | ||
ncr53c9x.c | ||
ncr53c9xreg.h | ||
ncr53c9xvar.h | ||
ncr5380.doc | ||
ncr5380reg.h | ||
ncr5380sbc.c | ||
ncr5380var.h | ||
nec765reg.h | ||
ns16450reg.h | ||
ns16550reg.h | ||
pdq_ifsubr.c | ||
pdq.c | ||
pdqreg.h | ||
pdqvar.h | ||
smc90cx6.c | ||
smc90cx6reg.h | ||
smc93cx6.c | ||
smc93cx6var.h | ||
uha.c | ||
uhareg.h | ||
uhavar.h | ||
wdcreg.h | ||
z8530.doc | ||
z8530reg.h | ||
z8530sc.c | ||
z8530sc.h | ||
z8530tty.c |