<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/device/usbd.c, branch 0.13.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/device/usbd.c?h=0.13.0</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/device/usbd.c?h=0.13.0'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2021-12-30T13:59:53Z</updated>
<entry>
<title>fix unreachable warnings with keil</title>
<updated>2021-12-30T13:59:53Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-12-30T13:59:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c5d2c82cbbabf02cef16c2da565867f63900f69b'/>
<id>urn:sha1:c5d2c82cbbabf02cef16c2da565867f63900f69b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>usbd: supress "statement is unreachable" warning on ARMCC</title>
<updated>2021-11-30T09:19:10Z</updated>
<author>
<name>Yunhao Tian</name>
<email>t123yh@outlook.com</email>
</author>
<published>2021-11-30T09:10:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dba59217da489dc497cbe2b573e7e144d085c869'/>
<id>urn:sha1:dba59217da489dc497cbe2b573e7e144d085c869</id>
<content type='text'>
</content>
</entry>
<entry>
<title>more with -Wcast-qual</title>
<updated>2021-10-17T09:36:53Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-10-17T09:26:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a5f516893bbd539f11fb8d1cbb5b6db5a50fc632'/>
<id>urn:sha1:a5f516893bbd539f11fb8d1cbb5b6db5a50fc632</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix -Wcast-qual</title>
<updated>2021-10-15T16:54:31Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-10-15T10:35:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=0b249618b0469529da748e3e5478751cd56acd31'/>
<id>urn:sha1:0b249618b0469529da748e3e5478751cd56acd31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' into add_uvc</title>
<updated>2021-10-12T15:01:02Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-10-12T15:01:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=379537cb6deed9c9c055d0fd34d9a941f47ffc02'/>
<id>urn:sha1:379537cb6deed9c9c055d0fd34d9a941f47ffc02</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename CFG_TUD_NET to CFG_TUD_ECM_RNDIS</title>
<updated>2021-10-05T09:00:07Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-10-05T05:32:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a867d87072e6f25e47f209e9615e00b97a9eb36f'/>
<id>urn:sha1:a867d87072e6f25e47f209e9615e00b97a9eb36f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>more usbd  clean up</title>
<updated>2021-10-01T14:52:29Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-10-01T14:52:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=fdd1e4fbf03726703cba701f9ea7d9541e9bab9e'/>
<id>urn:sha1:fdd1e4fbf03726703cba701f9ea7d9541e9bab9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add files for video class device</title>
<updated>2021-09-29T12:23:14Z</updated>
<author>
<name>kkitayam</name>
<email>45088311+kkitayam@users.noreply.github.com</email>
</author>
<published>2021-07-17T09:51:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=97d5d1e491565d6d546bcf27af1ff3525f3df722'/>
<id>urn:sha1:97d5d1e491565d6d546bcf27af1ff3525f3df722</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' into enhance</title>
<updated>2021-09-29T09:18:17Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-09-29T09:18:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=0b31c40b9f84e8207d78a3196a755be53356534f'/>
<id>urn:sha1:0b31c40b9f84e8207d78a3196a755be53356534f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>usbd: Workaround for non standard device descriptor request</title>
<updated>2021-09-24T12:19:04Z</updated>
<author>
<name>Jerzy Kasenberg</name>
<email>jerzy.kasenberg@codecoup.pl</email>
</author>
<published>2021-09-23T12:03:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c62c1433e7d35ee18d97a7c76a4de91aa66a9486'/>
<id>urn:sha1:c62c1433e7d35ee18d97a7c76a4de91aa66a9486</id>
<content type='text'>
Windows and Linux host during enumeration requests device
descriptor with request size set to 64 bytes when device
was in default state (no address).
Those systems do not want 64 bytes though since usb descriptors is
only 18 bytes long so they silently expect that only one packet
will be received possibly 18 bytes for EPS &gt; 16 or 8 or 16 bytes
for smaller EP0.

For devices with CFG_TUD_ENDPOINT0_SIZE size 8 or 16 there was
workaround that reduced request size to CFG_TUD_ENDPOINT0_SIZE
and that was enough to satisfy Windows and Linux hosts.

However USBCV testing application also requests device descriptor
but with size set to 18 bytes. Workaround for Window/Linux
prevented USBVC to tests devices with 8 bytes EP0 size since it
send only 8 bytes while application did wanted 18 bytes.

Solution that satisfies both cases it to check if in default state device
descriptor request wants more bytes than descriptor size (18).
If so host is expecting to receive less bytes then requested
and workaround would be applied since Linux/Windows only try
to read one packet.
If 18 bytes was requested as is the case for USBCV, core returns
descriptor in 2 or 3 packets as application expects.
</content>
</entry>
</feed>
