Plugin: Sunplus Camera
Introduction
This plugin updates Sunplus/HYGD UVC cameras that expose the normal runtime
firmware update path over video4linux extension-unit controls.
This first implementation is intentionally limited to the healthy runtime mode:
USB\VID_1BCF&PID_2CED
It does not support recovery-state devices that enumerate as 1bcf:0b09.
Firmware Format
The firmware payload is a raw vendor .bin blob.
This plugin supports the following protocol ID:
com.sunplus.camera
GUID Generation
These devices use the standard UDEV DeviceInstanceId values, e.g.
VIDEO4LINUX\VEN_1BCF&DEV_2CED
Update Behavior
The device is updated in runtime mode using UVC extension-unit controls on the
primary video4linux capture node for the detached camera. This is not
guaranteed to be /dev/video0; on systems with an integrated webcam it may be
another node such as /dev/video4.
The normal update flow is:
- enable ISP/download mode using selector
9 - stream the raw payload using selector
10 - compare the XOR checksum using selector
11 - finalize the transfer using selector
12 - verify the programmed contents using selector
14+ selector22 - trigger a vendor soft reset using ASIC register writes over selectors
2and3
External Interface Access
This plugin requires read/write access to the primary video4linux node for
the detached camera.
This plugin requires the UVCIOC_CTRL_QUERY ioctl interface.