--- /dev/null
+V4L2 common functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. kernel-doc:: include/media/v4l2-common.h
There can be only one notify function per control handler. Any attempt
to set another notify function will cause a WARN_ON.
-V4L2 control kAPI
------------------
+v4l2_ctrl functions and data structures
+---------------------------------------
.. kernel-doc:: include/media/v4l2-ctrls.h
v4l2-intro
v4l2-dev
- v4l2-controls
v4l2-device
v4l2-fh
+ v4l2-subdev
+ v4l2-event
+ v4l2-controls
+ v4l2-videobuf
+ v4l2-videobuf2
v4l2-clocks
v4l2-dv-timings
- v4l2-event
v4l2-flash-led-class
v4l2-mc
v4l2-mediabus
v4l2-mem2mem
v4l2-of
v4l2-rect
- v4l2-subdev
v4l2-tuner
+ v4l2-common
v4l2-tveeprom
- v4l2-videobuf2
- v4l2-videobuf
-Video device creation
-=====================
+Video device' s internal representation
+=======================================
The actual device nodes in the ``/dev`` directory are created using the
:c:type:`video_device` struct (``v4l2-dev.h``). This struct can either be
This can be done from the release callback.
-video_device helper functions
------------------------------
+helper functions
+----------------
There are a few useful helper functions:
should be used where possible instead of accessing the video_device::num and
video_device::minor fields.
-video_device kAPI
------------------
+video_device functions and data structures
+------------------------------------------
.. kernel-doc:: include/media/v4l2-dev.h
-V4L2 Device register logic
---------------------------
+V4L2 device instance
+--------------------
Each device instance is represented by a struct :c:type:`v4l2_device`.
Very simple devices can just allocate this struct, but most of the time you
or in the ``remove()`` callback (for e.g. PCI devices), otherwise the refcount
will never reach 0.
-V4L2 device kAPI
-^^^^^^^^^^^^^^^^
+v4l2_device functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-device.h
-V4L2 DV Timings kAPI
-^^^^^^^^^^^^^^^^^^^^
+V4L2 DV Timings functions
+^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-dv-timings.h
the subdev that sends the event to the video node(s) associated with the
subdev that need to be informed about such an event.
-V4L2 event kAPI
-^^^^^^^^^^^^^^^
+V4L2 event functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-event.h
+
- Same, but it calls v4l2_fh_is_singular with filp->private_data.
-V4L2 File Handler kAPI
-^^^^^^^^^^^^^^^^^^^^^^
+V4L2 fh functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
.. kernel-doc:: include/media/v4l2-fh.h
-V4L2 Flash and LED class kAPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+V4L2 flash functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-flash-led-class.h
-Overview of the V4L2 driver framework
-=====================================
-
-This text documents the various structures provided by the V4L2 framework and
-their relationships.
-
-
Introduction
------------
a PCI capture card, and demonstrates how to use the V4L2 driver
framework. It can be used as a template for real PCI video capture driver.
-Structure of a driver
----------------------
+Structure of a V4L driver
+-------------------------
All drivers have the following structure:
\-filehandle instances
-Structure of the framework
---------------------------
+Structure of the V4L2 framework
+-------------------------------
The framework closely resembles the driver structure: it has a v4l2_device
struct for the device instance data, a v4l2_subdev struct to refer to
-V4L2 Media Controller kAPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+V4L2 Media Controller functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-mc.h
-V4L2 Media Bus kAPI
-^^^^^^^^^^^^^^^^^^^
+V4L2 Media Bus functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-mediabus.h
-V4L2 Memory to Memory kAPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+V4L2 Memory to Memory functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
.. kernel-doc:: include/media/v4l2-mem2mem.h
-V4L2 rect kAPI
-^^^^^^^^^^^^^^
+V4L2 rect helper functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/v4l2-rect.h
V4L2 sub-device functions and data structures
---------------------------------------------
-V4L2 sub-device kAPI
-^^^^^^^^^^^^^^^^^^^^
-
.. kernel-doc:: include/media/v4l2-subdev.h
-V4L2 sub-device asynchronous kAPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
.. kernel-doc:: include/media/v4l2-async.h
-
-
-V4L2 common kAPI
-^^^^^^^^^^^^^^^^
-
-.. kernel-doc:: include/media/v4l2-common.h
-Tuner kAPI
-^^^^^^^^^^
+Tuner functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/tuner.h
-Hauppauge TV EEPROM kAPI
-^^^^^^^^^^^^^^^^^^^^^^^^
+Hauppauge TV EEPROM functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/tveeprom.h
.. _vb2_framework:
-V4L2 videobuf2 kAPI
-^^^^^^^^^^^^^^^^^^^
+V4L2 videobuf2 functions and data structures
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. kernel-doc:: include/media/videobuf2-core.h