<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/host, branch claude/adoring-pasteur-kbaFa</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/host?h=claude%2Fadoring-pasteur-kbaFa</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/host?h=claude%2Fadoring-pasteur-kbaFa'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-11T23:34:30Z</updated>
<entry>
<title>clean up PVS-Studio static-analysis findings for raspberry_pi_pico</title>
<updated>2026-06-11T23:34:30Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-11T23:34:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=72f4d52aafaf582a29428863a72c454a9ae5e916'/>
<id>urn:sha1:72f4d52aafaf582a29428863a72c454a9ae5e916</id>
<content type='text'>
Resolves all TinyUSB-owned alerts reported by the CI PVS-Studio job
(static_analysis.yml, run with --security-related-issues) on the
raspberry_pi_pico board: 0 remaining in src/ and examples/.

Genuine fixes:
- ncm_device: validate wNdpIndex against sizeof(nth16_t), not the pointer
  size sizeof(nth16) (4 bytes) — the latter under-checks the NTB header
  (V568).
- tusb: drop the redundant `ff_buf != NULL &amp;&amp; ff_bufsize &gt; 0` guard in
  tu_edpt_stream_init(); the early return already guarantees it (V560).
- midi_host: bounds-check idx in tuh_midi_itf_get_info() instead of the
  always-true `&amp;_midi_host[idx]` pointer (V560).
- examples: fully initialize resolutions_per_format / frame_num /
  interval_ms arrays instead of leaving trailing elements implicitly zero
  (V1009).

False positives suppressed at the cause:
- usbd/usbh: hide the weak dcd_deinit()/hcd_deinit() stubs from the
  analyzer with #ifndef PVS_STUDIO. PVS analyzes one TU at a time and
  binds the call to the always-false weak stub (it cannot model the
  linker selecting the port's strong definition), then reports the
  cleanup loop after TU_ASSERT(...deinit()) as unreachable (V779).

False positives suppressed locally (inline //-V or .pvsconfig):
- .pvsconfig: V501 (HID descriptor macros), V763 (rhport override),
  V785 (audio function-index switch), V1044 (hardware poll loops).
- inline //-V for config-dependent or intentional constructs: V512,
  V514-style contiguous clears, V547, V557, V560, V614, V619, V641,
  V1008, V1037, V1048, V1086.

Verified: all examples build for raspberry_pi_pico; ceedling test:all
passes (60/60); re-run of the CI-exact PVS invocation reports zero
TinyUSB-owned findings.
</content>
</entry>
<entry>
<title>CFG_TUH_CONTROL_PENDING_QUEUE_SZ defefault to 4 if hub is eanbled, 2 if not</title>
<updated>2026-06-01T03:58:36Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T03:58:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=17185428df755d7229407e6ac87c124e522877dc'/>
<id>urn:sha1:17185428df755d7229407e6ac87c124e522877dc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement asynchronous control transfer queuing for USB host stack</title>
<updated>2026-05-29T09:16:21Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-29T09:16:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d754c0697cbd29874c56254bd97561349fb9a229'/>
<id>urn:sha1:d754c0697cbd29874c56254bd97561349fb9a229</id>
<content type='text'>
- Added a pending FIFO queue for asynchronous control transfers when the active slot is busy.
- Introduced `control_xfer_dispatch_pending` to handle queued transfers on slot availability.
- Improved synchronization for blocking and non-blocking transfer modes, preventing deadlocks in RTOS.
- Refactored and renamed related functions for clarity and consistency.
- Enhanced error handling and callback invocation for failed or stale transfers.
</content>
</entry>
<entry>
<title>feat: add MIDI 2.0 Host class driver (USB-MIDI 2.0)</title>
<updated>2026-05-12T14:07:44Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-03-25T02:38:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7750e51ce1b64bd4d2f0ba6d9671303b96ba80ce'/>
<id>urn:sha1:7750e51ce1b64bd4d2f0ba6d9671303b96ba80ce</id>
<content type='text'>
Add native USB-MIDI 2.0 Host class driver to TinyUSB. Implements
reactive architecture: enumerate, detect MIDI 2.0 capability, inform
application via callbacks.

Driver features:
- Parse both Alt Setting 0 (MIDI 1.0) and Alt Setting 1 (UMP)
- Detect bcdMSC version from descriptor
- Auto-select highest protocol (Alt 1 preferred if available)
- UMP read/write via endpoint streams
- Proper Audio Control interface skip (loop-based, following
  midi_host.c pattern)
- Endpoint open with tuh_edpt_open/tu_edpt_stream_open/clear
- usbh_driver_set_config_complete for USBH state machine
- Handle Audio Control itf_num in set_config gracefully
- 5 weak callback stubs (descriptor, mount, unmount, rx, tx)

Build system:
- Register midih2_* in usbh.c driver table
- Add midi2_host.h include to tusb.h
- Add CFG_TUH_MIDI2_LOG_LEVEL to tusb_option.h

All changes guarded by #if CFG_TUH_MIDI2 (default 0). Zero impact on
existing drivers and examples.

Tested: Waveshare RP2350-USB-A (Host) receiving UMP from Raspberry Pi
Pico (Device) via PIO-USB, board-to-board
</content>
</entry>
<entry>
<title>refactor: replace `tu_edpt_state_t` struct with `uint8_t` and update all endpoint state handling methods and accesses</title>
<updated>2026-05-04T05:11:03Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-04T04:19:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=9d68ed65f7200f155f01416b332c5e9f2340a8b2'/>
<id>urn:sha1:9d68ed65f7200f155f01416b332c5e9f2340a8b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>False negative in tuh_task_event_ready()</title>
<updated>2026-03-22T13:09:41Z</updated>
<author>
<name>Cédric Berger</name>
<email>cedric@precidata.com</email>
</author>
<published>2026-03-22T13:09:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3a262cb6ea8b070bd2fb6e32d2f754315077bd42'/>
<id>urn:sha1:3a262cb6ea8b070bd2fb6e32d2f754315077bd42</id>
<content type='text'>
</content>
</entry>
<entry>
<title>False positive in tuh_task_event_ready()</title>
<updated>2026-03-22T13:07:13Z</updated>
<author>
<name>Cédric Berger</name>
<email>cedric@precidata.com</email>
</author>
<published>2026-03-22T13:07:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=ace993c21bf613c8ffadf36406e5c23ce844e940'/>
<id>urn:sha1:ace993c21bf613c8ffadf36406e5c23ce844e940</id>
<content type='text'>
</content>
</entry>
<entry>
<title>We must wait at least the requested amount</title>
<updated>2026-03-22T13:02:50Z</updated>
<author>
<name>Cédric Berger</name>
<email>cedric@precidata.com</email>
</author>
<published>2026-03-22T13:02:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f615202b9b60a8a0151f6c9de049f024a68766d2'/>
<id>urn:sha1:f615202b9b60a8a0151f6c9de049f024a68766d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(config): separate endpoint buffer sizes into RX and TX definitions for clarity and flexibility</title>
<updated>2026-03-12T04:43:32Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-12T04:43:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=78bbc7dc2e80daba79351bc37e11b13243fd6f8c'/>
<id>urn:sha1:78bbc7dc2e80daba79351bc37e11b13243fd6f8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(usbh): correct memcpy usage to ensure proper alignment with `offsetof` in device descriptor handling</title>
<updated>2026-03-09T07:43:17Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-09T07:37:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3ca7ad1573e4931d430cc3b6412a7a31da6072c2'/>
<id>urn:sha1:3ca7ad1573e4931d430cc3b6412a7a31da6072c2</id>
<content type='text'>
</content>
</entry>
</feed>
