Hi,
The attached patch addresses following points.
- With some usb devices, often some endpoints gets stalled. Resetting the endpoint helps recover usb transactions.
- When a usb device is removed while data is being copied to/from, all the queued transfer requests needs to be aborted gracefully so that transfer status is reported up to the application.
- Some boards require an additional interrupt acknowledgement specific to the architecture. Added a function pointer that needs to be set during that board arch-specific initialization. If this is not required, function pointer needs to be set to NULL.
- Added debug functions to dump xhci registers that could help us in case of any issue.