<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/host/usbh.c, branch docs/worktree-reuse-workflow</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/host/usbh.c?h=docs%2Fworktree-reuse-workflow</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/host/usbh.c?h=docs%2Fworktree-reuse-workflow'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-09-01T08:42:39Z</updated>
<entry>
<title>Merge pull request #3828 from dxbjavid/ep2drv-endpoint-bound</title>
<updated>2026-09-01T08:42:39Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-01T08:42:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f4697a0626ffa81617c457c93b64e3c3816c1af0'/>
<id>urn:sha1:f4697a0626ffa81617c457c93b64e3c3816c1af0</id>
<content type='text'>
bound endpoint number in tu_bind_driver_to_ep_itf</content>
</entry>
<entry>
<title>propagate the endpoint-bound failure on the host path</title>
<updated>2026-09-01T08:41:53Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-01T08:36:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=bc359e55b8d3fb5fc5b9e026d5c21b52d554fdd2'/>
<id>urn:sha1:bc359e55b8d3fb5fc5b9e026d5c21b52d554fdd2</id>
<content type='text'>
tu_bind_driver_to_ep_itf() now returns false when ep_num &gt;= CFG_TUH_ENDPOINT_MAX, but the host caller ignores that result and continues enumeration. Configurations such as host/bare_api set the limit to 8, while valid USB devices may use endpoints 8–15. A recognized class can therefore continue and later index ep_status[epnum] or ep2drv[epnum] out of bounds. Wrap this call in TU_ASSERT(...), as the device path already does, so parsing fails immediately.

Signed-off-by: HiFiPHile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>vendor: remove the obsolete host vendor driver</title>
<updated>2026-08-21T04:06:14Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-08-21T04:06:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a57f857f811e054e7a240fc55520648192349c2b'/>
<id>urn:sha1:a57f857f811e054e7a240fc55520648192349c2b</id>
<content type='text'>
vendor_host.c/.h implemented a CFG_TUH_VENDOR class driver that no example, board
or test ever enabled: usbh's driver table entry was compiled out everywhere, and
the six tusb_config.h files that mentioned the macro all set it to 0. Maintainer
call - dead code, not a shrinking of supported classes.

Removes the sources, the usbh driver-table entry, the CFG_TUH_VENDOR default in
tusb_option.h, the tusb.h include, both build-system source lists, the rp2040
family.cmake entry and the IAR project template rows.
</content>
</entry>
<entry>
<title>bound endpoint number in tu_bind_driver_to_ep_itf</title>
<updated>2026-08-17T15:30:57Z</updated>
<author>
<name>Javid Khan</name>
<email>dxbjavid@gmail.com</email>
</author>
<published>2026-08-17T15:26:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=53567226fce0e7be7e7b5e7a019d0f4d14064c33'/>
<id>urn:sha1:53567226fce0e7be7e7b5e7a019d0f4d14064c33</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix usbh empty builtin driver warning</title>
<updated>2026-07-05T13:27:30Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-05T13:27:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=073657a04e727203d0363dfb0be195b4b9bcb451'/>
<id>urn:sha1:073657a04e727203d0363dfb0be195b4b9bcb451</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>license: use SPDX identifiers for src/ headers (#3749)</title>
<updated>2026-07-02T14:55:45Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-02T14:55:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7a4111b96ef6279e75579f9a18443834f6a0871d'/>
<id>urn:sha1:7a4111b96ef6279e75579f9a18443834f6a0871d</id>
<content type='text'>
* 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.</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'tinyusb/master' into pr-osal-spin-deinit</title>
<updated>2026-06-22T19:30:58Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-22T19:30:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=693cdce08e14833f26f4e8a1f26e4fd546be4c35'/>
<id>urn:sha1:693cdce08e14833f26f4e8a1f26e4fd546be4c35</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>usbh: remove Pico specific comment</title>
<updated>2026-06-22T19:25:44Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-22T19:25:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f94e1f575e86a5f926e96f0b35f77fdb26228e60'/>
<id>urn:sha1:f94e1f575e86a5f926e96f0b35f77fdb26228e60</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>fix(host): release spinlock in tuh_deinit to fix multi-rebuild panic</title>
<updated>2026-06-21T09:46:26Z</updated>
<author>
<name>renjie</name>
<email>renjieah@gmail.com</email>
</author>
<published>2026-06-21T06:06:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f7617168e2ce2e7ea2e49cba5962b69aed04900e'/>
<id>urn:sha1:f7617168e2ce2e7ea2e49cba5962b69aed04900e</id>
<content type='text'>
tuh_rhport_init() calls osal_spin_init(&amp;_usbh_spin), which under OPT_OS_PICO
claims a hardware spinlock via critical_section_init(). There was no
osal_spin_deinit(), so tuh_deinit() never released it: every host init/deinit
cycle leaked one spinlock. RP2350 has a small spinlock pool, so a few usb_host
rebuilds exhaust it and hw_claim_unused_from_range() panics (the long-standing
"crashes on the 4th rebuild" bug).

Add osal_spin_deinit() to all OSAL backends (critical_section_deinit for pico;
no-op for none/freertos) and call it in tuh_deinit(). Verified 20/20
deinit+rebuild cycles on RP2350-Zero and Waveshare RP2350-USB-A (previously
panicked on the 4th).

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</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>
</feed>
