> > And like Georg said, be sure to kmalloc() the data area; don't use local
> > stack or global/static data areas for this.
>
> Can anyone explain this a bit further? Specifically, is this driven by PCI
> address issues, or some kind of alignment requirement for the host controller?
> Is it architecture specific?

It's a generic DMA and memory management issue.  See
Documentation/DMA-mapping.txt ... not all architectures
have precisely the same requirements, but basically it's not
guaranteed that memory except from __get_free_pages(),
used by kmalloc(), can be DMA'd.

So far as USB device drivers are concerned, this applies
to data buffers passed through URBs, as well as to the
control setup buffers.  Host controller drivers have a more
complex set of requirements.

- Dave




_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to