mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-10 08:03:04 -04:00
A host can replace an unfinished control transfer with a new SETUP. ARC and DesignWare flush EP0 without reporting completion callbacks, leaving the core waiting for a data/status packet that will never arrive. Explicitly notify the core after both directions and stale completion bits have been cancelled. Return an abandoned data/status stage to READY. If a queued or running handler still owns the request and data buffer, keep that ownership and suppress its response; dispatch only the latest replacement when it returns. A driver-owned SET_ADDRESS can also cancel a deferred request without passing its SETUP to the core. Do not overwrite an arbitrary busy state in usb_core_setup_received(). ARC cancellation is a prerequisite in the preceding patch; DesignWare cancels both EP0 directions before notifying and rearming reception. Change-Id: Ia8e0a68fe47ccab952168da24a2f76e311ca2b15 |
||
|---|---|---|
| .. | ||
| iap | ||
| usb_audio.c | ||
| usb_audio.h | ||
| usb_audio_def.h | ||
| usb_charging_only.c | ||
| usb_charging_only.h | ||
| usb_class_driver.h | ||
| usb_core.c | ||
| usb_hid.c | ||
| usb_hid.h | ||
| usb_hid_def.h | ||
| usb_hid_usage_tables.h | ||
| usb_iap.c | ||
| usb_iap.h | ||
| usb_serial.c | ||
| usb_serial.h | ||
| usb_storage.c | ||
| usb_storage.h | ||