nuttx/Documentation/components/drivers
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
..
block drivers/eeprom: Retrieve the geometry 2025-11-13 08:57:52 -03:00
character docs: Add documentation for TIOCSERGSTRUCT ioctl in serial driver 2026-03-11 00:30:39 -04:00
special drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00
thermal Documentation: fix spelling 2025-05-15 11:33:41 +08:00
index.rst Documentation/virtio: add VirtIO framework documentation 2026-01-28 13:09:19 -03:00