Messages in this thread | ![/](/images/icornerl.gif) | | From | Oliver Neukum <> | Subject | Re: USB transfer_buffer allocations on 64bit systems | Date | Fri, 9 Apr 2010 22:51:51 +0200 |
| |
Am Freitag, 9. April 2010 17:15:43 schrieb Alan Stern: > > > Then usb_submit_urb(urb[i]) will copy the appropriate four bytes to a > > > bounce buffer and map the bounce buffer. Accesses to the other parts > > > of xbuf won't violate the cacheline rules, because xbuf isn't mapped > > > for DMA -- only the bounce buffer is. When urb[i] completes, the > > > bounce buffer contents will be copied back to the original four bytes > > > in xbuf. Again, there is no violation of cacheline rules. > > > > I think you are assuming that either every or no part of the buffer is mapped > > for DMA in place. I don't think you can assume that. > > Yes I can, because the code that makes this decision is part of > usbcore and it is under m
It seems to me that in usbcore you can positively know that a buffer will be mapped. However if the mapping is not done in usbcore you cannot know what the HCD driver will do to a buffer, in particular you don't know whether it will be processed by PIO or mapped for DMA.
Maybe I understand this wrongly. Which code exactly were you refering to?
Regards Oliver
| ![\](/images/icornerr.gif) |