1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
4 .. _VIDIOC_SUBDEV_QUERYCAP:
6 ****************************
7 ioctl VIDIOC_SUBDEV_QUERYCAP
8 ****************************
13 VIDIOC_SUBDEV_QUERYCAP - Query sub-device capabilities
18 .. c:macro:: VIDIOC_SUBDEV_QUERYCAP
20 ``int ioctl(int fd, VIDIOC_SUBDEV_QUERYCAP, struct v4l2_subdev_capability *argp)``
26 File descriptor returned by :c:func:`open()`.
29 Pointer to struct :c:type:`v4l2_subdev_capability`.
34 All V4L2 sub-devices support the ``VIDIOC_SUBDEV_QUERYCAP`` ioctl. It is used to
35 identify kernel devices compatible with this specification and to obtain
36 information about driver and hardware capabilities. The ioctl takes a pointer to
37 a struct :c:type:`v4l2_subdev_capability` which is filled by the driver. When
38 the driver is not compatible with this specification the ioctl returns
39 ``ENOTTY`` error code.
41 .. tabularcolumns:: |p{1.5cm}|p{2.5cm}|p{13cm}|
43 .. c:type:: v4l2_subdev_capability
45 .. flat-table:: struct v4l2_subdev_capability
52 - Version number of the driver.
54 The version reported is provided by the V4L2 subsystem following the
55 kernel numbering scheme. However, it may not always return the same
56 version as the kernel if, for example, a stable or
57 distribution-modified kernel uses the V4L2 stack from a newer kernel.
59 The version number is formatted using the ``KERNEL_VERSION()``
63 ``#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))``
65 ``__u32 version = KERNEL_VERSION(0, 8, 1);``
67 ``printf ("Version: %u.%u.%u\\n",``
69 ``(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);``
72 - Sub-device capabilities of the opened device, see
73 :ref:`subdevice-capabilities`.
76 - Reserved for future extensions. Set to 0 by the V4L2 core.
78 .. tabularcolumns:: |p{6cm}|p{2.2cm}|p{8.8cm}|
80 .. _subdevice-capabilities:
82 .. cssclass:: longtable
84 .. flat-table:: Sub-Device Capabilities Flags
89 * - V4L2_SUBDEV_CAP_RO_SUBDEV
91 - The sub-device device node is registered in read-only mode.
92 Access to the sub-device ioctls that modify the device state is
93 restricted. Refer to each individual subdevice ioctl documentation
94 for a description of which restrictions apply to a read-only sub-device.
99 On success 0 is returned, on error -1 and the ``errno`` variable is set
100 appropriately. The generic error codes are described at the
101 :ref:`Generic Error Codes <gen-errors>` chapter.
104 The device node is not a V4L2 sub-device.