Various folk who were queuing multiple OUT data transfers noticed that the net2280.c driver had a problem there, with a workaround of disabling DMA chaining (so each transfer requires an IRQ) or even "modprobe net2280 use_dma=0" (PIO).
That problem wouldn't show up in gadget drivers currently included with 2.4/2.6 kernels, but both usb printer and mass storage class gadget driver ran into this.
For those of you using your own modified drivers, the relevant change is to the "else" line at the top of fill_dma_desc():
if (ep->is_in)
dmacount |= (1 << DMA_DIRECTION);
else if ((dmacount % ep->ep.maxpacket) != 0)
dmacount |= (1 << END_OF_CHAIN);That is, only disable OUT dma chaining when necessary.
This is in the bk://usb-gadget.bkbits.net/gadget-2.{4,6}
trees already, and I'll submit patches once trees reopen.- Dave
------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
