~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/media/v4l2-intro.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/media/v4l2-intro.rst (Version linux-6.12-rc7) and /Documentation/driver-api/media/v4l2-intro.rst (Version linux-4.19.323)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 Introduction                                      
  4 ------------                                      
  5                                                   
  6 The V4L2 drivers tend to be very complex due t    
  7 hardware: most devices have multiple ICs, expo    
  8 /dev, and create also non-V4L2 devices such as    
  9 (IR) devices.                                     
 10                                                   
 11 Especially the fact that V4L2 drivers have to     
 12 do audio/video muxing/encoding/decoding makes     
 13 Usually these ICs are connected to the main br    
 14 more I2C buses, but other buses can also be us    
 15 called 'sub-devices'.                             
 16                                                   
 17 For a long time the framework was limited to t    
 18 creating V4L device nodes and video_buf for ha    
 19 (note that this document does not discuss the     
 20                                                   
 21 This meant that all drivers had to do the setu    
 22 connecting to sub-devices themselves. Some of     
 23 to do right and many drivers never did do it c    
 24                                                   
 25 There is also a lot of common code that could     
 26 the lack of a framework.                          
 27                                                   
 28 So this framework sets up the basic building b    
 29 need and this same framework should make it mu    
 30 common code into utility functions shared by a    
 31                                                   
 32 A good example to look at as a reference is th    
 33 source that is available in samples/v4l/. It i    
 34 a PCI capture card, and demonstrates how to us    
 35 framework. It can be used as a template for re    
 36                                                   
 37 Structure of a V4L driver                         
 38 -------------------------                         
 39                                                   
 40 All drivers have the following structure:         
 41                                                   
 42 1) A struct for each device instance containin    
 43                                                   
 44 2) A way of initializing and commanding sub-de    
 45                                                   
 46 3) Creating V4L2 device nodes (/dev/videoX, /d    
 47    and keeping track of device-node specific d    
 48                                                   
 49 4) Filehandle-specific structs containing per-    
 50                                                   
 51 5) video buffer handling.                         
 52                                                   
 53 This is a rough schematic of how it all relate    
 54                                                   
 55 .. code-block:: none                              
 56                                                   
 57     device instances                              
 58       |                                           
 59       +-sub-device instances                      
 60       |                                           
 61       \-V4L2 device nodes                         
 62           |                                       
 63           \-filehandle instances                  
 64                                                   
 65                                                   
 66 Structure of the V4L2 framework                   
 67 -------------------------------                   
 68                                                   
 69 The framework closely resembles the driver str    
 70 struct for the device instance data, a v4l2_su    
 71 sub-device instances, the video_device struct     
 72 and the v4l2_fh struct keeps track of filehand    
 73                                                   
 74 The V4L2 framework also optionally integrates     
 75 driver sets the struct v4l2_device mdev field,    
 76 will automatically appear in the media framewo    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php