-
David Brownell authored
The support for non-dma HCDs is likely the most interesting bit here. - makes dma calls behave sensibly when used with host controllers that don't use dma (including sl811). usb_buffer_map() is a nop while scatterlist dma mappings fail (as they must). - make usb_sg_init() behave sensibly when used with non-dma hcs. the urbs are initted with transfer_buffer, not transfer_dma. this is the higher level analogue to usb_buffer_map(), so it needs to succeed unless there's a Real Error (tm). - moves two compatibility inlines from ehci.h into hcd.h so it'll be more practical to have the other hcds work in other environments (notably lk 2.4) too - remove URB_TIMEOUT_KILLED flag ... no device driver tests it; hcds don't really (uhci sets it, never reads it; sl811 doesn't enable the path that might set it), and it's not well defined. if any hcd needs such state, keep it in hc-private storage. - in usb_sg_wait(), use yield() instead of schedule() to let other activities free resources needed to continue. (This was noted recently by Oliver.)
31fd2ea0