]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: open.rst: better document device node naming
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 25 Aug 2017 14:51:53 +0000 (16:51 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 1 Sep 2020 12:13:30 +0000 (14:13 +0200)
Right now, only kAPI documentation describes the device naming.
However, such description is needed at the uAPI too. Add it,
and describe how to get an unique identifier for a given device.

Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Documentation/userspace-api/media/v4l/open.rst

index 8a12f4f25357f291691f366a548ef6498cfcd975..507482de5b723783c79c295f36b742092ff4d92c 100644 (file)
@@ -7,12 +7,14 @@ Opening and Closing Devices
 ***************************
 
 
-Device Naming
-=============
+.. _v4l2_device_naming:
+
+V4L2 Device Node Naming
+=======================
 
 V4L2 drivers are implemented as kernel modules, loaded manually by the
 system administrator or automatically when a device is first discovered.
-The driver modules plug into the "videodev" kernel module. It provides
+The driver modules plug into the ``videodev`` kernel module. It provides
 helper functions and a common application interface specified in this
 document.
 
@@ -23,6 +25,41 @@ option CONFIG_VIDEO_FIXED_MINOR_RANGES. In that case minor numbers
 are allocated in ranges depending on the device node type (video, radio,
 etc.).
 
+The device nodes supported by the Video4Linux subsystem are:
+
+======================== ====================================================
+Default device node name Usage
+======================== ====================================================
+``/dev/videoX``                 Video and metadata for capture/output devices
+``/dev/vbiX``           Vertical blank data (i.e. closed captions, teletext)
+``/dev/radioX``                 Radio tuners and modulators
+``/dev/swradioX``       Software Defined Radio tuners and modulators
+``/dev/v4l-touchX``     Touch sensors
+``/dev/v4l-subdevX``    Video sub-devices (used by sensors and other
+                        components of the hardware peripheral)\ [#]_
+======================== ====================================================
+
+Where ``X`` is a non-negative integer.
+
+.. note::
+
+   1. The actual device node name is system-dependent, as udev rules may apply.
+   2. There is no guarantee that ``X`` will remain the same for the same
+      device, as the number depends on the device driver's probe order.
+      If you need an unique name, udev default rules produce
+      ``/dev/v4l/by-id/`` and ``/dev/v4l/by-path/`` directories containing
+      links that can be used uniquely to identify a V4L2 device node::
+
+       $ tree /dev/v4l
+       /dev/v4l
+       ├── by-id
+       │   └── usb-OmniVision._USB_Camera-B4.04.27.1-video-index0 -> ../../video0
+       └── by-path
+           └── pci-0000:00:14.0-usb-0:2:1.0-video-index0 -> ../../video0
+
+.. [#] **V4L2 sub-device nodes** (e. g. ``/dev/v4l-subdevX``) use a different
+       set of system calls, as covered at :ref:`subdev`.
+
 Many drivers support "video_nr", "radio_nr" or "vbi_nr" module
 options to select specific video/radio/vbi node numbers. This allows the
 user to request that the device node is named e.g. /dev/video5 instead