- Sometimes read requests can be satisfied directly from
the OUT fifo. This fixes a bug where the return code
from usb_ep_queue() overwrite the transfer status, which
in that case was set _before_ that call returned.
(Synchronous behavior; not the usual async completion.)
- In the same vein, usb_ep_dequeue() doesn't need to be
synchronous -- though so far most controller drivers
have implemented it that way. So drop the spinlock
before the wait_event() sleep.
- Some debug messages are more useful AFTER the event
than before.
- The only descriptor fetches user mode drivers will
need to handle are for string descriptors. Stall all
other requests, like ones for other-speed configs
on single-speed devices.