Re: CPPI DMA RNDIS mode support
David Brownell <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Saturday 28 April 2007, Meher wrote: > Hi, > I am working on developing USB drivers for a custom hardware > interfacing with Davinci. I would like to know issues in using RNDIS > mode for DMA with Davinci. There's a summary of those issues in the driver source. Note that this is a case where public vendor documentation isn't much help (among other things it's incomplete, plus there are inaccuracies), and that's compounded by the fact that CPPI DMA seems to have been designed without any reference to what USB needs (it was originally for Ethernet I think), then glued onto that USB controller without updating enough to make up for those initial oversights. > I want to avoid IRQ-per-packet and use RNDIS to transfer data. I am > going through cppi-dma.c form the davinci 2.6.20 git tree and I have > seen comments suggesting that CPPI-RX is working as expected and as of > now IRQ-per-packet is the way to go. Is my understanding correct? There may be some issues on the host side with DMA, mostly because the host side got significantly reworked (so both the RX and TX sides of each endpoint could be used, vs. just one side), but other than such concerns, that understanding should be correct. "IRQ per packet" is sort of a misnomer; the issue is that in most the CPII RX DMA descriptor queues are unusable in pretty much all cases on the host side. (The single exception is usb-storage.) > Can any one give me a scenario where the RNDIS mode is failing? The comments about the RX side DMA handling give examples. See the comment headed "CPPI RX Woes". > Does it work properly during TX? The comments in that driver source file certainly explain how the TX side more or less works in "RNDIS mode", except for the case of sending a zero-length-packet (which seemed racey). - Dave ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel