DMA over USB

Greg KH greg at kroah.com
Wed Jul 2 02:25:29 EDT 2014


On Wed, Jul 02, 2014 at 11:39:36AM +0530, Raghavendra wrote:
> On Wednesday 02 July 2014 11:42 AM, Greg KH wrote:
> >On Wed, Jul 02, 2014 at 11:32:47AM +0530, Raghavendra wrote:
> >>On Wednesday 02 July 2014 11:02 AM, Greg KH wrote:
> >>>On Tue, Jul 01, 2014 at 10:29:39PM -0700, Greg KH wrote:
> >>>>On Wed, Jul 02, 2014 at 10:40:21AM +0530, Raghavendra wrote:
> >>>>>Hello,
> >>>>>
> >>>>>I have a query regarding DMA(Direct Memory Access) for the usb devices.
> >>>>>
> >>>>>The understanding of DMA actions over PCI is straight forward. PCI
> >>>>>devices support bus mastering capability, such that the PCI devices
> >>>>>could take the ownership of the bus and perform access to the memory
> >>>>>directly, and a software support exists for the same in Linux.
> >>>>>
> >>>>>As far as USB devices are concerned, they don’t have the bus mastering
> >>>>>capability like the PCI devices.
> >>>>>But the USB URB structure have a field named 'dma_addr_t transfer_dma',
> >>>>>used for DMA access. The USB driver allocate the DMA buffers coherently
> >>>>>and pass the DMA address to the URBs during its initialization.
> >>>>>As far as Linux is concerned, how the DMA action being taking place for
> >>>>>USB devices. As per my understanding, the USB host controller is taking
> >>>>>care of the DMA operations. But I require a little more insight into it.
> >>>>Why, what exactly are you concerned about?  What are you trying to do?
> >>>Also, you _have_ read the USB DMA documentation, right?
> >>>
> >>>What about the documentation in this area is unclear?
> >>Yes, I have read the documentation and its fine. I am mostly concerned about
> >>the all the heavy lifting happening in the background.
> >Why?  What exactly are you "concerned" about?  What hardware controller?
> >Is something not working properly?
> Everything is fine. This is more of a theoretical understanding.

The code is there for your theoretical research :)



More information about the Kernelnewbies mailing list