<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/portable, branch claude/mtp-data-phase-fixes</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/portable?h=claude%2Fmtp-data-phase-fixes</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/portable?h=claude%2Fmtp-data-phase-fixes'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-08-17T05:17:00Z</updated>
<entry>
<title>portable/nrf5x: complete zero-length bulk OUT transfers</title>
<updated>2026-08-17T05:17:00Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-08-14T04:29:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f75b247304397a1bd8bd60867c947c5be0f72743'/>
<id>urn:sha1:f75b247304397a1bd8bd60867c947c5be0f72743</id>
<content type='text'>
A zero-length OUT read (e.g. the MTP driver's read for the host's
terminating data ZLP) could never complete when the ZLP's EPDATA
arrived after the read was armed: actual_len &lt; total_len is always
false for total_len == 0, so the handler only set data_received and the
armed transfer hung forever, wedging both bulk endpoints (host sees
pure NAK; EP0 stays alive). Run the 0-byte DMA in that case to drain
the endpoint and complete the transfer, matching what the arm path
already does when the ZLP arrives first.

Found via usbmon on the HIL rig: device/mtp on feather_nrf52840_express
wedged after SendObject's terminating ZLP whenever the class armed the
read before the host's (NAK-delayed) ZLP retry landed - deterministic
under CI load, which is why PR CI only passed this test on a re-flash
retry (21.4 s vs the normal 2.2 s).
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master' into tmp/pr3790-merge</title>
<updated>2026-07-29T19:35:02Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-29T19:35:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6271842ea874812f1157b42bcd650c59ab59259b'/>
<id>urn:sha1:6271842ea874812f1157b42bcd650c59ab59259b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>also added rp2usb_deinit() call to hcd_deinit()</title>
<updated>2026-07-29T10:00:59Z</updated>
<author>
<name>Geurt Vos</name>
<email>geurt.vos@outerplane.nl</email>
</author>
<published>2026-07-29T10:00:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=530c6708dd6f863e6ad91bc0e3433f887555999a'/>
<id>urn:sha1:530c6708dd6f863e6ad91bc0e3433f887555999a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rp2xxx: added rp2usb_deinit() to fix 'No spinlocks are available'</title>
<updated>2026-07-29T09:36:01Z</updated>
<author>
<name>Geurt Vos</name>
<email>geurt.vos@outerplane.nl</email>
</author>
<published>2026-07-29T09:36:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=84e938bd7661a862589a92635d77f1b7e4a02484'/>
<id>urn:sha1:84e938bd7661a862589a92635d77f1b7e4a02484</id>
<content type='text'>
</content>
</entry>
<entry>
<title>portable/dwc2: rewind DMA on ISO IN retry</title>
<updated>2026-07-28T19:15:38Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-28T19:15:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a20cf74e6a62f5b833baacfe1198648b237b3e7f'/>
<id>urn:sha1:a20cf74e6a62f5b833baacfe1198648b237b3e7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>portable/chipidea: configure i.MX RT AHB bursts</title>
<updated>2026-07-27T12:58:13Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-27T12:58:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f0a8a1483bd4e89ab3adf40d8c61777a5ddadc7f'/>
<id>urn:sha1:f0a8a1483bd4e89ab3adf40d8c61777a5ddadc7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>portable/chipidea: configure LPC USB0 AHB bursts</title>
<updated>2026-07-27T12:39:02Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-27T12:39:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a2f4786865e85f9cfe7f58c86fbb9355bbd2d701'/>
<id>urn:sha1:a2f4786865e85f9cfe7f58c86fbb9355bbd2d701</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for APM32F072</title>
<updated>2026-07-21T10:07:11Z</updated>
<author>
<name>Jie Feng</name>
<email>hjf3108@gmail.com</email>
</author>
<published>2026-05-02T04:42:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c60e6005faa469adbb583f489d4a9c7b6c3c2f5c'/>
<id>urn:sha1:c60e6005faa469adbb583f489d4a9c7b6c3c2f5c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #3757 from rhgndf/at32f403a_larger_pma</title>
<updated>2026-07-19T20:21:53Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-19T20:21:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=53f8c53c2cbd73a91a172f1ae35e9abc00eb5075'/>
<id>urn:sha1:53f8c53c2cbd73a91a172f1ae35e9abc00eb5075</id>
<content type='text'>
Larger at32f403a PMA area</content>
</entry>
<entry>
<title>Potential fix for pull request finding</title>
<updated>2026-07-19T20:16:33Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-07-19T20:16:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a3e58adf6008f3199cf653859bea4dc73217a55a'/>
<id>urn:sha1:a3e58adf6008f3199cf653859bea4dc73217a55a</id>
<content type='text'>
Co-authored-by: Copilot Autofix powered by AI &lt;175728472+Copilot@users.noreply.github.com&gt;</content>
</entry>
</feed>
