summaryrefslogtreecommitdiff
path: root/src/class/vendor
AgeCommit message (Collapse)Author
2026-07-17vendor: deactivate de-selected altsetting's isochronous endpointshathach
vendord_set_alt() aborted bulk/interrupt endpoints of the outgoing altsetting (stall/clear-stall) but only dropped the iso endpoints' tracking: an armed iso transfer stayed live in the dcd with its usbd claim held and no tracked handle to stop it, and its completion fired into an endpoint the class no longer recognizes. Reachable through the usbtest example's alt0 (bulk) <-> alt1 (iso) SET_INTERFACE switching. Track each selected iso endpoint's descriptor (points into the app's static descriptor set) and deactivate on de-selection: with the iso-alloc API re-activation is the abort/scrub primitive (resets ep_status, aborts the stale transfer); without it usbd_edpt_close does, and the next selection re-opens. Iso cannot be stalled like bulk/interrupt, hence the separate path. Build-verified: usbtest for stm32f072disco, ra4m1_ek, raspberry_pi_pico (iso-alloc) and ch32v307v_r1_1v0 (close API).
2026-07-09class/vendor: add interrupt/iso endpoint pairs and alt-setting supporthathach
Non-buffered per-type source/sink endpoints (bulk/int/iso) with manual RX arming across altsettings. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-02license: use SPDX identifiers for src/ headers (#3749)Ha Thach
* license: use SPDX identifiers for src/ headers Replace the full ~20-line MIT license boilerplate on every src/ file with a two-line SPDX tag (SPDX-FileCopyrightText + SPDX-License-Identifier), following the REUSE convention used by CircuitPython and the Linux kernel. Removes ~3500 lines of duplicated boilerplate.
2026-03-12correct default value for CFG_TUD_VENDOR_TX/RX_BUFSIZEhathach
2026-03-12refactor(vendor/cdc): add CFG_TUD_CDC_RX_NEED_ZLP and CFG_TUD_VENDOR_RX_NEED_ZLPhathach
2026-03-12refactor(config): separate endpoint buffer sizes into RX and TX definitions ↵hathach
for clarity and flexibility
2026-03-11rename .rx_multiple_packet_transfer to .rx_need_zlphathach
2026-02-11fix rx transfer length when high speed capable device/host working at full speedHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-01-14remove no-fifo mode in edpt stream APIhathach
update vendor_device.c for direct usbd xfer when either RX/TX BUFSIZE is 0 i.e CFG_TUD_VENDOR_TXRX_BUFFERED = 0
2025-12-21Change return of tud_vendor_n_write_clear from uint32_t to boolJames Smith
2025-12-21Removed tu_fifo_count_and_clearJames Smith
2025-12-20Added tud_vendor_write_clear() which forcefully clears TX bufferJames Smith
2025-12-10move hwid into edpt stream for consistent APIhathach
2025-12-10remove tu_fifo_discard_n() and its usagehathach
2025-11-27add CFG_TUD_VENDOR_RX_MANUAL_XFER per suggestionhathach
2025-11-27make vendor_read_* API() is only available when CFG_TUD_VENDOR_RX_BUFSIZE > 0hathach
vendor_write_flush() and write_available() only available when CFG_TUD_VENDOR_TX_BUFSIZE > 0
2025-11-27change tud_vendor_rx_cb() behavior, buffer and bufsize only available when ↵hathach
CFG_TUD_VENDOR_RX_BUFSIZE = 0 update vendor device to omit ep buf when dedicated hwfifo is supported
2025-11-27add tud_vendor_n_read_discard(), refactor vendor device. Update webusb ↵hathach
example for more robust
2025-11-27correct tu_edpt_stream_read() with non-fifo mode. Fix rhport with vendor devicehathach
2025-11-27omit cdc epnotify for dedicated hw fifohathach
2025-11-12migrate cdc device to use edpt stream APIhathach
tu_edpt_stream_open() does not clear fifo, allow for persistent stream when disconnect/reconnect
2025-11-12migrate midi_device to use edpt stream APIhathach
also add tud_midi_n_packet_write/read_n()
2025-10-28fix Identifiers that start with '__' or '_[A-Z]' are reserved.hathach
fix compiling with nuc family
2025-09-17Update weak callbacks to new syntaxHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-08-02use tu_desc_in_bounds() for descriptor loophathach
2025-07-07updateYixingShen
2025-07-07fixed CFG_TUD_VENDOR > 1 vendord_open tud_vendor_n_write_flushYixingShen
tud_vendor_n_write_flush argument should be 0,1,2,..., but p_vendor - _vendord_itf is 0, sizeof(vendord_interface_t), 2*sizeof(vendord_interface_t), ...
2025-05-16follow up to pr3118, interface also end with IAD. Add more checkshathach
2025-05-09simplify vendord_open parsing loopHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-05-09revert 'end fix'ZakDanger
2025-05-09revert 'end fix'ZakDanger
2025-05-09vendor device open fix for descriptor parsingZakDanger
2025-03-10fix desc_end in vendord_open()Cynventria[CitRA]
minor fix on calculation of desc_end in vendord_open( ) for descriptor prasing
2024-11-22TUD_EPBUF_TYPE_DEF usbtmc_device.c and vendor_device.chathach
2024-10-01Fix vendor class reset.HiFiPhile
2024-09-10remove vendor ep_addr, use stream api insteadhathach
2024-09-10update vendor device to use edpt stream which also support non-buffereed (no ↵hathach
fifo) mode
2024-09-10change vendor device to use edpt stream APIhathach
2024-08-02Merge branch 'master' into vendor_fifoHiFiPhile
2024-05-09Take updated change from cdc_device.HiFiPhile
2024-04-08Merge branch 'master' of github.com:HiFiPhile/tinyusb into vendor_fifoHiFiPhile
2024-04-08add class driver deinithathach
2024-03-03Use FIFO size as condition.HiFiPhile
2024-02-01Allow vendor class to be used without FIFO.HiFiPhile
2024-01-31Update vendor_device.c fifo mutex config similar to cdc_device.c.mamiral
2023-07-24rename CFG_TUSB_MEM_SECTION to CFG_TUD_MEM_SECTION in device stackhathach
CFG_TUD_MEM_SECTION is default to CFG_TUSB_MEM_SECTION
2023-04-06add define for vendor_flush() to write_flush() for backward compatiblehathach
2023-03-31Remove trailing whitespaceepatstarkey
2023-03-28Update vendor_device.cepatstarkey
2023-03-28Update vendor_device.cepatstarkey