nuttx/drivers/usbdev
wangjianyu3 4775b36316 drivers/usbdev: add UVC gadget class driver
Add USB Video Class 1.1 gadget driver supporting Bulk transport
with uncompressed YUY2 video streaming. Resolution and frame
interval are negotiated dynamically via PROBE/COMMIT control.

- uvc.h: protocol constants, streaming control struct, public API
- uvc.c: class driver with PROBE/COMMIT, bulk EP, /dev/uvc0 chardev
- Kconfig/Make.defs: USBUVC config and build rules
- boardctl.c: BOARDIOC_USBDEV_UVC standalone init path

Hardened against host disconnect:
- Removed nxmutex_lock from USB interrupt context paths
- Added 30s semaphore timeout in uvc_write with EP_CANCEL fallback
- Drain stale wrsem counts in VS_COMMIT before new stream
- Guard uvc_streaming_stop() against double EP_CANCEL race
- Handle EP_SUBMIT returning -ESHUTDOWN gracefully

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2026-03-29 12:35:22 -03:00
..
adb.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
cdcacm.c drivers/usbdev: not use wd timer when zero copy in cdcacm 2025-12-12 09:34:47 +08:00
cdcacm.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
cdcacm_desc.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
cdcecm.c driver/net: replace net_lock with netdev_lock 2026-01-06 16:08:30 +08:00
cdcecm.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
cdcncm.c drivers/usbdev/cdcncm.c: Fix issue with unplug/replug of USB causing link not to re-establish 2025-05-24 12:29:07 +08:00
CMakeLists.txt drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00
composite.c driver/usbdev: Use small lock to protect composite device 2025-12-13 16:45:06 +08:00
composite.h driver/usbdev: Use small lock to protect composite device 2025-12-13 16:45:06 +08:00
composite_desc.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
dfu.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
Kconfig drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00
Make.defs drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00
mtp.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
pl2303.c style: Fix "the the" typo across the codebase. 2026-03-23 11:07:49 +01:00
rndis.c rndis.c: move ifup in setconfig to the work queue 2026-02-27 15:39:38 +08:00
rndis_std.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbdev_desc.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbdev_fs.c driver/usbdev: Use small lock to protect usbdev fs 2025-12-13 16:45:06 +08:00
usbdev_fs.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbdev_req.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbdev_strings.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbdev_trace.c driver/usbdev: Fix usbtrace lock unpaired issue 2025-12-13 16:45:06 +08:00
usbdev_trprintf.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbmsc.c style: Fix "is is" typo across the codebase. 2026-03-24 09:39:26 +08:00
usbmsc.h drivers/usbdev: Use small lock to protect usbdev msc 2025-12-13 16:45:06 +08:00
usbmsc_desc.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
usbmsc_scsi.c drivers/usbdev: Use small lock to protect usbdev msc 2025-12-13 16:45:06 +08:00
uvc.c drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00