summaryrefslogtreecommitdiff
path: root/src/portable/linux
AgeCommit message (Collapse)Author
2026-07-29raw_gadget: fix MSC recovery after endpoint haltraw_gadget_reviewZixun LI
Allow opt-in DCDs to queue transfers behind a halted endpoint without changing hardware DCD behavior. Retry dummy_hcd's transient EP_SET_HALT failure, queue MSC BOT status and recovery requests behind the halt, and clean up Raw Gadget endpoint workers across bus reset. Signed-off-by: Zixun LI <[email protected]>
2026-07-27raw_gadget: fix scalar ioctl argumentsRoman Buchert
2026-07-24raw_gadget: address transfer allocation review commentsRoman Buchert
Initialize and clean up the Raw Gadget review findings. Use a single variable-sized allocation for each asynchronous transfer job, including the usb_raw_ep_io buffer, instead of allocating the job and ioctl buffer separately. This reduces allocation overhead and simplifies all cleanup paths while retaining support for variable-sized transfers without introducing fixed buffer limits or transfer pools.
2026-07-24Potential fix for pull request findingRoman Buchert
Good catch. `configured` must be initialized explicitly because the context storage is not guaranteed to be zero-initialized at this point. I will set it to `false` in `raw_gadget_context_table_create()` and review the remaining context fields for the same issue. Co-authored-by: Copilot Autofix powered by AI <[email protected]>
2026-07-24Renove dead codeRoman Buchert
2026-07-24raw_gadget: include tusb_option.h explicitlyRoman Buchert
Include tusb_option.h directly from raw_gadget_private.h instead of relying on transitive includes. This makes the header self-contained and removes the implicit dependency on include order, ensuring that TinyUSB configuration macros are always available where they are required.
2026-07-24dcd/raw_gadget: add Linux Raw Gadget backendRoman Buchert
Add a TinyUSB device controller driver for the Linux Raw Gadget interface. The driver implements the TinyUSB DCD API on top of the Linux Raw Gadget userspace interface and supports: - Control transfers (EP0) - Bulk endpoints - Interrupt endpoints - Dynamic endpoint configuration - Remote wakeup handling - Stall and clear-stall - Asynchronous transfer processing Isochronous transfers are not supported because the Linux Raw Gadget API does not expose the required functionality. The implementation is intended for development, testing and virtual USB devices running entirely in userspace on Linux.