These requests are initialized using usb_sg_init, and then are used
as request handles passed to usb_sg_wait or usb_sg_cancel. Most
members of the request object aren't for driver access.
The status and bytecount values are valid only after usb_sg_wait
returns. If the status is zero, then the bytecount matches the total
from the request.
After an error completion, drivers may need to clear a halt condition on the endpoint.