On Thursday 17 February 2005 2:38 am, Steve Hosgood wrote:

> Does the USB hardware DMA-copy the contents of the incoming bulk packets
> straight into the URB at its correct offset?

Yes ... at least, USB host controllers that use DMA will do that.  They
actually sit in a FIFO inside the controller for a while, until the DMA
engine does its job, but there'd be no point in copying the data to any
other location first!


> Nevertheless, and with this current bug fixed or not, the "this is
> linux, not windoze: there is no limit on URB size" statement seems
> flawed in that the biggest buffer you can get from kmalloc() is
> apparently 128K.

That's not a limitation on URB size ... it's a limit on kmalloc()
return values.  Using big kmalloc buffers is discouraged for other
reasons ... many systems won't even be able to return 32 KB buffers
reliably.  Test your driver on a system with 128MB and make sure it
behaves there.  :)


> Can I get blocks bigger than that from somewhere else if I want 2 or 3Mb
> URBs?

Yes, but I'd not recommend them for general use.  You really don't want to
be relying on such large chunks of physically contiguous memory, it chokes
up the memory allocators on anything except dedicated hardware.

For example, one technique that was just suggested on one of the embedded
Linux lists is to boot with for example "mem=16m" and have the rest of the
physical memory statically allocated to a given driver.

- Dave


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
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