<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/class/midi, 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/class/midi?h=claude%2Fadoring-pasteur-kbaFa</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/class/midi?h=claude%2Fadoring-pasteur-kbaFa'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-12T09:59:01Z</updated>
<entry>
<title>midi: document that midi2_ump_word_count() must never return 0</title>
<updated>2026-06-12T09:59:01Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-12T09:59:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c09278987ad49ce8d2a4cb345659a6d5ea10903d'/>
<id>urn:sha1:c09278987ad49ce8d2a4cb345659a6d5ea10903d</id>
<content type='text'>
The midi2_device/midi2_host tx packing loops advance by this count and
no longer carry an explicit == 0 guard (removed in a749fe0).
</content>
</entry>
<entry>
<title>midi2: drop unreachable pkt_bytes==0 guard in tx packing loops</title>
<updated>2026-06-12T09:57:23Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-12T09:57:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a749fe06e174a66d441e91ff1977c41e419cd09a'/>
<id>urn:sha1:a749fe06e174a66d441e91ff1977c41e419cd09a</id>
<content type='text'>
midi2_ump_word_count() is total over the 4-bit message type (every case
returns 1..4 words) and callers mask mt with 0x0F, so pkt_bytes can never
be 0. Remove the dead break (flagged by PVS V547) instead of suppressing.

Verified: pico examples rebuild, ceedling test:all 60/60 (incl.
test_midi2_device/test_midi2_host), PVS re-run on both TUs is clean.
</content>
</entry>
<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>midi2_host: convert TX to raw FIFO mirroring midi2_device refactor</title>
<updated>2026-05-19T19:34:42Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-19T19:34:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dad8c0ae51d68fd5355a8a0de4e478e4149ec05e'/>
<id>urn:sha1:dad8c0ae51d68fd5355a8a0de4e478e4149ec05e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>midi2: convert to raw Tx FIFO for better segmentation handling, add count to packet api</title>
<updated>2026-05-18T21:07:49Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-18T21:07:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4baf1883c194c2c4b6fa30cc0c443ad6c83e0b19'/>
<id>urn:sha1:4baf1883c194c2c4b6fa30cc0c443ad6c83e0b19</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>midi2: boundary-aware drain in xfer_cb to keep UMP packets intact</title>
<updated>2026-05-18T14:42:34Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-18T14:42:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=aaca323bd34945178e88de51acf67c4d0443a726'/>
<id>urn:sha1:aaca323bd34945178e88de51acf67c4d0443a726</id>
<content type='text'>
</content>
</entry>
<entry>
<title>midi2: drain pattern for RX FIFO</title>
<updated>2026-05-17T22:56:04Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T22:56:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b31e7cdbbedec4a3286700f3ec24bb63fd7c224f'/>
<id>urn:sha1:b31e7cdbbedec4a3286700f3ec24bb63fd7c224f</id>
<content type='text'>
Default RX/TX buffers to EPSIZE for both device and host. Document
drain-in-loop on ump_read; example device callback drains until
empty.
</content>
</entry>
<entry>
<title>midi2: scale device buffers with EPSIZE</title>
<updated>2026-05-17T16:07:21Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T16:07:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=287096f7333aa10b6aaaf75337ccd3de9b06b95d'/>
<id>urn:sha1:287096f7333aa10b6aaaf75337ccd3de9b06b95d</id>
<content type='text'>
Match midi2_host pattern. Literal 256 underran HS endpoints (512B).
</content>
</entry>
<entry>
<title>midi2: per-interface weak callbacks for UMP Stream config</title>
<updated>2026-05-17T15:19:45Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T15:19:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4b729bfb9274af44f8edfba2134893a6889cfd03'/>
<id>urn:sha1:4b729bfb9274af44f8edfba2134893a6889cfd03</id>
<content type='text'>
Lets each instance return different NUM_GROUPS, NUM_FUNCTION_BLOCKS,
EP_NAME and PRODUCT_ID. Defaults fall back to the macros.
</content>
</entry>
<entry>
<title>midi2: peek 4 bytes for MT, restore 256 buffers</title>
<updated>2026-05-17T14:31:12Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-05-17T14:31:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5ac6346dd4980af75973e53dd130e7ee2a9af32d'/>
<id>urn:sha1:5ac6346dd4980af75973e53dd130e7ee2a9af32d</id>
<content type='text'>
MT is in byte 3 of the UMP word in LE memory, not byte 0. Buffers
at mps blocked RX xfer re-arm on partial packets.
</content>
</entry>
</feed>
