Am Sonntag, 1. Mai 2005 21:29 schrieb Harald Welte:
> A quick browse through the EHCI specification and the ehci linux hcd
> driver revealed that it should be technically possible to:
> 
> 0) open an usbdevfs file like usual
> 1) set up a mmap()ed buffer between kernel and userspace
> 2) create one (or multiple consecutive) urb that points into the
>    mmap()ed buffer
> 3) submit that urb to ehci-hcd, which would in turn set up qtd's
>    pointing directly into that buffer
> 
> The result should be a truly zerocopy dma-to-userspace architecture.
> 
> As my only connection with the usb code so far has been the cyberjack
> driver and usbdevfs- based userspace programs, I'd like to receive the
> comments of people more familiar with the usb subsystem.
> 
> Do you think a system described above is actually feasible?  If yes,
> what kind of implementation suggestions do you have?  

In static int hcd_submit_urb (struct urb *urb, int mem_flags) you can
see that usbcore really doesn't care what buffer you feed it if you've
called dma_map_single() on it. You will need to make sure that buffers
don't overlap and make sure there's some limit to the ram a task can pin
thus.

        Regards
                Oliver


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r 
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to