Lines Matching +full:trace +full:- +full:buffer +full:- +full:extension

1 .. SPDX-License-Identifier: GPL-2.0
6 This file documents some driver-specific aspects of the UVC driver, such as
7 driver-specific ioctls and implementation notes.
10 linux-media@vger.kernel.org.
13 Extension Unit (XU) support
14 ---------------------------
19 The UVC specification allows for vendor-specific extensions through extension
20 units (XUs). The Linux UVC driver supports extension unit controls (XU controls)
23 - through mappings of XU controls to V4L2 controls
24 - through a driver-specific ioctl interface
30 The second mechanism requires uvcvideo-specific knowledge for the application to
40 The UVC driver provides an API for user space applications to define so-called
61 access XU controls is provided in the form of a driver-specific ioctl, namely
65 directly map to the low-level UVC control requests.
67 In order to make such a request the UVC unit ID of the control's extension unit
74 UVC_GET_LEN requests in order to be able to allocate a sufficiently large buffer
75 and set the buffer size to the correct value. Similarly, to find out whether
92 The API doesn't currently provide a fine-grained access control facility. The
102 recommended to enable the UVC_TRACE_CONTROL bit in the module parameter 'trace'.
109 UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control
118 applications can access vendor-defined UVC control through the V4L2
136 On success 0 is returned. On error -1 is returned and errno is set
152 .. code-block:: none
158 __u8 entity[16] UVC extension unit GUID
187 UVCIOC_CTRL_QUERY - Query a UVC XU control
193 This ioctl queries a UVC XU control identified by its extension unit ID
197 correspond to the low-level control requests described in the UVC
222 must point to a valid writable buffer big enough to hold the indicated
225 Data is copied directly from the device without any driver-side
226 processing. Applications are responsible for data buffer formatting,
227 including little-endian/big-endian conversion. This is particularly
229 returned as a little-endian 16-bit integer by the device.
233 On success 0 is returned. On error -1 is returned and errno is set
238 extension unit could not be found.
240 The specified buffer size is incorrect (too big or too small).
250 .. code-block:: none
254 __u8 unit Extension unit ID
261 Driver-specific V4L2 controls
262 -----------------------------
264 The uvcvideo driver implements the following UVC-specific controls:
282 <https://chromium.googlesource.com/chromiumos/platform2/+/refs/heads/release-R121-15699.B/camera/hal/usb/>`
286 This determines which, if any, on-board features should track to the
292 .. flat-table::
293 :header-rows: 0
294 :stub-columns: 0
296 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_EXPOSURE``
297 - Setting this bit causes automatic exposure to track the region of
299 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_IRIS``
300 - Setting this bit causes automatic iris to track the region of interest
302 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_WHITE_BALANCE``
303 - Setting this bit causes automatic white balance to track the region
305 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_FOCUS``
306 - Setting this bit causes automatic focus adjustment to track the region
308 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_FACE_DETECT``
309 - Setting this bit causes automatic face detection to track the region of
311 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_DETECT_AND_TRACK``
312 - Setting this bit enables automatic face detection and tracking. The
315 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_IMAGE_STABILIZATION``
316 - Setting this bit enables automatic image stabilization. The
319 * - ``V4L2_UVC_REGION_OF_INTEREST_AUTO_HIGHER_QUALITY``
320 - Setting this bit enables automatically capture the specified region