All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir
@ 2016-07-18  1:55 Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 02/36] [media] doc-rst: move cardlists to media/v4l-drivers Mauro Carvalho Chehab
                   ` (34 more replies)
  0 siblings, 35 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List; +Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab

This doesn't belong at documentation. Move it to scripts.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 {Documentation/video4linux => scripts}/extract_xc3028.pl | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {Documentation/video4linux => scripts}/extract_xc3028.pl (100%)

diff --git a/Documentation/video4linux/extract_xc3028.pl b/scripts/extract_xc3028.pl
similarity index 100%
rename from Documentation/video4linux/extract_xc3028.pl
rename to scripts/extract_xc3028.pl
-- 
2.7.4


^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH 02/36] [media] doc-rst: move cardlists to media/v4l-drivers
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 03/36] [media] doc-rst: Remove deprecated API.html document Mauro Carvalho Chehab
                   ` (33 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Andy Walls, linux-doc

Convert the cardlists to ReST format and move them to
Documentation/media/v4l-drivers/

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 .../media/v4l-drivers/au0828-cardlist.rst          |  11 ++
 Documentation/media/v4l-drivers/bttv-cardlist.rst  | 172 ++++++++++++++++++
 Documentation/media/v4l-drivers/cardlist.rst       |  17 ++
 .../media/v4l-drivers/cx23885-cardlist.rst         |  61 +++++++
 Documentation/media/v4l-drivers/cx88-cardlist.rst  |  96 ++++++++++
 .../media/v4l-drivers/em28xx-cardlist.rst          | 105 +++++++++++
 Documentation/media/v4l-drivers/index.rst          |  21 +++
 Documentation/media/v4l-drivers/ivtv-cardlist.rst  |  29 +++
 .../media/v4l-drivers/saa7134-cardlist.rst         | 202 +++++++++++++++++++++
 .../media/v4l-drivers/saa7164-cardlist.rst         |  19 ++
 .../media/v4l-drivers/tm6000-cardlist.rst          |  21 +++
 Documentation/media/v4l-drivers/tuner-cardlist.rst |  96 ++++++++++
 .../media/v4l-drivers/usbvision-cardlist.rst       |  72 ++++++++
 Documentation/video4linux/CARDLIST.au0828          |   6 -
 Documentation/video4linux/CARDLIST.bttv            | 167 -----------------
 Documentation/video4linux/CARDLIST.cx23885         |  56 ------
 Documentation/video4linux/CARDLIST.cx88            |  91 ----------
 Documentation/video4linux/CARDLIST.em28xx          | 100 ----------
 Documentation/video4linux/CARDLIST.ivtv            |  24 ---
 Documentation/video4linux/CARDLIST.saa7134         | 197 --------------------
 Documentation/video4linux/CARDLIST.saa7164         |  14 --
 Documentation/video4linux/CARDLIST.tm6000          |  16 --
 Documentation/video4linux/CARDLIST.tuner           |  91 ----------
 Documentation/video4linux/CARDLIST.usbvision       |  67 -------
 24 files changed, 922 insertions(+), 829 deletions(-)
 create mode 100644 Documentation/media/v4l-drivers/au0828-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/bttv-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/cx23885-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/cx88-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/em28xx-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/index.rst
 create mode 100644 Documentation/media/v4l-drivers/ivtv-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/saa7134-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/saa7164-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/tm6000-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/tuner-cardlist.rst
 create mode 100644 Documentation/media/v4l-drivers/usbvision-cardlist.rst
 delete mode 100644 Documentation/video4linux/CARDLIST.au0828
 delete mode 100644 Documentation/video4linux/CARDLIST.bttv
 delete mode 100644 Documentation/video4linux/CARDLIST.cx23885
 delete mode 100644 Documentation/video4linux/CARDLIST.cx88
 delete mode 100644 Documentation/video4linux/CARDLIST.em28xx
 delete mode 100644 Documentation/video4linux/CARDLIST.ivtv
 delete mode 100644 Documentation/video4linux/CARDLIST.saa7134
 delete mode 100644 Documentation/video4linux/CARDLIST.saa7164
 delete mode 100644 Documentation/video4linux/CARDLIST.tm6000
 delete mode 100644 Documentation/video4linux/CARDLIST.tuner
 delete mode 100644 Documentation/video4linux/CARDLIST.usbvision

diff --git a/Documentation/media/v4l-drivers/au0828-cardlist.rst b/Documentation/media/v4l-drivers/au0828-cardlist.rst
new file mode 100644
index 000000000000..aed51b4ffb46
--- /dev/null
+++ b/Documentation/media/v4l-drivers/au0828-cardlist.rst
@@ -0,0 +1,11 @@
+AU0828 cards list
+=================
+
+.. code-block:: none
+
+	  0 -> Unknown board                            (au0828)
+	  1 -> Hauppauge HVR950Q                        (au0828)        [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008,2040:7260,2040:7213,2040:7270]
+	  2 -> Hauppauge HVR850                         (au0828)        [2040:7240]
+	  3 -> DViCO FusionHDTV USB                     (au0828)        [0fe9:d620]
+	  4 -> Hauppauge HVR950Q rev xxF8               (au0828)        [2040:7201,2040:7211,2040:7281]
+	  5 -> Hauppauge Woodbury                       (au0828)        [05e1:0480,2040:8200]
diff --git a/Documentation/media/v4l-drivers/bttv-cardlist.rst b/Documentation/media/v4l-drivers/bttv-cardlist.rst
new file mode 100644
index 000000000000..97a966e7f9c4
--- /dev/null
+++ b/Documentation/media/v4l-drivers/bttv-cardlist.rst
@@ -0,0 +1,172 @@
+BTTV cards list
+===============
+
+.. code-block:: none
+
+	  0 ->  *** UNKNOWN/GENERIC ***
+	  1 -> MIRO PCTV
+	  2 -> Hauppauge (bt848)
+	  3 -> STB, Gateway P/N 6000699 (bt848)
+	  4 -> Intel Create and Share PCI/ Smart Video Recorder III
+	  5 -> Diamond DTV2000
+	  6 -> AVerMedia TVPhone
+	  7 -> MATRIX-Vision MV-Delta
+	  8 -> Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26
+	  9 -> IMS/IXmicro TurboTV
+	 10 -> Hauppauge (bt878)                                   [0070:13eb,0070:3900,2636:10b4]
+	 11 -> MIRO PCTV pro
+	 12 -> ADS Technologies Channel Surfer TV (bt848)
+	 13 -> AVerMedia TVCapture 98                              [1461:0002,1461:0004,1461:0300]
+	 14 -> Aimslab Video Highway Xtreme (VHX)
+	 15 -> Zoltrix TV-Max                                      [a1a0:a0fc]
+	 16 -> Prolink Pixelview PlayTV (bt878)
+	 17 -> Leadtek WinView 601
+	 18 -> AVEC Intercapture
+	 19 -> Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)
+	 20 -> CEI Raffles Card
+	 21 -> Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50
+	 22 -> Askey CPH050/ Phoebe Tv Master + FM                 [14ff:3002]
+	 23 -> Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878 [14c7:0101]
+	 24 -> Askey CPH05X/06X (bt878) [many vendors]             [144f:3002,144f:3005,144f:5000,14ff:3000]
+	 25 -> Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar
+	 26 -> Hauppauge WinCam newer (bt878)
+	 27 -> Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50
+	 28 -> Terratec TerraTV+ Version 1.1 (bt878)               [153b:1127,1852:1852]
+	 29 -> Imagenation PXC200                                  [1295:200a]
+	 30 -> Lifeview FlyVideo 98 LR50                           [1f7f:1850]
+	 31 -> Formac iProTV, Formac ProTV I (bt848)
+	 32 -> Intel Create and Share PCI/ Smart Video Recorder III
+	 33 -> Terratec TerraTValue Version Bt878                  [153b:1117,153b:1118,153b:1119,153b:111a,153b:1134,153b:5018]
+	 34 -> Leadtek WinFast 2000/ WinFast 2000 XP               [107d:6606,107d:6609,6606:217d,f6ff:fff6]
+	 35 -> Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II [1851:1850,1851:a050]
+	 36 -> Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner [1852:1852]
+	 37 -> Prolink PixelView PlayTV pro
+	 38 -> Askey CPH06X TView99                                [144f:3000,144f:a005,a04f:a0fc]
+	 39 -> Pinnacle PCTV Studio/Rave                           [11bd:0012,bd11:1200,bd11:ff00,11bd:ff12]
+	 40 -> STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100 [10b4:2636,10b4:2645,121a:3060]
+	 41 -> AVerMedia TVPhone 98                                [1461:0001,1461:0003]
+	 42 -> ProVideo PV951                                      [aa0c:146c]
+	 43 -> Little OnAir TV
+	 44 -> Sigma TVII-FM
+	 45 -> MATRIX-Vision MV-Delta 2
+	 46 -> Zoltrix Genie TV/FM                                 [15b0:4000,15b0:400a,15b0:400d,15b0:4010,15b0:4016]
+	 47 -> Terratec TV/Radio+                                  [153b:1123]
+	 48 -> Askey CPH03x/ Dynalink Magic TView
+	 49 -> IODATA GV-BCTV3/PCI                                 [10fc:4020]
+	 50 -> Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP
+	 51 -> Eagle Wireless Capricorn2 (bt878A)
+	 52 -> Pinnacle PCTV Studio Pro
+	 53 -> Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS
+	 54 -> Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]
+	 55 -> Askey CPH031/ BESTBUY Easy TV
+	 56 -> Lifeview FlyVideo 98FM LR50                         [a051:41a0]
+	 57 -> GrandTec 'Grand Video Capture' (Bt848)              [4344:4142]
+	 58 -> Askey CPH060/ Phoebe TV Master Only (No FM)
+	 59 -> Askey CPH03x TV Capturer
+	 60 -> Modular Technology MM100PCTV
+	 61 -> AG Electronics GMV1                                 [15cb:0101]
+	 62 -> Askey CPH061/ BESTBUY Easy TV (bt878)
+	 63 -> ATI TV-Wonder                                       [1002:0001]
+	 64 -> ATI TV-Wonder VE                                    [1002:0003]
+	 65 -> Lifeview FlyVideo 2000S LR90
+	 66 -> Terratec TValueRadio                                [153b:1135,153b:ff3b]
+	 67 -> IODATA GV-BCTV4/PCI                                 [10fc:4050]
+	 68 -> 3Dfx VoodooTV FM (Euro)                             [10b4:2637]
+	 69 -> Active Imaging AIMMS
+	 70 -> Prolink Pixelview PV-BT878P+ (Rev.4C,8E)
+	 71 -> Lifeview FlyVideo 98EZ (capture only) LR51          [1851:1851]
+	 72 -> Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) [1554:4011]
+	 73 -> Sensoray 311/611                                    [6000:0311,6000:0611]
+	 74 -> RemoteVision MX (RV605)
+	 75 -> Powercolor MTV878/ MTV878R/ MTV878F
+	 76 -> Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) [0e11:0079]
+	 77 -> GrandTec Multi Capture Card (Bt878)
+	 78 -> Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF   [0a01:17de]
+	 79 -> DSP Design TCVIDEO
+	 80 -> Hauppauge WinTV PVR                                 [0070:4500]
+	 81 -> IODATA GV-BCTV5/PCI                                 [10fc:4070,10fc:d018]
+	 82 -> Osprey 100/150 (878)                                [0070:ff00]
+	 83 -> Osprey 100/150 (848)
+	 84 -> Osprey 101 (848)
+	 85 -> Osprey 101/151
+	 86 -> Osprey 101/151 w/ svid
+	 87 -> Osprey 200/201/250/251
+	 88 -> Osprey 200/250                                      [0070:ff01]
+	 89 -> Osprey 210/220/230
+	 90 -> Osprey 500                                          [0070:ff02]
+	 91 -> Osprey 540                                          [0070:ff04]
+	 92 -> Osprey 2000                                         [0070:ff03]
+	 93 -> IDS Eagle
+	 94 -> Pinnacle PCTV Sat                                   [11bd:001c]
+	 95 -> Formac ProTV II (bt878)
+	 96 -> MachTV
+	 97 -> Euresys Picolo
+	 98 -> ProVideo PV150                                      [aa00:1460,aa01:1461,aa02:1462,aa03:1463,aa04:1464,aa05:1465,aa06:1466,aa07:1467]
+	 99 -> AD-TVK503
+	100 -> Hercules Smart TV Stereo
+	101 -> Pace TV & Radio Card
+	102 -> IVC-200                                             [0000:a155,0001:a155,0002:a155,0003:a155,0100:a155,0101:a155,0102:a155,0103:a155,0800:a155,0801:a155,0802:a155,0803:a155]
+	103 -> Grand X-Guard / Trust 814PCI                        [0304:0102]
+	104 -> Nebula Electronics DigiTV                           [0071:0101]
+	105 -> ProVideo PV143                                      [aa00:1430,aa00:1431,aa00:1432,aa00:1433,aa03:1433]
+	106 -> PHYTEC VD-009-X1 VD-011 MiniDIN (bt878)
+	107 -> PHYTEC VD-009-X1 VD-011 Combi (bt878)
+	108 -> PHYTEC VD-009 MiniDIN (bt878)
+	109 -> PHYTEC VD-009 Combi (bt878)
+	110 -> IVC-100                                             [ff00:a132]
+	111 -> IVC-120G                                            [ff00:a182,ff01:a182,ff02:a182,ff03:a182,ff04:a182,ff05:a182,ff06:a182,ff07:a182,ff08:a182,ff09:a182,ff0a:a182,ff0b:a182,ff0c:a182,ff0d:a182,ff0e:a182,ff0f:a182]
+	112 -> pcHDTV HD-2000 TV                                   [7063:2000]
+	113 -> Twinhan DST + clones                                [11bd:0026,1822:0001,270f:fc00,1822:0026]
+	114 -> Winfast VC100                                       [107d:6607]
+	115 -> Teppro TEV-560/InterVision IV-560
+	116 -> SIMUS GVC1100                                       [aa6a:82b2]
+	117 -> NGS NGSTV+
+	118 -> LMLBT4
+	119 -> Tekram M205 PRO
+	120 -> Conceptronic CONTVFMi
+	121 -> Euresys Picolo Tetra                                [1805:0105,1805:0106,1805:0107,1805:0108]
+	122 -> Spirit TV Tuner
+	123 -> AVerMedia AVerTV DVB-T 771                          [1461:0771]
+	124 -> AverMedia AverTV DVB-T 761                          [1461:0761]
+	125 -> MATRIX Vision Sigma-SQ
+	126 -> MATRIX Vision Sigma-SLC
+	127 -> APAC Viewcomp 878(AMAX)
+	128 -> DViCO FusionHDTV DVB-T Lite                         [18ac:db10,18ac:db11]
+	129 -> V-Gear MyVCD
+	130 -> Super TV Tuner
+	131 -> Tibet Systems 'Progress DVR' CS16
+	132 -> Kodicom 4400R (master)
+	133 -> Kodicom 4400R (slave)
+	134 -> Adlink RTV24
+	135 -> DViCO FusionHDTV 5 Lite                             [18ac:d500]
+	136 -> Acorp Y878F                                         [9511:1540]
+	137 -> Conceptronic CTVFMi v2                              [036e:109e]
+	138 -> Prolink Pixelview PV-BT878P+ (Rev.2E)
+	139 -> Prolink PixelView PlayTV MPEG2 PV-M4900
+	140 -> Osprey 440                                          [0070:ff07]
+	141 -> Asound Skyeye PCTV
+	142 -> Sabrent TV-FM (bttv version)
+	143 -> Hauppauge ImpactVCB (bt878)                         [0070:13eb]
+	144 -> MagicTV
+	145 -> SSAI Security Video Interface                       [4149:5353]
+	146 -> SSAI Ultrasound Video Interface                     [414a:5353]
+	147 -> VoodooTV 200 (USA)                                  [121a:3000]
+	148 -> DViCO FusionHDTV 2                                  [dbc0:d200]
+	149 -> Typhoon TV-Tuner PCI (50684)
+	150 -> Geovision GV-600                                    [008a:763c]
+	151 -> Kozumi KTV-01C
+	152 -> Encore ENL TV-FM-2                                  [1000:1801]
+	153 -> PHYTEC VD-012 (bt878)
+	154 -> PHYTEC VD-012-X1 (bt878)
+	155 -> PHYTEC VD-012-X2 (bt878)
+	156 -> IVCE-8784                                           [0000:f050,0001:f050,0002:f050,0003:f050]
+	157 -> Geovision GV-800(S) (master)                        [800a:763d]
+	158 -> Geovision GV-800(S) (slave)                         [800b:763d,800c:763d,800d:763d]
+	159 -> ProVideo PV183                                      [1830:1540,1831:1540,1832:1540,1833:1540,1834:1540,1835:1540,1836:1540,1837:1540]
+	160 -> Tongwei Video Technology TD-3116                    [f200:3116]
+	161 -> Aposonic W-DVR                                      [0279:0228]
+	162 -> Adlink MPG24
+	163 -> Bt848 Capture 14MHz
+	164 -> CyberVision CV06 (SV)
+	165 -> Kworld V-Stream Xpert TV PVR878
+	166 -> PCI-8604PW
diff --git a/Documentation/media/v4l-drivers/cardlist.rst b/Documentation/media/v4l-drivers/cardlist.rst
new file mode 100644
index 000000000000..4632a6857f0e
--- /dev/null
+++ b/Documentation/media/v4l-drivers/cardlist.rst
@@ -0,0 +1,17 @@
+Cards List
+==========
+
+.. toctree::
+	:maxdepth: 1
+
+	au0828-cardlist
+	bttv-cardlist
+	cx23885-cardlist
+	cx88-cardlist
+	em28xx-cardlist
+	ivtv-cardlist
+	saa7134-cardlist
+	saa7164-cardlist
+	tm6000-cardlist
+	tuner-cardlist
+	usbvision-cardlist
diff --git a/Documentation/media/v4l-drivers/cx23885-cardlist.rst b/Documentation/media/v4l-drivers/cx23885-cardlist.rst
new file mode 100644
index 000000000000..fe1583ee8541
--- /dev/null
+++ b/Documentation/media/v4l-drivers/cx23885-cardlist.rst
@@ -0,0 +1,61 @@
+cx23885 cards list
+==================
+
+.. code-block:: none
+
+	  0 -> UNKNOWN/GENERIC                                     [0070:3400]
+	  1 -> Hauppauge WinTV-HVR1800lp                           [0070:7600]
+	  2 -> Hauppauge WinTV-HVR1800                             [0070:7800,0070:7801,0070:7809]
+	  3 -> Hauppauge WinTV-HVR1250                             [0070:7911]
+	  4 -> DViCO FusionHDTV5 Express                           [18ac:d500]
+	  5 -> Hauppauge WinTV-HVR1500Q                            [0070:7790,0070:7797]
+	  6 -> Hauppauge WinTV-HVR1500                             [0070:7710,0070:7717]
+	  7 -> Hauppauge WinTV-HVR1200                             [0070:71d1,0070:71d3]
+	  8 -> Hauppauge WinTV-HVR1700                             [0070:8101]
+	  9 -> Hauppauge WinTV-HVR1400                             [0070:8010]
+	 10 -> DViCO FusionHDTV7 Dual Express                      [18ac:d618]
+	 11 -> DViCO FusionHDTV DVB-T Dual Express                 [18ac:db78]
+	 12 -> Leadtek Winfast PxDVR3200 H                         [107d:6681]
+	 13 -> Compro VideoMate E650F                              [185b:e800]
+	 14 -> TurboSight TBS 6920                                 [6920:8888]
+	 15 -> TeVii S470                                          [d470:9022]
+	 16 -> DVBWorld DVB-S2 2005                                [0001:2005]
+	 17 -> NetUP Dual DVB-S2 CI                                [1b55:2a2c]
+	 18 -> Hauppauge WinTV-HVR1270                             [0070:2211]
+	 19 -> Hauppauge WinTV-HVR1275                             [0070:2215,0070:221d,0070:22f2]
+	 20 -> Hauppauge WinTV-HVR1255                             [0070:2251,0070:22f1]
+	 21 -> Hauppauge WinTV-HVR1210                             [0070:2291,0070:2295,0070:2299,0070:229d,0070:22f0,0070:22f3,0070:22f4,0070:22f5]
+	 22 -> Mygica X8506 DMB-TH                                 [14f1:8651]
+	 23 -> Magic-Pro ProHDTV Extreme 2                         [14f1:8657]
+	 24 -> Hauppauge WinTV-HVR1850                             [0070:8541]
+	 25 -> Compro VideoMate E800                               [1858:e800]
+	 26 -> Hauppauge WinTV-HVR1290                             [0070:8551]
+	 27 -> Mygica X8558 PRO DMB-TH                             [14f1:8578]
+	 28 -> LEADTEK WinFast PxTV1200                            [107d:6f22]
+	 29 -> GoTView X5 3D Hybrid                                [5654:2390]
+	 30 -> NetUP Dual DVB-T/C-CI RF                            [1b55:e2e4]
+	 31 -> Leadtek Winfast PxDVR3200 H XC4000                  [107d:6f39]
+	 32 -> MPX-885
+	 33 -> Mygica X8502/X8507 ISDB-T                           [14f1:8502]
+	 34 -> TerraTec Cinergy T PCIe Dual                        [153b:117e]
+	 35 -> TeVii S471                                          [d471:9022]
+	 36 -> Hauppauge WinTV-HVR1255                             [0070:2259]
+	 37 -> Prof Revolution DVB-S2 8000                         [8000:3034]
+	 38 -> Hauppauge WinTV-HVR4400/HVR5500                     [0070:c108,0070:c138,0070:c1f8]
+	 39 -> AVerTV Hybrid Express Slim HC81R                    [1461:d939]
+	 40 -> TurboSight TBS 6981                                 [6981:8888]
+	 41 -> TurboSight TBS 6980                                 [6980:8888]
+	 42 -> Leadtek Winfast PxPVR2200                           [107d:6f21]
+	 43 -> Hauppauge ImpactVCB-e                               [0070:7133]
+	 44 -> DViCO FusionHDTV DVB-T Dual Express2                [18ac:db98]
+	 45 -> DVBSky T9580                                        [4254:9580]
+	 46 -> DVBSky T980C                                        [4254:980c]
+	 47 -> DVBSky S950C                                        [4254:950c]
+	 48 -> Technotrend TT-budget CT2-4500 CI                   [13c2:3013]
+	 49 -> DVBSky S950                                         [4254:0950]
+	 50 -> DVBSky S952                                         [4254:0952]
+	 51 -> DVBSky T982                                         [4254:0982]
+	 52 -> Hauppauge WinTV-HVR5525                             [0070:f038]
+	 53 -> Hauppauge WinTV Starburst                           [0070:c12a]
+	 54 -> ViewCast 260e                                       [1576:0260]
+	 55 -> ViewCast 460e                                       [1576:0460]
diff --git a/Documentation/media/v4l-drivers/cx88-cardlist.rst b/Documentation/media/v4l-drivers/cx88-cardlist.rst
new file mode 100644
index 000000000000..01128341e1ea
--- /dev/null
+++ b/Documentation/media/v4l-drivers/cx88-cardlist.rst
@@ -0,0 +1,96 @@
+CX88 cards list
+===============
+
+.. code-block:: none
+
+	  0 -> UNKNOWN/GENERIC
+	  1 -> Hauppauge WinTV 34xxx models                        [0070:3400,0070:3401]
+	  2 -> GDI Black Gold                                      [14c7:0106,14c7:0107]
+	  3 -> PixelView                                           [1554:4811]
+	  4 -> ATI TV Wonder Pro                                   [1002:00f8,1002:00f9]
+	  5 -> Leadtek Winfast 2000XP Expert                       [107d:6611,107d:6613]
+	  6 -> AverTV Studio 303 (M126)                            [1461:000b]
+	  7 -> MSI TV-@nywhere Master                              [1462:8606]
+	  8 -> Leadtek Winfast DV2000                              [107d:6620,107d:6621]
+	  9 -> Leadtek PVR 2000                                    [107d:663b,107d:663c,107d:6632,107d:6630,107d:6638,107d:6631,107d:6637,107d:663d]
+	 10 -> IODATA GV-VCP3/PCI                                  [10fc:d003]
+	 11 -> Prolink PlayTV PVR
+	 12 -> ASUS PVR-416                                        [1043:4823,1461:c111]
+	 13 -> MSI TV-@nywhere
+	 14 -> KWorld/VStream XPert DVB-T                          [17de:08a6]
+	 15 -> DViCO FusionHDTV DVB-T1                             [18ac:db00]
+	 16 -> KWorld LTV883RF
+	 17 -> DViCO FusionHDTV 3 Gold-Q                           [18ac:d810,18ac:d800]
+	 18 -> Hauppauge Nova-T DVB-T                              [0070:9002,0070:9001,0070:9000]
+	 19 -> Conexant DVB-T reference design                     [14f1:0187]
+	 20 -> Provideo PV259                                      [1540:2580]
+	 21 -> DViCO FusionHDTV DVB-T Plus                         [18ac:db10,18ac:db11]
+	 22 -> pcHDTV HD3000 HDTV                                  [7063:3000]
+	 23 -> digitalnow DNTV Live! DVB-T                         [17de:a8a6]
+	 24 -> Hauppauge WinTV 28xxx (Roslyn) models               [0070:2801]
+	 25 -> Digital-Logic MICROSPACE Entertainment Center (MEC) [14f1:0342]
+	 26 -> IODATA GV/BCTV7E                                    [10fc:d035]
+	 27 -> PixelView PlayTV Ultra Pro (Stereo)
+	 28 -> DViCO FusionHDTV 3 Gold-T                           [18ac:d820]
+	 29 -> ADS Tech Instant TV DVB-T PCI                       [1421:0334]
+	 30 -> TerraTec Cinergy 1400 DVB-T                         [153b:1166]
+	 31 -> DViCO FusionHDTV 5 Gold                             [18ac:d500]
+	 32 -> AverMedia UltraTV Media Center PCI 550              [1461:8011]
+	 33 -> Kworld V-Stream Xpert DVD
+	 34 -> ATI HDTV Wonder                                     [1002:a101]
+	 35 -> WinFast DTV1000-T                                   [107d:665f]
+	 36 -> AVerTV 303 (M126)                                   [1461:000a]
+	 37 -> Hauppauge Nova-S-Plus DVB-S                         [0070:9201,0070:9202]
+	 38 -> Hauppauge Nova-SE2 DVB-S                            [0070:9200]
+	 39 -> KWorld DVB-S 100                                    [17de:08b2,1421:0341]
+	 40 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid                [0070:9400,0070:9402]
+	 41 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile)  [0070:9800,0070:9802]
+	 42 -> digitalnow DNTV Live! DVB-T Pro                     [1822:0025,1822:0019]
+	 43 -> KWorld/VStream XPert DVB-T with cx22702             [17de:08a1,12ab:2300]
+	 44 -> DViCO FusionHDTV DVB-T Dual Digital                 [18ac:db50,18ac:db54]
+	 45 -> KWorld HardwareMpegTV XPert                         [17de:0840,1421:0305]
+	 46 -> DViCO FusionHDTV DVB-T Hybrid                       [18ac:db40,18ac:db44]
+	 47 -> pcHDTV HD5500 HDTV                                  [7063:5500]
+	 48 -> Kworld MCE 200 Deluxe                               [17de:0841]
+	 49 -> PixelView PlayTV P7000                              [1554:4813]
+	 50 -> NPG Tech Real TV FM Top 10                          [14f1:0842]
+	 51 -> WinFast DTV2000 H                                   [107d:665e]
+	 52 -> Geniatech DVB-S                                     [14f1:0084]
+	 53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T  [0070:1404,0070:1400,0070:1401,0070:1402]
+	 54 -> Norwood Micro TV Tuner
+	 55 -> Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann OEM  [c180:c980]
+	 56 -> Hauppauge WinTV-HVR1300 DVB-T/Hybrid MPEG Encoder   [0070:9600,0070:9601,0070:9602]
+	 57 -> ADS Tech Instant Video PCI                          [1421:0390]
+	 58 -> Pinnacle PCTV HD 800i                               [11bd:0051]
+	 59 -> DViCO FusionHDTV 5 PCI nano                         [18ac:d530]
+	 60 -> Pinnacle Hybrid PCTV                                [12ab:1788]
+	 61 -> Leadtek TV2000 XP Global                            [107d:6f18,107d:6618,107d:6619]
+	 62 -> PowerColor RA330                                    [14f1:ea3d]
+	 63 -> Geniatech X8000-MT DVBT                             [14f1:8852]
+	 64 -> DViCO FusionHDTV DVB-T PRO                          [18ac:db30]
+	 65 -> DViCO FusionHDTV 7 Gold                             [18ac:d610]
+	 66 -> Prolink Pixelview MPEG 8000GT                       [1554:4935]
+	 67 -> Kworld PlusTV HD PCI 120 (ATSC 120)                 [17de:08c1]
+	 68 -> Hauppauge WinTV-HVR4000 DVB-S/S2/T/Hybrid           [0070:6900,0070:6904,0070:6902]
+	 69 -> Hauppauge WinTV-HVR4000(Lite) DVB-S/S2              [0070:6905,0070:6906]
+	 70 -> TeVii S460 DVB-S/S2                                 [d460:9022]
+	 71 -> Omicom SS4 DVB-S/S2 PCI                             [A044:2011]
+	 72 -> TBS 8920 DVB-S/S2                                   [8920:8888]
+	 73 -> TeVii S420 DVB-S                                    [d420:9022]
+	 74 -> Prolink Pixelview Global Extreme                    [1554:4976]
+	 75 -> PROF 7300 DVB-S/S2                                  [B033:3033]
+	 76 -> SATTRADE ST4200 DVB-S/S2                            [b200:4200]
+	 77 -> TBS 8910 DVB-S                                      [8910:8888]
+	 78 -> Prof 6200 DVB-S                                     [b022:3022]
+	 79 -> Terratec Cinergy HT PCI MKII                        [153b:1177]
+	 80 -> Hauppauge WinTV-IR Only                             [0070:9290]
+	 81 -> Leadtek WinFast DTV1800 Hybrid                      [107d:6654]
+	 82 -> WinFast DTV2000 H rev. J                            [107d:6f2b]
+	 83 -> Prof 7301 DVB-S/S2                                  [b034:3034]
+	 84 -> Samsung SMT 7020 DVB-S                              [18ac:dc00,18ac:dccd]
+	 85 -> Twinhan VP-1027 DVB-S                               [1822:0023]
+	 86 -> TeVii S464 DVB-S/S2                                 [d464:9022]
+	 87 -> Leadtek WinFast DTV2000 H PLUS                      [107d:6f42]
+	 88 -> Leadtek WinFast DTV1800 H (XC4000)                  [107d:6f38]
+	 89 -> Leadtek TV2000 XP Global (SC4100)                   [107d:6f36]
+	 90 -> Leadtek TV2000 XP Global (XC4100)                   [107d:6f43]
diff --git a/Documentation/media/v4l-drivers/em28xx-cardlist.rst b/Documentation/media/v4l-drivers/em28xx-cardlist.rst
new file mode 100644
index 000000000000..e72f2e5c0898
--- /dev/null
+++ b/Documentation/media/v4l-drivers/em28xx-cardlist.rst
@@ -0,0 +1,105 @@
+EM28xx cards list
+=================
+
+.. code-block:: none
+
+	  0 -> Unknown EM2800 video grabber             (em2800)        [eb1a:2800]
+	  1 -> Unknown EM2750/28xx video grabber        (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2862,eb1a:2863,eb1a:2870,eb1a:2881,eb1a:2883,eb1a:2868,eb1a:2875]
+	  2 -> Terratec Cinergy 250 USB                 (em2820/em2840) [0ccd:0036]
+	  3 -> Pinnacle PCTV USB 2                      (em2820/em2840) [2304:0208]
+	  4 -> Hauppauge WinTV USB 2                    (em2820/em2840) [2040:4200,2040:4201]
+	  5 -> MSI VOX USB 2.0                          (em2820/em2840)
+	  6 -> Terratec Cinergy 200 USB                 (em2800)
+	  7 -> Leadtek Winfast USB II                   (em2800)        [0413:6023]
+	  8 -> Kworld USB2800                           (em2800)
+	  9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker  (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a,093b:a003]
+	 10 -> Hauppauge WinTV HVR 900                  (em2880)        [2040:6500]
+	 11 -> Terratec Hybrid XS                       (em2880)
+	 12 -> Kworld PVR TV 2800 RF                    (em2820/em2840)
+	 13 -> Terratec Prodigy XS                      (em2880)
+	 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
+	 15 -> V-Gear PocketTV                          (em2800)
+	 16 -> Hauppauge WinTV HVR 950                  (em2883)        [2040:6513,2040:6517,2040:651b]
+	 17 -> Pinnacle PCTV HD Pro Stick               (em2880)        [2304:0227]
+	 18 -> Hauppauge WinTV HVR 900 (R2)             (em2880)        [2040:6502]
+	 19 -> EM2860/SAA711X Reference Design          (em2860)
+	 20 -> AMD ATI TV Wonder HD 600                 (em2880)        [0438:b002]
+	 21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800)        [eb1a:2801]
+	 22 -> EM2710/EM2750/EM2751 webcam grabber      (em2750)        [eb1a:2750,eb1a:2751]
+	 23 -> Huaqi DLCW-130                           (em2750)
+	 24 -> D-Link DUB-T210 TV Tuner                 (em2820/em2840) [2001:f112]
+	 25 -> Gadmei UTV310                            (em2820/em2840)
+	 26 -> Hercules Smart TV USB 2.0                (em2820/em2840)
+	 27 -> Pinnacle PCTV USB 2 (Philips FM1216ME)   (em2820/em2840)
+	 28 -> Leadtek Winfast USB II Deluxe            (em2820/em2840)
+	 29 -> EM2860/TVP5150 Reference Design          (em2860)
+	 30 -> Videology 20K14XUSB USB2.0               (em2820/em2840)
+	 31 -> Usbgear VD204v9                          (em2821)
+	 32 -> Supercomp USB 2.0 TV                     (em2821)
+	 33 -> Elgato Video Capture                     (em2860)        [0fd9:0033]
+	 34 -> Terratec Cinergy A Hybrid XS             (em2860)        [0ccd:004f]
+	 35 -> Typhoon DVD Maker                        (em2860)
+	 36 -> NetGMBH Cam                              (em2860)
+	 37 -> Gadmei UTV330                            (em2860)        [eb1a:50a6]
+	 38 -> Yakumo MovieMixer                        (em2861)
+	 39 -> KWorld PVRTV 300U                        (em2861)        [eb1a:e300]
+	 40 -> Plextor ConvertX PX-TV100U               (em2861)        [093b:a005]
+	 41 -> Kworld 350 U DVB-T                       (em2870)        [eb1a:e350]
+	 42 -> Kworld 355 U DVB-T                       (em2870)        [eb1a:e355,eb1a:e357,eb1a:e359]
+	 43 -> Terratec Cinergy T XS                    (em2870)
+	 44 -> Terratec Cinergy T XS (MT2060)           (em2870)        [0ccd:0043]
+	 45 -> Pinnacle PCTV DVB-T                      (em2870)
+	 46 -> Compro, VideoMate U3                     (em2870)        [185b:2870]
+	 47 -> KWorld DVB-T 305U                        (em2880)        [eb1a:e305]
+	 48 -> KWorld DVB-T 310U                        (em2880)
+	 49 -> MSI DigiVox A/D                          (em2880)        [eb1a:e310]
+	 50 -> MSI DigiVox A/D II                       (em2880)        [eb1a:e320]
+	 51 -> Terratec Hybrid XS Secam                 (em2880)        [0ccd:004c]
+	 52 -> DNT DA2 Hybrid                           (em2881)
+	 53 -> Pinnacle Hybrid Pro                      (em2881)
+	 54 -> Kworld VS-DVB-T 323UR                    (em2882)        [eb1a:e323]
+	 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882)        [0ccd:005e,0ccd:0042]
+	 56 -> Pinnacle Hybrid Pro (330e)               (em2882)        [2304:0226]
+	 57 -> Kworld PlusTV HD Hybrid 330              (em2883)        [eb1a:a316]
+	 58 -> Compro VideoMate ForYou/Stereo           (em2820/em2840) [185b:2041]
+	 59 -> Pinnacle PCTV HD Mini                    (em2874)        [2304:023f]
+	 60 -> Hauppauge WinTV HVR 850                  (em2883)        [2040:651f]
+	 61 -> Pixelview PlayTV Box 4 USB 2.0           (em2820/em2840)
+	 62 -> Gadmei TVR200                            (em2820/em2840)
+	 63 -> Kaiomy TVnPC U2                          (em2860)        [eb1a:e303]
+	 64 -> Easy Cap Capture DC-60                   (em2860)        [1b80:e309]
+	 65 -> IO-DATA GV-MVP/SZ                        (em2820/em2840) [04bb:0515]
+	 66 -> Empire dual TV                           (em2880)
+	 67 -> Terratec Grabby                          (em2860)        [0ccd:0096,0ccd:10AF]
+	 68 -> Terratec AV350                           (em2860)        [0ccd:0084]
+	 69 -> KWorld ATSC 315U HDTV TV Box             (em2882)        [eb1a:a313]
+	 70 -> Evga inDtube                             (em2882)
+	 71 -> Silvercrest Webcam 1.3mpix               (em2820/em2840)
+	 72 -> Gadmei UTV330+                           (em2861)
+	 73 -> Reddo DVB-C USB TV Box                   (em2870)
+	 74 -> Actionmaster/LinXcel/Digitus VC211A      (em2800)
+	 75 -> Dikom DK300                              (em2882)
+	 76 -> KWorld PlusTV 340U or UB435-Q (ATSC)     (em2870)        [1b80:a340]
+	 77 -> EM2874 Leadership ISDBT                  (em2874)
+	 78 -> PCTV nanoStick T2 290e                   (em28174)       [2013:024f]
+	 79 -> Terratec Cinergy H5                      (em2884)        [eb1a:2885,0ccd:10a2,0ccd:10ad,0ccd:10b6]
+	 80 -> PCTV DVB-S2 Stick (460e)                 (em28174)       [2013:024c]
+	 81 -> Hauppauge WinTV HVR 930C                 (em2884)        [2040:1605]
+	 82 -> Terratec Cinergy HTC Stick               (em2884)        [0ccd:00b2]
+	 83 -> Honestech Vidbox NW03                    (em2860)        [eb1a:5006]
+	 84 -> MaxMedia UB425-TC                        (em2874)        [1b80:e425]
+	 85 -> PCTV QuatroStick (510e)                  (em2884)        [2304:0242]
+	 86 -> PCTV QuatroStick nano (520e)             (em2884)        [2013:0251]
+	 87 -> Terratec Cinergy HTC USB XS              (em2884)        [0ccd:008e,0ccd:00ac]
+	 88 -> C3 Tech Digital Duo HDTV/SDTV USB        (em2884)        [1b80:e755]
+	 89 -> Delock 61959                             (em2874)        [1b80:e1cc]
+	 90 -> KWorld USB ATSC TV Stick UB435-Q V2      (em2874)        [1b80:e346]
+	 91 -> SpeedLink Vicious And Devine Laplace webcam (em2765)        [1ae7:9003,1ae7:9004]
+	 92 -> PCTV DVB-S2 Stick (461e)                 (em28178)       [2013:0258]
+	 93 -> KWorld USB ATSC TV Stick UB435-Q V3      (em2874)        [1b80:e34c]
+	 94 -> PCTV tripleStick (292e)                  (em28178)       [2013:025f,2040:0264]
+	 95 -> Leadtek VC100                            (em2861)        [0413:6f07]
+	 96 -> Terratec Cinergy T2 Stick HD             (em28178)       [eb1a:8179]
+	 97 -> Elgato EyeTV Hybrid 2008 INT             (em2884)        [0fd9:0018]
+	 98 -> PLEX PX-BCUD                             (em28178)       [3275:0085]
+	 99 -> Hauppauge WinTV-dualHD DVB               (em28174)       [2040:0265]
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
new file mode 100644
index 000000000000..b18c02426a40
--- /dev/null
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -0,0 +1,21 @@
+.. -*- coding: utf-8; mode: rst -*-
+
+.. include:: <isonum.txt>
+
+###########################
+Video4Linux (V4L) subsystem
+###########################
+
+**Copyright** |copy| 1999-2016 : LinuxTV Developers
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation. A copy of
+the license is included in the chapter entitled "GNU Free Documentation
+License".
+
+
+.. toctree::
+	:maxdepth: 5
+
+	cardlist
diff --git a/Documentation/media/v4l-drivers/ivtv-cardlist.rst b/Documentation/media/v4l-drivers/ivtv-cardlist.rst
new file mode 100644
index 000000000000..cd7e79d2963e
--- /dev/null
+++ b/Documentation/media/v4l-drivers/ivtv-cardlist.rst
@@ -0,0 +1,29 @@
+IVTV cards list
+===============
+
+.. code-block:: none
+
+	 1 -> Hauppauge WinTV PVR-250
+	 2 -> Hauppauge WinTV PVR-350
+	 3 -> Hauppauge WinTV PVR-150 or PVR-500
+	 4 -> AVerMedia M179				[1461:a3ce,1461:a3cf]
+	 5 -> Yuan MPG600/Kuroutoshikou iTVC16-STVLP	[12ab:fff3,12ab:ffff]
+	 6 -> Yuan MPG160/Kuroutoshikou iTVC15-STVLP	[12ab:0000,10fc:40a0]
+	 7 -> Yuan PG600/DiamondMM PVR-550		[ff92:0070,ffab:0600]
+	 8 -> Adaptec AVC-2410				[9005:0093]
+	 9 -> Adaptec AVC-2010				[9005:0092]
+	10 -> NAGASE TRANSGEAR 5000TV			[1461:bfff]
+	11 -> AOpen VA2000MAX-STN6			[0000:ff5f]
+	12 -> YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP [12ab:0600,fbab:0600,1154:0523]
+	13 -> I/O Data GV-MVP/RX			[10fc:d01e,10fc:d038,10fc:d039]
+	14 -> I/O Data GV-MVP/RX2E			[10fc:d025]
+	15 -> GOTVIEW PCI DVD (partial support only)	[12ab:0600]
+	16 -> GOTVIEW PCI DVD2 Deluxe			[ffac:0600]
+	17 -> Yuan MPC622				[ff01:d998]
+	18 -> Digital Cowboy DCT-MTVP1			[1461:bfff]
+	19 -> Yuan PG600V2/GotView PCI DVD Lite	[ffab:0600,ffad:0600]
+	20 -> Club3D ZAP-TV1x01				[ffab:0600]
+	21 -> AverTV MCE 116 Plus			[1461:c439]
+	22 -> ASUS Falcon2				[1043:4b66,1043:462e,1043:4b2e]
+	23 -> AverMedia PVR-150 Plus			[1461:c035]
+	24 -> AverMedia EZMaker PCI Deluxe		[1461:c03f]
diff --git a/Documentation/media/v4l-drivers/saa7134-cardlist.rst b/Documentation/media/v4l-drivers/saa7134-cardlist.rst
new file mode 100644
index 000000000000..22c1510d9fa6
--- /dev/null
+++ b/Documentation/media/v4l-drivers/saa7134-cardlist.rst
@@ -0,0 +1,202 @@
+SAA7134 cards list
+==================
+
+.. code-block:: none
+
+	  0 -> UNKNOWN/GENERIC
+	  1 -> Proteus Pro [philips reference design]   [1131:2001,1131:2001]
+	  2 -> LifeView FlyVIDEO3000                    [5168:0138,4e42:0138]
+	  3 -> LifeView/Typhoon FlyVIDEO2000            [5168:0138,4e42:0138]
+	  4 -> EMPRESS                                  [1131:6752]
+	  5 -> SKNet Monster TV                         [1131:4e85]
+	  6 -> Tevion MD 9717
+	  7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
+	  8 -> Terratec Cinergy 400 TV                  [153b:1142]
+	  9 -> Medion 5044
+	 10 -> Kworld/KuroutoShikou SAA7130-TVPCI
+	 11 -> Terratec Cinergy 600 TV                  [153b:1143]
+	 12 -> Medion 7134                              [16be:0003,16be:5000]
+	 13 -> Typhoon TV+Radio 90031
+	 14 -> ELSA EX-VISION 300TV                     [1048:226b]
+	 15 -> ELSA EX-VISION 500TV                     [1048:226a]
+	 16 -> ASUS TV-FM 7134                          [1043:4842,1043:4830,1043:4840]
+	 17 -> AOPEN VA1000 POWER                       [1131:7133]
+	 18 -> BMK MPEX No Tuner
+	 19 -> Compro VideoMate TV                      [185b:c100]
+	 20 -> Matrox CronosPlus                        [102B:48d0]
+	 21 -> 10MOONS PCI TV CAPTURE CARD              [1131:2001]
+	 22 -> AverMedia M156 / Medion 2819             [1461:a70b]
+	 23 -> BMK MPEX Tuner
+	 24 -> KNC One TV-Station DVR                   [1894:a006]
+	 25 -> ASUS TV-FM 7133                          [1043:4843]
+	 26 -> Pinnacle PCTV Stereo (saa7134)           [11bd:002b]
+	 27 -> Manli MuchTV M-TV002
+	 28 -> Manli MuchTV M-TV001
+	 29 -> Nagase Sangyo TransGear 3000TV           [1461:050c]
+	 30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)  [1019:4cb4]
+	 31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5]
+	 32 -> AVACS SmartTV
+	 33 -> AVerMedia DVD EZMaker                    [1461:10ff]
+	 34 -> Noval Prime TV 7133
+	 35 -> AverMedia AverTV Studio 305              [1461:2115]
+	 36 -> UPMOST PURPLE TV                         [12ab:0800]
+	 37 -> Items MuchTV Plus / IT-005
+	 38 -> Terratec Cinergy 200 TV                  [153b:1152]
+	 39 -> LifeView FlyTV Platinum Mini             [5168:0212,4e42:0212,5169:1502]
+	 40 -> Compro VideoMate TV PVR/FM               [185b:c100]
+	 41 -> Compro VideoMate TV Gold+                [185b:c100]
+	 42 -> Sabrent SBT-TVFM (saa7130)
+	 43 -> :Zolid Xpert TV7134
+	 44 -> Empire PCI TV-Radio LE
+	 45 -> Avermedia AVerTV Studio 307              [1461:9715]
+	 46 -> AVerMedia Cardbus TV/Radio (E500)        [1461:d6ee]
+	 47 -> Terratec Cinergy 400 mobile              [153b:1162]
+	 48 -> Terratec Cinergy 600 TV MK3              [153b:1158]
+	 49 -> Compro VideoMate Gold+ Pal               [185b:c200]
+	 50 -> Pinnacle PCTV 300i DVB-T + PAL           [11bd:002d]
+	 51 -> ProVideo PV952                           [1540:9524]
+	 52 -> AverMedia AverTV/305                     [1461:2108]
+	 53 -> ASUS TV-FM 7135                          [1043:4845]
+	 54 -> LifeView FlyTV Platinum FM / Gold        [5168:0214,5168:5214,1489:0214,5168:0304]
+	 55 -> LifeView FlyDVB-T DUO / MSI TV@nywhere Duo [5168:0306,4E42:0306]
+	 56 -> Avermedia AVerTV 307                     [1461:a70a]
+	 57 -> Avermedia AVerTV GO 007 FM               [1461:f31f]
+	 58 -> ADS Tech Instant TV (saa7135)            [1421:0350,1421:0351,1421:0370,1421:1370]
+	 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
+	 60 -> LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus [5168:0502,4e42:0502,1489:0502]
+	 61 -> Philips TOUGH DVB-T reference design     [1131:2004]
+	 62 -> Compro VideoMate TV Gold+II
+	 63 -> Kworld Xpert TV PVR7134
+	 64 -> FlyTV mini Asus Digimatrix               [1043:0210]
+	 65 -> V-Stream Studio TV Terminator
+	 66 -> Yuan TUN-900 (saa7135)
+	 67 -> Beholder BeholdTV 409 FM                 [0000:4091]
+	 68 -> GoTView 7135 PCI                         [5456:7135]
+	 69 -> Philips EUROPA V3 reference design       [1131:2004]
+	 70 -> Compro Videomate DVB-T300                [185b:c900]
+	 71 -> Compro Videomate DVB-T200                [185b:c901]
+	 72 -> RTD Embedded Technologies VFG7350        [1435:7350]
+	 73 -> RTD Embedded Technologies VFG7330        [1435:7330]
+	 74 -> LifeView FlyTV Platinum Mini2            [14c0:1212]
+	 75 -> AVerMedia AVerTVHD MCE A180              [1461:1044]
+	 76 -> SKNet MonsterTV Mobile                   [1131:4ee9]
+	 77 -> Pinnacle PCTV 40i/50i/110i (saa7133)     [11bd:002e]
+	 78 -> ASUSTeK P7131 Dual                       [1043:4862]
+	 79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)
+	 80 -> ASUS Digimatrix TV                       [1043:0210]
+	 81 -> Philips Tiger reference design           [1131:2018]
+	 82 -> MSI TV@Anywhere plus                     [1462:6231,1462:8624]
+	 83 -> Terratec Cinergy 250 PCI TV              [153b:1160]
+	 84 -> LifeView FlyDVB Trio                     [5168:0319]
+	 85 -> AverTV DVB-T 777                         [1461:2c05,1461:2c05]
+	 86 -> LifeView FlyDVB-T / Genius VideoWonder DVB-T [5168:0301,1489:0301]
+	 87 -> ADS Instant TV Duo Cardbus PTV331        [0331:1421]
+	 88 -> Tevion/KWorld DVB-T 220RF                [17de:7201]
+	 89 -> ELSA EX-VISION 700TV                     [1048:226c]
+	 90 -> Kworld ATSC110/115                       [17de:7350,17de:7352]
+	 91 -> AVerMedia A169 B                         [1461:7360]
+	 92 -> AVerMedia A169 B1                        [1461:6360]
+	 93 -> Medion 7134 Bridge #2                    [16be:0005]
+	 94 -> LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB [5168:3306,5168:3502,5168:3307,4e42:3502]
+	 95 -> LifeView FlyVIDEO3000 (NTSC)             [5169:0138]
+	 96 -> Medion Md8800 Quadro                     [16be:0007,16be:0008,16be:000d]
+	 97 -> LifeView FlyDVB-S /Acorp TV134DS         [5168:0300,4e42:0300]
+	 98 -> Proteus Pro 2309                         [0919:2003]
+	 99 -> AVerMedia TV Hybrid A16AR                [1461:2c00]
+	100 -> Asus Europa2 OEM                         [1043:4860]
+	101 -> Pinnacle PCTV 310i                       [11bd:002f]
+	102 -> Avermedia AVerTV Studio 507              [1461:9715]
+	103 -> Compro Videomate DVB-T200A
+	104 -> Hauppauge WinTV-HVR1110 DVB-T/Hybrid     [0070:6700,0070:6701,0070:6702,0070:6703,0070:6704,0070:6705]
+	105 -> Terratec Cinergy HT PCMCIA               [153b:1172]
+	106 -> Encore ENLTV                             [1131:2342,1131:2341,3016:2344]
+	107 -> Encore ENLTV-FM                          [1131:230f]
+	108 -> Terratec Cinergy HT PCI                  [153b:1175]
+	109 -> Philips Tiger - S Reference design
+	110 -> Avermedia M102                           [1461:f31e]
+	111 -> ASUS P7131 4871                          [1043:4871]
+	112 -> ASUSTeK P7131 Hybrid                     [1043:4876]
+	113 -> Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM) [1019:4cb6]
+	114 -> KWorld DVB-T 210                         [17de:7250]
+	115 -> Sabrent PCMCIA TV-PCB05                  [0919:2003]
+	116 -> 10MOONS TM300 TV Card                    [1131:2304]
+	117 -> Avermedia Super 007                      [1461:f01d]
+	118 -> Beholder BeholdTV 401                    [0000:4016]
+	119 -> Beholder BeholdTV 403                    [0000:4036]
+	120 -> Beholder BeholdTV 403 FM                 [0000:4037]
+	121 -> Beholder BeholdTV 405                    [0000:4050]
+	122 -> Beholder BeholdTV 405 FM                 [0000:4051]
+	123 -> Beholder BeholdTV 407                    [0000:4070]
+	124 -> Beholder BeholdTV 407 FM                 [0000:4071]
+	125 -> Beholder BeholdTV 409                    [0000:4090]
+	126 -> Beholder BeholdTV 505 FM                 [5ace:5050]
+	127 -> Beholder BeholdTV 507 FM / BeholdTV 509 FM [5ace:5070,5ace:5090]
+	128 -> Beholder BeholdTV Columbus TV/FM         [0000:5201]
+	129 -> Beholder BeholdTV 607 FM                 [5ace:6070]
+	130 -> Beholder BeholdTV M6                     [5ace:6190]
+	131 -> Twinhan Hybrid DTV-DVB 3056 PCI          [1822:0022]
+	132 -> Genius TVGO AM11MCE
+	133 -> NXP Snake DVB-S reference design
+	134 -> Medion/Creatix CTX953 Hybrid             [16be:0010]
+	135 -> MSI TV@nywhere A/D v1.1                  [1462:8625]
+	136 -> AVerMedia Cardbus TV/Radio (E506R)       [1461:f436]
+	137 -> AVerMedia Hybrid TV/Radio (A16D)         [1461:f936]
+	138 -> Avermedia M115                           [1461:a836]
+	139 -> Compro VideoMate T750                    [185b:c900]
+	140 -> Avermedia DVB-S Pro A700                 [1461:a7a1]
+	141 -> Avermedia DVB-S Hybrid+FM A700           [1461:a7a2]
+	142 -> Beholder BeholdTV H6                     [5ace:6290]
+	143 -> Beholder BeholdTV M63                    [5ace:6191]
+	144 -> Beholder BeholdTV M6 Extra               [5ace:6193]
+	145 -> AVerMedia MiniPCI DVB-T Hybrid M103      [1461:f636,1461:f736]
+	146 -> ASUSTeK P7131 Analog
+	147 -> Asus Tiger 3in1                          [1043:4878]
+	148 -> Encore ENLTV-FM v5.3                     [1a7f:2008]
+	149 -> Avermedia PCI pure analog (M135A)        [1461:f11d]
+	150 -> Zogis Real Angel 220
+	151 -> ADS Tech Instant HDTV                    [1421:0380]
+	152 -> Asus Tiger Rev:1.00                      [1043:4857]
+	153 -> Kworld Plus TV Analog Lite PCI           [17de:7128]
+	154 -> Avermedia AVerTV GO 007 FM Plus          [1461:f31d]
+	155 -> Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid  [0070:6706,0070:6708]
+	156 -> Hauppauge WinTV-HVR1120 DVB-T/Hybrid     [0070:6707,0070:6709,0070:670a]
+	157 -> Avermedia AVerTV Studio 507UA            [1461:a11b]
+	158 -> AVerMedia Cardbus TV/Radio (E501R)       [1461:b7e9]
+	159 -> Beholder BeholdTV 505 RDS                [0000:505B]
+	160 -> Beholder BeholdTV 507 RDS                [0000:5071]
+	161 -> Beholder BeholdTV 507 RDS                [0000:507B]
+	162 -> Beholder BeholdTV 607 FM                 [5ace:6071]
+	163 -> Beholder BeholdTV 609 FM                 [5ace:6090]
+	164 -> Beholder BeholdTV 609 FM                 [5ace:6091]
+	165 -> Beholder BeholdTV 607 RDS                [5ace:6072]
+	166 -> Beholder BeholdTV 607 RDS                [5ace:6073]
+	167 -> Beholder BeholdTV 609 RDS                [5ace:6092]
+	168 -> Beholder BeholdTV 609 RDS                [5ace:6093]
+	169 -> Compro VideoMate S350/S300               [185b:c900]
+	170 -> AverMedia AverTV Studio 505              [1461:a115]
+	171 -> Beholder BeholdTV X7                     [5ace:7595]
+	172 -> RoverMedia TV Link Pro FM                [19d1:0138]
+	173 -> Zolid Hybrid TV Tuner PCI                [1131:2004]
+	174 -> Asus Europa Hybrid OEM                   [1043:4847]
+	175 -> Leadtek Winfast DTV1000S                 [107d:6655]
+	176 -> Beholder BeholdTV 505 RDS                [0000:5051]
+	177 -> Hawell HW-404M7
+	178 -> Beholder BeholdTV H7                     [5ace:7190]
+	179 -> Beholder BeholdTV A7                     [5ace:7090]
+	180 -> Avermedia PCI M733A                      [1461:4155,1461:4255]
+	181 -> TechoTrend TT-budget T-3000              [13c2:2804]
+	182 -> Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid  [17de:b136]
+	183 -> Compro VideoMate Vista M1F               [185b:c900]
+	184 -> Encore ENLTV-FM 3                        [1a7f:2108]
+	185 -> MagicPro ProHDTV Pro2 DMB-TH/Hybrid      [17de:d136]
+	186 -> Beholder BeholdTV 501                    [5ace:5010]
+	187 -> Beholder BeholdTV 503 FM                 [5ace:5030]
+	188 -> Sensoray 811/911                         [6000:0811,6000:0911]
+	189 -> Kworld PC150-U                           [17de:a134]
+	190 -> Asus My Cinema PS3-100                   [1043:48cd]
+	191 -> Hawell HW-9004V1
+	192 -> AverMedia AverTV Satellite Hybrid+FM A706 [1461:2055]
+	193 -> WIS Voyager or compatible                [1905:7007]
+	194 -> AverMedia AverTV/505                     [1461:a10a]
+	195 -> Leadtek Winfast TV2100 FM                [107d:6f3a]
+	196 -> SnaZio* TVPVR PRO                        [1779:13cf]
diff --git a/Documentation/media/v4l-drivers/saa7164-cardlist.rst b/Documentation/media/v4l-drivers/saa7164-cardlist.rst
new file mode 100644
index 000000000000..b937836cd54c
--- /dev/null
+++ b/Documentation/media/v4l-drivers/saa7164-cardlist.rst
@@ -0,0 +1,19 @@
+SAA7134 cards list
+==================
+
+.. code-block:: none
+
+	  0 -> Unknown
+	  1 -> Generic Rev2
+	  2 -> Generic Rev3
+	  3 -> Hauppauge WinTV-HVR2250                             [0070:8880,0070:8810]
+	  4 -> Hauppauge WinTV-HVR2200                             [0070:8980]
+	  5 -> Hauppauge WinTV-HVR2200                             [0070:8900]
+	  6 -> Hauppauge WinTV-HVR2200                             [0070:8901]
+	  7 -> Hauppauge WinTV-HVR2250                             [0070:8891,0070:8851]
+	  8 -> Hauppauge WinTV-HVR2250                             [0070:88A1]
+	  9 -> Hauppauge WinTV-HVR2200                             [0070:8940]
+	 10 -> Hauppauge WinTV-HVR2200                             [0070:8953]
+	 11 -> Hauppauge WinTV-HVR2255(proto)
+	 12 -> Hauppauge WinTV-HVR2255                             [0070:f111]
+	 13 -> Hauppauge WinTV-HVR2205                             [0070:f123,0070:f120]
diff --git a/Documentation/media/v4l-drivers/tm6000-cardlist.rst b/Documentation/media/v4l-drivers/tm6000-cardlist.rst
new file mode 100644
index 000000000000..ca08d4214b38
--- /dev/null
+++ b/Documentation/media/v4l-drivers/tm6000-cardlist.rst
@@ -0,0 +1,21 @@
+TM6000 cards list
+===============
+
+.. code-block:: none
+
+	  1 -> Generic tm5600 board                   (tm5600)          [6000:0001]
+	  2 -> Generic tm6000 board                   (tm6000)          [6000:0001]
+	  3 -> Generic tm6010 board                   (tm6010)          [6000:0002]
+	  4 -> 10Moons UT821                          (tm5600)          [6000:0001]
+	  5 -> 10Moons UT330                          (tm5600)
+	  6 -> ADSTech Dual TV                        (tm6000)          [06e1:f332]
+	  7 -> FreeCom and similar                    (tm6000)          [14aa:0620]
+	  8 -> ADSTech Mini Dual TV                   (tm6000)          [06e1:b339]
+	  9 -> Hauppauge WinTV HVR-900H/USB2 Stick    (tm6010)          [2040:6600,2040:6601,2040:6610,2040:6611]
+	 10 -> Beholder Wander                        (tm6010)          [6000:dec0]
+	 11 -> Beholder Voyager                       (tm6010)          [6000:dec1]
+	 12 -> TerraTec Cinergy Hybrid XE/Cinergy Hybrid Stick (tm6010) [0ccd:0086,0ccd:00a5]
+	 13 -> TwinHan TU501                          (tm6010)          [13d3:3240,13d3:3241,13d3:3243,13d3:3264]
+	 14 -> Beholder Wander Lite                   (tm6010)          [6000:dec2]
+	 15 -> Beholder Voyager Lite                  (tm6010)          [6000:dec3]
+
diff --git a/Documentation/media/v4l-drivers/tuner-cardlist.rst b/Documentation/media/v4l-drivers/tuner-cardlist.rst
new file mode 100644
index 000000000000..2f1e1029c04e
--- /dev/null
+++ b/Documentation/media/v4l-drivers/tuner-cardlist.rst
@@ -0,0 +1,96 @@
+Tuner cards list
+================
+
+.. code-block:: none
+
+	tuner=0 - Temic PAL (4002 FH5)
+	tuner=1 - Philips PAL_I (FI1246 and compatibles)
+	tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles)
+	tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)
+	tuner=4 - NoTuner
+	tuner=5 - Philips PAL_BG (FI1216 and compatibles)
+	tuner=6 - Temic NTSC (4032 FY5)
+	tuner=7 - Temic PAL_I (4062 FY5)
+	tuner=8 - Temic NTSC (4036 FY5)
+	tuner=9 - Alps HSBH1
+	tuner=10 - Alps TSBE1
+	tuner=11 - Alps TSBB5
+	tuner=12 - Alps TSBE5
+	tuner=13 - Alps TSBC5
+	tuner=14 - Temic PAL_BG (4006FH5)
+	tuner=15 - Alps TSCH6
+	tuner=16 - Temic PAL_DK (4016 FY5)
+	tuner=17 - Philips NTSC_M (MK2)
+	tuner=18 - Temic PAL_I (4066 FY5)
+	tuner=19 - Temic PAL* auto (4006 FN5)
+	tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)
+	tuner=21 - Temic NTSC (4039 FR5)
+	tuner=22 - Temic PAL/SECAM multi (4046 FM5)
+	tuner=23 - Philips PAL_DK (FI1256 and compatibles)
+	tuner=24 - Philips PAL/SECAM multi (FQ1216ME)
+	tuner=25 - LG PAL_I+FM (TAPC-I001D)
+	tuner=26 - LG PAL_I (TAPC-I701D)
+	tuner=27 - LG NTSC+FM (TPI8NSR01F)
+	tuner=28 - LG PAL_BG+FM (TPI8PSB01D)
+	tuner=29 - LG PAL_BG (TPI8PSB11D)
+	tuner=30 - Temic PAL* auto + FM (4009 FN5)
+	tuner=31 - SHARP NTSC_JP (2U5JF5540)
+	tuner=32 - Samsung PAL TCPM9091PD27
+	tuner=33 - MT20xx universal
+	tuner=34 - Temic PAL_BG (4106 FH5)
+	tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5)
+	tuner=36 - Temic NTSC (4136 FY5)
+	tuner=37 - LG PAL (newer TAPC series)
+	tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3)
+	tuner=39 - LG NTSC (newer TAPC series)
+	tuner=40 - HITACHI V7-J180AT
+	tuner=41 - Philips PAL_MK (FI1216 MK)
+	tuner=42 - Philips FCV1236D ATSC/NTSC dual in
+	tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)
+	tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)
+	tuner=45 - Microtune 4049 FM5
+	tuner=46 - Panasonic VP27s/ENGE4324D
+	tuner=47 - LG NTSC (TAPE series)
+	tuner=48 - Tenna TNF 8831 BGFF)
+	tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in
+	tuner=50 - TCL 2002N
+	tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3)
+	tuner=52 - Thomson DTT 7610 (ATSC/NTSC)
+	tuner=53 - Philips FQ1286
+	tuner=54 - Philips/NXP TDA 8290/8295 + 8275/8275A/18271
+	tuner=55 - TCL 2002MB
+	tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
+	tuner=57 - Philips FQ1236A MK4
+	tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
+	tuner=59 - Ymec TVision TVF-5533MF
+	tuner=60 - Thomson DTT 761X (ATSC/NTSC)
+	tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
+	tuner=62 - Philips TEA5767HN FM Radio
+	tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
+	tuner=64 - LG TDVS-H06xF
+	tuner=65 - Ymec TVF66T5-B/DFF
+	tuner=66 - LG TALN series
+	tuner=67 - Philips TD1316 Hybrid Tuner
+	tuner=68 - Philips TUV1236D ATSC/NTSC dual in
+	tuner=69 - Tena TNF 5335 and similar models
+	tuner=70 - Samsung TCPN 2121P30A
+	tuner=71 - Xceive xc2028/xc3028 tuner
+	tuner=72 - Thomson FE6600
+	tuner=73 - Samsung TCPG 6121P30A
+	tuner=75 - Philips TEA5761 FM Radio
+	tuner=76 - Xceive 5000 tuner
+	tuner=77 - TCL tuner MF02GIP-5N-E
+	tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner
+	tuner=79 - Philips PAL/SECAM multi (FM1216 MK5)
+	tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough
+	tuner=81 - Partsnic (Daewoo) PTI-5NF05
+	tuner=82 - Philips CU1216L
+	tuner=83 - NXP TDA18271
+	tuner=84 - Sony BTF-Pxn01Z
+	tuner=85 - Philips FQ1236 MK5
+	tuner=86 - Tena TNF5337 MFD
+	tuner=87 - Xceive 4000 tuner
+	tuner=88 - Xceive 5000C tuner
+	tuner=89 - Sony BTF-PG472Z PAL/SECAM
+	tuner=90 - Sony BTF-PK467Z NTSC-M-JP
+	tuner=91 - Sony BTF-PB463Z NTSC-M
diff --git a/Documentation/media/v4l-drivers/usbvision-cardlist.rst b/Documentation/media/v4l-drivers/usbvision-cardlist.rst
new file mode 100644
index 000000000000..3d8be9cb1b5a
--- /dev/null
+++ b/Documentation/media/v4l-drivers/usbvision-cardlist.rst
@@ -0,0 +1,72 @@
+Usbvision cards list
+====================
+
+.. code-block:: none
+
+	  0 -> Xanboo                                                   [0a6f:0400]
+	  1 -> Belkin USB VideoBus II Adapter                           [050d:0106]
+	  2 -> Belkin Components USB VideoBus                           [050d:0207]
+	  3 -> Belkin USB VideoBus II                                   [050d:0208]
+	  4 -> echoFX InterView Lite                                    [0571:0002]
+	  5 -> USBGear USBG-V1 resp. HAMA USB                           [0573:0003]
+	  6 -> D-Link V100                                              [0573:0400]
+	  7 -> X10 USB Camera                                           [0573:2000]
+	  8 -> Hauppauge WinTV USB Live (PAL B/G)                       [0573:2d00]
+	  9 -> Hauppauge WinTV USB Live Pro (NTSC M/N)                  [0573:2d01]
+	 10 -> Zoran Co. PMD (Nogatech) AV-grabber Manhattan            [0573:2101]
+	 11 -> Nogatech USB-TV (NTSC) FM                                [0573:4100]
+	 12 -> PNY USB-TV (NTSC) FM                                     [0573:4110]
+	 13 -> PixelView PlayTv-USB PRO (PAL) FM                        [0573:4450]
+	 14 -> ZTV ZT-721 2.4GHz USB A/V Receiver                       [0573:4550]
+	 15 -> Hauppauge WinTV USB (NTSC M/N)                           [0573:4d00]
+	 16 -> Hauppauge WinTV USB (PAL B/G)                            [0573:4d01]
+	 17 -> Hauppauge WinTV USB (PAL I)                              [0573:4d02]
+	 18 -> Hauppauge WinTV USB (PAL/SECAM L)                        [0573:4d03]
+	 19 -> Hauppauge WinTV USB (PAL D/K)                            [0573:4d04]
+	 20 -> Hauppauge WinTV USB (NTSC FM)                            [0573:4d10]
+	 21 -> Hauppauge WinTV USB (PAL B/G FM)                         [0573:4d11]
+	 22 -> Hauppauge WinTV USB (PAL I FM)                           [0573:4d12]
+	 23 -> Hauppauge WinTV USB (PAL D/K FM)                         [0573:4d14]
+	 24 -> Hauppauge WinTV USB Pro (NTSC M/N)                       [0573:4d2a]
+	 25 -> Hauppauge WinTV USB Pro (NTSC M/N) V2                    [0573:4d2b]
+	 26 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)          [0573:4d2c]
+	 27 -> Hauppauge WinTV USB Pro (NTSC M/N) V3                    [0573:4d20]
+	 28 -> Hauppauge WinTV USB Pro (PAL B/G)                        [0573:4d21]
+	 29 -> Hauppauge WinTV USB Pro (PAL I)                          [0573:4d22]
+	 30 -> Hauppauge WinTV USB Pro (PAL/SECAM L)                    [0573:4d23]
+	 31 -> Hauppauge WinTV USB Pro (PAL D/K)                        [0573:4d24]
+	 32 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)             [0573:4d25]
+	 33 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2          [0573:4d26]
+	 34 -> Hauppauge WinTV USB Pro (PAL B/G) V2                     [0573:4d27]
+	 35 -> Hauppauge WinTV USB Pro (PAL B/G,D/K)                    [0573:4d28]
+	 36 -> Hauppauge WinTV USB Pro (PAL I,D/K)                      [0573:4d29]
+	 37 -> Hauppauge WinTV USB Pro (NTSC M/N FM)                    [0573:4d30]
+	 38 -> Hauppauge WinTV USB Pro (PAL B/G FM)                     [0573:4d31]
+	 39 -> Hauppauge WinTV USB Pro (PAL I FM)                       [0573:4d32]
+	 40 -> Hauppauge WinTV USB Pro (PAL D/K FM)                     [0573:4d34]
+	 41 -> Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) [0573:4d35]
+	 42 -> Hauppauge WinTV USB Pro (Temic PAL B/G FM)               [0573:4d36]
+	 43 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)       [0573:4d37]
+	 44 -> Hauppauge WinTV USB Pro (NTSC M/N FM) V2                 [0573:4d38]
+	 45 -> Camtel Technology USB TV Genie Pro FM Model TVB330       [0768:0006]
+	 46 -> Digital Video Creator I                                  [07d0:0001]
+	 47 -> Global Village GV-007 (NTSC)                             [07d0:0002]
+	 48 -> Dazzle Fusion Model DVC-50 Rev 1 (NTSC)                  [07d0:0003]
+	 49 -> Dazzle Fusion Model DVC-80 Rev 1 (PAL)                   [07d0:0004]
+	 50 -> Dazzle Fusion Model DVC-90 Rev 1 (SECAM)                 [07d0:0005]
+	 51 -> Eskape Labs MyTV2Go                                      [07f8:9104]
+	 52 -> Pinnacle Studio PCTV USB (PAL)                           [2304:010d]
+	 53 -> Pinnacle Studio PCTV USB (SECAM)                         [2304:0109]
+	 54 -> Pinnacle Studio PCTV USB (PAL) FM                        [2304:0110]
+	 55 -> Miro PCTV USB                                            [2304:0111]
+	 56 -> Pinnacle Studio PCTV USB (NTSC) FM                       [2304:0112]
+	 57 -> Pinnacle Studio PCTV USB (PAL) FM V2                     [2304:0210]
+	 58 -> Pinnacle Studio PCTV USB (NTSC) FM V2                    [2304:0212]
+	 59 -> Pinnacle Studio PCTV USB (PAL) FM V3                     [2304:0214]
+	 60 -> Pinnacle Studio Linx Video input cable (NTSC)            [2304:0300]
+	 61 -> Pinnacle Studio Linx Video input cable (PAL)             [2304:0301]
+	 62 -> Pinnacle PCTV Bungee USB (PAL) FM                        [2304:0419]
+	 63 -> Hauppauge WinTv-USB                                      [2400:4200]
+	 64 -> Pinnacle Studio PCTV USB (NTSC) FM V3                    [2304:0113]
+	 65 -> Nogatech USB MicroCam NTSC (NV3000N)                     [0573:3000]
+	 66 -> Nogatech USB MicroCam PAL (NV3001P)                      [0573:3001]
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828
deleted file mode 100644
index 55a21deab7db..000000000000
--- a/Documentation/video4linux/CARDLIST.au0828
+++ /dev/null
@@ -1,6 +0,0 @@
-  0 -> Unknown board                            (au0828)
-  1 -> Hauppauge HVR950Q                        (au0828)        [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008,2040:7260,2040:7213,2040:7270]
-  2 -> Hauppauge HVR850                         (au0828)        [2040:7240]
-  3 -> DViCO FusionHDTV USB                     (au0828)        [0fe9:d620]
-  4 -> Hauppauge HVR950Q rev xxF8               (au0828)        [2040:7201,2040:7211,2040:7281]
-  5 -> Hauppauge Woodbury                       (au0828)        [05e1:0480,2040:8200]
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
deleted file mode 100644
index b092c0a14df2..000000000000
--- a/Documentation/video4linux/CARDLIST.bttv
+++ /dev/null
@@ -1,167 +0,0 @@
-  0 ->  *** UNKNOWN/GENERIC ***
-  1 -> MIRO PCTV
-  2 -> Hauppauge (bt848)
-  3 -> STB, Gateway P/N 6000699 (bt848)
-  4 -> Intel Create and Share PCI/ Smart Video Recorder III
-  5 -> Diamond DTV2000
-  6 -> AVerMedia TVPhone
-  7 -> MATRIX-Vision MV-Delta
-  8 -> Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26
-  9 -> IMS/IXmicro TurboTV
- 10 -> Hauppauge (bt878)                                   [0070:13eb,0070:3900,2636:10b4]
- 11 -> MIRO PCTV pro
- 12 -> ADS Technologies Channel Surfer TV (bt848)
- 13 -> AVerMedia TVCapture 98                              [1461:0002,1461:0004,1461:0300]
- 14 -> Aimslab Video Highway Xtreme (VHX)
- 15 -> Zoltrix TV-Max                                      [a1a0:a0fc]
- 16 -> Prolink Pixelview PlayTV (bt878)
- 17 -> Leadtek WinView 601
- 18 -> AVEC Intercapture
- 19 -> Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)
- 20 -> CEI Raffles Card
- 21 -> Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50
- 22 -> Askey CPH050/ Phoebe Tv Master + FM                 [14ff:3002]
- 23 -> Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878 [14c7:0101]
- 24 -> Askey CPH05X/06X (bt878) [many vendors]             [144f:3002,144f:3005,144f:5000,14ff:3000]
- 25 -> Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar
- 26 -> Hauppauge WinCam newer (bt878)
- 27 -> Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50
- 28 -> Terratec TerraTV+ Version 1.1 (bt878)               [153b:1127,1852:1852]
- 29 -> Imagenation PXC200                                  [1295:200a]
- 30 -> Lifeview FlyVideo 98 LR50                           [1f7f:1850]
- 31 -> Formac iProTV, Formac ProTV I (bt848)
- 32 -> Intel Create and Share PCI/ Smart Video Recorder III
- 33 -> Terratec TerraTValue Version Bt878                  [153b:1117,153b:1118,153b:1119,153b:111a,153b:1134,153b:5018]
- 34 -> Leadtek WinFast 2000/ WinFast 2000 XP               [107d:6606,107d:6609,6606:217d,f6ff:fff6]
- 35 -> Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II [1851:1850,1851:a050]
- 36 -> Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner [1852:1852]
- 37 -> Prolink PixelView PlayTV pro
- 38 -> Askey CPH06X TView99                                [144f:3000,144f:a005,a04f:a0fc]
- 39 -> Pinnacle PCTV Studio/Rave                           [11bd:0012,bd11:1200,bd11:ff00,11bd:ff12]
- 40 -> STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100 [10b4:2636,10b4:2645,121a:3060]
- 41 -> AVerMedia TVPhone 98                                [1461:0001,1461:0003]
- 42 -> ProVideo PV951                                      [aa0c:146c]
- 43 -> Little OnAir TV
- 44 -> Sigma TVII-FM
- 45 -> MATRIX-Vision MV-Delta 2
- 46 -> Zoltrix Genie TV/FM                                 [15b0:4000,15b0:400a,15b0:400d,15b0:4010,15b0:4016]
- 47 -> Terratec TV/Radio+                                  [153b:1123]
- 48 -> Askey CPH03x/ Dynalink Magic TView
- 49 -> IODATA GV-BCTV3/PCI                                 [10fc:4020]
- 50 -> Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP
- 51 -> Eagle Wireless Capricorn2 (bt878A)
- 52 -> Pinnacle PCTV Studio Pro
- 53 -> Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS
- 54 -> Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]
- 55 -> Askey CPH031/ BESTBUY Easy TV
- 56 -> Lifeview FlyVideo 98FM LR50                         [a051:41a0]
- 57 -> GrandTec 'Grand Video Capture' (Bt848)              [4344:4142]
- 58 -> Askey CPH060/ Phoebe TV Master Only (No FM)
- 59 -> Askey CPH03x TV Capturer
- 60 -> Modular Technology MM100PCTV
- 61 -> AG Electronics GMV1                                 [15cb:0101]
- 62 -> Askey CPH061/ BESTBUY Easy TV (bt878)
- 63 -> ATI TV-Wonder                                       [1002:0001]
- 64 -> ATI TV-Wonder VE                                    [1002:0003]
- 65 -> Lifeview FlyVideo 2000S LR90
- 66 -> Terratec TValueRadio                                [153b:1135,153b:ff3b]
- 67 -> IODATA GV-BCTV4/PCI                                 [10fc:4050]
- 68 -> 3Dfx VoodooTV FM (Euro)                             [10b4:2637]
- 69 -> Active Imaging AIMMS
- 70 -> Prolink Pixelview PV-BT878P+ (Rev.4C,8E)
- 71 -> Lifeview FlyVideo 98EZ (capture only) LR51          [1851:1851]
- 72 -> Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) [1554:4011]
- 73 -> Sensoray 311/611                                    [6000:0311,6000:0611]
- 74 -> RemoteVision MX (RV605)
- 75 -> Powercolor MTV878/ MTV878R/ MTV878F
- 76 -> Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) [0e11:0079]
- 77 -> GrandTec Multi Capture Card (Bt878)
- 78 -> Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF   [0a01:17de]
- 79 -> DSP Design TCVIDEO
- 80 -> Hauppauge WinTV PVR                                 [0070:4500]
- 81 -> IODATA GV-BCTV5/PCI                                 [10fc:4070,10fc:d018]
- 82 -> Osprey 100/150 (878)                                [0070:ff00]
- 83 -> Osprey 100/150 (848)
- 84 -> Osprey 101 (848)
- 85 -> Osprey 101/151
- 86 -> Osprey 101/151 w/ svid
- 87 -> Osprey 200/201/250/251
- 88 -> Osprey 200/250                                      [0070:ff01]
- 89 -> Osprey 210/220/230
- 90 -> Osprey 500                                          [0070:ff02]
- 91 -> Osprey 540                                          [0070:ff04]
- 92 -> Osprey 2000                                         [0070:ff03]
- 93 -> IDS Eagle
- 94 -> Pinnacle PCTV Sat                                   [11bd:001c]
- 95 -> Formac ProTV II (bt878)
- 96 -> MachTV
- 97 -> Euresys Picolo
- 98 -> ProVideo PV150                                      [aa00:1460,aa01:1461,aa02:1462,aa03:1463,aa04:1464,aa05:1465,aa06:1466,aa07:1467]
- 99 -> AD-TVK503
-100 -> Hercules Smart TV Stereo
-101 -> Pace TV & Radio Card
-102 -> IVC-200                                             [0000:a155,0001:a155,0002:a155,0003:a155,0100:a155,0101:a155,0102:a155,0103:a155,0800:a155,0801:a155,0802:a155,0803:a155]
-103 -> Grand X-Guard / Trust 814PCI                        [0304:0102]
-104 -> Nebula Electronics DigiTV                           [0071:0101]
-105 -> ProVideo PV143                                      [aa00:1430,aa00:1431,aa00:1432,aa00:1433,aa03:1433]
-106 -> PHYTEC VD-009-X1 VD-011 MiniDIN (bt878)
-107 -> PHYTEC VD-009-X1 VD-011 Combi (bt878)
-108 -> PHYTEC VD-009 MiniDIN (bt878)
-109 -> PHYTEC VD-009 Combi (bt878)
-110 -> IVC-100                                             [ff00:a132]
-111 -> IVC-120G                                            [ff00:a182,ff01:a182,ff02:a182,ff03:a182,ff04:a182,ff05:a182,ff06:a182,ff07:a182,ff08:a182,ff09:a182,ff0a:a182,ff0b:a182,ff0c:a182,ff0d:a182,ff0e:a182,ff0f:a182]
-112 -> pcHDTV HD-2000 TV                                   [7063:2000]
-113 -> Twinhan DST + clones                                [11bd:0026,1822:0001,270f:fc00,1822:0026]
-114 -> Winfast VC100                                       [107d:6607]
-115 -> Teppro TEV-560/InterVision IV-560
-116 -> SIMUS GVC1100                                       [aa6a:82b2]
-117 -> NGS NGSTV+
-118 -> LMLBT4
-119 -> Tekram M205 PRO
-120 -> Conceptronic CONTVFMi
-121 -> Euresys Picolo Tetra                                [1805:0105,1805:0106,1805:0107,1805:0108]
-122 -> Spirit TV Tuner
-123 -> AVerMedia AVerTV DVB-T 771                          [1461:0771]
-124 -> AverMedia AverTV DVB-T 761                          [1461:0761]
-125 -> MATRIX Vision Sigma-SQ
-126 -> MATRIX Vision Sigma-SLC
-127 -> APAC Viewcomp 878(AMAX)
-128 -> DViCO FusionHDTV DVB-T Lite                         [18ac:db10,18ac:db11]
-129 -> V-Gear MyVCD
-130 -> Super TV Tuner
-131 -> Tibet Systems 'Progress DVR' CS16
-132 -> Kodicom 4400R (master)
-133 -> Kodicom 4400R (slave)
-134 -> Adlink RTV24
-135 -> DViCO FusionHDTV 5 Lite                             [18ac:d500]
-136 -> Acorp Y878F                                         [9511:1540]
-137 -> Conceptronic CTVFMi v2                              [036e:109e]
-138 -> Prolink Pixelview PV-BT878P+ (Rev.2E)
-139 -> Prolink PixelView PlayTV MPEG2 PV-M4900
-140 -> Osprey 440                                          [0070:ff07]
-141 -> Asound Skyeye PCTV
-142 -> Sabrent TV-FM (bttv version)
-143 -> Hauppauge ImpactVCB (bt878)                         [0070:13eb]
-144 -> MagicTV
-145 -> SSAI Security Video Interface                       [4149:5353]
-146 -> SSAI Ultrasound Video Interface                     [414a:5353]
-147 -> VoodooTV 200 (USA)                                  [121a:3000]
-148 -> DViCO FusionHDTV 2                                  [dbc0:d200]
-149 -> Typhoon TV-Tuner PCI (50684)
-150 -> Geovision GV-600                                    [008a:763c]
-151 -> Kozumi KTV-01C
-152 -> Encore ENL TV-FM-2                                  [1000:1801]
-153 -> PHYTEC VD-012 (bt878)
-154 -> PHYTEC VD-012-X1 (bt878)
-155 -> PHYTEC VD-012-X2 (bt878)
-156 -> IVCE-8784                                           [0000:f050,0001:f050,0002:f050,0003:f050]
-157 -> Geovision GV-800(S) (master)                        [800a:763d]
-158 -> Geovision GV-800(S) (slave)                         [800b:763d,800c:763d,800d:763d]
-159 -> ProVideo PV183                                      [1830:1540,1831:1540,1832:1540,1833:1540,1834:1540,1835:1540,1836:1540,1837:1540]
-160 -> Tongwei Video Technology TD-3116                    [f200:3116]
-161 -> Aposonic W-DVR                                      [0279:0228]
-162 -> Adlink MPG24
-163 -> Bt848 Capture 14MHz
-164 -> CyberVision CV06 (SV)
-165 -> Kworld V-Stream Xpert TV PVR878
-166 -> PCI-8604PW
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885
deleted file mode 100644
index 85a8fdcfcdaa..000000000000
--- a/Documentation/video4linux/CARDLIST.cx23885
+++ /dev/null
@@ -1,56 +0,0 @@
-  0 -> UNKNOWN/GENERIC                                     [0070:3400]
-  1 -> Hauppauge WinTV-HVR1800lp                           [0070:7600]
-  2 -> Hauppauge WinTV-HVR1800                             [0070:7800,0070:7801,0070:7809]
-  3 -> Hauppauge WinTV-HVR1250                             [0070:7911]
-  4 -> DViCO FusionHDTV5 Express                           [18ac:d500]
-  5 -> Hauppauge WinTV-HVR1500Q                            [0070:7790,0070:7797]
-  6 -> Hauppauge WinTV-HVR1500                             [0070:7710,0070:7717]
-  7 -> Hauppauge WinTV-HVR1200                             [0070:71d1,0070:71d3]
-  8 -> Hauppauge WinTV-HVR1700                             [0070:8101]
-  9 -> Hauppauge WinTV-HVR1400                             [0070:8010]
- 10 -> DViCO FusionHDTV7 Dual Express                      [18ac:d618]
- 11 -> DViCO FusionHDTV DVB-T Dual Express                 [18ac:db78]
- 12 -> Leadtek Winfast PxDVR3200 H                         [107d:6681]
- 13 -> Compro VideoMate E650F                              [185b:e800]
- 14 -> TurboSight TBS 6920                                 [6920:8888]
- 15 -> TeVii S470                                          [d470:9022]
- 16 -> DVBWorld DVB-S2 2005                                [0001:2005]
- 17 -> NetUP Dual DVB-S2 CI                                [1b55:2a2c]
- 18 -> Hauppauge WinTV-HVR1270                             [0070:2211]
- 19 -> Hauppauge WinTV-HVR1275                             [0070:2215,0070:221d,0070:22f2]
- 20 -> Hauppauge WinTV-HVR1255                             [0070:2251,0070:22f1]
- 21 -> Hauppauge WinTV-HVR1210                             [0070:2291,0070:2295,0070:2299,0070:229d,0070:22f0,0070:22f3,0070:22f4,0070:22f5]
- 22 -> Mygica X8506 DMB-TH                                 [14f1:8651]
- 23 -> Magic-Pro ProHDTV Extreme 2                         [14f1:8657]
- 24 -> Hauppauge WinTV-HVR1850                             [0070:8541]
- 25 -> Compro VideoMate E800                               [1858:e800]
- 26 -> Hauppauge WinTV-HVR1290                             [0070:8551]
- 27 -> Mygica X8558 PRO DMB-TH                             [14f1:8578]
- 28 -> LEADTEK WinFast PxTV1200                            [107d:6f22]
- 29 -> GoTView X5 3D Hybrid                                [5654:2390]
- 30 -> NetUP Dual DVB-T/C-CI RF                            [1b55:e2e4]
- 31 -> Leadtek Winfast PxDVR3200 H XC4000                  [107d:6f39]
- 32 -> MPX-885
- 33 -> Mygica X8502/X8507 ISDB-T                           [14f1:8502]
- 34 -> TerraTec Cinergy T PCIe Dual                        [153b:117e]
- 35 -> TeVii S471                                          [d471:9022]
- 36 -> Hauppauge WinTV-HVR1255                             [0070:2259]
- 37 -> Prof Revolution DVB-S2 8000                         [8000:3034]
- 38 -> Hauppauge WinTV-HVR4400/HVR5500                     [0070:c108,0070:c138,0070:c1f8]
- 39 -> AVerTV Hybrid Express Slim HC81R                    [1461:d939]
- 40 -> TurboSight TBS 6981                                 [6981:8888]
- 41 -> TurboSight TBS 6980                                 [6980:8888]
- 42 -> Leadtek Winfast PxPVR2200                           [107d:6f21]
- 43 -> Hauppauge ImpactVCB-e                               [0070:7133]
- 44 -> DViCO FusionHDTV DVB-T Dual Express2                [18ac:db98]
- 45 -> DVBSky T9580                                        [4254:9580]
- 46 -> DVBSky T980C                                        [4254:980c]
- 47 -> DVBSky S950C                                        [4254:950c]
- 48 -> Technotrend TT-budget CT2-4500 CI                   [13c2:3013]
- 49 -> DVBSky S950                                         [4254:0950]
- 50 -> DVBSky S952                                         [4254:0952]
- 51 -> DVBSky T982                                         [4254:0982]
- 52 -> Hauppauge WinTV-HVR5525                             [0070:f038]
- 53 -> Hauppauge WinTV Starburst                           [0070:c12a]
- 54 -> ViewCast 260e                                       [1576:0260]
- 55 -> ViewCast 460e                                       [1576:0460]
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
deleted file mode 100644
index fa4b3f947468..000000000000
--- a/Documentation/video4linux/CARDLIST.cx88
+++ /dev/null
@@ -1,91 +0,0 @@
-  0 -> UNKNOWN/GENERIC
-  1 -> Hauppauge WinTV 34xxx models                        [0070:3400,0070:3401]
-  2 -> GDI Black Gold                                      [14c7:0106,14c7:0107]
-  3 -> PixelView                                           [1554:4811]
-  4 -> ATI TV Wonder Pro                                   [1002:00f8,1002:00f9]
-  5 -> Leadtek Winfast 2000XP Expert                       [107d:6611,107d:6613]
-  6 -> AverTV Studio 303 (M126)                            [1461:000b]
-  7 -> MSI TV-@nywhere Master                              [1462:8606]
-  8 -> Leadtek Winfast DV2000                              [107d:6620,107d:6621]
-  9 -> Leadtek PVR 2000                                    [107d:663b,107d:663c,107d:6632,107d:6630,107d:6638,107d:6631,107d:6637,107d:663d]
- 10 -> IODATA GV-VCP3/PCI                                  [10fc:d003]
- 11 -> Prolink PlayTV PVR
- 12 -> ASUS PVR-416                                        [1043:4823,1461:c111]
- 13 -> MSI TV-@nywhere
- 14 -> KWorld/VStream XPert DVB-T                          [17de:08a6]
- 15 -> DViCO FusionHDTV DVB-T1                             [18ac:db00]
- 16 -> KWorld LTV883RF
- 17 -> DViCO FusionHDTV 3 Gold-Q                           [18ac:d810,18ac:d800]
- 18 -> Hauppauge Nova-T DVB-T                              [0070:9002,0070:9001,0070:9000]
- 19 -> Conexant DVB-T reference design                     [14f1:0187]
- 20 -> Provideo PV259                                      [1540:2580]
- 21 -> DViCO FusionHDTV DVB-T Plus                         [18ac:db10,18ac:db11]
- 22 -> pcHDTV HD3000 HDTV                                  [7063:3000]
- 23 -> digitalnow DNTV Live! DVB-T                         [17de:a8a6]
- 24 -> Hauppauge WinTV 28xxx (Roslyn) models               [0070:2801]
- 25 -> Digital-Logic MICROSPACE Entertainment Center (MEC) [14f1:0342]
- 26 -> IODATA GV/BCTV7E                                    [10fc:d035]
- 27 -> PixelView PlayTV Ultra Pro (Stereo)
- 28 -> DViCO FusionHDTV 3 Gold-T                           [18ac:d820]
- 29 -> ADS Tech Instant TV DVB-T PCI                       [1421:0334]
- 30 -> TerraTec Cinergy 1400 DVB-T                         [153b:1166]
- 31 -> DViCO FusionHDTV 5 Gold                             [18ac:d500]
- 32 -> AverMedia UltraTV Media Center PCI 550              [1461:8011]
- 33 -> Kworld V-Stream Xpert DVD
- 34 -> ATI HDTV Wonder                                     [1002:a101]
- 35 -> WinFast DTV1000-T                                   [107d:665f]
- 36 -> AVerTV 303 (M126)                                   [1461:000a]
- 37 -> Hauppauge Nova-S-Plus DVB-S                         [0070:9201,0070:9202]
- 38 -> Hauppauge Nova-SE2 DVB-S                            [0070:9200]
- 39 -> KWorld DVB-S 100                                    [17de:08b2,1421:0341]
- 40 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid                [0070:9400,0070:9402]
- 41 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile)  [0070:9800,0070:9802]
- 42 -> digitalnow DNTV Live! DVB-T Pro                     [1822:0025,1822:0019]
- 43 -> KWorld/VStream XPert DVB-T with cx22702             [17de:08a1,12ab:2300]
- 44 -> DViCO FusionHDTV DVB-T Dual Digital                 [18ac:db50,18ac:db54]
- 45 -> KWorld HardwareMpegTV XPert                         [17de:0840,1421:0305]
- 46 -> DViCO FusionHDTV DVB-T Hybrid                       [18ac:db40,18ac:db44]
- 47 -> pcHDTV HD5500 HDTV                                  [7063:5500]
- 48 -> Kworld MCE 200 Deluxe                               [17de:0841]
- 49 -> PixelView PlayTV P7000                              [1554:4813]
- 50 -> NPG Tech Real TV FM Top 10                          [14f1:0842]
- 51 -> WinFast DTV2000 H                                   [107d:665e]
- 52 -> Geniatech DVB-S                                     [14f1:0084]
- 53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T  [0070:1404,0070:1400,0070:1401,0070:1402]
- 54 -> Norwood Micro TV Tuner
- 55 -> Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann OEM  [c180:c980]
- 56 -> Hauppauge WinTV-HVR1300 DVB-T/Hybrid MPEG Encoder   [0070:9600,0070:9601,0070:9602]
- 57 -> ADS Tech Instant Video PCI                          [1421:0390]
- 58 -> Pinnacle PCTV HD 800i                               [11bd:0051]
- 59 -> DViCO FusionHDTV 5 PCI nano                         [18ac:d530]
- 60 -> Pinnacle Hybrid PCTV                                [12ab:1788]
- 61 -> Leadtek TV2000 XP Global                            [107d:6f18,107d:6618,107d:6619]
- 62 -> PowerColor RA330                                    [14f1:ea3d]
- 63 -> Geniatech X8000-MT DVBT                             [14f1:8852]
- 64 -> DViCO FusionHDTV DVB-T PRO                          [18ac:db30]
- 65 -> DViCO FusionHDTV 7 Gold                             [18ac:d610]
- 66 -> Prolink Pixelview MPEG 8000GT                       [1554:4935]
- 67 -> Kworld PlusTV HD PCI 120 (ATSC 120)                 [17de:08c1]
- 68 -> Hauppauge WinTV-HVR4000 DVB-S/S2/T/Hybrid           [0070:6900,0070:6904,0070:6902]
- 69 -> Hauppauge WinTV-HVR4000(Lite) DVB-S/S2              [0070:6905,0070:6906]
- 70 -> TeVii S460 DVB-S/S2                                 [d460:9022]
- 71 -> Omicom SS4 DVB-S/S2 PCI                             [A044:2011]
- 72 -> TBS 8920 DVB-S/S2                                   [8920:8888]
- 73 -> TeVii S420 DVB-S                                    [d420:9022]
- 74 -> Prolink Pixelview Global Extreme                    [1554:4976]
- 75 -> PROF 7300 DVB-S/S2                                  [B033:3033]
- 76 -> SATTRADE ST4200 DVB-S/S2                            [b200:4200]
- 77 -> TBS 8910 DVB-S                                      [8910:8888]
- 78 -> Prof 6200 DVB-S                                     [b022:3022]
- 79 -> Terratec Cinergy HT PCI MKII                        [153b:1177]
- 80 -> Hauppauge WinTV-IR Only                             [0070:9290]
- 81 -> Leadtek WinFast DTV1800 Hybrid                      [107d:6654]
- 82 -> WinFast DTV2000 H rev. J                            [107d:6f2b]
- 83 -> Prof 7301 DVB-S/S2                                  [b034:3034]
- 84 -> Samsung SMT 7020 DVB-S                              [18ac:dc00,18ac:dccd]
- 85 -> Twinhan VP-1027 DVB-S                               [1822:0023]
- 86 -> TeVii S464 DVB-S/S2                                 [d464:9022]
- 87 -> Leadtek WinFast DTV2000 H PLUS                      [107d:6f42]
- 88 -> Leadtek WinFast DTV1800 H (XC4000)                  [107d:6f38]
- 89 -> Leadtek TV2000 XP Global (SC4100)                   [107d:6f36]
- 90 -> Leadtek TV2000 XP Global (XC4100)                   [107d:6f43]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
deleted file mode 100644
index 6784220c6a16..000000000000
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ /dev/null
@@ -1,100 +0,0 @@
-  0 -> Unknown EM2800 video grabber             (em2800)        [eb1a:2800]
-  1 -> Unknown EM2750/28xx video grabber        (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2862,eb1a:2863,eb1a:2870,eb1a:2881,eb1a:2883,eb1a:2868,eb1a:2875]
-  2 -> Terratec Cinergy 250 USB                 (em2820/em2840) [0ccd:0036]
-  3 -> Pinnacle PCTV USB 2                      (em2820/em2840) [2304:0208]
-  4 -> Hauppauge WinTV USB 2                    (em2820/em2840) [2040:4200,2040:4201]
-  5 -> MSI VOX USB 2.0                          (em2820/em2840)
-  6 -> Terratec Cinergy 200 USB                 (em2800)
-  7 -> Leadtek Winfast USB II                   (em2800)        [0413:6023]
-  8 -> Kworld USB2800                           (em2800)
-  9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker  (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a,093b:a003]
- 10 -> Hauppauge WinTV HVR 900                  (em2880)        [2040:6500]
- 11 -> Terratec Hybrid XS                       (em2880)
- 12 -> Kworld PVR TV 2800 RF                    (em2820/em2840)
- 13 -> Terratec Prodigy XS                      (em2880)
- 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
- 15 -> V-Gear PocketTV                          (em2800)
- 16 -> Hauppauge WinTV HVR 950                  (em2883)        [2040:6513,2040:6517,2040:651b]
- 17 -> Pinnacle PCTV HD Pro Stick               (em2880)        [2304:0227]
- 18 -> Hauppauge WinTV HVR 900 (R2)             (em2880)        [2040:6502]
- 19 -> EM2860/SAA711X Reference Design          (em2860)
- 20 -> AMD ATI TV Wonder HD 600                 (em2880)        [0438:b002]
- 21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800)        [eb1a:2801]
- 22 -> EM2710/EM2750/EM2751 webcam grabber      (em2750)        [eb1a:2750,eb1a:2751]
- 23 -> Huaqi DLCW-130                           (em2750)
- 24 -> D-Link DUB-T210 TV Tuner                 (em2820/em2840) [2001:f112]
- 25 -> Gadmei UTV310                            (em2820/em2840)
- 26 -> Hercules Smart TV USB 2.0                (em2820/em2840)
- 27 -> Pinnacle PCTV USB 2 (Philips FM1216ME)   (em2820/em2840)
- 28 -> Leadtek Winfast USB II Deluxe            (em2820/em2840)
- 29 -> EM2860/TVP5150 Reference Design          (em2860)
- 30 -> Videology 20K14XUSB USB2.0               (em2820/em2840)
- 31 -> Usbgear VD204v9                          (em2821)
- 32 -> Supercomp USB 2.0 TV                     (em2821)
- 33 -> Elgato Video Capture                     (em2860)        [0fd9:0033]
- 34 -> Terratec Cinergy A Hybrid XS             (em2860)        [0ccd:004f]
- 35 -> Typhoon DVD Maker                        (em2860)
- 36 -> NetGMBH Cam                              (em2860)
- 37 -> Gadmei UTV330                            (em2860)        [eb1a:50a6]
- 38 -> Yakumo MovieMixer                        (em2861)
- 39 -> KWorld PVRTV 300U                        (em2861)        [eb1a:e300]
- 40 -> Plextor ConvertX PX-TV100U               (em2861)        [093b:a005]
- 41 -> Kworld 350 U DVB-T                       (em2870)        [eb1a:e350]
- 42 -> Kworld 355 U DVB-T                       (em2870)        [eb1a:e355,eb1a:e357,eb1a:e359]
- 43 -> Terratec Cinergy T XS                    (em2870)
- 44 -> Terratec Cinergy T XS (MT2060)           (em2870)        [0ccd:0043]
- 45 -> Pinnacle PCTV DVB-T                      (em2870)
- 46 -> Compro, VideoMate U3                     (em2870)        [185b:2870]
- 47 -> KWorld DVB-T 305U                        (em2880)        [eb1a:e305]
- 48 -> KWorld DVB-T 310U                        (em2880)
- 49 -> MSI DigiVox A/D                          (em2880)        [eb1a:e310]
- 50 -> MSI DigiVox A/D II                       (em2880)        [eb1a:e320]
- 51 -> Terratec Hybrid XS Secam                 (em2880)        [0ccd:004c]
- 52 -> DNT DA2 Hybrid                           (em2881)
- 53 -> Pinnacle Hybrid Pro                      (em2881)
- 54 -> Kworld VS-DVB-T 323UR                    (em2882)        [eb1a:e323]
- 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882)        [0ccd:005e,0ccd:0042]
- 56 -> Pinnacle Hybrid Pro (330e)               (em2882)        [2304:0226]
- 57 -> Kworld PlusTV HD Hybrid 330              (em2883)        [eb1a:a316]
- 58 -> Compro VideoMate ForYou/Stereo           (em2820/em2840) [185b:2041]
- 59 -> Pinnacle PCTV HD Mini                    (em2874)        [2304:023f]
- 60 -> Hauppauge WinTV HVR 850                  (em2883)        [2040:651f]
- 61 -> Pixelview PlayTV Box 4 USB 2.0           (em2820/em2840)
- 62 -> Gadmei TVR200                            (em2820/em2840)
- 63 -> Kaiomy TVnPC U2                          (em2860)        [eb1a:e303]
- 64 -> Easy Cap Capture DC-60                   (em2860)        [1b80:e309]
- 65 -> IO-DATA GV-MVP/SZ                        (em2820/em2840) [04bb:0515]
- 66 -> Empire dual TV                           (em2880)
- 67 -> Terratec Grabby                          (em2860)        [0ccd:0096,0ccd:10AF]
- 68 -> Terratec AV350                           (em2860)        [0ccd:0084]
- 69 -> KWorld ATSC 315U HDTV TV Box             (em2882)        [eb1a:a313]
- 70 -> Evga inDtube                             (em2882)
- 71 -> Silvercrest Webcam 1.3mpix               (em2820/em2840)
- 72 -> Gadmei UTV330+                           (em2861)
- 73 -> Reddo DVB-C USB TV Box                   (em2870)
- 74 -> Actionmaster/LinXcel/Digitus VC211A      (em2800)
- 75 -> Dikom DK300                              (em2882)
- 76 -> KWorld PlusTV 340U or UB435-Q (ATSC)     (em2870)        [1b80:a340]
- 77 -> EM2874 Leadership ISDBT                  (em2874)
- 78 -> PCTV nanoStick T2 290e                   (em28174)       [2013:024f]
- 79 -> Terratec Cinergy H5                      (em2884)        [eb1a:2885,0ccd:10a2,0ccd:10ad,0ccd:10b6]
- 80 -> PCTV DVB-S2 Stick (460e)                 (em28174)       [2013:024c]
- 81 -> Hauppauge WinTV HVR 930C                 (em2884)        [2040:1605]
- 82 -> Terratec Cinergy HTC Stick               (em2884)        [0ccd:00b2]
- 83 -> Honestech Vidbox NW03                    (em2860)        [eb1a:5006]
- 84 -> MaxMedia UB425-TC                        (em2874)        [1b80:e425]
- 85 -> PCTV QuatroStick (510e)                  (em2884)        [2304:0242]
- 86 -> PCTV QuatroStick nano (520e)             (em2884)        [2013:0251]
- 87 -> Terratec Cinergy HTC USB XS              (em2884)        [0ccd:008e,0ccd:00ac]
- 88 -> C3 Tech Digital Duo HDTV/SDTV USB        (em2884)        [1b80:e755]
- 89 -> Delock 61959                             (em2874)        [1b80:e1cc]
- 90 -> KWorld USB ATSC TV Stick UB435-Q V2      (em2874)        [1b80:e346]
- 91 -> SpeedLink Vicious And Devine Laplace webcam (em2765)        [1ae7:9003,1ae7:9004]
- 92 -> PCTV DVB-S2 Stick (461e)                 (em28178)       [2013:0258]
- 93 -> KWorld USB ATSC TV Stick UB435-Q V3      (em2874)        [1b80:e34c]
- 94 -> PCTV tripleStick (292e)                  (em28178)       [2013:025f,2040:0264]
- 95 -> Leadtek VC100                            (em2861)        [0413:6f07]
- 96 -> Terratec Cinergy T2 Stick HD             (em28178)       [eb1a:8179]
- 97 -> Elgato EyeTV Hybrid 2008 INT             (em2884)        [0fd9:0018]
- 98 -> PLEX PX-BCUD                             (em28178)       [3275:0085]
- 99 -> Hauppauge WinTV-dualHD DVB               (em28174)       [2040:0265]
diff --git a/Documentation/video4linux/CARDLIST.ivtv b/Documentation/video4linux/CARDLIST.ivtv
deleted file mode 100644
index a019e27e42b3..000000000000
--- a/Documentation/video4linux/CARDLIST.ivtv
+++ /dev/null
@@ -1,24 +0,0 @@
- 1 -> Hauppauge WinTV PVR-250
- 2 -> Hauppauge WinTV PVR-350
- 3 -> Hauppauge WinTV PVR-150 or PVR-500
- 4 -> AVerMedia M179 				[1461:a3ce,1461:a3cf]
- 5 -> Yuan MPG600/Kuroutoshikou iTVC16-STVLP 	[12ab:fff3,12ab:ffff]
- 6 -> Yuan MPG160/Kuroutoshikou iTVC15-STVLP 	[12ab:0000,10fc:40a0]
- 7 -> Yuan PG600/DiamondMM PVR-550 		[ff92:0070,ffab:0600]
- 8 -> Adaptec AVC-2410 				[9005:0093]
- 9 -> Adaptec AVC-2010 				[9005:0092]
-10 -> NAGASE TRANSGEAR 5000TV 			[1461:bfff]
-11 -> AOpen VA2000MAX-STN6 			[0000:ff5f]
-12 -> YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP [12ab:0600,fbab:0600,1154:0523]
-13 -> I/O Data GV-MVP/RX 			[10fc:d01e,10fc:d038,10fc:d039]
-14 -> I/O Data GV-MVP/RX2E 			[10fc:d025]
-15 -> GOTVIEW PCI DVD (partial support only) 	[12ab:0600]
-16 -> GOTVIEW PCI DVD2 Deluxe 			[ffac:0600]
-17 -> Yuan MPC622 				[ff01:d998]
-18 -> Digital Cowboy DCT-MTVP1 			[1461:bfff]
-19 -> Yuan PG600V2/GotView PCI DVD Lite 	[ffab:0600,ffad:0600]
-20 -> Club3D ZAP-TV1x01				[ffab:0600]
-21 -> AverTV MCE 116 Plus			[1461:c439]
-22 -> ASUS Falcon2				[1043:4b66,1043:462e,1043:4b2e]
-23 -> AverMedia PVR-150 Plus			[1461:c035]
-24 -> AverMedia EZMaker PCI Deluxe		[1461:c03f]
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
deleted file mode 100644
index 335c24338859..000000000000
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ /dev/null
@@ -1,197 +0,0 @@
-  0 -> UNKNOWN/GENERIC
-  1 -> Proteus Pro [philips reference design]   [1131:2001,1131:2001]
-  2 -> LifeView FlyVIDEO3000                    [5168:0138,4e42:0138]
-  3 -> LifeView/Typhoon FlyVIDEO2000            [5168:0138,4e42:0138]
-  4 -> EMPRESS                                  [1131:6752]
-  5 -> SKNet Monster TV                         [1131:4e85]
-  6 -> Tevion MD 9717
-  7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
-  8 -> Terratec Cinergy 400 TV                  [153b:1142]
-  9 -> Medion 5044
- 10 -> Kworld/KuroutoShikou SAA7130-TVPCI
- 11 -> Terratec Cinergy 600 TV                  [153b:1143]
- 12 -> Medion 7134                              [16be:0003,16be:5000]
- 13 -> Typhoon TV+Radio 90031
- 14 -> ELSA EX-VISION 300TV                     [1048:226b]
- 15 -> ELSA EX-VISION 500TV                     [1048:226a]
- 16 -> ASUS TV-FM 7134                          [1043:4842,1043:4830,1043:4840]
- 17 -> AOPEN VA1000 POWER                       [1131:7133]
- 18 -> BMK MPEX No Tuner
- 19 -> Compro VideoMate TV                      [185b:c100]
- 20 -> Matrox CronosPlus                        [102B:48d0]
- 21 -> 10MOONS PCI TV CAPTURE CARD              [1131:2001]
- 22 -> AverMedia M156 / Medion 2819             [1461:a70b]
- 23 -> BMK MPEX Tuner
- 24 -> KNC One TV-Station DVR                   [1894:a006]
- 25 -> ASUS TV-FM 7133                          [1043:4843]
- 26 -> Pinnacle PCTV Stereo (saa7134)           [11bd:002b]
- 27 -> Manli MuchTV M-TV002
- 28 -> Manli MuchTV M-TV001
- 29 -> Nagase Sangyo TransGear 3000TV           [1461:050c]
- 30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)  [1019:4cb4]
- 31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5]
- 32 -> AVACS SmartTV
- 33 -> AVerMedia DVD EZMaker                    [1461:10ff]
- 34 -> Noval Prime TV 7133
- 35 -> AverMedia AverTV Studio 305              [1461:2115]
- 36 -> UPMOST PURPLE TV                         [12ab:0800]
- 37 -> Items MuchTV Plus / IT-005
- 38 -> Terratec Cinergy 200 TV                  [153b:1152]
- 39 -> LifeView FlyTV Platinum Mini             [5168:0212,4e42:0212,5169:1502]
- 40 -> Compro VideoMate TV PVR/FM               [185b:c100]
- 41 -> Compro VideoMate TV Gold+                [185b:c100]
- 42 -> Sabrent SBT-TVFM (saa7130)
- 43 -> :Zolid Xpert TV7134
- 44 -> Empire PCI TV-Radio LE
- 45 -> Avermedia AVerTV Studio 307              [1461:9715]
- 46 -> AVerMedia Cardbus TV/Radio (E500)        [1461:d6ee]
- 47 -> Terratec Cinergy 400 mobile              [153b:1162]
- 48 -> Terratec Cinergy 600 TV MK3              [153b:1158]
- 49 -> Compro VideoMate Gold+ Pal               [185b:c200]
- 50 -> Pinnacle PCTV 300i DVB-T + PAL           [11bd:002d]
- 51 -> ProVideo PV952                           [1540:9524]
- 52 -> AverMedia AverTV/305                     [1461:2108]
- 53 -> ASUS TV-FM 7135                          [1043:4845]
- 54 -> LifeView FlyTV Platinum FM / Gold        [5168:0214,5168:5214,1489:0214,5168:0304]
- 55 -> LifeView FlyDVB-T DUO / MSI TV@nywhere Duo [5168:0306,4E42:0306]
- 56 -> Avermedia AVerTV 307                     [1461:a70a]
- 57 -> Avermedia AVerTV GO 007 FM               [1461:f31f]
- 58 -> ADS Tech Instant TV (saa7135)            [1421:0350,1421:0351,1421:0370,1421:1370]
- 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
- 60 -> LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus [5168:0502,4e42:0502,1489:0502]
- 61 -> Philips TOUGH DVB-T reference design     [1131:2004]
- 62 -> Compro VideoMate TV Gold+II
- 63 -> Kworld Xpert TV PVR7134
- 64 -> FlyTV mini Asus Digimatrix               [1043:0210]
- 65 -> V-Stream Studio TV Terminator
- 66 -> Yuan TUN-900 (saa7135)
- 67 -> Beholder BeholdTV 409 FM                 [0000:4091]
- 68 -> GoTView 7135 PCI                         [5456:7135]
- 69 -> Philips EUROPA V3 reference design       [1131:2004]
- 70 -> Compro Videomate DVB-T300                [185b:c900]
- 71 -> Compro Videomate DVB-T200                [185b:c901]
- 72 -> RTD Embedded Technologies VFG7350        [1435:7350]
- 73 -> RTD Embedded Technologies VFG7330        [1435:7330]
- 74 -> LifeView FlyTV Platinum Mini2            [14c0:1212]
- 75 -> AVerMedia AVerTVHD MCE A180              [1461:1044]
- 76 -> SKNet MonsterTV Mobile                   [1131:4ee9]
- 77 -> Pinnacle PCTV 40i/50i/110i (saa7133)     [11bd:002e]
- 78 -> ASUSTeK P7131 Dual                       [1043:4862]
- 79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)
- 80 -> ASUS Digimatrix TV                       [1043:0210]
- 81 -> Philips Tiger reference design           [1131:2018]
- 82 -> MSI TV@Anywhere plus                     [1462:6231,1462:8624]
- 83 -> Terratec Cinergy 250 PCI TV              [153b:1160]
- 84 -> LifeView FlyDVB Trio                     [5168:0319]
- 85 -> AverTV DVB-T 777                         [1461:2c05,1461:2c05]
- 86 -> LifeView FlyDVB-T / Genius VideoWonder DVB-T [5168:0301,1489:0301]
- 87 -> ADS Instant TV Duo Cardbus PTV331        [0331:1421]
- 88 -> Tevion/KWorld DVB-T 220RF                [17de:7201]
- 89 -> ELSA EX-VISION 700TV                     [1048:226c]
- 90 -> Kworld ATSC110/115                       [17de:7350,17de:7352]
- 91 -> AVerMedia A169 B                         [1461:7360]
- 92 -> AVerMedia A169 B1                        [1461:6360]
- 93 -> Medion 7134 Bridge #2                    [16be:0005]
- 94 -> LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB [5168:3306,5168:3502,5168:3307,4e42:3502]
- 95 -> LifeView FlyVIDEO3000 (NTSC)             [5169:0138]
- 96 -> Medion Md8800 Quadro                     [16be:0007,16be:0008,16be:000d]
- 97 -> LifeView FlyDVB-S /Acorp TV134DS         [5168:0300,4e42:0300]
- 98 -> Proteus Pro 2309                         [0919:2003]
- 99 -> AVerMedia TV Hybrid A16AR                [1461:2c00]
-100 -> Asus Europa2 OEM                         [1043:4860]
-101 -> Pinnacle PCTV 310i                       [11bd:002f]
-102 -> Avermedia AVerTV Studio 507              [1461:9715]
-103 -> Compro Videomate DVB-T200A
-104 -> Hauppauge WinTV-HVR1110 DVB-T/Hybrid     [0070:6700,0070:6701,0070:6702,0070:6703,0070:6704,0070:6705]
-105 -> Terratec Cinergy HT PCMCIA               [153b:1172]
-106 -> Encore ENLTV                             [1131:2342,1131:2341,3016:2344]
-107 -> Encore ENLTV-FM                          [1131:230f]
-108 -> Terratec Cinergy HT PCI                  [153b:1175]
-109 -> Philips Tiger - S Reference design
-110 -> Avermedia M102                           [1461:f31e]
-111 -> ASUS P7131 4871                          [1043:4871]
-112 -> ASUSTeK P7131 Hybrid                     [1043:4876]
-113 -> Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM) [1019:4cb6]
-114 -> KWorld DVB-T 210                         [17de:7250]
-115 -> Sabrent PCMCIA TV-PCB05                  [0919:2003]
-116 -> 10MOONS TM300 TV Card                    [1131:2304]
-117 -> Avermedia Super 007                      [1461:f01d]
-118 -> Beholder BeholdTV 401                    [0000:4016]
-119 -> Beholder BeholdTV 403                    [0000:4036]
-120 -> Beholder BeholdTV 403 FM                 [0000:4037]
-121 -> Beholder BeholdTV 405                    [0000:4050]
-122 -> Beholder BeholdTV 405 FM                 [0000:4051]
-123 -> Beholder BeholdTV 407                    [0000:4070]
-124 -> Beholder BeholdTV 407 FM                 [0000:4071]
-125 -> Beholder BeholdTV 409                    [0000:4090]
-126 -> Beholder BeholdTV 505 FM                 [5ace:5050]
-127 -> Beholder BeholdTV 507 FM / BeholdTV 509 FM [5ace:5070,5ace:5090]
-128 -> Beholder BeholdTV Columbus TV/FM         [0000:5201]
-129 -> Beholder BeholdTV 607 FM                 [5ace:6070]
-130 -> Beholder BeholdTV M6                     [5ace:6190]
-131 -> Twinhan Hybrid DTV-DVB 3056 PCI          [1822:0022]
-132 -> Genius TVGO AM11MCE
-133 -> NXP Snake DVB-S reference design
-134 -> Medion/Creatix CTX953 Hybrid             [16be:0010]
-135 -> MSI TV@nywhere A/D v1.1                  [1462:8625]
-136 -> AVerMedia Cardbus TV/Radio (E506R)       [1461:f436]
-137 -> AVerMedia Hybrid TV/Radio (A16D)         [1461:f936]
-138 -> Avermedia M115                           [1461:a836]
-139 -> Compro VideoMate T750                    [185b:c900]
-140 -> Avermedia DVB-S Pro A700                 [1461:a7a1]
-141 -> Avermedia DVB-S Hybrid+FM A700           [1461:a7a2]
-142 -> Beholder BeholdTV H6                     [5ace:6290]
-143 -> Beholder BeholdTV M63                    [5ace:6191]
-144 -> Beholder BeholdTV M6 Extra               [5ace:6193]
-145 -> AVerMedia MiniPCI DVB-T Hybrid M103      [1461:f636,1461:f736]
-146 -> ASUSTeK P7131 Analog
-147 -> Asus Tiger 3in1                          [1043:4878]
-148 -> Encore ENLTV-FM v5.3                     [1a7f:2008]
-149 -> Avermedia PCI pure analog (M135A)        [1461:f11d]
-150 -> Zogis Real Angel 220
-151 -> ADS Tech Instant HDTV                    [1421:0380]
-152 -> Asus Tiger Rev:1.00                      [1043:4857]
-153 -> Kworld Plus TV Analog Lite PCI           [17de:7128]
-154 -> Avermedia AVerTV GO 007 FM Plus          [1461:f31d]
-155 -> Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid  [0070:6706,0070:6708]
-156 -> Hauppauge WinTV-HVR1120 DVB-T/Hybrid     [0070:6707,0070:6709,0070:670a]
-157 -> Avermedia AVerTV Studio 507UA            [1461:a11b]
-158 -> AVerMedia Cardbus TV/Radio (E501R)       [1461:b7e9]
-159 -> Beholder BeholdTV 505 RDS                [0000:505B]
-160 -> Beholder BeholdTV 507 RDS                [0000:5071]
-161 -> Beholder BeholdTV 507 RDS                [0000:507B]
-162 -> Beholder BeholdTV 607 FM                 [5ace:6071]
-163 -> Beholder BeholdTV 609 FM                 [5ace:6090]
-164 -> Beholder BeholdTV 609 FM                 [5ace:6091]
-165 -> Beholder BeholdTV 607 RDS                [5ace:6072]
-166 -> Beholder BeholdTV 607 RDS                [5ace:6073]
-167 -> Beholder BeholdTV 609 RDS                [5ace:6092]
-168 -> Beholder BeholdTV 609 RDS                [5ace:6093]
-169 -> Compro VideoMate S350/S300               [185b:c900]
-170 -> AverMedia AverTV Studio 505              [1461:a115]
-171 -> Beholder BeholdTV X7                     [5ace:7595]
-172 -> RoverMedia TV Link Pro FM                [19d1:0138]
-173 -> Zolid Hybrid TV Tuner PCI                [1131:2004]
-174 -> Asus Europa Hybrid OEM                   [1043:4847]
-175 -> Leadtek Winfast DTV1000S                 [107d:6655]
-176 -> Beholder BeholdTV 505 RDS                [0000:5051]
-177 -> Hawell HW-404M7
-178 -> Beholder BeholdTV H7                     [5ace:7190]
-179 -> Beholder BeholdTV A7                     [5ace:7090]
-180 -> Avermedia PCI M733A                      [1461:4155,1461:4255]
-181 -> TechoTrend TT-budget T-3000              [13c2:2804]
-182 -> Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid  [17de:b136]
-183 -> Compro VideoMate Vista M1F               [185b:c900]
-184 -> Encore ENLTV-FM 3                        [1a7f:2108]
-185 -> MagicPro ProHDTV Pro2 DMB-TH/Hybrid      [17de:d136]
-186 -> Beholder BeholdTV 501                    [5ace:5010]
-187 -> Beholder BeholdTV 503 FM                 [5ace:5030]
-188 -> Sensoray 811/911                         [6000:0811,6000:0911]
-189 -> Kworld PC150-U                           [17de:a134]
-190 -> Asus My Cinema PS3-100                   [1043:48cd]
-191 -> Hawell HW-9004V1
-192 -> AverMedia AverTV Satellite Hybrid+FM A706 [1461:2055]
-193 -> WIS Voyager or compatible                [1905:7007]
-194 -> AverMedia AverTV/505                     [1461:a10a]
-195 -> Leadtek Winfast TV2100 FM                [107d:6f3a]
-196 -> SnaZio* TVPVR PRO                        [1779:13cf]
diff --git a/Documentation/video4linux/CARDLIST.saa7164 b/Documentation/video4linux/CARDLIST.saa7164
deleted file mode 100644
index 6eb057220474..000000000000
--- a/Documentation/video4linux/CARDLIST.saa7164
+++ /dev/null
@@ -1,14 +0,0 @@
-  0 -> Unknown
-  1 -> Generic Rev2
-  2 -> Generic Rev3
-  3 -> Hauppauge WinTV-HVR2250                             [0070:8880,0070:8810]
-  4 -> Hauppauge WinTV-HVR2200                             [0070:8980]
-  5 -> Hauppauge WinTV-HVR2200                             [0070:8900]
-  6 -> Hauppauge WinTV-HVR2200                             [0070:8901]
-  7 -> Hauppauge WinTV-HVR2250                             [0070:8891,0070:8851]
-  8 -> Hauppauge WinTV-HVR2250                             [0070:88A1]
-  9 -> Hauppauge WinTV-HVR2200                             [0070:8940]
- 10 -> Hauppauge WinTV-HVR2200                             [0070:8953]
- 11 -> Hauppauge WinTV-HVR2255(proto)
- 12 -> Hauppauge WinTV-HVR2255                             [0070:f111]
- 13 -> Hauppauge WinTV-HVR2205                             [0070:f123,0070:f120]
diff --git a/Documentation/video4linux/CARDLIST.tm6000 b/Documentation/video4linux/CARDLIST.tm6000
deleted file mode 100644
index b5edce487997..000000000000
--- a/Documentation/video4linux/CARDLIST.tm6000
+++ /dev/null
@@ -1,16 +0,0 @@
-  1 -> Generic tm5600 board                   (tm5600)          [6000:0001]
-  2 -> Generic tm6000 board                   (tm6000)          [6000:0001]
-  3 -> Generic tm6010 board                   (tm6010)          [6000:0002]
-  4 -> 10Moons UT821                          (tm5600)          [6000:0001]
-  5 -> 10Moons UT330                          (tm5600)
-  6 -> ADSTech Dual TV                        (tm6000)          [06e1:f332]
-  7 -> FreeCom and similar                    (tm6000)          [14aa:0620]
-  8 -> ADSTech Mini Dual TV                   (tm6000)          [06e1:b339]
-  9 -> Hauppauge WinTV HVR-900H/USB2 Stick    (tm6010)          [2040:6600,2040:6601,2040:6610,2040:6611]
- 10 -> Beholder Wander                        (tm6010)          [6000:dec0]
- 11 -> Beholder Voyager                       (tm6010)          [6000:dec1]
- 12 -> TerraTec Cinergy Hybrid XE/Cinergy Hybrid Stick (tm6010) [0ccd:0086,0ccd:00a5]
- 13 -> TwinHan TU501                          (tm6010)          [13d3:3240,13d3:3241,13d3:3243,13d3:3264]
- 14 -> Beholder Wander Lite                   (tm6010)          [6000:dec2]
- 15 -> Beholder Voyager Lite                  (tm6010)          [6000:dec3]
-
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
deleted file mode 100644
index ac8862184962..000000000000
--- a/Documentation/video4linux/CARDLIST.tuner
+++ /dev/null
@@ -1,91 +0,0 @@
-tuner=0 - Temic PAL (4002 FH5)
-tuner=1 - Philips PAL_I (FI1246 and compatibles)
-tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles)
-tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)
-tuner=4 - NoTuner
-tuner=5 - Philips PAL_BG (FI1216 and compatibles)
-tuner=6 - Temic NTSC (4032 FY5)
-tuner=7 - Temic PAL_I (4062 FY5)
-tuner=8 - Temic NTSC (4036 FY5)
-tuner=9 - Alps HSBH1
-tuner=10 - Alps TSBE1
-tuner=11 - Alps TSBB5
-tuner=12 - Alps TSBE5
-tuner=13 - Alps TSBC5
-tuner=14 - Temic PAL_BG (4006FH5)
-tuner=15 - Alps TSCH6
-tuner=16 - Temic PAL_DK (4016 FY5)
-tuner=17 - Philips NTSC_M (MK2)
-tuner=18 - Temic PAL_I (4066 FY5)
-tuner=19 - Temic PAL* auto (4006 FN5)
-tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)
-tuner=21 - Temic NTSC (4039 FR5)
-tuner=22 - Temic PAL/SECAM multi (4046 FM5)
-tuner=23 - Philips PAL_DK (FI1256 and compatibles)
-tuner=24 - Philips PAL/SECAM multi (FQ1216ME)
-tuner=25 - LG PAL_I+FM (TAPC-I001D)
-tuner=26 - LG PAL_I (TAPC-I701D)
-tuner=27 - LG NTSC+FM (TPI8NSR01F)
-tuner=28 - LG PAL_BG+FM (TPI8PSB01D)
-tuner=29 - LG PAL_BG (TPI8PSB11D)
-tuner=30 - Temic PAL* auto + FM (4009 FN5)
-tuner=31 - SHARP NTSC_JP (2U5JF5540)
-tuner=32 - Samsung PAL TCPM9091PD27
-tuner=33 - MT20xx universal
-tuner=34 - Temic PAL_BG (4106 FH5)
-tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5)
-tuner=36 - Temic NTSC (4136 FY5)
-tuner=37 - LG PAL (newer TAPC series)
-tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3)
-tuner=39 - LG NTSC (newer TAPC series)
-tuner=40 - HITACHI V7-J180AT
-tuner=41 - Philips PAL_MK (FI1216 MK)
-tuner=42 - Philips FCV1236D ATSC/NTSC dual in
-tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)
-tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)
-tuner=45 - Microtune 4049 FM5
-tuner=46 - Panasonic VP27s/ENGE4324D
-tuner=47 - LG NTSC (TAPE series)
-tuner=48 - Tenna TNF 8831 BGFF)
-tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in
-tuner=50 - TCL 2002N
-tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3)
-tuner=52 - Thomson DTT 7610 (ATSC/NTSC)
-tuner=53 - Philips FQ1286
-tuner=54 - Philips/NXP TDA 8290/8295 + 8275/8275A/18271
-tuner=55 - TCL 2002MB
-tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
-tuner=57 - Philips FQ1236A MK4
-tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
-tuner=59 - Ymec TVision TVF-5533MF
-tuner=60 - Thomson DTT 761X (ATSC/NTSC)
-tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
-tuner=62 - Philips TEA5767HN FM Radio
-tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
-tuner=64 - LG TDVS-H06xF
-tuner=65 - Ymec TVF66T5-B/DFF
-tuner=66 - LG TALN series
-tuner=67 - Philips TD1316 Hybrid Tuner
-tuner=68 - Philips TUV1236D ATSC/NTSC dual in
-tuner=69 - Tena TNF 5335 and similar models
-tuner=70 - Samsung TCPN 2121P30A
-tuner=71 - Xceive xc2028/xc3028 tuner
-tuner=72 - Thomson FE6600
-tuner=73 - Samsung TCPG 6121P30A
-tuner=75 - Philips TEA5761 FM Radio
-tuner=76 - Xceive 5000 tuner
-tuner=77 - TCL tuner MF02GIP-5N-E
-tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner
-tuner=79 - Philips PAL/SECAM multi (FM1216 MK5)
-tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough
-tuner=81 - Partsnic (Daewoo) PTI-5NF05
-tuner=82 - Philips CU1216L
-tuner=83 - NXP TDA18271
-tuner=84 - Sony BTF-Pxn01Z
-tuner=85 - Philips FQ1236 MK5
-tuner=86 - Tena TNF5337 MFD
-tuner=87 - Xceive 4000 tuner
-tuner=88 - Xceive 5000C tuner
-tuner=89 - Sony BTF-PG472Z PAL/SECAM
-tuner=90 - Sony BTF-PK467Z NTSC-M-JP
-tuner=91 - Sony BTF-PB463Z NTSC-M
diff --git a/Documentation/video4linux/CARDLIST.usbvision b/Documentation/video4linux/CARDLIST.usbvision
deleted file mode 100644
index 6fd1af365142..000000000000
--- a/Documentation/video4linux/CARDLIST.usbvision
+++ /dev/null
@@ -1,67 +0,0 @@
-  0 -> Xanboo                                                   [0a6f:0400]
-  1 -> Belkin USB VideoBus II Adapter                           [050d:0106]
-  2 -> Belkin Components USB VideoBus                           [050d:0207]
-  3 -> Belkin USB VideoBus II                                   [050d:0208]
-  4 -> echoFX InterView Lite                                    [0571:0002]
-  5 -> USBGear USBG-V1 resp. HAMA USB                           [0573:0003]
-  6 -> D-Link V100                                              [0573:0400]
-  7 -> X10 USB Camera                                           [0573:2000]
-  8 -> Hauppauge WinTV USB Live (PAL B/G)                       [0573:2d00]
-  9 -> Hauppauge WinTV USB Live Pro (NTSC M/N)                  [0573:2d01]
- 10 -> Zoran Co. PMD (Nogatech) AV-grabber Manhattan            [0573:2101]
- 11 -> Nogatech USB-TV (NTSC) FM                                [0573:4100]
- 12 -> PNY USB-TV (NTSC) FM                                     [0573:4110]
- 13 -> PixelView PlayTv-USB PRO (PAL) FM                        [0573:4450]
- 14 -> ZTV ZT-721 2.4GHz USB A/V Receiver                       [0573:4550]
- 15 -> Hauppauge WinTV USB (NTSC M/N)                           [0573:4d00]
- 16 -> Hauppauge WinTV USB (PAL B/G)                            [0573:4d01]
- 17 -> Hauppauge WinTV USB (PAL I)                              [0573:4d02]
- 18 -> Hauppauge WinTV USB (PAL/SECAM L)                        [0573:4d03]
- 19 -> Hauppauge WinTV USB (PAL D/K)                            [0573:4d04]
- 20 -> Hauppauge WinTV USB (NTSC FM)                            [0573:4d10]
- 21 -> Hauppauge WinTV USB (PAL B/G FM)                         [0573:4d11]
- 22 -> Hauppauge WinTV USB (PAL I FM)                           [0573:4d12]
- 23 -> Hauppauge WinTV USB (PAL D/K FM)                         [0573:4d14]
- 24 -> Hauppauge WinTV USB Pro (NTSC M/N)                       [0573:4d2a]
- 25 -> Hauppauge WinTV USB Pro (NTSC M/N) V2                    [0573:4d2b]
- 26 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)          [0573:4d2c]
- 27 -> Hauppauge WinTV USB Pro (NTSC M/N) V3                    [0573:4d20]
- 28 -> Hauppauge WinTV USB Pro (PAL B/G)                        [0573:4d21]
- 29 -> Hauppauge WinTV USB Pro (PAL I)                          [0573:4d22]
- 30 -> Hauppauge WinTV USB Pro (PAL/SECAM L)                    [0573:4d23]
- 31 -> Hauppauge WinTV USB Pro (PAL D/K)                        [0573:4d24]
- 32 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)             [0573:4d25]
- 33 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2          [0573:4d26]
- 34 -> Hauppauge WinTV USB Pro (PAL B/G) V2                     [0573:4d27]
- 35 -> Hauppauge WinTV USB Pro (PAL B/G,D/K)                    [0573:4d28]
- 36 -> Hauppauge WinTV USB Pro (PAL I,D/K)                      [0573:4d29]
- 37 -> Hauppauge WinTV USB Pro (NTSC M/N FM)                    [0573:4d30]
- 38 -> Hauppauge WinTV USB Pro (PAL B/G FM)                     [0573:4d31]
- 39 -> Hauppauge WinTV USB Pro (PAL I FM)                       [0573:4d32]
- 40 -> Hauppauge WinTV USB Pro (PAL D/K FM)                     [0573:4d34]
- 41 -> Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) [0573:4d35]
- 42 -> Hauppauge WinTV USB Pro (Temic PAL B/G FM)               [0573:4d36]
- 43 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)       [0573:4d37]
- 44 -> Hauppauge WinTV USB Pro (NTSC M/N FM) V2                 [0573:4d38]
- 45 -> Camtel Technology USB TV Genie Pro FM Model TVB330       [0768:0006]
- 46 -> Digital Video Creator I                                  [07d0:0001]
- 47 -> Global Village GV-007 (NTSC)                             [07d0:0002]
- 48 -> Dazzle Fusion Model DVC-50 Rev 1 (NTSC)                  [07d0:0003]
- 49 -> Dazzle Fusion Model DVC-80 Rev 1 (PAL)                   [07d0:0004]
- 50 -> Dazzle Fusion Model DVC-90 Rev 1 (SECAM)                 [07d0:0005]
- 51 -> Eskape Labs MyTV2Go                                      [07f8:9104]
- 52 -> Pinnacle Studio PCTV USB (PAL)                           [2304:010d]
- 53 -> Pinnacle Studio PCTV USB (SECAM)                         [2304:0109]
- 54 -> Pinnacle Studio PCTV USB (PAL) FM                        [2304:0110]
- 55 -> Miro PCTV USB                                            [2304:0111]
- 56 -> Pinnacle Studio PCTV USB (NTSC) FM                       [2304:0112]
- 57 -> Pinnacle Studio PCTV USB (PAL) FM V2                     [2304:0210]
- 58 -> Pinnacle Studio PCTV USB (NTSC) FM V2                    [2304:0212]
- 59 -> Pinnacle Studio PCTV USB (PAL) FM V3                     [2304:0214]
- 60 -> Pinnacle Studio Linx Video input cable (NTSC)            [2304:0300]
- 61 -> Pinnacle Studio Linx Video input cable (PAL)             [2304:0301]
- 62 -> Pinnacle PCTV Bungee USB (PAL) FM                        [2304:0419]
- 63 -> Hauppauge WinTv-USB                                      [2400:4200]
- 64 -> Pinnacle Studio PCTV USB (NTSC) FM V3                    [2304:0113]
- 65 -> Nogatech USB MicroCam NTSC (NV3000N)                     [0573:3000]
- 66 -> Nogatech USB MicroCam PAL (NV3001P)                      [0573:3001]
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 03/36] [media] doc-rst: Remove deprecated API.html document
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 02/36] [media] doc-rst: move cardlists to media/v4l-drivers Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 04/36] [media] doc-rst: move framework docs to kAPI documentation Mauro Carvalho Chehab
                   ` (32 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

This document points to some old stuff. Just remove it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/video4linux/API.html | 27 ---------------------------
 1 file changed, 27 deletions(-)
 delete mode 100644 Documentation/video4linux/API.html

diff --git a/Documentation/video4linux/API.html b/Documentation/video4linux/API.html
deleted file mode 100644
index eaf948cf1ae7..000000000000
--- a/Documentation/video4linux/API.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
- <head>
-  <meta content="text/html;charset=ISO-8859-2" http-equiv="Content-Type" />
-  <title>V4L API</title>
- </head>
- <body>
-  <h1>Video For Linux APIs</h1>
-  <table border="0">
-   <tr>
-    <td>
-     <a href="https://linuxtv.org/downloads/legacy/video4linux/API/V4L1_API.html">V4L original API</a>
-    </td>
-    <td>
-     Obsoleted by V4L2 API
-    </td>
-   </tr>
-   <tr>
-    <td>
-     <a href="http://v4l2spec.bytesex.org/spec-single/v4l2.html">V4L2 API</a>
-    </td>
-    <td>Should be used for new projects
-    </td>
-   </tr>
-  </table>
- </body>
-</html>
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 04/36] [media] doc-rst: move framework docs to kAPI documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 02/36] [media] doc-rst: move cardlists to media/v4l-drivers Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 03/36] [media] doc-rst: Remove deprecated API.html document Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 05/36] [media] doc-rst: do a poor man's conversion of v4l2-framework Mauro Carvalho Chehab
                   ` (31 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Those documentation are part of the kAPI one. Move to the right
place.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 .../{video4linux/v4l2-controls.txt => media/kapi/v4l2-controls.rst}     | 0
 .../{video4linux/v4l2-framework.txt => media/kapi/v4l2-framework.rst}   | 0
 Documentation/media/media_drivers.rst                                   | 2 ++
 3 files changed, 2 insertions(+)
 rename Documentation/{video4linux/v4l2-controls.txt => media/kapi/v4l2-controls.rst} (100%)
 rename Documentation/{video4linux/v4l2-framework.txt => media/kapi/v4l2-framework.rst} (100%)

diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/media/kapi/v4l2-controls.rst
similarity index 100%
rename from Documentation/video4linux/v4l2-controls.txt
rename to Documentation/media/kapi/v4l2-controls.rst
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/media/kapi/v4l2-framework.rst
similarity index 100%
rename from Documentation/video4linux/v4l2-framework.txt
rename to Documentation/media/kapi/v4l2-framework.rst
diff --git a/Documentation/media/media_drivers.rst b/Documentation/media/media_drivers.rst
index e2388f02d2b8..5941fea2607e 100644
--- a/Documentation/media/media_drivers.rst
+++ b/Documentation/media/media_drivers.rst
@@ -17,6 +17,8 @@ License".
 .. toctree::
     :maxdepth: 5
 
+    kapi/v4l2-framework
+    kapi/v4l2-controls
     kapi/v4l2-core
     kapi/dtv-core
     kapi/rc-core
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 05/36] [media] doc-rst: do a poor man's conversion of v4l2-framework
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (2 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 04/36] [media] doc-rst: move framework docs to kAPI documentation Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 06/36] [media] doc-rst: move videobuf documentation to media/kapi Mauro Carvalho Chehab
                   ` (30 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Arnd Bergmann, Hans Verkuil, Laurent Pinchart, linux-doc

Make Sphinx happy with v4l2-framework.rst by putting all C
code inside code-block.

Please note that this is a poor man ReST conversion, as several
of those blocks should actually be converted to use :cpp:func:,
pointing to the kAPI auto-generated documentation.

The problem is that we currently lack kernel-doc documentation
for most of the stuff described there.

So, let's do a poor man's conversion. We should later address
this.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/kapi/v4l2-framework.rst | 356 ++++++++++++++++++----------
 1 file changed, 229 insertions(+), 127 deletions(-)

diff --git a/Documentation/media/kapi/v4l2-framework.rst b/Documentation/media/kapi/v4l2-framework.rst
index cbefc7902f5f..740875ddfcec 100644
--- a/Documentation/media/kapi/v4l2-framework.rst
+++ b/Documentation/media/kapi/v4l2-framework.rst
@@ -57,6 +57,8 @@ All drivers have the following structure:
 
 This is a rough schematic of how it all relates:
 
+.. code-block:: none
+
     device instances
       |
       +-sub-device instances
@@ -88,6 +90,8 @@ would embed this struct inside a larger struct.
 
 You must register the device instance:
 
+.. code-block:: none
+
 	v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev);
 
 Registration will initialize the v4l2_device struct. If the dev->driver_data
@@ -103,7 +107,7 @@ and registered media_device instance.
 If v4l2_dev->name is empty then it will be set to a value derived from dev
 (driver name followed by the bus_id, to be precise). If you set it up before
 calling v4l2_device_register then it will be untouched. If dev is NULL, then
-you *must* setup v4l2_dev->name before calling v4l2_device_register.
+you **must** setup v4l2_dev->name before calling v4l2_device_register.
 
 You can use v4l2_device_set_name() to set the name based on a driver name and
 a driver-global atomic_t instance. This will generate names like ivtv0, ivtv1,
@@ -122,6 +126,8 @@ include/media/<subdevice>.h.
 
 You unregister with:
 
+.. code-block:: none
+
 	v4l2_device_unregister(struct v4l2_device *v4l2_dev);
 
 If the dev->driver_data field points to v4l2_dev, it will be reset to NULL.
@@ -132,6 +138,8 @@ happens the parent device becomes invalid. Since v4l2_device has a pointer to
 that parent device it has to be cleared as well to mark that the parent is
 gone. To do this call:
 
+.. code-block:: none
+
 	v4l2_device_disconnect(struct v4l2_device *v4l2_dev);
 
 This does *not* unregister the subdevs, so you still need to call the
@@ -145,43 +153,47 @@ hardware. The same is true for alsa drivers for example.
 
 You can iterate over all registered devices as follows:
 
-static int callback(struct device *dev, void *p)
-{
-	struct v4l2_device *v4l2_dev = dev_get_drvdata(dev);
+.. code-block:: none
 
-	/* test if this device was inited */
-	if (v4l2_dev == NULL)
+	static int callback(struct device *dev, void *p)
+	{
+		struct v4l2_device *v4l2_dev = dev_get_drvdata(dev);
+
+		/* test if this device was inited */
+		if (v4l2_dev == NULL)
+			return 0;
+		...
 		return 0;
-	...
-	return 0;
-}
+	}
 
-int iterate(void *p)
-{
-	struct device_driver *drv;
-	int err;
+	int iterate(void *p)
+	{
+		struct device_driver *drv;
+		int err;
 
-	/* Find driver 'ivtv' on the PCI bus.
-	   pci_bus_type is a global. For USB busses use usb_bus_type. */
-	drv = driver_find("ivtv", &pci_bus_type);
-	/* iterate over all ivtv device instances */
-	err = driver_for_each_device(drv, NULL, p, callback);
-	put_driver(drv);
-	return err;
-}
+		/* Find driver 'ivtv' on the PCI bus.
+		pci_bus_type is a global. For USB busses use usb_bus_type. */
+		drv = driver_find("ivtv", &pci_bus_type);
+		/* iterate over all ivtv device instances */
+		err = driver_for_each_device(drv, NULL, p, callback);
+		put_driver(drv);
+		return err;
+	}
 
 Sometimes you need to keep a running counter of the device instance. This is
 commonly used to map a device instance to an index of a module option array.
 
 The recommended approach is as follows:
 
-static atomic_t drv_instance = ATOMIC_INIT(0);
+.. code-block:: none
 
-static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
-{
-	...
-	state->instance = atomic_inc_return(&drv_instance) - 1;
-}
+	static atomic_t drv_instance = ATOMIC_INIT(0);
+
+	static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
+	{
+		...
+		state->instance = atomic_inc_return(&drv_instance) - 1;
+	}
 
 If you have multiple device nodes then it can be difficult to know when it is
 safe to unregister v4l2_device for hotpluggable devices. For this purpose
@@ -193,11 +205,15 @@ callback is called. You can do your final cleanup there.
 If other device nodes (e.g. ALSA) are created, then you can increase and
 decrease the refcount manually as well by calling:
 
-void v4l2_device_get(struct v4l2_device *v4l2_dev);
+.. code-block:: none
+
+	void v4l2_device_get(struct v4l2_device *v4l2_dev);
 
 or:
 
-int v4l2_device_put(struct v4l2_device *v4l2_dev);
+.. code-block:: none
+
+	int v4l2_device_put(struct v4l2_device *v4l2_dev);
 
 Since the initial refcount is 1 you also need to call v4l2_device_put in the
 disconnect() callback (for USB devices) or in the remove() callback (for e.g.
@@ -249,35 +265,37 @@ may be NULL if the subdev driver does not support anything from that category.
 
 It looks like this:
 
-struct v4l2_subdev_core_ops {
-	int (*log_status)(struct v4l2_subdev *sd);
-	int (*init)(struct v4l2_subdev *sd, u32 val);
-	...
-};
+.. code-block:: none
 
-struct v4l2_subdev_tuner_ops {
-	...
-};
+	struct v4l2_subdev_core_ops {
+		int (*log_status)(struct v4l2_subdev *sd);
+		int (*init)(struct v4l2_subdev *sd, u32 val);
+		...
+	};
 
-struct v4l2_subdev_audio_ops {
-	...
-};
+	struct v4l2_subdev_tuner_ops {
+		...
+	};
 
-struct v4l2_subdev_video_ops {
-	...
-};
+	struct v4l2_subdev_audio_ops {
+		...
+	};
 
-struct v4l2_subdev_pad_ops {
-	...
-};
+	struct v4l2_subdev_video_ops {
+		...
+	};
 
-struct v4l2_subdev_ops {
-	const struct v4l2_subdev_core_ops  *core;
-	const struct v4l2_subdev_tuner_ops *tuner;
-	const struct v4l2_subdev_audio_ops *audio;
-	const struct v4l2_subdev_video_ops *video;
-	const struct v4l2_subdev_pad_ops *video;
-};
+	struct v4l2_subdev_pad_ops {
+		...
+	};
+
+	struct v4l2_subdev_ops {
+		const struct v4l2_subdev_core_ops  *core;
+		const struct v4l2_subdev_tuner_ops *tuner;
+		const struct v4l2_subdev_audio_ops *audio;
+		const struct v4l2_subdev_video_ops *video;
+		const struct v4l2_subdev_pad_ops *video;
+	};
 
 The core ops are common to all subdevs, the other categories are implemented
 depending on the sub-device. E.g. a video device is unlikely to support the
@@ -288,6 +306,8 @@ to add new ops and categories.
 
 A sub-device driver initializes the v4l2_subdev struct using:
 
+.. code-block:: none
+
 	v4l2_subdev_init(sd, &ops);
 
 Afterwards you need to initialize subdev->name with a unique name and set the
@@ -297,6 +317,8 @@ If integration with the media framework is needed, you must initialize the
 media_entity struct embedded in the v4l2_subdev struct (entity field) by
 calling media_entity_pads_init(), if the entity has pads:
 
+.. code-block:: none
+
 	struct media_pad *pads = &my_sd->pads;
 	int err;
 
@@ -311,6 +333,8 @@ subdev device node (if any) is opened/closed.
 
 Don't forget to cleanup the media entity before the sub-device is destroyed:
 
+.. code-block:: none
+
 	media_entity_cleanup(&sd->entity);
 
 If the subdev driver intends to process video and integrate with the media
@@ -351,6 +375,8 @@ run-time bridge-subdevice interaction is in both cases the same.
 In the synchronous case a device (bridge) driver needs to register the
 v4l2_subdev with the v4l2_device:
 
+.. code-block:: none
+
 	int err = v4l2_device_register_subdev(v4l2_dev, sd);
 
 This can fail if the subdev module disappeared before it could be registered.
@@ -362,16 +388,22 @@ entity will be automatically registered with the media device.
 
 You can unregister a sub-device using:
 
+.. code-block:: none
+
 	v4l2_device_unregister_subdev(sd);
 
 Afterwards the subdev module can be unloaded and sd->dev == NULL.
 
 You can call an ops function either directly:
 
+.. code-block:: none
+
 	err = sd->ops->core->g_std(sd, &norm);
 
 but it is better and easier to use this macro:
 
+.. code-block:: none
+
 	err = v4l2_subdev_call(sd, core, g_std, &norm);
 
 The macro will to the right NULL pointer checks and returns -ENODEV if subdev
@@ -380,11 +412,15 @@ NULL, or the actual result of the subdev->ops->core->g_std ops.
 
 It is also possible to call all or a subset of the sub-devices:
 
+.. code-block:: none
+
 	v4l2_device_call_all(v4l2_dev, 0, core, g_std, &norm);
 
 Any subdev that does not support this ops is skipped and error results are
 ignored. If you want to check for errors use this:
 
+.. code-block:: none
+
 	err = v4l2_device_call_until_err(v4l2_dev, 0, core, g_std, &norm);
 
 Any error except -ENOIOCTLCMD will exit the loop with that error. If no
@@ -509,13 +545,17 @@ you can just create a v4l2_subdev directly.
 A typical state struct would look like this (where 'chipname' is replaced by
 the name of the chip):
 
-struct chipname_state {
-	struct v4l2_subdev sd;
-	...  /* additional state fields */
-};
+.. code-block:: none
+
+	struct chipname_state {
+		struct v4l2_subdev sd;
+		...  /* additional state fields */
+	};
 
 Initialize the v4l2_subdev struct as follows:
 
+.. code-block:: none
+
 	v4l2_i2c_subdev_init(&state->sd, client, subdev_ops);
 
 This function will fill in all the fields of v4l2_subdev and ensure that the
@@ -524,17 +564,23 @@ v4l2_subdev and i2c_client both point to one another.
 You should also add a helper inline function to go from a v4l2_subdev pointer
 to a chipname_state struct:
 
-static inline struct chipname_state *to_state(struct v4l2_subdev *sd)
-{
-	return container_of(sd, struct chipname_state, sd);
-}
+.. code-block:: none
+
+	static inline struct chipname_state *to_state(struct v4l2_subdev *sd)
+	{
+		return container_of(sd, struct chipname_state, sd);
+	}
 
 Use this to go from the v4l2_subdev struct to the i2c_client struct:
 
+.. code-block:: none
+
 	struct i2c_client *client = v4l2_get_subdevdata(sd);
 
 And this to go from an i2c_client to a v4l2_subdev struct:
 
+.. code-block:: none
+
 	struct v4l2_subdev *sd = i2c_get_clientdata(client);
 
 Make sure to call v4l2_device_unregister_subdev(sd) when the remove() callback
@@ -550,8 +596,10 @@ from the remove() callback ensures that this is always done correctly.
 
 The bridge driver also has some helper functions it can use:
 
-struct v4l2_subdev *sd = v4l2_i2c_new_subdev(v4l2_dev, adapter,
-	       "module_foo", "chipid", 0x36, NULL);
+.. code-block:: none
+
+	struct v4l2_subdev *sd = v4l2_i2c_new_subdev(v4l2_dev, adapter,
+					"module_foo", "chipid", 0x36, NULL);
 
 This loads the given module (can be NULL if no module needs to be loaded) and
 calls i2c_new_device() with the given i2c_adapter and chip/address arguments.
@@ -581,15 +629,17 @@ are probed.
 
 For example: this will probe for address 0x10:
 
-struct v4l2_subdev *sd = v4l2_i2c_new_subdev_cfg(v4l2_dev, adapter,
-	       "module_foo", "chipid", 0, NULL, 0, I2C_ADDRS(0x10));
+.. code-block:: none
+
+	struct v4l2_subdev *sd = v4l2_i2c_new_subdev_cfg(v4l2_dev, adapter,
+			  "module_foo", "chipid", 0, NULL, 0, I2C_ADDRS(0x10));
 
 v4l2_i2c_new_subdev_board uses an i2c_board_info struct which is passed
 to the i2c driver and replaces the irq, platform_data and addr arguments.
 
 If the subdev supports the s_config core ops, then that op is called with
 the irq and platform_data arguments after the subdev was setup. The older
-v4l2_i2c_new_(probed_)subdev functions will call s_config as well, but with
+v4l2_i2c_new_(probed\_)subdev functions will call s_config as well, but with
 irq set to 0 and platform_data set to NULL.
 
 struct video_device
@@ -601,6 +651,8 @@ dynamically or embedded in a larger struct.
 
 To allocate it dynamically use:
 
+.. code-block:: none
+
 	struct video_device *vdev = video_device_alloc();
 
 	if (vdev == NULL)
@@ -611,6 +663,8 @@ To allocate it dynamically use:
 If you embed it in a larger struct, then you must set the release()
 callback to your own function:
 
+.. code-block:: none
+
 	struct video_device *vdev = &my_vdev->vdev;
 
 	vdev->release = my_vdev_release;
@@ -684,7 +738,9 @@ In some cases you want to tell the core that a function you had specified in
 your v4l2_ioctl_ops should be ignored. You can mark such ioctls by calling this
 function before video_device_register is called:
 
-void v4l2_disable_ioctl(struct video_device *vdev, unsigned int cmd);
+.. code-block:: none
+
+	void v4l2_disable_ioctl(struct video_device *vdev, unsigned int cmd);
 
 This tends to be needed if based on external factors (e.g. which card is
 being used) you want to turns off certain features in v4l2_ioctl_ops without
@@ -697,6 +753,8 @@ If integration with the media framework is needed, you must initialize the
 media_entity struct embedded in the video_device struct (entity field) by
 calling media_entity_pads_init():
 
+.. code-block:: none
+
 	struct media_pad *pad = &my_vdev->pad;
 	int err;
 
@@ -752,6 +810,8 @@ video_device registration
 Next you register the video device: this will create the character device
 for you.
 
+.. code-block:: none
+
 	err = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
 	if (err) {
 		video_device_release(vdev); /* or kfree(my_vdev); */
@@ -827,16 +887,18 @@ file operations.
 
 It is a bitmask and the following bits can be set:
 
-0x01: Log the ioctl name and error code. VIDIOC_(D)QBUF ioctls are only logged
-      if bit 0x08 is also set.
-0x02: Log the ioctl name arguments and error code. VIDIOC_(D)QBUF ioctls are
-      only logged if bit 0x08 is also set.
-0x04: Log the file operations open, release, read, write, mmap and
-      get_unmapped_area. The read and write operations are only logged if
-      bit 0x08 is also set.
-0x08: Log the read and write file operations and the VIDIOC_QBUF and
-      VIDIOC_DQBUF ioctls.
-0x10: Log the poll file operation.
+.. code-block:: none
+
+	0x01: Log the ioctl name and error code. VIDIOC_(D)QBUF ioctls are only logged
+	      if bit 0x08 is also set.
+	0x02: Log the ioctl name arguments and error code. VIDIOC_(D)QBUF ioctls are
+	      only logged if bit 0x08 is also set.
+	0x04: Log the file operations open, release, read, write, mmap and
+	      get_unmapped_area. The read and write operations are only logged if
+	      bit 0x08 is also set.
+	0x08: Log the read and write file operations and the VIDIOC_QBUF and
+	      VIDIOC_DQBUF ioctls.
+	0x10: Log the poll file operation.
 
 video_device cleanup
 --------------------
@@ -845,6 +907,8 @@ When the video device nodes have to be removed, either during the unload
 of the driver or because the USB device was disconnected, then you should
 unregister them:
 
+.. code-block:: none
+
 	video_unregister_device(vdev);
 
 This will remove the device nodes from sysfs (causing udev to remove them
@@ -861,6 +925,8 @@ callback is called and you can do the final cleanup there.
 Don't forget to cleanup the media entity associated with the video device if
 it has been initialized:
 
+.. code-block:: none
+
 	media_entity_cleanup(&vdev->entity);
 
 This can be done from the release callback.
@@ -875,31 +941,41 @@ There are a few useful helper functions:
 
 You can set/get driver private data in the video_device struct using:
 
-void *video_get_drvdata(struct video_device *vdev);
-void video_set_drvdata(struct video_device *vdev, void *data);
+.. code-block:: none
+
+	void *video_get_drvdata(struct video_device *vdev);
+	void video_set_drvdata(struct video_device *vdev, void *data);
 
 Note that you can safely call video_set_drvdata() before calling
 video_register_device().
 
 And this function:
 
-struct video_device *video_devdata(struct file *file);
+.. code-block:: none
+
+	struct video_device *video_devdata(struct file *file);
 
 returns the video_device belonging to the file struct.
 
 The video_drvdata function combines video_get_drvdata with video_devdata:
 
-void *video_drvdata(struct file *file);
+.. code-block:: none
+
+	void *video_drvdata(struct file *file);
 
 You can go from a video_device struct to the v4l2_device struct using:
 
-struct v4l2_device *v4l2_dev = vdev->v4l2_dev;
+.. code-block:: none
+
+	struct v4l2_device *v4l2_dev = vdev->v4l2_dev;
 
 - Device node name
 
 The video_device node kernel name can be retrieved using
 
-const char *video_device_node_name(struct video_device *vdev);
+.. code-block:: none
+
+	const char *video_device_node_name(struct video_device *vdev);
 
 The name is used as a hint by userspace tools such as udev. The function
 should be used where possible instead of accessing the video_device::num and
@@ -943,64 +1019,74 @@ v4l2_fh_del+v4l2_fh_exit in release().
 Drivers can extract their own file handle structure by using the container_of
 macro. Example:
 
-struct my_fh {
-	int blah;
-	struct v4l2_fh fh;
-};
+.. code-block:: none
 
-...
-
-int my_open(struct file *file)
-{
-	struct my_fh *my_fh;
-	struct video_device *vfd;
-	int ret;
+	struct my_fh {
+		int blah;
+		struct v4l2_fh fh;
+	};
 
 	...
 
-	my_fh = kzalloc(sizeof(*my_fh), GFP_KERNEL);
+	int my_open(struct file *file)
+	{
+		struct my_fh *my_fh;
+		struct video_device *vfd;
+		int ret;
 
-	...
+		...
 
-	v4l2_fh_init(&my_fh->fh, vfd);
+		my_fh = kzalloc(sizeof(*my_fh), GFP_KERNEL);
 
-	...
+		...
 
-	file->private_data = &my_fh->fh;
-	v4l2_fh_add(&my_fh->fh);
-	return 0;
-}
+		v4l2_fh_init(&my_fh->fh, vfd);
 
-int my_release(struct file *file)
-{
-	struct v4l2_fh *fh = file->private_data;
-	struct my_fh *my_fh = container_of(fh, struct my_fh, fh);
+		...
 
-	...
-	v4l2_fh_del(&my_fh->fh);
-	v4l2_fh_exit(&my_fh->fh);
-	kfree(my_fh);
-	return 0;
-}
+		file->private_data = &my_fh->fh;
+		v4l2_fh_add(&my_fh->fh);
+		return 0;
+	}
+
+	int my_release(struct file *file)
+	{
+		struct v4l2_fh *fh = file->private_data;
+		struct my_fh *my_fh = container_of(fh, struct my_fh, fh);
+
+		...
+		v4l2_fh_del(&my_fh->fh);
+		v4l2_fh_exit(&my_fh->fh);
+		kfree(my_fh);
+		return 0;
+	}
 
 Below is a short description of the v4l2_fh functions used:
 
-void v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev)
+.. code-block:: none
+
+	void v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev)
 
   Initialise the file handle. This *MUST* be performed in the driver's
   v4l2_file_operations->open() handler.
 
-void v4l2_fh_add(struct v4l2_fh *fh)
+.. code-block:: none
+
+	void v4l2_fh_add(struct v4l2_fh *fh)
 
   Add a v4l2_fh to video_device file handle list. Must be called once the
   file handle is completely initialized.
 
-void v4l2_fh_del(struct v4l2_fh *fh)
+.. code-block:: none
+
+	void v4l2_fh_del(struct v4l2_fh *fh)
 
   Unassociate the file handle from video_device(). The file handle
   exit function may now be called.
 
-void v4l2_fh_exit(struct v4l2_fh *fh)
+.. code-block:: none
+
+	void v4l2_fh_exit(struct v4l2_fh *fh)
 
   Uninitialise the file handle. After uninitialisation the v4l2_fh
   memory can be freed.
@@ -1008,12 +1094,16 @@ void v4l2_fh_exit(struct v4l2_fh *fh)
 
 If struct v4l2_fh is not embedded, then you can use these helper functions:
 
-int v4l2_fh_open(struct file *filp)
+.. code-block:: none
+
+	int v4l2_fh_open(struct file *filp)
 
   This allocates a struct v4l2_fh, initializes it and adds it to the struct
   video_device associated with the file struct.
 
-int v4l2_fh_release(struct file *filp)
+.. code-block:: none
+
+	int v4l2_fh_release(struct file *filp)
 
   This deletes it from the struct video_device associated with the file
   struct, uninitialised the v4l2_fh and frees it.
@@ -1027,11 +1117,15 @@ when the last file handle closes. Two helper functions were added to check
 whether the v4l2_fh struct is the only open filehandle of the associated
 device node:
 
-int v4l2_fh_is_singular(struct v4l2_fh *fh)
+.. code-block:: none
+
+	int v4l2_fh_is_singular(struct v4l2_fh *fh)
 
   Returns 1 if the file handle is the only open file handle, else 0.
 
-int v4l2_fh_is_singular_file(struct file *filp)
+.. code-block:: none
+
+	int v4l2_fh_is_singular_file(struct file *filp)
 
   Same, but it calls v4l2_fh_is_singular with filp->private_data.
 
@@ -1075,15 +1169,19 @@ fast.
 
 Useful functions:
 
-void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev)
+.. code-block:: none
+
+	void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev)
 
   Queue events to video device. The driver's only responsibility is to fill
   in the type and the data fields. The other fields will be filled in by
   V4L2.
 
-int v4l2_event_subscribe(struct v4l2_fh *fh,
-			 struct v4l2_event_subscription *sub, unsigned elems,
-			 const struct v4l2_subscribed_event_ops *ops)
+.. code-block:: none
+
+	int v4l2_event_subscribe(struct v4l2_fh *fh,
+				 struct v4l2_event_subscription *sub, unsigned elems,
+				 const struct v4l2_subscribed_event_ops *ops)
 
   The video_device->ioctl_ops->vidioc_subscribe_event must check the driver
   is able to produce events with specified event id. Then it calls
@@ -1102,8 +1200,10 @@ int v4l2_event_subscribe(struct v4l2_fh *fh,
   All 4 callbacks are optional, if you don't want to specify any callbacks
   the ops argument itself maybe NULL.
 
-int v4l2_event_unsubscribe(struct v4l2_fh *fh,
-			   struct v4l2_event_subscription *sub)
+.. code-block:: none
+
+	int v4l2_event_unsubscribe(struct v4l2_fh *fh,
+				   struct v4l2_event_subscription *sub)
 
   vidioc_unsubscribe_event in struct v4l2_ioctl_ops. A driver may use
   v4l2_event_unsubscribe() directly unless it wants to be involved in
@@ -1112,7 +1212,9 @@ int v4l2_event_unsubscribe(struct v4l2_fh *fh,
   The special type V4L2_EVENT_ALL may be used to unsubscribe all events. The
   drivers may want to handle this in a special way.
 
-int v4l2_event_pending(struct v4l2_fh *fh)
+.. code-block:: none
+
+	int v4l2_event_pending(struct v4l2_fh *fh)
 
   Returns the number of pending events. Useful when implementing poll.
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 06/36] [media] doc-rst: move videobuf documentation to media/kapi
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (3 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 05/36] [media] doc-rst: do a poor man's conversion of v4l2-framework Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 07/36] [media] doc-rst: Convert videobuf documentation to ReST Mauro Carvalho Chehab
                   ` (29 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Hans Verkuil, Vladimir Zapolskiy, linux-doc

This document describes a kapi framework. Move it to the right
place.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/kapi/v4l2-controls.rst         | 169 +++++++++++++++------
 .../videobuf => media/kapi/videobuf.rst}           |   0
 2 files changed, 122 insertions(+), 47 deletions(-)
 rename Documentation/{video4linux/videobuf => media/kapi/videobuf.rst} (100%)

diff --git a/Documentation/media/kapi/v4l2-controls.rst b/Documentation/media/kapi/v4l2-controls.rst
index 5e759cab4538..8ff9ee806042 100644
--- a/Documentation/media/kapi/v4l2-controls.rst
+++ b/Documentation/media/kapi/v4l2-controls.rst
@@ -1,5 +1,8 @@
+V4L2 Controls
+=============
+
 Introduction
-============
+------------
 
 The V4L2 control API seems simple enough, but quickly becomes very hard to
 implement correctly in drivers. But much of the code needed to handle controls
@@ -26,7 +29,7 @@ for V4L2 drivers and struct v4l2_subdev for sub-device drivers.
 
 
 Objects in the framework
-========================
+------------------------
 
 There are two main objects:
 
@@ -39,12 +42,14 @@ controls, possibly to controls owned by other handlers.
 
 
 Basic usage for V4L2 and sub-device drivers
-===========================================
+-------------------------------------------
 
 1) Prepare the driver:
 
 1.1) Add the handler to your driver's top-level struct:
 
+.. code-block:: none
+
 	struct foo_dev {
 		...
 		struct v4l2_ctrl_handler ctrl_handler;
@@ -55,16 +60,20 @@ Basic usage for V4L2 and sub-device drivers
 
 1.2) Initialize the handler:
 
+.. code-block:: none
+
 	v4l2_ctrl_handler_init(&foo->ctrl_handler, nr_of_controls);
 
-  The second argument is a hint telling the function how many controls this
-  handler is expected to handle. It will allocate a hashtable based on this
-  information. It is a hint only.
+The second argument is a hint telling the function how many controls this
+handler is expected to handle. It will allocate a hashtable based on this
+information. It is a hint only.
 
 1.3) Hook the control handler into the driver:
 
 1.3.1) For V4L2 drivers do this:
 
+.. code-block:: none
+
 	struct foo_dev {
 		...
 		struct v4l2_device v4l2_dev;
@@ -75,15 +84,17 @@ Basic usage for V4L2 and sub-device drivers
 
 	foo->v4l2_dev.ctrl_handler = &foo->ctrl_handler;
 
-  Where foo->v4l2_dev is of type struct v4l2_device.
+Where foo->v4l2_dev is of type struct v4l2_device.
 
-  Finally, remove all control functions from your v4l2_ioctl_ops (if any):
-  vidioc_queryctrl, vidioc_query_ext_ctrl, vidioc_querymenu, vidioc_g_ctrl,
-  vidioc_s_ctrl, vidioc_g_ext_ctrls, vidioc_try_ext_ctrls and vidioc_s_ext_ctrls.
-  Those are now no longer needed.
+Finally, remove all control functions from your v4l2_ioctl_ops (if any):
+vidioc_queryctrl, vidioc_query_ext_ctrl, vidioc_querymenu, vidioc_g_ctrl,
+vidioc_s_ctrl, vidioc_g_ext_ctrls, vidioc_try_ext_ctrls and vidioc_s_ext_ctrls.
+Those are now no longer needed.
 
 1.3.2) For sub-device drivers do this:
 
+.. code-block:: none
+
 	struct foo_dev {
 		...
 		struct v4l2_subdev sd;
@@ -94,10 +105,12 @@ Basic usage for V4L2 and sub-device drivers
 
 	foo->sd.ctrl_handler = &foo->ctrl_handler;
 
-  Where foo->sd is of type struct v4l2_subdev.
+Where foo->sd is of type struct v4l2_subdev.
 
-  And set all core control ops in your struct v4l2_subdev_core_ops to these
-  helpers:
+And set all core control ops in your struct v4l2_subdev_core_ops to these
+helpers:
+
+.. code-block:: none
 
 	.queryctrl = v4l2_subdev_queryctrl,
 	.querymenu = v4l2_subdev_querymenu,
@@ -107,12 +120,14 @@ Basic usage for V4L2 and sub-device drivers
 	.try_ext_ctrls = v4l2_subdev_try_ext_ctrls,
 	.s_ext_ctrls = v4l2_subdev_s_ext_ctrls,
 
-  Note: this is a temporary solution only. Once all V4L2 drivers that depend
-  on subdev drivers are converted to the control framework these helpers will
-  no longer be needed.
+Note: this is a temporary solution only. Once all V4L2 drivers that depend
+on subdev drivers are converted to the control framework these helpers will
+no longer be needed.
 
 1.4) Clean up the handler at the end:
 
+.. code-block:: none
+
 	v4l2_ctrl_handler_free(&foo->ctrl_handler);
 
 
@@ -120,12 +135,16 @@ Basic usage for V4L2 and sub-device drivers
 
 You add non-menu controls by calling v4l2_ctrl_new_std:
 
+.. code-block:: none
+
 	struct v4l2_ctrl *v4l2_ctrl_new_std(struct v4l2_ctrl_handler *hdl,
 			const struct v4l2_ctrl_ops *ops,
 			u32 id, s32 min, s32 max, u32 step, s32 def);
 
 Menu and integer menu controls are added by calling v4l2_ctrl_new_std_menu:
 
+.. code-block:: none
+
 	struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl,
 			const struct v4l2_ctrl_ops *ops,
 			u32 id, s32 max, s32 skip_mask, s32 def);
@@ -133,6 +152,8 @@ Menu and integer menu controls are added by calling v4l2_ctrl_new_std_menu:
 Menu controls with a driver specific menu are added by calling
 v4l2_ctrl_new_std_menu_items:
 
+.. code-block:: none
+
        struct v4l2_ctrl *v4l2_ctrl_new_std_menu_items(
                        struct v4l2_ctrl_handler *hdl,
                        const struct v4l2_ctrl_ops *ops, u32 id, s32 max,
@@ -141,12 +162,16 @@ v4l2_ctrl_new_std_menu_items:
 Integer menu controls with a driver specific menu can be added by calling
 v4l2_ctrl_new_int_menu:
 
+.. code-block:: none
+
 	struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl,
 			const struct v4l2_ctrl_ops *ops,
 			u32 id, s32 max, s32 def, const s64 *qmenu_int);
 
 These functions are typically called right after the v4l2_ctrl_handler_init:
 
+.. code-block:: none
+
 	static const s64 exp_bias_qmenu[] = {
 	       -2, -1, 0, 1, 2
 	};
@@ -223,6 +248,8 @@ a bit faster that way.
 
 3) Optionally force initial control setup:
 
+.. code-block:: none
+
 	v4l2_ctrl_handler_setup(&foo->ctrl_handler);
 
 This will call s_ctrl for all controls unconditionally. Effectively this
@@ -232,12 +259,16 @@ the hardware are in sync.
 
 4) Finally: implement the v4l2_ctrl_ops
 
+.. code-block:: none
+
 	static const struct v4l2_ctrl_ops foo_ctrl_ops = {
 		.s_ctrl = foo_s_ctrl,
 	};
 
 Usually all you need is s_ctrl:
 
+.. code-block:: none
+
 	static int foo_s_ctrl(struct v4l2_ctrl *ctrl)
 	{
 		struct foo *state = container_of(ctrl->handler, struct foo, ctrl_handler);
@@ -262,16 +293,14 @@ to do any validation of control values, or implement QUERYCTRL, QUERY_EXT_CTRL
 and QUERYMENU. And G/S_CTRL as well as G/TRY/S_EXT_CTRLS are automatically supported.
 
 
-==============================================================================
+.. note::
 
-The remainder of this document deals with more advanced topics and scenarios.
-In practice the basic usage as described above is sufficient for most drivers.
-
-===============================================================================
+   The remainder sections deal with more advanced controls topics and scenarios.
+   In practice the basic usage as described above is sufficient for most drivers.
 
 
 Inheriting Controls
-===================
+-------------------
 
 When a sub-device is registered with a V4L2 driver by calling
 v4l2_device_register_subdev() and the ctrl_handler fields of both v4l2_subdev
@@ -286,21 +315,25 @@ of v4l2_device.
 
 
 Accessing Control Values
-========================
+------------------------
 
 The following union is used inside the control framework to access control
 values:
 
-union v4l2_ctrl_ptr {
-	s32 *p_s32;
-	s64 *p_s64;
-	char *p_char;
-	void *p;
-};
+.. code-block:: none
+
+	union v4l2_ctrl_ptr {
+		s32 *p_s32;
+		s64 *p_s64;
+		char *p_char;
+		void *p;
+	};
 
 The v4l2_ctrl struct contains these fields that can be used to access both
 current and new values:
 
+.. code-block:: none
+
 	s32 val;
 	struct {
 		s32 val;
@@ -312,6 +345,8 @@ current and new values:
 
 If the control has a simple s32 type type, then:
 
+.. code-block:: none
+
 	&ctrl->val == ctrl->p_new.p_s32
 	&ctrl->cur.val == ctrl->p_cur.p_s32
 
@@ -334,6 +369,8 @@ exception is for controls that return a volatile register such as a signal
 strength read-out that changes continuously. In that case you will need to
 implement g_volatile_ctrl like this:
 
+.. code-block:: none
+
 	static int foo_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
 	{
 		switch (ctrl->id) {
@@ -350,6 +387,8 @@ changes.
 
 To mark a control as volatile you have to set V4L2_CTRL_FLAG_VOLATILE:
 
+.. code-block:: none
+
 	ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...);
 	if (ctrl)
 		ctrl->flags |= V4L2_CTRL_FLAG_VOLATILE;
@@ -369,6 +408,8 @@ not to introduce deadlocks.
 Outside of the control ops you have to go through to helper functions to get
 or set a single control value safely in your driver:
 
+.. code-block:: none
+
 	s32 v4l2_ctrl_g_ctrl(struct v4l2_ctrl *ctrl);
 	int v4l2_ctrl_s_ctrl(struct v4l2_ctrl *ctrl, s32 val);
 
@@ -378,6 +419,8 @@ will result in a deadlock since these helpers lock the handler as well.
 
 You can also take the handler lock yourself:
 
+.. code-block:: none
+
 	mutex_lock(&state->ctrl_handler.lock);
 	pr_info("String value is '%s'\n", ctrl1->p_cur.p_char);
 	pr_info("Integer value is '%s'\n", ctrl2->cur.val);
@@ -385,10 +428,12 @@ You can also take the handler lock yourself:
 
 
 Menu Controls
-=============
+-------------
 
 The v4l2_ctrl struct contains this union:
 
+.. code-block:: none
+
 	union {
 		u32 step;
 		u32 menu_skip_mask;
@@ -411,10 +456,12 @@ control, or by calling v4l2_ctrl_new_std_menu().
 
 
 Custom Controls
-===============
+---------------
 
 Driver specific controls can be created using v4l2_ctrl_new_custom():
 
+.. code-block:: none
+
 	static const struct v4l2_ctrl_config ctrl_filter = {
 		.ops = &ctrl_custom_ops,
 		.id = V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER,
@@ -437,7 +484,7 @@ control and will fill in the name, type and flags fields accordingly.
 
 
 Active and Grabbed Controls
-===========================
+---------------------------
 
 If you get more complex relationships between controls, then you may have to
 activate and deactivate controls. For example, if the Chroma AGC control is
@@ -461,16 +508,18 @@ starts or stops streaming.
 
 
 Control Clusters
-================
+----------------
 
 By default all controls are independent from the others. But in more
 complex scenarios you can get dependencies from one control to another.
 In that case you need to 'cluster' them:
 
+.. code-block:: none
+
 	struct foo {
 		struct v4l2_ctrl_handler ctrl_handler;
-#define AUDIO_CL_VOLUME (0)
-#define AUDIO_CL_MUTE   (1)
+	#define AUDIO_CL_VOLUME (0)
+	#define AUDIO_CL_MUTE   (1)
 		struct v4l2_ctrl *audio_cluster[2];
 		...
 	};
@@ -489,6 +538,8 @@ composite control. Similar to how a 'struct' works in C.
 So when s_ctrl is called with V4L2_CID_AUDIO_VOLUME as argument, you should set
 all two controls belonging to the audio_cluster:
 
+.. code-block:: none
+
 	static int foo_s_ctrl(struct v4l2_ctrl *ctrl)
 	{
 		struct foo *state = container_of(ctrl->handler, struct foo, ctrl_handler);
@@ -509,12 +560,16 @@ all two controls belonging to the audio_cluster:
 
 In the example above the following are equivalent for the VOLUME case:
 
+.. code-block:: none
+
 	ctrl == ctrl->cluster[AUDIO_CL_VOLUME] == state->audio_cluster[AUDIO_CL_VOLUME]
 	ctrl->cluster[AUDIO_CL_MUTE] == state->audio_cluster[AUDIO_CL_MUTE]
 
 In practice using cluster arrays like this becomes very tiresome. So instead
 the following equivalent method is used:
 
+.. code-block:: none
+
 	struct {
 		/* audio cluster */
 		struct v4l2_ctrl *volume;
@@ -525,6 +580,8 @@ The anonymous struct is used to clearly 'cluster' these two control pointers,
 but it serves no other purpose. The effect is the same as creating an
 array with two control pointers. So you can just do:
 
+.. code-block:: none
+
 	state->volume = v4l2_ctrl_new_std(&state->ctrl_handler, ...);
 	state->mute = v4l2_ctrl_new_std(&state->ctrl_handler, ...);
 	v4l2_ctrl_cluster(2, &state->volume);
@@ -554,7 +611,7 @@ The 'is_new' flag is always 1 when called from v4l2_ctrl_handler_setup().
 
 
 Handling autogain/gain-type Controls with Auto Clusters
-=======================================================
+-------------------------------------------------------
 
 A common type of control cluster is one that handles 'auto-foo/foo'-type
 controls. Typical examples are autogain/gain, autoexposure/exposure,
@@ -579,8 +636,10 @@ changing that control affects the control flags of the manual controls.
 In order to simplify this a special variation of v4l2_ctrl_cluster was
 introduced:
 
-void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl **controls,
-			u8 manual_val, bool set_volatile);
+.. code-block:: none
+
+	void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl **controls,
+				    u8 manual_val, bool set_volatile);
 
 The first two arguments are identical to v4l2_ctrl_cluster. The third argument
 tells the framework which value switches the cluster into manual mode. The
@@ -597,7 +656,7 @@ flag and volatile handling.
 
 
 VIDIOC_LOG_STATUS Support
-=========================
+-------------------------
 
 This ioctl allow you to dump the current status of a driver to the kernel log.
 The v4l2_ctrl_handler_log_status(ctrl_handler, prefix) can be used to dump the
@@ -607,7 +666,7 @@ for you.
 
 
 Different Handlers for Different Video Nodes
-============================================
+--------------------------------------------
 
 Usually the V4L2 driver has just one control handler that is global for
 all video nodes. But you can also specify different control handlers for
@@ -632,6 +691,8 @@ of another handler (e.g. for a video device node), then you should first add
 the controls to the first handler, add the other controls to the second
 handler and finally add the first handler to the second. For example:
 
+.. code-block:: none
+
 	v4l2_ctrl_new_std(&radio_ctrl_handler, &radio_ops, V4L2_CID_AUDIO_VOLUME, ...);
 	v4l2_ctrl_new_std(&radio_ctrl_handler, &radio_ops, V4L2_CID_AUDIO_MUTE, ...);
 	v4l2_ctrl_new_std(&video_ctrl_handler, &video_ops, V4L2_CID_BRIGHTNESS, ...);
@@ -644,6 +705,8 @@ all controls.
 
 Or you can add specific controls to a handler:
 
+.. code-block:: none
+
 	volume = v4l2_ctrl_new_std(&video_ctrl_handler, &ops, V4L2_CID_AUDIO_VOLUME, ...);
 	v4l2_ctrl_new_std(&video_ctrl_handler, &ops, V4L2_CID_BRIGHTNESS, ...);
 	v4l2_ctrl_new_std(&video_ctrl_handler, &ops, V4L2_CID_CONTRAST, ...);
@@ -651,6 +714,8 @@ Or you can add specific controls to a handler:
 What you should not do is make two identical controls for two handlers.
 For example:
 
+.. code-block:: none
+
 	v4l2_ctrl_new_std(&radio_ctrl_handler, &radio_ops, V4L2_CID_AUDIO_MUTE, ...);
 	v4l2_ctrl_new_std(&video_ctrl_handler, &video_ops, V4L2_CID_AUDIO_MUTE, ...);
 
@@ -660,7 +725,7 @@ can twiddle.
 
 
 Finding Controls
-================
+----------------
 
 Normally you have created the controls yourself and you can store the struct
 v4l2_ctrl pointer into your own struct.
@@ -670,6 +735,8 @@ not own. For example, if you have to find a volume control from a subdev.
 
 You can do that by calling v4l2_ctrl_find:
 
+.. code-block:: none
+
 	struct v4l2_ctrl *volume;
 
 	volume = v4l2_ctrl_find(sd->ctrl_handler, V4L2_CID_AUDIO_VOLUME);
@@ -677,6 +744,8 @@ You can do that by calling v4l2_ctrl_find:
 Since v4l2_ctrl_find will lock the handler you have to be careful where you
 use it. For example, this is not a good idea:
 
+.. code-block:: none
+
 	struct v4l2_ctrl_handler ctrl_handler;
 
 	v4l2_ctrl_new_std(&ctrl_handler, &video_ops, V4L2_CID_BRIGHTNESS, ...);
@@ -684,6 +753,8 @@ use it. For example, this is not a good idea:
 
 ...and in video_ops.s_ctrl:
 
+.. code-block:: none
+
 	case V4L2_CID_BRIGHTNESS:
 		contrast = v4l2_find_ctrl(&ctrl_handler, V4L2_CID_CONTRAST);
 		...
@@ -695,7 +766,7 @@ It is recommended not to use this function from inside the control ops.
 
 
 Inheriting Controls
-===================
+-------------------
 
 When one control handler is added to another using v4l2_ctrl_add_handler, then
 by default all controls from one are merged to the other. But a subdev might
@@ -704,6 +775,8 @@ not when it is used in consumer-level hardware. In that case you want to keep
 those low-level controls local to the subdev. You can do this by simply
 setting the 'is_private' flag of the control to 1:
 
+.. code-block:: none
+
 	static const struct v4l2_ctrl_config ctrl_private = {
 		.ops = &ctrl_custom_ops,
 		.id = V4L2_CID_...,
@@ -720,7 +793,7 @@ These controls will now be skipped when v4l2_ctrl_add_handler is called.
 
 
 V4L2_CTRL_TYPE_CTRL_CLASS Controls
-==================================
+----------------------------------
 
 Controls of this type can be used by GUIs to get the name of the control class.
 A fully featured GUI can make a dialog with multiple tabs with each tab
@@ -733,14 +806,16 @@ class is added.
 
 
 Adding Notify Callbacks
-=======================
+-----------------------
 
 Sometimes the platform or bridge driver needs to be notified when a control
 from a sub-device driver changes. You can set a notify callback by calling
 this function:
 
-void v4l2_ctrl_notify(struct v4l2_ctrl *ctrl,
-	void (*notify)(struct v4l2_ctrl *ctrl, void *priv), void *priv);
+.. code-block:: none
+
+	void v4l2_ctrl_notify(struct v4l2_ctrl *ctrl,
+		void (*notify)(struct v4l2_ctrl *ctrl, void *priv), void *priv);
 
 Whenever the give control changes value the notify callback will be called
 with a pointer to the control and the priv pointer that was passed with
diff --git a/Documentation/video4linux/videobuf b/Documentation/media/kapi/videobuf.rst
similarity index 100%
rename from Documentation/video4linux/videobuf
rename to Documentation/media/kapi/videobuf.rst
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 07/36] [media] doc-rst: Convert videobuf documentation to ReST
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (4 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 06/36] [media] doc-rst: move videobuf documentation to media/kapi Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 08/36] doc-rst: add v4l-drivers to index file Mauro Carvalho Chehab
                   ` (28 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

The videobuf documentation is almost at rst format: we
just needed to add titles and add some code-blocks there
and that's it.

Also, add a notice that this framework is deprecated.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/kapi/videobuf.rst | 51 +++++++++++++++++++++++++++++++++--
 Documentation/media/media_drivers.rst |  1 +
 2 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/Documentation/media/kapi/videobuf.rst b/Documentation/media/kapi/videobuf.rst
index 3ffe9e960b6f..01156728203c 100644
--- a/Documentation/media/kapi/videobuf.rst
+++ b/Documentation/media/kapi/videobuf.rst
@@ -1,7 +1,18 @@
-An introduction to the videobuf layer
-Jonathan Corbet <corbet@lwn.net>
+Videobuf Framework
+==================
+
+Author: Jonathan Corbet <corbet@lwn.net>
+
 Current as of 2.6.33
 
+.. note::
+
+   The videobuf framework was deprecated in favor of videobuf2. Shouldn't
+   be used on new drivers.
+
+Introduction
+------------
+
 The videobuf layer functions as a sort of glue layer between a V4L2 driver
 and user space.  It handles the allocation and management of buffers for
 the storage of video frames.  There is a set of functions which can be used
@@ -14,6 +25,7 @@ author, but the payback comes in the form of reduced code in the driver and
 a consistent implementation of the V4L2 user-space API.
 
 Buffer types
+------------
 
 Not all video devices use the same kind of buffers.  In fact, there are (at
 least) three common variations:
@@ -48,10 +60,13 @@ the kernel and a description of this technique is currently beyond the
 scope of this document.]
 
 Data structures, callbacks, and initialization
+----------------------------------------------
 
 Depending on which type of buffers are being used, the driver should
 include one of the following files:
 
+.. code-block:: none
+
     <media/videobuf-dma-sg.h>		/* Physically scattered */
     <media/videobuf-vmalloc.h>		/* vmalloc() buffers	*/
     <media/videobuf-dma-contig.h>	/* Physically contiguous */
@@ -65,6 +80,8 @@ the queue.
 The next step is to write four simple callbacks to help videobuf deal with
 the management of buffers:
 
+.. code-block:: none
+
     struct videobuf_queue_ops {
 	int (*buf_setup)(struct videobuf_queue *q,
 			 unsigned int *count, unsigned int *size);
@@ -91,6 +108,8 @@ passed to buf_prepare(), which should set the buffer's size, width, height,
 and field fields properly.  If the buffer's state field is
 VIDEOBUF_NEEDS_INIT, the driver should pass it to:
 
+.. code-block:: none
+
     int videobuf_iolock(struct videobuf_queue* q, struct videobuf_buffer *vb,
 			struct v4l2_framebuffer *fbuf);
 
@@ -110,6 +129,8 @@ Finally, buf_release() is called when a buffer is no longer intended to be
 used.  The driver should ensure that there is no I/O active on the buffer,
 then pass it to the appropriate free routine(s):
 
+.. code-block:: none
+
     /* Scatter/gather drivers */
     int videobuf_dma_unmap(struct videobuf_queue *q,
 			   struct videobuf_dmabuf *dma);
@@ -124,6 +145,8 @@ then pass it to the appropriate free routine(s):
 
 One way to ensure that a buffer is no longer under I/O is to pass it to:
 
+.. code-block:: none
+
     int videobuf_waiton(struct videobuf_buffer *vb, int non_blocking, int intr);
 
 Here, vb is the buffer, non_blocking indicates whether non-blocking I/O
@@ -131,12 +154,15 @@ should be used (it should be zero in the buf_release() case), and intr
 controls whether an interruptible wait is used.
 
 File operations
+---------------
 
 At this point, much of the work is done; much of the rest is slipping
 videobuf calls into the implementation of the other driver callbacks.  The
 first step is in the open() function, which must initialize the
 videobuf queue.  The function to use depends on the type of buffer used:
 
+.. code-block:: none
+
     void videobuf_queue_sg_init(struct videobuf_queue *q,
 				struct videobuf_queue_ops *ops,
 				struct device *dev,
@@ -182,6 +208,8 @@ applications have a chance of working with the device.  Videobuf makes it
 easy to do that with the same code.  To implement read(), the driver need
 only make a call to one of:
 
+.. code-block:: none
+
     ssize_t videobuf_read_one(struct videobuf_queue *q,
 			      char __user *data, size_t count,
 			      loff_t *ppos, int nonblocking);
@@ -201,6 +229,8 @@ anticipation of another read() call happening in the near future).
 
 The poll() function can usually be implemented with a direct call to:
 
+.. code-block:: none
+
     unsigned int videobuf_poll_stream(struct file *file,
 				      struct videobuf_queue *q,
 				      poll_table *wait);
@@ -213,6 +243,8 @@ the mmap() system call to enable user space to access the data.  In many
 V4L2 drivers, the often-complex mmap() implementation simplifies to a
 single call to:
 
+.. code-block:: none
+
     int videobuf_mmap_mapper(struct videobuf_queue *q,
 			     struct vm_area_struct *vma);
 
@@ -220,6 +252,8 @@ Everything else is handled by the videobuf code.
 
 The release() function requires two separate videobuf calls:
 
+.. code-block:: none
+
     void videobuf_stop(struct videobuf_queue *q);
     int videobuf_mmap_free(struct videobuf_queue *q);
 
@@ -233,12 +267,15 @@ buffers are still mapped, but every driver in the 2.6.32 kernel cheerfully
 ignores its return value.
 
 ioctl() operations
+------------------
 
 The V4L2 API includes a very long list of driver callbacks to respond to
 the many ioctl() commands made available to user space.  A number of these
 - those associated with streaming I/O - turn almost directly into videobuf
 calls.  The relevant helper functions are:
 
+.. code-block:: none
+
     int videobuf_reqbufs(struct videobuf_queue *q,
 			 struct v4l2_requestbuffers *req);
     int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b);
@@ -259,6 +296,7 @@ complex, of course, since they will also need to deal with starting and
 stopping the capture engine.
 
 Buffer allocation
+-----------------
 
 Thus far, we have talked about buffers, but have not looked at how they are
 allocated.  The scatter/gather case is the most complex on this front.  For
@@ -272,11 +310,15 @@ If the driver needs to do its own memory allocation, it should be done in
 the vidioc_reqbufs() function, *after* calling videobuf_reqbufs().  The
 first step is a call to:
 
+.. code-block:: none
+
     struct videobuf_dmabuf *videobuf_to_dma(struct videobuf_buffer *buf);
 
 The returned videobuf_dmabuf structure (defined in
 <media/videobuf-dma-sg.h>) includes a couple of relevant fields:
 
+.. code-block:: none
+
     struct scatterlist  *sglist;
     int                 sglen;
 
@@ -300,6 +342,7 @@ kernel drivers, or those contained within huge pages, will work with these
 drivers.
 
 Filling the buffers
+-------------------
 
 The final part of a videobuf implementation has no direct callback - it's
 the portion of the code which actually puts frame data into the buffers,
@@ -331,10 +374,14 @@ For scatter/gather drivers, the needed memory pointers will be found in the
 scatterlist structure described above.  Drivers using the vmalloc() method
 can get a memory pointer with:
 
+.. code-block:: none
+
     void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
 
 For contiguous DMA drivers, the function to use is:
 
+.. code-block:: none
+
     dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf);
 
 The contiguous DMA API goes out of its way to hide the kernel-space address
diff --git a/Documentation/media/media_drivers.rst b/Documentation/media/media_drivers.rst
index 5941fea2607e..8e0f455ff6e0 100644
--- a/Documentation/media/media_drivers.rst
+++ b/Documentation/media/media_drivers.rst
@@ -19,6 +19,7 @@ License".
 
     kapi/v4l2-framework
     kapi/v4l2-controls
+    kapi/videobuf
     kapi/v4l2-core
     kapi/dtv-core
     kapi/rc-core
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 08/36] doc-rst: add v4l-drivers to index file
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (5 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 07/36] [media] doc-rst: Convert videobuf documentation to ReST Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 09/36] [media] doc-rst: Move v4l docs to media/v4l-drivers Mauro Carvalho Chehab
                   ` (27 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Adds documentation for V4L drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/index.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/index.rst b/Documentation/index.rst
index b61d8deb84d1..31273cc2e0bc 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -17,6 +17,7 @@ Contents:
    media/media_uapi
    media/media_drivers
    media/dvb-drivers/index
+   media/v4l-drivers/index
 
 Indices and tables
 ==================
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 09/36] [media] doc-rst: Move v4l docs to media/v4l-drivers
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (6 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 08/36] doc-rst: add v4l-drivers to index file Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 10/36] [media] doc-rst: convert fourcc to rst format Mauro Carvalho Chehab
                   ` (26 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List; +Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab

Move V4L documentation files to media/v4l-drivers. Those aren't
core stuff, so they don't fit at the kAPI document.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/{video4linux/cafe_ccic => media/v4l-drivers/cafe_ccic.rst}  | 0
 Documentation/{video4linux/README.cpia2 => media/v4l-drivers/cpia2.rst}   | 0
 .../cpia2_overview.txt => media/v4l-drivers/cpia2_overview.rst}           | 0
 Documentation/{video4linux/cx18.txt => media/v4l-drivers/cx18.rst}        | 0
 Documentation/{video4linux/README.cx88 => media/v4l-drivers/cx88.rst}     | 0
 .../README.davinci-vpbe => media/v4l-drivers/davinci-vpbe.rst}            | 0
 Documentation/{video4linux/fimc.txt => media/v4l-drivers/fimc.rst}        | 0
 Documentation/{video4linux/4CCs.txt => media/v4l-drivers/fourcc.rst}      | 0
 Documentation/{video4linux/gspca.txt => media/v4l-drivers/gspca.rst}      | 0
 Documentation/{video4linux/README.ivtv => media/v4l-drivers/ivtv.rst}     | 0
 Documentation/{video4linux/meye.txt => media/v4l-drivers/meye.rst}        | 0
 .../{video4linux/omap3isp.txt => media/v4l-drivers/omap3isp.rst}          | 0
 .../{video4linux/omap4_camera.txt => media/v4l-drivers/omap4_camera.rst}  | 0
 .../{video4linux/README.pvrusb2 => media/v4l-drivers/pvrusb2.rst}         | 0
 .../{video4linux/pxa_camera.txt => media/v4l-drivers/pxa_camera.rst}      | 0
 .../{video4linux/radiotrack.txt => media/v4l-drivers/radiotrack.rst}      | 0
 .../{video4linux/README.saa7134 => media/v4l-drivers/saa7134.rst}         | 0
 .../v4l-drivers/sh_mobile_ceu_camera.rst}                                 | 0
 Documentation/{video4linux/si470x.txt => media/v4l-drivers/si470x.rst}    | 0
 Documentation/{video4linux/si4713.txt => media/v4l-drivers/si4713.rst}    | 0
 Documentation/{video4linux/si476x.txt => media/v4l-drivers/si476x.rst}    | 0
 .../{video4linux/soc-camera.txt => media/v4l-drivers/soc-camera.rst}      | 0
 .../{video4linux/uvcvideo.txt => media/v4l-drivers/uvcvideo.rst}          | 0
 .../{video4linux/README.ir => media/v4l-drivers/v4l-with-ir.rst}          | 0
 Documentation/{video4linux/vivid.txt => media/v4l-drivers/vivid.rst}      | 0
 Documentation/{video4linux/Zoran => media/v4l-drivers/zoran.rst}          | 0
 Documentation/{video4linux/zr364xx.txt => media/v4l-drivers/zr364xx.rst}  | 0
 27 files changed, 0 insertions(+), 0 deletions(-)
 rename Documentation/{video4linux/cafe_ccic => media/v4l-drivers/cafe_ccic.rst} (100%)
 rename Documentation/{video4linux/README.cpia2 => media/v4l-drivers/cpia2.rst} (100%)
 rename Documentation/{video4linux/cpia2_overview.txt => media/v4l-drivers/cpia2_overview.rst} (100%)
 rename Documentation/{video4linux/cx18.txt => media/v4l-drivers/cx18.rst} (100%)
 rename Documentation/{video4linux/README.cx88 => media/v4l-drivers/cx88.rst} (100%)
 rename Documentation/{video4linux/README.davinci-vpbe => media/v4l-drivers/davinci-vpbe.rst} (100%)
 rename Documentation/{video4linux/fimc.txt => media/v4l-drivers/fimc.rst} (100%)
 rename Documentation/{video4linux/4CCs.txt => media/v4l-drivers/fourcc.rst} (100%)
 rename Documentation/{video4linux/gspca.txt => media/v4l-drivers/gspca.rst} (100%)
 rename Documentation/{video4linux/README.ivtv => media/v4l-drivers/ivtv.rst} (100%)
 rename Documentation/{video4linux/meye.txt => media/v4l-drivers/meye.rst} (100%)
 rename Documentation/{video4linux/omap3isp.txt => media/v4l-drivers/omap3isp.rst} (100%)
 rename Documentation/{video4linux/omap4_camera.txt => media/v4l-drivers/omap4_camera.rst} (100%)
 rename Documentation/{video4linux/README.pvrusb2 => media/v4l-drivers/pvrusb2.rst} (100%)
 rename Documentation/{video4linux/pxa_camera.txt => media/v4l-drivers/pxa_camera.rst} (100%)
 rename Documentation/{video4linux/radiotrack.txt => media/v4l-drivers/radiotrack.rst} (100%)
 rename Documentation/{video4linux/README.saa7134 => media/v4l-drivers/saa7134.rst} (100%)
 rename Documentation/{video4linux/sh_mobile_ceu_camera.txt => media/v4l-drivers/sh_mobile_ceu_camera.rst} (100%)
 rename Documentation/{video4linux/si470x.txt => media/v4l-drivers/si470x.rst} (100%)
 rename Documentation/{video4linux/si4713.txt => media/v4l-drivers/si4713.rst} (100%)
 rename Documentation/{video4linux/si476x.txt => media/v4l-drivers/si476x.rst} (100%)
 rename Documentation/{video4linux/soc-camera.txt => media/v4l-drivers/soc-camera.rst} (100%)
 rename Documentation/{video4linux/uvcvideo.txt => media/v4l-drivers/uvcvideo.rst} (100%)
 rename Documentation/{video4linux/README.ir => media/v4l-drivers/v4l-with-ir.rst} (100%)
 rename Documentation/{video4linux/vivid.txt => media/v4l-drivers/vivid.rst} (100%)
 rename Documentation/{video4linux/Zoran => media/v4l-drivers/zoran.rst} (100%)
 rename Documentation/{video4linux/zr364xx.txt => media/v4l-drivers/zr364xx.rst} (100%)

diff --git a/Documentation/video4linux/cafe_ccic b/Documentation/media/v4l-drivers/cafe_ccic.rst
similarity index 100%
rename from Documentation/video4linux/cafe_ccic
rename to Documentation/media/v4l-drivers/cafe_ccic.rst
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/media/v4l-drivers/cpia2.rst
similarity index 100%
rename from Documentation/video4linux/README.cpia2
rename to Documentation/media/v4l-drivers/cpia2.rst
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/media/v4l-drivers/cpia2_overview.rst
similarity index 100%
rename from Documentation/video4linux/cpia2_overview.txt
rename to Documentation/media/v4l-drivers/cpia2_overview.rst
diff --git a/Documentation/video4linux/cx18.txt b/Documentation/media/v4l-drivers/cx18.rst
similarity index 100%
rename from Documentation/video4linux/cx18.txt
rename to Documentation/media/v4l-drivers/cx18.rst
diff --git a/Documentation/video4linux/README.cx88 b/Documentation/media/v4l-drivers/cx88.rst
similarity index 100%
rename from Documentation/video4linux/README.cx88
rename to Documentation/media/v4l-drivers/cx88.rst
diff --git a/Documentation/video4linux/README.davinci-vpbe b/Documentation/media/v4l-drivers/davinci-vpbe.rst
similarity index 100%
rename from Documentation/video4linux/README.davinci-vpbe
rename to Documentation/media/v4l-drivers/davinci-vpbe.rst
diff --git a/Documentation/video4linux/fimc.txt b/Documentation/media/v4l-drivers/fimc.rst
similarity index 100%
rename from Documentation/video4linux/fimc.txt
rename to Documentation/media/v4l-drivers/fimc.rst
diff --git a/Documentation/video4linux/4CCs.txt b/Documentation/media/v4l-drivers/fourcc.rst
similarity index 100%
rename from Documentation/video4linux/4CCs.txt
rename to Documentation/media/v4l-drivers/fourcc.rst
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/media/v4l-drivers/gspca.rst
similarity index 100%
rename from Documentation/video4linux/gspca.txt
rename to Documentation/media/v4l-drivers/gspca.rst
diff --git a/Documentation/video4linux/README.ivtv b/Documentation/media/v4l-drivers/ivtv.rst
similarity index 100%
rename from Documentation/video4linux/README.ivtv
rename to Documentation/media/v4l-drivers/ivtv.rst
diff --git a/Documentation/video4linux/meye.txt b/Documentation/media/v4l-drivers/meye.rst
similarity index 100%
rename from Documentation/video4linux/meye.txt
rename to Documentation/media/v4l-drivers/meye.rst
diff --git a/Documentation/video4linux/omap3isp.txt b/Documentation/media/v4l-drivers/omap3isp.rst
similarity index 100%
rename from Documentation/video4linux/omap3isp.txt
rename to Documentation/media/v4l-drivers/omap3isp.rst
diff --git a/Documentation/video4linux/omap4_camera.txt b/Documentation/media/v4l-drivers/omap4_camera.rst
similarity index 100%
rename from Documentation/video4linux/omap4_camera.txt
rename to Documentation/media/v4l-drivers/omap4_camera.rst
diff --git a/Documentation/video4linux/README.pvrusb2 b/Documentation/media/v4l-drivers/pvrusb2.rst
similarity index 100%
rename from Documentation/video4linux/README.pvrusb2
rename to Documentation/media/v4l-drivers/pvrusb2.rst
diff --git a/Documentation/video4linux/pxa_camera.txt b/Documentation/media/v4l-drivers/pxa_camera.rst
similarity index 100%
rename from Documentation/video4linux/pxa_camera.txt
rename to Documentation/media/v4l-drivers/pxa_camera.rst
diff --git a/Documentation/video4linux/radiotrack.txt b/Documentation/media/v4l-drivers/radiotrack.rst
similarity index 100%
rename from Documentation/video4linux/radiotrack.txt
rename to Documentation/media/v4l-drivers/radiotrack.rst
diff --git a/Documentation/video4linux/README.saa7134 b/Documentation/media/v4l-drivers/saa7134.rst
similarity index 100%
rename from Documentation/video4linux/README.saa7134
rename to Documentation/media/v4l-drivers/saa7134.rst
diff --git a/Documentation/video4linux/sh_mobile_ceu_camera.txt b/Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst
similarity index 100%
rename from Documentation/video4linux/sh_mobile_ceu_camera.txt
rename to Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst
diff --git a/Documentation/video4linux/si470x.txt b/Documentation/media/v4l-drivers/si470x.rst
similarity index 100%
rename from Documentation/video4linux/si470x.txt
rename to Documentation/media/v4l-drivers/si470x.rst
diff --git a/Documentation/video4linux/si4713.txt b/Documentation/media/v4l-drivers/si4713.rst
similarity index 100%
rename from Documentation/video4linux/si4713.txt
rename to Documentation/media/v4l-drivers/si4713.rst
diff --git a/Documentation/video4linux/si476x.txt b/Documentation/media/v4l-drivers/si476x.rst
similarity index 100%
rename from Documentation/video4linux/si476x.txt
rename to Documentation/media/v4l-drivers/si476x.rst
diff --git a/Documentation/video4linux/soc-camera.txt b/Documentation/media/v4l-drivers/soc-camera.rst
similarity index 100%
rename from Documentation/video4linux/soc-camera.txt
rename to Documentation/media/v4l-drivers/soc-camera.rst
diff --git a/Documentation/video4linux/uvcvideo.txt b/Documentation/media/v4l-drivers/uvcvideo.rst
similarity index 100%
rename from Documentation/video4linux/uvcvideo.txt
rename to Documentation/media/v4l-drivers/uvcvideo.rst
diff --git a/Documentation/video4linux/README.ir b/Documentation/media/v4l-drivers/v4l-with-ir.rst
similarity index 100%
rename from Documentation/video4linux/README.ir
rename to Documentation/media/v4l-drivers/v4l-with-ir.rst
diff --git a/Documentation/video4linux/vivid.txt b/Documentation/media/v4l-drivers/vivid.rst
similarity index 100%
rename from Documentation/video4linux/vivid.txt
rename to Documentation/media/v4l-drivers/vivid.rst
diff --git a/Documentation/video4linux/Zoran b/Documentation/media/v4l-drivers/zoran.rst
similarity index 100%
rename from Documentation/video4linux/Zoran
rename to Documentation/media/v4l-drivers/zoran.rst
diff --git a/Documentation/video4linux/zr364xx.txt b/Documentation/media/v4l-drivers/zr364xx.rst
similarity index 100%
rename from Documentation/video4linux/zr364xx.txt
rename to Documentation/media/v4l-drivers/zr364xx.rst
-- 
2.7.4


^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH 10/36] [media] doc-rst: convert fourcc to rst format
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (7 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 09/36] [media] doc-rst: Move v4l docs to media/v4l-drivers Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 11/36] [media] doc-rst: convert cafe_ccic file " Mauro Carvalho Chehab
                   ` (25 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Fix fourcc for it to be correcly parsed by Sphinx.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/fourcc.rst | 20 +++++++++-----------
 Documentation/media/v4l-drivers/index.rst  |  1 +
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/Documentation/media/v4l-drivers/fourcc.rst b/Documentation/media/v4l-drivers/fourcc.rst
index 41241af1ebfe..f7c8cefff02a 100644
--- a/Documentation/media/v4l-drivers/fourcc.rst
+++ b/Documentation/media/v4l-drivers/fourcc.rst
@@ -8,24 +8,22 @@ other three characters depends on the first one.
 
 Existing 4CCs may not obey these guidelines.
 
-Formats
-=======
-
 Raw bayer
 ---------
 
 The following first characters are used by raw bayer formats:
 
-	B: raw bayer, uncompressed
-	b: raw bayer, DPCM compressed
-	a: A-law compressed
-	u: u-law compressed
+- B: raw bayer, uncompressed
+- b: raw bayer, DPCM compressed
+- a: A-law compressed
+- u: u-law compressed
 
 2nd character: pixel order
-	B: BGGR
-	G: GBRG
-	g: GRBG
-	R: RGGB
+
+- B: BGGR
+- G: GBRG
+- g: GRBG
+- R: RGGB
 
 3rd character: uncompressed bits-per-pixel 0--9, A--
 
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index b18c02426a40..6391f1622e26 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -18,4 +18,5 @@ License".
 .. toctree::
 	:maxdepth: 5
 
+	fourcc
 	cardlist
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 11/36] [media] doc-rst: convert cafe_ccic file to rst format
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (8 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 10/36] [media] doc-rst: convert fourcc to rst format Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 12/36] [media] doc-rst: add gspca cardlist Mauro Carvalho Chehab
                   ` (24 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

This file is almost ok, but it needs chapter/sections
and a code-block.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/cafe_ccic.rst | 24 +++++++++++++++---------
 Documentation/media/v4l-drivers/index.rst     |  1 +
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/Documentation/media/v4l-drivers/cafe_ccic.rst b/Documentation/media/v4l-drivers/cafe_ccic.rst
index 88821022a5de..b98eb3b7cb4a 100644
--- a/Documentation/media/v4l-drivers/cafe_ccic.rst
+++ b/Documentation/media/v4l-drivers/cafe_ccic.rst
@@ -1,3 +1,11 @@
+The cafe_ccic driver
+====================
+
+Author: Jonathan Corbet <corbet@lwn.net>
+
+Introdution
+-----------
+
 "cafe_ccic" is a driver for the Marvell 88ALP01 "cafe" CMOS camera
 controller.  This is the controller found in first-generation OLPC systems,
 and this driver was written with support from the OLPC project.
@@ -10,11 +18,16 @@ sensor is known to work with this controller at this time.
 
 To try it out: either of these commands will work:
 
-     mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound
-     mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound
+.. code-block:: none
+
+     $ mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound
+     $ mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound
 
 The "xawtv" utility also works; gqcam does not, for unknown reasons.
 
+Load time options
+-----------------
+
 There are a few load-time options, most of which can be changed after
 loading via sysfs as well:
 
@@ -45,10 +58,3 @@ loading via sysfs as well:
  - flip: If this boolean parameter is set, the sensor will be instructed to
    invert the video image.  Whether it makes sense is determined by how
    your particular camera is mounted.
-
-Work is ongoing with this driver, stay tuned.
-
-jon
-
-Jonathan Corbet
-corbet@lwn.net
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 6391f1622e26..72a96206fcf8 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -20,3 +20,4 @@ License".
 
 	fourcc
 	cardlist
+	cafe_ccic
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 12/36] [media] doc-rst: add gspca cardlist
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (9 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 11/36] [media] doc-rst: convert cafe_ccic file " Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 13/36] [media] doc-rst: add Zoran zr364xx documentation Mauro Carvalho Chehab
                   ` (23 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/cardlist.rst             |  1 +
 .../media/v4l-drivers/{gspca.rst => gspca-cardlist.rst}  | 16 ++++++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)
 rename Documentation/media/v4l-drivers/{gspca.rst => gspca-cardlist.rst} (97%)

diff --git a/Documentation/media/v4l-drivers/cardlist.rst b/Documentation/media/v4l-drivers/cardlist.rst
index 4632a6857f0e..8a0728d20684 100644
--- a/Documentation/media/v4l-drivers/cardlist.rst
+++ b/Documentation/media/v4l-drivers/cardlist.rst
@@ -15,3 +15,4 @@ Cards List
 	tm6000-cardlist
 	tuner-cardlist
 	usbvision-cardlist
+	gspca-cardlist
diff --git a/Documentation/media/v4l-drivers/gspca.rst b/Documentation/media/v4l-drivers/gspca-cardlist.rst
similarity index 97%
rename from Documentation/media/v4l-drivers/gspca.rst
rename to Documentation/media/v4l-drivers/gspca-cardlist.rst
index d2ba80bb7af5..33a8ac7d73ab 100644
--- a/Documentation/media/v4l-drivers/gspca.rst
+++ b/Documentation/media/v4l-drivers/gspca-cardlist.rst
@@ -1,11 +1,14 @@
-List of the webcams known by gspca.
+The gspca cards list
+====================
 
-The modules are:
-	gspca_main	main driver
-	gspca_xxxx	subdriver module with xxxx as follows
+The modules for the gspca webcam drivers are:
 
-xxxx		vend:prod
-----
+- gspca_main: main driver
+- gspca\_\ *driver*: subdriver module with *driver* as follows
+
+=========	=========	====================================================================
+*driver*	vend:prod	Device
+=========	=========	====================================================================
 spca501		0000:0000	MystFromOri Unknown Camera
 spca508		0130:0130	Clone Digital Webcam 11043
 zc3xx		03f0:1b07	HP Premium Starter Cam
@@ -406,3 +409,4 @@ sn9c20x		a168:0614	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 sn9c20x		a168:0615	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 sn9c20x		a168:0617	Dino-Lite Digital Microscope (SN9C201 + MT9M111)
 spca561		abcd:cdee	Petcam
+=========	=========	====================================================================
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 13/36] [media] doc-rst: add Zoran zr364xx documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (10 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 12/36] [media] doc-rst: add gspca cardlist Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 14/36] [media] doc-rst: add documentation for cpia2 driver Mauro Carvalho Chehab
                   ` (22 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert the documentation to rst and add it to the book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst   |  1 +
 Documentation/media/v4l-drivers/zr364xx.rst | 89 +++++++++++++++++++++--------
 2 files changed, 65 insertions(+), 25 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 72a96206fcf8..264ff5cf85f4 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -21,3 +21,4 @@ License".
 	fourcc
 	cardlist
 	cafe_ccic
+	zr364xx
diff --git a/Documentation/media/v4l-drivers/zr364xx.rst b/Documentation/media/v4l-drivers/zr364xx.rst
index d98e4d302977..d8d1171887cd 100644
--- a/Documentation/media/v4l-drivers/zr364xx.rst
+++ b/Documentation/media/v4l-drivers/zr364xx.rst
@@ -1,40 +1,78 @@
-Zoran 364xx based USB webcam module version 0.72
+Zoran 364xx based USB webcam module
+===================================
+
 site: http://royale.zerezo.com/zr364xx/
+
 mail: royale@zerezo.com
 
-introduction:
-This brings support under Linux for the Aiptek PocketDV 3300 in webcam mode.
-If you just want to get on your PC the pictures and movies on the camera, you should use the usb-storage module instead.
-The driver works with several other cameras in webcam mode (see the list below).
-Maybe this code can work for other JPEG/USB cams based on the Coach chips from Zoran?
-Possible chipsets are : ZR36430 (ZR36430BGC) and maybe ZR36431, ZR36440, ZR36442...
-You can try the experience changing the vendor/product ID values (look at the source code).
-You can get these values by looking at /var/log/messages when you plug your camera, or by typing : cat /proc/bus/usb/devices.
-If you manage to use your cam with this code, you can send me a mail (royale@zerezo.com) with the name of your cam and a patch if needed.
-This is a beta release of the driver.
-Since version 0.70, this driver is only compatible with V4L2 API and 2.6.x kernels.
-If you need V4L1 or 2.4x kernels support, please use an older version, but the code is not maintained anymore.
-Good luck!
-
-install:
+.. note:
+
+   This documentation is outdated
+
+Introduction
+------------
+
+
+This brings support under Linux for the Aiptek PocketDV 3300 in webcam
+mode. If you just want to get on your PC the pictures and movies on the
+camera, you should use the usb-storage module instead.
+
+The driver works with several other cameras in webcam mode (see the list
+below).
+
+Maybe this code can work for other JPEG/USB cams based on the Coach
+chips from Zoran?
+
+Possible chipsets are : ZR36430 (ZR36430BGC) and
+maybe ZR36431, ZR36440, ZR36442...
+
+You can try the experience changing the vendor/product ID values (look
+at the source code).
+
+You can get these values by looking at /var/log/messages when you plug
+your camera, or by typing : cat /proc/bus/usb/devices.
+
+If you manage to use your cam with this code, you can send me a mail
+(royale@zerezo.com) with the name of your cam and a patch if needed.
+
+This is a beta release of the driver. Since version 0.70, this driver is
+only compatible with V4L2 API and 2.6.x kernels. If you need V4L1 or
+2.4x kernels support, please use an older version, but the code is not
+maintained anymore. Good luck!
+
+Install
+-------
+
 In order to use this driver, you must compile it with your kernel.
+
 Location: Device Drivers -> Multimedia devices -> Video For Linux -> Video Capture Adapters -> V4L USB devices
 
-usage:
+Usage
+-----
+
 modprobe zr364xx debug=X mode=Y
- - debug      : set to 1 to enable verbose debug messages
- - mode       : 0 = 320x240, 1 = 160x120, 2 = 640x480
-You can then use the camera with V4L2 compatible applications, for example Ekiga.
-To capture a single image, try this: dd if=/dev/video0 of=test.jpg bs=1M count=1
 
-links :
+- debug      : set to 1 to enable verbose debug messages
+- mode       : 0 = 320x240, 1 = 160x120, 2 = 640x480
+
+You can then use the camera with V4L2 compatible applications, for
+example Ekiga.
+
+To capture a single image, try this: dd if=/dev/video0 of=test.jpg bs=1M
+count=1
+
+links
+-----
+
 http://mxhaard.free.fr/ (support for many others cams including some Aiptek PocketDV)
 http://www.harmwal.nl/pccam880/ (this project also supports cameras based on this chipset)
 
-supported devices:
-------  -------  -----------     -----
+Supported devices
+-----------------
+
+======  =======  ==============  ====================
 Vendor  Product  Distributor     Model
-------  -------  -----------     -----
+======  =======  ==============  ====================
 0x08ca  0x0109   Aiptek          PocketDV 3300
 0x08ca  0x0109   Maxell          Maxcam PRO DV3
 0x041e  0x4024   Creative        PC-CAM 880
@@ -67,3 +105,4 @@ Vendor  Product  Distributor     Model
 0x041e  0x405d   Creative        DiVi CAM 516
 0x08ca  0x2102   Aiptek          DV T300
 0x06d6  0x003d   Trust           Powerc@m 910Z
+======  =======  ==============  ====================
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 14/36] [media] doc-rst: add documentation for cpia2 driver
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (11 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 13/36] [media] doc-rst: add Zoran zr364xx documentation Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 15/36] [media] doc-rst: Add cx88 documentation to media book Mauro Carvalho Chehab
                   ` (21 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert the documentation to rst, merge the two files and
add to the index.rst.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/cpia2.rst          | 202 +++++++++++++--------
 Documentation/media/v4l-drivers/cpia2_overview.rst |  38 ----
 Documentation/media/v4l-drivers/cx18.rst           |   7 +
 Documentation/media/v4l-drivers/index.rst          |   2 +
 4 files changed, 140 insertions(+), 109 deletions(-)
 delete mode 100644 Documentation/media/v4l-drivers/cpia2_overview.rst

diff --git a/Documentation/media/v4l-drivers/cpia2.rst b/Documentation/media/v4l-drivers/cpia2.rst
index 38e742fd0df7..763705c1f50f 100644
--- a/Documentation/media/v4l-drivers/cpia2.rst
+++ b/Documentation/media/v4l-drivers/cpia2.rst
@@ -1,107 +1,132 @@
-$Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $
+The cpia2 driver
+================
 
-1. Introduction
+Authors: Peter Pregler <Peter_Pregler@email.com>,
+Scott J. Bertin <scottbertin@yahoo.com>, and
+Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
+this one was modelled from.
 
-	This is a driver for STMicroelectronics's CPiA2 (second generation
+Introduction
+------------
+
+This is a driver for STMicroelectronics's CPiA2 (second generation
 Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG
 stream at up to vga size. It implements the Video4Linux interface as much as
 possible.  Since the V4L interface does not support compressed formats, only
 an mjpeg enabled application can be used with the camera. We have modified the
 gqcam application to view this stream.
 
-	The driver is implemented as two kernel modules. The cpia2 module
+The driver is implemented as two kernel modules. The cpia2 module
 contains the camera functions and the V4L interface.  The cpia2_usb module
 contains usb specific functions.  The main reason for this was the size of the
 module was getting out of hand, so I separated them.  It is not likely that
 there will be a parallel port version.
 
-FEATURES:
-   - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
-     sensors. I only have the vga sensor, so can't test the other.
-   - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
-     VGA and QVGA are the native image sizes for the VGA camera. CIF is done
-     in the coprocessor by scaling QVGA.  All other sizes are done by clipping.
-   - Palette: YCrCb, compressed with MJPEG.
-   - Some compression parameters are settable.
-   - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
-   - Adjust brightness, color, contrast while streaming.
-   - Flicker control settable for 50 or 60 Hz mains frequency.
+Features
+--------
 
-2. Making and installing the stv672 driver modules:
+- Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
+  sensors. I only have the vga sensor, so can't test the other.
+- Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
+  VGA and QVGA are the native image sizes for the VGA camera. CIF is done
+  in the coprocessor by scaling QVGA.  All other sizes are done by clipping.
+- Palette: YCrCb, compressed with MJPEG.
+- Some compression parameters are settable.
+- Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
+- Adjust brightness, color, contrast while streaming.
+- Flicker control settable for 50 or 60 Hz mains frequency.
 
-	Requirements:
-	-------------
-	This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has
-only been tested on 2.6.  Video4Linux must be either compiled into the kernel or
+Making and installing the stv672 driver modules
+-----------------------------------------------
+
+Requirements
+~~~~~~~~~~~~
+
+Video4Linux must be either compiled into the kernel or
 available as a module.  Video4Linux2 is automatically detected and made
 available at compile time.
 
-	Compiling:
-	----------
-	As root, do a make install.  This will compile and install the modules
-into the media/video directory in the module tree. For 2.4 kernels, use
-Makefile_2.4 (aka do make -f Makefile_2.4 install).
+Setup
+~~~~~
 
-	Setup:
-	------
-	Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
+Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
 may be done automatically by your distribution.
 
-3. Driver options
+Driver options
+~~~~~~~~~~~~~~
 
-	Option		Description
-	------		-----------
-	video_nr	video device to register (0=/dev/video0, etc)
-			range -1 to 64.  default is -1 (first available)
-			If you have more than 1 camera, this MUST be -1.
-	buffer_size	Size for each frame buffer in bytes (default 68k)
-	num_buffers	Number of frame buffers (1-32, default 3)
-	alternate	USB Alternate (2-7, default 7)
-	flicker_freq	Frequency for flicker reduction(50 or 60, default 60)
-	flicker_mode	0 to disable, or 1 to enable flicker reduction.
-			(default 0). This is only effective if the camera
-			uses a stv0672 coprocessor.
+==============  ========================================================
+Option		Description
+==============  ========================================================
+video_nr	video device to register (0=/dev/video0, etc)
+		range -1 to 64.  default is -1 (first available)
+		If you have more than 1 camera, this MUST be -1.
+buffer_size	Size for each frame buffer in bytes (default 68k)
+num_buffers	Number of frame buffers (1-32, default 3)
+alternate	USB Alternate (2-7, default 7)
+flicker_freq	Frequency for flicker reduction(50 or 60, default 60)
+flicker_mode	0 to disable, or 1 to enable flicker reduction.
+		(default 0). This is only effective if the camera
+		uses a stv0672 coprocessor.
+==============  ========================================================
 
-	Setting the options:
-	--------------------
-	If you are using modules, edit /etc/modules.conf and add an options
+Setting the options
+~~~~~~~~~~~~~~~~~~~
+
+If you are using modules, edit /etc/modules.conf and add an options
 line like this:
+
+.. code-block:: none
+
 	options cpia2 num_buffers=3 buffer_size=65535
 
-	If the driver is compiled into the kernel, at boot time specify them
+If the driver is compiled into the kernel, at boot time specify them
 like this:
+
+.. code-block:: none
+
 	cpia2.num_buffers=3 cpia2.buffer_size=65535
 
-	What buffer size should I use?
-	------------------------------
-	The maximum image size depends on the alternate you choose, and the
+What buffer size should I use?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The maximum image size depends on the alternate you choose, and the
 frame rate achieved by the camera.  If the compression engine is able to
 keep up with the frame rate, the maximum image size is given by the table
 below.
-	The compression engine starts out at maximum compression, and will
+
+The compression engine starts out at maximum compression, and will
 increase image quality until it is close to the size in the table.  As long
 as the compression engine can keep up with the frame rate, after a short time
 the images will all be about the size in the table, regardless of resolution.
-	At low alternate settings, the compression engine may not be able to
+
+At low alternate settings, the compression engine may not be able to
 compress the image enough and will reduce the frame rate by producing larger
 images.
-	The default of 68k should be good for most users.  This will handle
+
+The default of 68k should be good for most users.  This will handle
 any alternate at frame rates down to 15fps.  For lower frame rates, it may
 be necessary to increase the buffer size to avoid having frames dropped due
 to insufficient space.
 
-			     Image size(bytes)
-	Alternate  bytes/ms   15fps    30fps
-	    2         128      8533     4267
-	    3         384     25600    12800
-	    4         640     42667    21333
-	    5         768     51200    25600
-	    6         896     59733    29867
-	    7        1023     68200    34100
-
-	How many buffers should I use?
-	------------------------------
-	For normal streaming, 3 should give the best results.  With only 2,
+========== ========== ======== =====
+Alternate  bytes/ms   15fps    30fps
+========== ========== ======== =====
+    2         128      8533     4267
+    3         384     25600    12800
+    4         640     42667    21333
+    5         768     51200    25600
+    6         896     59733    29867
+    7        1023     68200    34100
+========== ========== ======== =====
+
+Table: Image size(bytes)
+
+
+How many buffers should I use?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For normal streaming, 3 should give the best results.  With only 2,
 it is possible for the camera to finish sending one image just after a
 program has started reading the other.  If this happens, the driver must drop
 a frame.  The exception to this is if you have a heavily loaded machine.  In
@@ -110,21 +135,56 @@ If the camera can send multiple images before a read finishes, it could
 overwrite the third buffer before the read finishes, leading to a corrupt
 image.  Single and double buffering have extra checks to avoid overwriting.
 
-4. Using the camera
+Using the camera
+~~~~~~~~~~~~~~~~
 
-	We are providing a modified gqcam application to view the output. In
+We are providing a modified gqcam application to view the output. In
 order to avoid confusion, here it is called mview.  There is also the qx5view
 program which can also control the lights on the qx5 microscope. MJPEG Tools
 (http://mjpeg.sourceforge.net) can also be used to record from the camera.
 
-5. Notes to developers:
+Notes to developers
+~~~~~~~~~~~~~~~~~~~
 
    - This is a driver version stripped of the 2.4 back compatibility
      and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support.
 
-6. Thanks:
+Programmer's overview of cpia2 driver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-   - Peter Pregler <Peter_Pregler@email.com>,
-     Scott J. Bertin <scottbertin@yahoo.com>, and
-     Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
-     this one was modelled from.
+Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a
+division of ST Microelectronics).  There are two versions.  The first is the
+STV0672, which is capable of up to 30 frames per second (fps) in frame sizes
+up to CIF, and 15 fps for VGA frames.  The STV0676 is an improved version,
+which can handle up to 30 fps VGA.  Both coprocessors can be attached to two
+CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor.  These will
+be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors.
+
+The two chipsets operate almost identically.  The core is an 8051 processor,
+running two different versions of firmware.  The 672 runs the VP4 video
+processor code, the 676 runs VP5.  There are a few differences in register
+mappings for the two chips.  In these cases, the symbols defined in the
+header files are marked with VP4 or VP5 as part of the symbol name.
+
+The cameras appear externally as three sets of registers. Setting register
+values is the only way to control the camera.  Some settings are
+interdependant, such as the sequence required to power up the camera. I will
+try to make note of all of these cases.
+
+The register sets are called blocks.  Block 0 is the system block.  This
+section is always powered on when the camera is plugged in.  It contains
+registers that control housekeeping functions such as powering up the video
+processor.  The video processor is the VP block.  These registers control
+how the video from the sensor is processed.  Examples are timing registers,
+user mode (vga, qvga), scaling, cropping, framerates, and so on.  The last
+block is the video compressor (VC).  The video stream sent from the camera is
+compressed as Motion JPEG (JPEGA).  The VC controls all of the compression
+parameters.  Looking at the file cpia2_registers.h, you can get a full view
+of these registers and the possible values for most of them.
+
+One or more registers can be set or read by sending a usb control message to
+the camera.  There are three modes for this.  Block mode requests a number
+of contiguous registers.  Random mode reads or writes random registers with
+a tuple structure containing address/value pairs.  The repeat mode is only
+used by VP4 to load a firmware patch.  It contains a starting address and
+a sequence of bytes to be written into a gpio port.
diff --git a/Documentation/media/v4l-drivers/cpia2_overview.rst b/Documentation/media/v4l-drivers/cpia2_overview.rst
deleted file mode 100644
index ad6adbedfe50..000000000000
--- a/Documentation/media/v4l-drivers/cpia2_overview.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-			Programmer's View of Cpia2
-
-Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a
-division of ST Microelectronics).  There are two versions.  The first is the
-STV0672, which is capable of up to 30 frames per second (fps) in frame sizes
-up to CIF, and 15 fps for VGA frames.  The STV0676 is an improved version,
-which can handle up to 30 fps VGA.  Both coprocessors can be attached to two
-CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor.  These will
-be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors.
-
-The two chipsets operate almost identically.  The core is an 8051 processor,
-running two different versions of firmware.  The 672 runs the VP4 video
-processor code, the 676 runs VP5.  There are a few differences in register
-mappings for the two chips.  In these cases, the symbols defined in the
-header files are marked with VP4 or VP5 as part of the symbol name.
-
-The cameras appear externally as three sets of registers. Setting register
-values is the only way to control the camera.  Some settings are
-interdependant, such as the sequence required to power up the camera. I will
-try to make note of all of these cases.
-
-The register sets are called blocks.  Block 0 is the system block.  This
-section is always powered on when the camera is plugged in.  It contains
-registers that control housekeeping functions such as powering up the video
-processor.  The video processor is the VP block.  These registers control
-how the video from the sensor is processed.  Examples are timing registers,
-user mode (vga, qvga), scaling, cropping, framerates, and so on.  The last
-block is the video compressor (VC).  The video stream sent from the camera is
-compressed as Motion JPEG (JPEGA).  The VC controls all of the compression
-parameters.  Looking at the file cpia2_registers.h, you can get a full view
-of these registers and the possible values for most of them.
-
-One or more registers can be set or read by sending a usb control message to
-the camera.  There are three modes for this.  Block mode requests a number
-of contiguous registers.  Random mode reads or writes random registers with
-a tuple structure containing address/value pairs.  The repeat mode is only
-used by VP4 to load a firmware patch.  It contains a starting address and
-a sequence of bytes to be written into a gpio port.
diff --git a/Documentation/media/v4l-drivers/cx18.rst b/Documentation/media/v4l-drivers/cx18.rst
index 4652c0f5da32..afa03f65b01c 100644
--- a/Documentation/media/v4l-drivers/cx18.rst
+++ b/Documentation/media/v4l-drivers/cx18.rst
@@ -1,3 +1,10 @@
+The cx18 driver
+===============
+
+.. note::
+
+   This documentation is outdated.
+
 Some notes regarding the cx18 driver for the Conexant CX23418 MPEG
 encoder chip:
 
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 264ff5cf85f4..07dc2596b0bd 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -21,4 +21,6 @@ License".
 	fourcc
 	cardlist
 	cafe_ccic
+	cpia2
+	cx18
 	zr364xx
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 15/36] [media] doc-rst: Add cx88 documentation to media book
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (12 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 14/36] [media] doc-rst: add documentation for cpia2 driver Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:55 ` [PATCH 16/36] [media] cx88.rst: Update the documentation Mauro Carvalho Chehab
                   ` (20 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Paul E. McKenney, Kees Cook, Randy Dunlap, linux-doc

Convert the cx88 documentation to rst and add it to the v4l-devices
book

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/cx88.rst  | 15 ++++++++++++---
 Documentation/media/v4l-drivers/index.rst |  1 +
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/Documentation/media/v4l-drivers/cx88.rst b/Documentation/media/v4l-drivers/cx88.rst
index b09ce36b921e..f4e69306f64d 100644
--- a/Documentation/media/v4l-drivers/cx88.rst
+++ b/Documentation/media/v4l-drivers/cx88.rst
@@ -1,11 +1,18 @@
+The cx88 driver
+===============
+
+.. note::
+
+   This documentation is outdated.
+
 cx8800 release notes
-====================
+--------------------
 
 This is a v4l2 device driver for the cx2388x chip.
 
 
 current status
-==============
+--------------
 
 video
 	- Basically works.
@@ -30,7 +37,7 @@ vbi
 
 
 how to add support for new cards
-================================
+--------------------------------
 
 The driver needs some config info for the TV cards.  This stuff is in
 cx88-cards.c.  If the driver doesn't work well you likely need a new
@@ -38,6 +45,8 @@ entry for your card in that file.  Check the kernel log (using dmesg)
 to see whenever the driver knows your card or not.  There is a line
 like this one:
 
+.. code-block:: none
+
 	cx8800[0]: subsystem: 0070:3400, board: Hauppauge WinTV \
 		34xxx models [card=1,autodetected]
 
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 07dc2596b0bd..839374e60280 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -23,4 +23,5 @@ License".
 	cafe_ccic
 	cpia2
 	cx18
+	cx88
 	zr364xx
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 16/36] [media] cx88.rst: Update the documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (13 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 15/36] [media] doc-rst: Add cx88 documentation to media book Mauro Carvalho Chehab
@ 2016-07-18  1:55 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 17/36] [media] doc-rst: add davinci-vpbe documentation Mauro Carvalho Chehab
                   ` (19 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:55 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Randy Dunlap, Paul E. McKenney, Kees Cook, linux-doc

This doc is outdated, and contains information that it is not
true anymore. Update it to reflect the changes that this
driver suffered since I started working on it.

While here, also update Gerd's name.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/cx88.rst | 52 +++++++++++---------------------
 1 file changed, 17 insertions(+), 35 deletions(-)

diff --git a/Documentation/media/v4l-drivers/cx88.rst b/Documentation/media/v4l-drivers/cx88.rst
index f4e69306f64d..ac83292776da 100644
--- a/Documentation/media/v4l-drivers/cx88.rst
+++ b/Documentation/media/v4l-drivers/cx88.rst
@@ -1,42 +1,29 @@
 The cx88 driver
 ===============
 
-.. note::
-
-   This documentation is outdated.
-
-cx8800 release notes
---------------------
+Author:  Gerd Hoffmann
 
 This is a v4l2 device driver for the cx2388x chip.
 
 
-current status
+Current status
 --------------
 
 video
-	- Basically works.
-	- For now, only capture and read(). Overlay isn't supported.
+	- Works.
+	- Overlay isn't supported.
 
 audio
-	- The chip specs for the on-chip TV sound decoder are next
-	  to useless :-/
-	- Neverless the builtin TV sound decoder starts working now,
-	  at least for some standards.
-	  FOR ANY REPORTS ON THIS PLEASE MENTION THE TV NORM YOU ARE
-	  USING.
-	- Most tuner chips do provide mono sound, which may or may not
-	  be useable depending on the board design.  With the Hauppauge
-	  cards it works, so there is mono sound available as fallback.
+	- Works. The TV standard detection is made by the driver, as the
+	  hardware has bugs to auto-detect.
 	- audio data dma (i.e. recording without loopback cable to the
 	  sound card) is supported via cx88-alsa.
 
 vbi
-	- Code present. Works for NTSC closed caption. PAL and other
-	  TV norms may or may not work.
+	- Works.
 
 
-how to add support for new cards
+How to add support for new cards
 --------------------------------
 
 The driver needs some config info for the TV cards.  This stuff is in
@@ -53,24 +40,19 @@ like this one:
 If your card is listed as "board: UNKNOWN/GENERIC" it is unknown to
 the driver.  What to do then?
 
- (1) Try upgrading to the latest snapshot, maybe it has been added
-     meanwhile.
- (2) You can try to create a new entry yourself, have a look at
-     cx88-cards.c.  If that worked, mail me your changes as unified
-     diff ("diff -u").
- (3) Or you can mail me the config information.  I need at least the
-     following information to add the card:
+1) Try upgrading to the latest snapshot, maybe it has been added
+   meanwhile.
+2) You can try to create a new entry yourself, have a look at
+   cx88-cards.c.  If that worked, mail me your changes as unified
+   diff ("diff -u").
+3) Or you can mail me the config information.  We need at least the
+   following information to add the card:
 
-     * the PCI Subsystem ID ("0070:3400" from the line above,
+     - the PCI Subsystem ID ("0070:3400" from the line above,
        "lspci -v" output is fine too).
-     * the tuner type used by the card.  You can try to find one by
+     - the tuner type used by the card.  You can try to find one by
        trial-and-error using the tuner=<n> insmod option.  If you
        know which one the card has you can also have a look at the
        list in CARDLIST.tuner
 
-Have fun,
 
-  Gerd
-
---
-Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 17/36] [media] doc-rst: add davinci-vpbe documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (14 preceding siblings ...)
  2016-07-18  1:55 ` [PATCH 16/36] [media] cx88.rst: Update the documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 18/36] [media] doc-rst: add documentation for fimc driver Mauro Carvalho Chehab
                   ` (18 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to rst format and add it to the v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/davinci-vpbe.rst | 32 +++++++++++++-----------
 Documentation/media/v4l-drivers/index.rst        |  1 +
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/Documentation/media/v4l-drivers/davinci-vpbe.rst b/Documentation/media/v4l-drivers/davinci-vpbe.rst
index dc9a297f49c3..b545fe001919 100644
--- a/Documentation/media/v4l-drivers/davinci-vpbe.rst
+++ b/Documentation/media/v4l-drivers/davinci-vpbe.rst
@@ -1,9 +1,9 @@
+The VPBE V4L2 driver design
+===========================
 
-                VPBE V4L2 driver design
- ======================================================================
+File partitioning
+-----------------
 
- File partitioning
- -----------------
  V4L2 display device driver
          drivers/media/platform/davinci/vpbe_display.c
          drivers/media/platform/davinci/vpbe_display.h
@@ -22,11 +22,11 @@
          drivers/media/platform/davinci/vpbe_osd.h
          drivers/media/platform/davinci/vpbe_osd_regs.h
 
- Functional partitioning
- -----------------------
+Functional partitioning
+-----------------------
 
- Consists of the following (in the same order as the list under file
- partitioning):-
+Consists of the following (in the same order as the list under file
+partitioning):
 
  1. V4L2 display driver
     Implements creation of video2 and video3 device nodes and
@@ -74,20 +74,22 @@
     features. The VPBE module interacts with the OSD for enabling and
     disabling appropriate features of the OSD.
 
- Current status:-
+Current status
+--------------
 
- A fully functional working version of the V4L2 driver is available. This
- driver has been tested with NTSC and PAL standards and buffer streaming.
+A fully functional working version of the V4L2 driver is available. This
+driver has been tested with NTSC and PAL standards and buffer streaming.
 
- Following are TBDs.
+To be done
+----------
 
- vpbe display controller
+vpbe display controller
     - Add support for external encoders.
     - add support for selecting external encoder as default at probe time.
 
- vpbe venc sub device
+vpbe venc sub device
     - add timings for supporting ths8200
     - add support for LogicPD LCD.
 
- FB drivers
+FB drivers
     - Add support for fbdev drivers.- Ready and part of subsequent patches.
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 839374e60280..1ab7a84de0ff 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -24,4 +24,5 @@ License".
 	cpia2
 	cx18
 	cx88
+	davinci-vpbe
 	zr364xx
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 18/36] [media] doc-rst: add documentation for fimc driver
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (15 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 17/36] [media] doc-rst: add davinci-vpbe documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 19/36] [media] doc-rst: Add ivtv documentation Mauro Carvalho Chehab
                   ` (17 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert the document to rst and add it to the v4l-drivers
book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/fimc.rst  | 95 +++++++++++++++++++------------
 Documentation/media/v4l-drivers/index.rst |  1 +
 2 files changed, 60 insertions(+), 36 deletions(-)

diff --git a/Documentation/media/v4l-drivers/fimc.rst b/Documentation/media/v4l-drivers/fimc.rst
index 4fab231be52e..d9f950d90eb5 100644
--- a/Documentation/media/v4l-drivers/fimc.rst
+++ b/Documentation/media/v4l-drivers/fimc.rst
@@ -1,7 +1,9 @@
-Samsung S5P/EXYNOS4 FIMC driver
+.. include:: <isonum.txt>
 
-Copyright (C) 2012 - 2013 Samsung Electronics Co., Ltd.
----------------------------------------------------------------------------
+The Samsung S5P/EXYNOS4 FIMC driver
+===================================
+
+Copyright |copy| 2012 - 2013 Samsung Electronics Co., Ltd.
 
 The FIMC (Fully Interactive Mobile Camera) device available in Samsung
 SoC Application Processors is an integrated camera host interface, color
@@ -12,50 +14,53 @@ slightly different capabilities, like pixel alignment constraints, rotator
 availability, LCD writeback support, etc. The driver is located at
 drivers/media/platform/exynos4-is directory.
 
-1. Supported SoCs
-=================
+Supported SoCs
+--------------
 
 S5PC100 (mem-to-mem only), S5PV210, EXYNOS4210
 
-2. Supported features
-=====================
+Supported features
+------------------
 
- - camera parallel interface capture (ITU-R.BT601/565);
- - camera serial interface capture (MIPI-CSI2);
- - memory-to-memory processing (color space conversion, scaling, mirror
-   and rotation);
- - dynamic pipeline re-configuration at runtime (re-attachment of any FIMC
-   instance to any parallel video input or any MIPI-CSI front-end);
- - runtime PM and system wide suspend/resume
+- camera parallel interface capture (ITU-R.BT601/565);
+- camera serial interface capture (MIPI-CSI2);
+- memory-to-memory processing (color space conversion, scaling, mirror
+  and rotation);
+- dynamic pipeline re-configuration at runtime (re-attachment of any FIMC
+  instance to any parallel video input or any MIPI-CSI front-end);
+- runtime PM and system wide suspend/resume
 
-Not currently supported:
- - LCD writeback input
- - per frame clock gating (mem-to-mem)
+Not currently supported
+-----------------------
 
-3. Files partitioning
-=====================
+- LCD writeback input
+- per frame clock gating (mem-to-mem)
+
+Files partitioning
+------------------
 
 - media device driver
   drivers/media/platform/exynos4-is/media-dev.[ch]
 
- - camera capture video device driver
+- camera capture video device driver
   drivers/media/platform/exynos4-is/fimc-capture.c
 
- - MIPI-CSI2 receiver subdev
+- MIPI-CSI2 receiver subdev
   drivers/media/platform/exynos4-is/mipi-csis.[ch]
 
- - video post-processor (mem-to-mem)
+- video post-processor (mem-to-mem)
   drivers/media/platform/exynos4-is/fimc-core.c
 
- - common files
+- common files
   drivers/media/platform/exynos4-is/fimc-core.h
   drivers/media/platform/exynos4-is/fimc-reg.h
   drivers/media/platform/exynos4-is/regs-fimc.h
 
-4. User space interfaces
-========================
+User space interfaces
+---------------------
 
-4.1. Media device interface
+Media device interface
+~~~~~~~~~~~~~~~~~~~~~~
 
 The driver supports Media Controller API as defined at
 https://linuxtv.org/downloads/v4l-dvb-apis/media_common.html
@@ -72,7 +77,8 @@ Reconfiguration is done by enabling/disabling media links created by the driver
 during initialization. The internal device topology can be easily discovered
 through media entity and links enumeration.
 
-4.2. Memory-to-memory video node
+Memory-to-memory video node
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 V4L2 memory-to-memory interface at /dev/video? device node.  This is standalone
 video device, it has no media pads. However please note the mem-to-mem and
@@ -80,7 +86,8 @@ capture video node operation on same FIMC instance is not allowed.  The driver
 detects such cases but the applications should prevent them to avoid an
 undefined behaviour.
 
-4.3. Capture video node
+Capture video node
+~~~~~~~~~~~~~~~~~~
 
 The driver supports V4L2 Video Capture Interface as defined at:
 https://linuxtv.org/downloads/v4l-dvb-apis/devices.html
@@ -89,13 +96,15 @@ At the capture and mem-to-mem video nodes only the multi-planar API is
 supported. For more details see:
 https://linuxtv.org/downloads/v4l-dvb-apis/planar-apis.html
 
-4.4. Camera capture subdevs
+Camera capture subdevs
+~~~~~~~~~~~~~~~~~~~~~~
 
 Each FIMC instance exports a sub-device node (/dev/v4l-subdev?), a sub-device
 node is also created per each available and enabled at the platform level
 MIPI-CSI receiver device (currently up to two).
 
-4.5. sysfs
+sysfs
+~~~~~
 
 In order to enable more precise camera pipeline control through the sub-device
 API the driver creates a sysfs entry associated with "s5p-fimc-md" platform
@@ -115,15 +124,22 @@ when the last configuration steps at the video node is performed.
 
 For full sub-device control support (subdevs configured at user space before
 starting streaming):
-# echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode
+
+.. code-block:: none
+
+	# echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode
 
 For V4L2 video node control only (subdevs configured internally by the host
 driver):
-# echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode
+
+.. code-block:: none
+
+	# echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode
+
 This is a default option.
 
 5. Device mapping to video and subdev device nodes
-==================================================
+--------------------------------------------------
 
 There are associated two video device nodes with each device instance in
 hardware - video capture and mem-to-mem and additionally a subdev node for
@@ -134,14 +150,21 @@ How to find out which /dev/video? or /dev/v4l-subdev? is assigned to which
 device?
 
 You can either grep through the kernel log to find relevant information, i.e.
-# dmesg | grep -i fimc
+
+.. code-block:: none
+
+	# dmesg | grep -i fimc
+
 (note that udev, if present, might still have rearranged the video nodes),
 
 or retrieve the information from /dev/media? with help of the media-ctl tool:
-# media-ctl -p
+
+.. code-block:: none
+
+	# media-ctl -p
 
 7. Build
-========
+--------
 
 If the driver is built as a loadable kernel module (CONFIG_VIDEO_SAMSUNG_S5P_FIMC=m)
 two modules are created (in addition to the core v4l2 modules): s5p-fimc.ko and
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 1ab7a84de0ff..333f84b9c17e 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -25,4 +25,5 @@ License".
 	cx18
 	cx88
 	davinci-vpbe
+	fimc
 	zr364xx
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 19/36] [media] doc-rst: Add ivtv documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (16 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 18/36] [media] doc-rst: add documentation for fimc driver Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 20/36] [media] doc-rst: add meye documentation Mauro Carvalho Chehab
                   ` (16 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert ivtv documentation to rst, update the links there
and add to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst |   1 +
 Documentation/media/v4l-drivers/ivtv.rst  | 209 +++++++++++++++++-------------
 2 files changed, 121 insertions(+), 89 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 333f84b9c17e..99409c6e2518 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -26,4 +26,5 @@ License".
 	cx88
 	davinci-vpbe
 	fimc
+	ivtv
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/ivtv.rst b/Documentation/media/v4l-drivers/ivtv.rst
index 2579b5b709ed..3ba464c4f9bf 100644
--- a/Documentation/media/v4l-drivers/ivtv.rst
+++ b/Documentation/media/v4l-drivers/ivtv.rst
@@ -1,26 +1,32 @@
 
-ivtv release notes
-==================
+The ivtv driver
+===============
+
+Author: Hans Verkuil <hverkuil@xs4all.nl>
 
 This is a v4l2 device driver for the Conexant cx23415/6 MPEG encoder/decoder.
 The cx23415 can do both encoding and decoding, the cx23416 can only do MPEG
 encoding. Currently the only card featuring full decoding support is the
 Hauppauge PVR-350.
 
-NOTE: this driver requires the latest encoder firmware (version 2.06.039, size
-376836 bytes). Get the firmware from here:
+.. note::
 
-http://dl.ivtvdriver.org/ivtv/firmware/
+   #) This driver requires the latest encoder firmware (version 2.06.039, size
+      376836 bytes). Get the firmware from here:
 
-NOTE: 'normal' TV applications do not work with this driver, you need
-an application that can handle MPEG input such as mplayer, xine, MythTV,
-etc.
+      https://linuxtv.org/downloads/firmware/#conexant
+
+   #) 'normal' TV applications do not work with this driver, you need
+      an application that can handle MPEG input such as mplayer, xine, MythTV,
+      etc.
 
 The primary goal of the IVTV project is to provide a "clean room" Linux
 Open Source driver implementation for video capture cards based on the
 iCompression iTVC15 or Conexant CX23415/CX23416 MPEG Codec.
 
-Features:
+Features
+--------
+
  * Hardware mpeg2 capture of broadcast video (and sound) via the tuner or
    S-Video/Composite and audio line-in.
  * Hardware mpeg2 capture of FM radio where hardware support exists
@@ -31,7 +37,9 @@ Features:
    this into the captured MPEG stream.
  * Supports raw YUV and PCM input.
 
-Additional features for the PVR-350 (CX23415 based):
+Additional features for the PVR-350 (CX23415 based)
+---------------------------------------------------
+
  * Provides hardware mpeg2 playback
  * Provides comprehensive OSD (On Screen Display: ie. graphics overlaying the
    video signal)
@@ -40,20 +48,22 @@ Additional features for the PVR-350 (CX23415 based):
  * Supports raw YUV output.
 
 IMPORTANT: In case of problems first read this page:
-	   http://www.ivtvdriver.org/index.php/Troubleshooting
+	https://help.ubuntu.com/community/Install_IVTV_Troubleshooting
 
-See also:
+See also
+--------
 
-Homepage + Wiki
-http://www.ivtvdriver.org
+https://linuxtv.org
 
 IRC
-irc://irc.freenode.net/ivtv-dev
+---
+
+irc://irc.freenode.net/#v4l
 
 ----------------------------------------------------------
 
 Devices
-=======
+-------
 
 A maximum of 12 ivtv boards are allowed at the moment.
 
@@ -65,25 +75,28 @@ The radio0 device may or may not be present, depending on whether the
 card has a radio tuner or not.
 
 Here is a list of the base v4l devices:
-crw-rw----    1 root     video     81,   0 Jun 19 22:22 /dev/video0
-crw-rw----    1 root     video     81,  16 Jun 19 22:22 /dev/video16
-crw-rw----    1 root     video     81,  24 Jun 19 22:22 /dev/video24
-crw-rw----    1 root     video     81,  32 Jun 19 22:22 /dev/video32
-crw-rw----    1 root     video     81,  48 Jun 19 22:22 /dev/video48
-crw-rw----    1 root     video     81,  64 Jun 19 22:22 /dev/radio0
-crw-rw----    1 root     video     81, 224 Jun 19 22:22 /dev/vbi0
-crw-rw----    1 root     video     81, 228 Jun 19 22:22 /dev/vbi8
-crw-rw----    1 root     video     81, 232 Jun 19 22:22 /dev/vbi16
+
+.. code-block:: none
+
+	crw-rw----    1 root     video     81,   0 Jun 19 22:22 /dev/video0
+	crw-rw----    1 root     video     81,  16 Jun 19 22:22 /dev/video16
+	crw-rw----    1 root     video     81,  24 Jun 19 22:22 /dev/video24
+	crw-rw----    1 root     video     81,  32 Jun 19 22:22 /dev/video32
+	crw-rw----    1 root     video     81,  48 Jun 19 22:22 /dev/video48
+	crw-rw----    1 root     video     81,  64 Jun 19 22:22 /dev/radio0
+	crw-rw----    1 root     video     81, 224 Jun 19 22:22 /dev/vbi0
+	crw-rw----    1 root     video     81, 228 Jun 19 22:22 /dev/vbi8
+	crw-rw----    1 root     video     81, 232 Jun 19 22:22 /dev/vbi16
 
 Base devices
-============
+------------
 
 For every extra card you have the numbers increased by one. For example,
 /dev/video0 is listed as the 'base' encoding capture device so we have:
 
- /dev/video0  is the encoding capture device for the first card (card 0)
- /dev/video1  is the encoding capture device for the second card (card 1)
- /dev/video2  is the encoding capture device for the third card (card 2)
+- /dev/video0  is the encoding capture device for the first card (card 0)
+- /dev/video1  is the encoding capture device for the second card (card 1)
+- /dev/video2  is the encoding capture device for the third card (card 2)
 
 Note that if the first card doesn't have a feature (eg no decoder, so no
 video16, the second card will still use video17. The simple rule is 'add
@@ -94,93 +107,111 @@ whatever). Otherwise the device numbers can get confusing. The ivtv
 'ivtv_first_minor' module option can be used for that.
 
 
-/dev/video0
-The encoding capture device(s).
-Read-only.
+- /dev/video0
 
-Reading from this device gets you the MPEG1/2 program stream.
-Example:
+  The encoding capture device(s).
 
-cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit)
+  Read-only.
 
+  Reading from this device gets you the MPEG1/2 program stream.
+  Example:
 
-/dev/video16
-The decoder output device(s)
-Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
+  .. code-block:: none
 
-An mpeg2 stream sent to this device will appear on the selected video
-display, audio will appear on the line-out/audio out.  It is only
-available for cards that support video out. Example:
+	cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit)
 
-cat my.mpg >/dev/video16
 
+- /dev/video16
 
-/dev/video24
-The raw audio capture device(s).
-Read-only
+  The decoder output device(s)
 
-The raw audio PCM stereo stream from the currently selected
-tuner or audio line-in.  Reading from this device results in a raw
-(signed 16 bit Little Endian, 48000 Hz, stereo pcm) capture.
-This device only captures audio. This should be replaced by an ALSA
-device in the future.
-Note that there is no corresponding raw audio output device, this is
-not supported in the decoder firmware.
+  Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
 
+  An mpeg2 stream sent to this device will appear on the selected video
+  display, audio will appear on the line-out/audio out.  It is only
+  available for cards that support video out. Example:
 
-/dev/video32
-The raw video capture device(s)
-Read-only
+  .. code-block:: none
 
-The raw YUV video output from the current video input. The YUV format
-is non-standard (V4L2_PIX_FMT_HM12).
+	cat my.mpg >/dev/video16
 
-Note that the YUV and PCM streams are not synchronized, so they are of
-limited use.
 
+- /dev/video24
 
-/dev/video48
-The raw video display device(s)
-Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
+  The raw audio capture device(s).
 
-Writes a YUV stream to the decoder of the card.
+  Read-only
 
+  The raw audio PCM stereo stream from the currently selected
+  tuner or audio line-in.  Reading from this device results in a raw
+  (signed 16 bit Little Endian, 48000 Hz, stereo pcm) capture.
+  This device only captures audio. This should be replaced by an ALSA
+  device in the future.
+  Note that there is no corresponding raw audio output device, this is
+  not supported in the decoder firmware.
 
-/dev/radio0
-The radio tuner device(s)
-Cannot be read or written.
 
-Used to enable the radio tuner and tune to a frequency. You cannot
-read or write audio streams with this device.  Once you use this
-device to tune the radio, use /dev/video24 to read the raw pcm stream
-or /dev/video0 to get an mpeg2 stream with black video.
+- /dev/video32
 
+  The raw video capture device(s)
 
-/dev/vbi0
-The 'vertical blank interval' (Teletext, CC, WSS etc) capture device(s)
-Read-only
+  Read-only
 
-Captures the raw (or sliced) video data sent during the Vertical Blank
-Interval. This data is used to encode teletext, closed captions, VPS,
-widescreen signalling, electronic program guide information, and other
-services.
+  The raw YUV video output from the current video input. The YUV format
+  is non-standard (V4L2_PIX_FMT_HM12).
 
+  Note that the YUV and PCM streams are not synchronized, so they are of
+  limited use.
 
-/dev/vbi8
-Processed vbi feedback device(s)
-Read-only. Only present if the MPEG decoder (i.e. CX23415) exists.
 
-The sliced VBI data embedded in an MPEG stream is reproduced on this
-device. So while playing back a recording on /dev/video16, you can
-read the embedded VBI data from /dev/vbi8.
+- /dev/video48
 
+  The raw video display device(s)
 
-/dev/vbi16
-The vbi 'display' device(s)
-Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
+  Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
 
-Can be used to send sliced VBI data to the video-out connector.
+  Writes a YUV stream to the decoder of the card.
 
----------------------------------
 
-Hans Verkuil <hverkuil@xs4all.nl>
+- /dev/radio0
+
+  The radio tuner device(s)
+
+  Cannot be read or written.
+
+  Used to enable the radio tuner and tune to a frequency. You cannot
+  read or write audio streams with this device.  Once you use this
+  device to tune the radio, use /dev/video24 to read the raw pcm stream
+  or /dev/video0 to get an mpeg2 stream with black video.
+
+
+- /dev/vbi0
+
+  The 'vertical blank interval' (Teletext, CC, WSS etc) capture device(s)
+
+  Read-only
+
+  Captures the raw (or sliced) video data sent during the Vertical Blank
+  Interval. This data is used to encode teletext, closed captions, VPS,
+  widescreen signalling, electronic program guide information, and other
+  services.
+
+
+- /dev/vbi8
+
+  Processed vbi feedback device(s)
+
+  Read-only. Only present if the MPEG decoder (i.e. CX23415) exists.
+
+  The sliced VBI data embedded in an MPEG stream is reproduced on this
+  device. So while playing back a recording on /dev/video16, you can
+  read the embedded VBI data from /dev/vbi8.
+
+
+- /dev/vbi16
+
+  The vbi 'display' device(s)
+
+  Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
+
+  Can be used to send sliced VBI data to the video-out connector.
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 20/36] [media] doc-rst: add meye documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (17 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 19/36] [media] doc-rst: Add ivtv documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 21/36] [media] doc-rst: add omap3isp documentation Mauro Carvalho Chehab
                   ` (15 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=true, Size: 6773 bytes --]

Convert the meye documentation to rst and add it to the
media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst |   1 +
 Documentation/media/v4l-drivers/meye.rst  | 103 ++++++++++++++++--------------
 2 files changed, 57 insertions(+), 47 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 99409c6e2518..8c6f4745aa07 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -27,4 +27,5 @@ License".
 	davinci-vpbe
 	fimc
 	ivtv
+	meye
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/meye.rst b/Documentation/media/v4l-drivers/meye.rst
index a051152ea99c..cfaba6021850 100644
--- a/Documentation/media/v4l-drivers/meye.rst
+++ b/Documentation/media/v4l-drivers/meye.rst
@@ -1,8 +1,13 @@
-Vaio Picturebook Motion Eye Camera Driver Readme
-------------------------------------------------
-	Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
-	Copyright (C) 2001-2002 Alcôve <www.alcove.com>
-	Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
+.. include:: <isonum.txt>
+
+Vaio Picturebook Motion Eye Camera Driver
+=========================================
+
+Copyright |copy| 2001-2004 Stelian Pop <stelian@popies.net>
+
+Copyright |copy| 2001-2002 Alcôve <www.alcove.com>
+
+Copyright |copy| 2000 Andrew Tridgell <tridge@samba.org>
 
 This driver enable the use of video4linux compatible applications with the
 Motion Eye camera. This driver requires the "Sony Laptop Extras" driver (which
@@ -15,8 +20,8 @@ Grabbing is supported in packed YUV colorspace only.
 
 MJPEG hardware grabbing is supported via a private API (see below).
 
-Hardware supported:
--------------------
+Hardware supported
+------------------
 
 This driver supports the 'second' version of the MotionEye camera :)
 
@@ -37,26 +42,30 @@ This camera is not supported at all by the current driver, in fact
 little information if any is available for this camera
 (USB vendor/device is 0x054c/0x0107).
 
-Driver options:
----------------
+Driver options
+--------------
 
 Several options can be passed to the meye driver using the standard
 module argument syntax (<param>=<value> when passing the option to the
 module or meye.<param>=<value> on the kernel boot line when meye is
 statically linked into the kernel). Those options are:
 
+.. code-block:: none
+
 	gbuffers:	number of capture buffers, default is 2 (32 max)
 
 	gbufsize:	size of each capture buffer, default is 614400
 
 	video_nr:	video device to register (0 = /dev/video0, etc)
 
-Module use:
------------
+Module use
+----------
 
 In order to automatically load the meye module on use, you can put those lines
 in your /etc/modprobe.d/meye.conf file:
 
+.. code-block:: none
+
 	alias char-major-81 videodev
 	alias char-major-81-0 meye
 	options meye gbuffers=32
@@ -64,6 +73,8 @@ in your /etc/modprobe.d/meye.conf file:
 Usage:
 ------
 
+.. code-block:: none
+
 	xawtv >= 3.49 (<http://bytesex.org/xawtv/>)
 		for display and uncompressed video capture:
 
@@ -74,50 +85,48 @@ Usage:
 	motioneye (<http://popies.net/meye/>)
 		for getting ppm or jpg snapshots, mjpeg video
 
-Private API:
-------------
+Private API
+-----------
 
-	The driver supports frame grabbing with the video4linux API,
-	so all video4linux tools (like xawtv) should work with this driver.
+The driver supports frame grabbing with the video4linux API,
+so all video4linux tools (like xawtv) should work with this driver.
 
-	Besides the video4linux interface, the driver has a private interface
-	for accessing the Motion Eye extended parameters (camera sharpness,
-	agc, video framerate), the shapshot and the MJPEG capture facilities.
+Besides the video4linux interface, the driver has a private interface
+for accessing the Motion Eye extended parameters (camera sharpness,
+agc, video framerate), the shapshot and the MJPEG capture facilities.
 
-	This interface consists of several ioctls (prototypes and structures
-	can be found in include/linux/meye.h):
+This interface consists of several ioctls (prototypes and structures
+can be found in include/linux/meye.h):
 
-	MEYEIOC_G_PARAMS
-	MEYEIOC_S_PARAMS
-		Get and set the extended parameters of the motion eye camera.
-		The user should always query the current parameters with
-		MEYEIOC_G_PARAMS, change what he likes and then issue the
-		MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended
-		parameters are described by the meye_params structure.
+MEYEIOC_G_PARAMS and MEYEIOC_S_PARAMS
+	Get and set the extended parameters of the motion eye camera.
+	The user should always query the current parameters with
+	MEYEIOC_G_PARAMS, change what he likes and then issue the
+	MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended
+	parameters are described by the meye_params structure.
 
 
-	MEYEIOC_QBUF_CAPT
-		Queue a buffer for capture (the buffers must have been
-		obtained with a VIDIOCGMBUF call and mmap'ed by the
-		application). The argument to MEYEIOC_QBUF_CAPT is the
-		buffer number to queue (or -1 to end capture). The first
-		call to MEYEIOC_QBUF_CAPT starts the streaming capture.
+MEYEIOC_QBUF_CAPT
+	Queue a buffer for capture (the buffers must have been
+	obtained with a VIDIOCGMBUF call and mmap'ed by the
+	application). The argument to MEYEIOC_QBUF_CAPT is the
+	buffer number to queue (or -1 to end capture). The first
+	call to MEYEIOC_QBUF_CAPT starts the streaming capture.
 
-	MEYEIOC_SYNC
-		Takes as an argument the buffer number you want to sync.
-		This ioctl blocks until the buffer is filled and ready
-		for the application to use. It returns the buffer size.
+MEYEIOC_SYNC
+	Takes as an argument the buffer number you want to sync.
+	This ioctl blocks until the buffer is filled and ready
+	for the application to use. It returns the buffer size.
 
-	MEYEIOC_STILLCAPT
-	MEYEIOC_STILLJCAPT
-		Takes a snapshot in an uncompressed or compressed jpeg format.
-		This ioctl blocks until the snapshot is done and returns (for
-		jpeg snapshot) the size of the image. The image data is
-		available from the first mmap'ed buffer.
+MEYEIOC_STILLCAPT and MEYEIOC_STILLJCAPT
+	Takes a snapshot in an uncompressed or compressed jpeg format.
+	This ioctl blocks until the snapshot is done and returns (for
+	jpeg snapshot) the size of the image. The image data is
+	available from the first mmap'ed buffer.
 
-	Look at the 'motioneye' application code for an actual example.
+Look at the 'motioneye' application code for an actual example.
 
-Bugs / Todo:
-------------
+Bugs / Todo
+-----------
 
-	- 'motioneye' still uses the meye private v4l1 API extensions.
+- 'motioneye' still uses the meye private v4l1 API extensions.
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 21/36] [media] doc-rst: add omap3isp documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (18 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 20/36] [media] doc-rst: add meye documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 22/36] [media] doc-rst: add omap4_camera documentation Mauro Carvalho Chehab
                   ` (14 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert omap3isp documentation to ReST and add it to the
media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst    |   1 +
 Documentation/media/v4l-drivers/omap3isp.rst | 135 ++++++++++++++-------------
 2 files changed, 70 insertions(+), 66 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 8c6f4745aa07..272c2dc9ceb1 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -28,4 +28,5 @@ License".
 	fimc
 	ivtv
 	meye
+	omap3isp
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/omap3isp.rst b/Documentation/media/v4l-drivers/omap3isp.rst
index b9a9f83b1587..336e58feaee2 100644
--- a/Documentation/media/v4l-drivers/omap3isp.rst
+++ b/Documentation/media/v4l-drivers/omap3isp.rst
@@ -1,15 +1,18 @@
+.. include:: <isonum.txt>
+
 OMAP 3 Image Signal Processor (ISP) driver
+==========================================
 
-Copyright (C) 2010 Nokia Corporation
-Copyright (C) 2009 Texas Instruments, Inc.
+Copyright |copy| 2010 Nokia Corporation
 
-Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-	  Sakari Ailus <sakari.ailus@iki.fi>
-	  David Cohen <dacohen@gmail.com>
+Copyright |copy| 2009 Texas Instruments, Inc.
+
+Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
+Sakari Ailus <sakari.ailus@iki.fi>, David Cohen <dacohen@gmail.com>
 
 
 Introduction
-============
+------------
 
 This file documents the Texas Instruments OMAP 3 Image Signal Processor (ISP)
 driver located under drivers/media/platform/omap3isp. The original driver was
@@ -18,9 +21,9 @@ Nokia.
 
 The driver has been successfully used on the following versions of OMAP 3:
 
-	3430
-	3530
-	3630
+- 3430
+- 3530
+- 3630
 
 The driver implements V4L2, Media controller and v4l2_subdev interfaces.
 Sensor, lens and flash drivers using the v4l2_subdev interface in the kernel
@@ -28,27 +31,27 @@ are supported.
 
 
 Split to subdevs
-================
+----------------
 
 The OMAP 3 ISP is split into V4L2 subdevs, each of the blocks inside the ISP
 having one subdev to represent it. Each of the subdevs provide a V4L2 subdev
 interface to userspace.
 
-	OMAP3 ISP CCP2
-	OMAP3 ISP CSI2a
-	OMAP3 ISP CCDC
-	OMAP3 ISP preview
-	OMAP3 ISP resizer
-	OMAP3 ISP AEWB
-	OMAP3 ISP AF
-	OMAP3 ISP histogram
+- OMAP3 ISP CCP2
+- OMAP3 ISP CSI2a
+- OMAP3 ISP CCDC
+- OMAP3 ISP preview
+- OMAP3 ISP resizer
+- OMAP3 ISP AEWB
+- OMAP3 ISP AF
+- OMAP3 ISP histogram
 
 Each possible link in the ISP is modelled by a link in the Media controller
-interface. For an example program see [2].
+interface. For an example program see [#f2]_.
 
 
 Controlling the OMAP 3 ISP
-==========================
+--------------------------
 
 In general, the settings given to the OMAP 3 ISP take effect at the beginning
 of the following frame. This is done when the module becomes idle during the
@@ -65,7 +68,7 @@ is non-zero.
 
 
 Events
-======
+------
 
 The OMAP 3 ISP driver does support the V4L2 event interface on CCDC and
 statistics (AEWB, AF and histogram) subdevs.
@@ -85,9 +88,9 @@ generated whenever a statistics buffer can be dequeued by a user space
 application using the VIDIOC_OMAP3ISP_STAT_REQ IOCTL. The events available
 are:
 
-	V4L2_EVENT_OMAP3ISP_AEWB
-	V4L2_EVENT_OMAP3ISP_AF
-	V4L2_EVENT_OMAP3ISP_HIST
+- V4L2_EVENT_OMAP3ISP_AEWB
+- V4L2_EVENT_OMAP3ISP_AF
+- V4L2_EVENT_OMAP3ISP_HIST
 
 The type of the event data is struct omap3isp_stat_event_status for these
 ioctls. If there is an error calculating the statistics, there will be an
@@ -96,7 +99,7 @@ omap3isp_stat_event_status.buf_err is set to non-zero.
 
 
 Private IOCTLs
-==============
+--------------
 
 The OMAP 3 ISP driver supports standard V4L2 IOCTLs and controls where
 possible and practical. Much of the functions provided by the ISP, however,
@@ -108,13 +111,13 @@ containing hardware-dependent functions.
 
 The following private IOCTLs are supported:
 
-	VIDIOC_OMAP3ISP_CCDC_CFG
-	VIDIOC_OMAP3ISP_PRV_CFG
-	VIDIOC_OMAP3ISP_AEWB_CFG
-	VIDIOC_OMAP3ISP_HIST_CFG
-	VIDIOC_OMAP3ISP_AF_CFG
-	VIDIOC_OMAP3ISP_STAT_REQ
-	VIDIOC_OMAP3ISP_STAT_EN
+- VIDIOC_OMAP3ISP_CCDC_CFG
+- VIDIOC_OMAP3ISP_PRV_CFG
+- VIDIOC_OMAP3ISP_AEWB_CFG
+- VIDIOC_OMAP3ISP_HIST_CFG
+- VIDIOC_OMAP3ISP_AF_CFG
+- VIDIOC_OMAP3ISP_STAT_REQ
+- VIDIOC_OMAP3ISP_STAT_EN
 
 The parameter structures used by these ioctls are described in
 include/linux/omap3isp.h. The detailed functions of the ISP itself related to
@@ -128,7 +131,7 @@ appropriate private IOCTLs.
 
 
 CCDC and preview block IOCTLs
-=============================
+-----------------------------
 
 The VIDIOC_OMAP3ISP_CCDC_CFG and VIDIOC_OMAP3ISP_PRV_CFG IOCTLs are used to
 configure, enable and disable functions in the CCDC and preview blocks,
@@ -136,7 +139,7 @@ respectively. Both IOCTLs control several functions in the blocks they
 control. VIDIOC_OMAP3ISP_CCDC_CFG IOCTL accepts a pointer to struct
 omap3isp_ccdc_update_config as its argument. Similarly VIDIOC_OMAP3ISP_PRV_CFG
 accepts a pointer to struct omap3isp_prev_update_config. The definition of
-both structures is available in [1].
+both structures is available in [#f1]_.
 
 The update field in the structures tells whether to update the configuration
 for the specific function and the flag tells whether to enable or disable the
@@ -151,34 +154,34 @@ Valid values for the update and flag fields are listed here for
 VIDIOC_OMAP3ISP_CCDC_CFG. Values may be or'ed to configure more than one
 function in the same IOCTL call.
 
-        OMAP3ISP_CCDC_ALAW
-        OMAP3ISP_CCDC_LPF
-        OMAP3ISP_CCDC_BLCLAMP
-        OMAP3ISP_CCDC_BCOMP
-        OMAP3ISP_CCDC_FPC
-        OMAP3ISP_CCDC_CULL
-        OMAP3ISP_CCDC_CONFIG_LSC
-        OMAP3ISP_CCDC_TBL_LSC
+- OMAP3ISP_CCDC_ALAW
+- OMAP3ISP_CCDC_LPF
+- OMAP3ISP_CCDC_BLCLAMP
+- OMAP3ISP_CCDC_BCOMP
+- OMAP3ISP_CCDC_FPC
+- OMAP3ISP_CCDC_CULL
+- OMAP3ISP_CCDC_CONFIG_LSC
+- OMAP3ISP_CCDC_TBL_LSC
 
 The corresponding values for the VIDIOC_OMAP3ISP_PRV_CFG are here:
 
-        OMAP3ISP_PREV_LUMAENH
-        OMAP3ISP_PREV_INVALAW
-        OMAP3ISP_PREV_HRZ_MED
-        OMAP3ISP_PREV_CFA
-        OMAP3ISP_PREV_CHROMA_SUPP
-        OMAP3ISP_PREV_WB
-        OMAP3ISP_PREV_BLKADJ
-        OMAP3ISP_PREV_RGB2RGB
-        OMAP3ISP_PREV_COLOR_CONV
-        OMAP3ISP_PREV_YC_LIMIT
-        OMAP3ISP_PREV_DEFECT_COR
-        OMAP3ISP_PREV_GAMMABYPASS
-        OMAP3ISP_PREV_DRK_FRM_CAPTURE
-        OMAP3ISP_PREV_DRK_FRM_SUBTRACT
-        OMAP3ISP_PREV_LENS_SHADING
-        OMAP3ISP_PREV_NF
-        OMAP3ISP_PREV_GAMMA
+- OMAP3ISP_PREV_LUMAENH
+- OMAP3ISP_PREV_INVALAW
+- OMAP3ISP_PREV_HRZ_MED
+- OMAP3ISP_PREV_CFA
+- OMAP3ISP_PREV_CHROMA_SUPP
+- OMAP3ISP_PREV_WB
+- OMAP3ISP_PREV_BLKADJ
+- OMAP3ISP_PREV_RGB2RGB
+- OMAP3ISP_PREV_COLOR_CONV
+- OMAP3ISP_PREV_YC_LIMIT
+- OMAP3ISP_PREV_DEFECT_COR
+- OMAP3ISP_PREV_GAMMABYPASS
+- OMAP3ISP_PREV_DRK_FRM_CAPTURE
+- OMAP3ISP_PREV_DRK_FRM_SUBTRACT
+- OMAP3ISP_PREV_LENS_SHADING
+- OMAP3ISP_PREV_NF
+- OMAP3ISP_PREV_GAMMA
 
 The associated configuration pointer for the function may not be NULL when
 enabling the function. When disabling a function the configuration pointer is
@@ -186,7 +189,7 @@ ignored.
 
 
 Statistic blocks IOCTLs
-=======================
+-----------------------
 
 The statistics subdevs do offer more dynamic configuration options than the
 other subdevs. They can be enabled, disable and reconfigured when the pipeline
@@ -218,7 +221,7 @@ can be found on OMAP's TRMs. The two following fields common to all the above
 configure private IOCTLs require explanation for better understanding as they
 are not part of the TRM.
 
-omap3isp_[h3a_af/h3a_aewb/hist]_config.buf_size:
+omap3isp_[h3a_af/h3a_aewb/hist]\_config.buf_size:
 
 The modules handle their buffers internally. The necessary buffer size for the
 module's data output depends on the requested configuration. Although the
@@ -235,7 +238,7 @@ out of [minimum, maximum] buffer size range, it's clamped to fit in there.
 The driver then selects the biggest value. The corrected buf_size value is
 written back to user application.
 
-omap3isp_[h3a_af/h3a_aewb/hist]_config.config_counter:
+omap3isp_[h3a_af/h3a_aewb/hist]\_config.config_counter:
 
 As the configuration doesn't take effect synchronously to the request, the
 driver must provide a way to track this information to provide more accurate
@@ -254,7 +257,7 @@ matches with the video buffer's field_count.
 
 
 Technical reference manuals (TRMs) and other documentation
-==========================================================
+----------------------------------------------------------
 
 OMAP 3430 TRM:
 <URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZM.zip>
@@ -272,8 +275,8 @@ DM 3730 TRM:
 
 
 References
-==========
+----------
 
-[1] include/linux/omap3isp.h
+.. [#f1] include/linux/omap3isp.h
 
-[2] http://git.ideasonboard.org/?p=media-ctl.git;a=summary
+.. [#f2] http://git.ideasonboard.org/?p=media-ctl.git;a=summary
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 22/36] [media] doc-rst: add omap4_camera documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (19 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 21/36] [media] doc-rst: add omap3isp documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 23/36] [media] doc-rst: add documentation for pvrusb2 Mauro Carvalho Chehab
                   ` (13 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Lee Jones, Krzysztof Kozlowski, Arnd Bergmann, linux-doc

Convert the omap4_camera documentation to ReST and add it to
the media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst        |  1 +
 Documentation/media/v4l-drivers/omap4_camera.rst | 28 ++++++++++++------------
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 272c2dc9ceb1..cb85bca0a077 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -29,4 +29,5 @@ License".
 	ivtv
 	meye
 	omap3isp
+	omap4_camera
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/omap4_camera.rst b/Documentation/media/v4l-drivers/omap4_camera.rst
index a6734aa77242..54b427b28e5f 100644
--- a/Documentation/media/v4l-drivers/omap4_camera.rst
+++ b/Documentation/media/v4l-drivers/omap4_camera.rst
@@ -1,5 +1,9 @@
-                              OMAP4 ISS Driver
-                              ================
+OMAP4 ISS Driver
+================
+
+Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
+
+Copyright (C) 2012, Texas Instruments
 
 Introduction
 ------------
@@ -11,15 +15,15 @@ Which contains several components that can be categorized in 3 big groups:
 - ISP (Image Signal Processor)
 - SIMCOP (Still Image Coprocessor)
 
-For more information, please look in [1] for latest version of:
-	"OMAP4430 Multimedia Device Silicon Revision 2.x"
+For more information, please look in [#f1]_ for latest version of:
+"OMAP4430 Multimedia Device Silicon Revision 2.x"
 
 As of Revision AB, the ISS is described in detail in section 8.
 
-This driver is supporting _only_ the CSI2-A/B interfaces for now.
+This driver is supporting **only** the CSI2-A/B interfaces for now.
 
-It makes use of the Media Controller framework [2], and inherited most of the
-code from OMAP3 ISP driver (found under drivers/media/platform/omap3isp/*),
+It makes use of the Media Controller framework [#f2]_, and inherited most of the
+code from OMAP3 ISP driver (found under drivers/media/platform/omap3isp/\*),
 except that it doesn't need an IOMMU now for ISS buffers memory mapping.
 
 Supports usage of MMAP buffers only (for now).
@@ -40,7 +44,7 @@ Tested platforms
 
 - Tested on mainline kernel:
 
-	http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
+	http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary
 
   Tag: v3.3 (commit c16fa4f2ad19908a47c63d8fa436a1178438c7e7)
 
@@ -52,9 +56,5 @@ include/linux/platform_data/media/omap4iss.h
 References
 ----------
 
-[1] http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?navigationId=12037&templateId=6123#62
-[2] http://lwn.net/Articles/420485/
-[3] http://www.spinics.net/lists/linux-media/msg44370.html
---
-Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
-Copyright (C) 2012, Texas Instruments
+.. [#f1] http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?navigationId=12037&templateId=6123#62
+.. [#f2] http://lwn.net/Articles/420485/
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 23/36] [media] doc-rst: add documentation for pvrusb2
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (20 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 22/36] [media] doc-rst: add omap4_camera documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 24/36] [media] doc-rst: add pxa_camera documentation Mauro Carvalho Chehab
                   ` (12 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=true, Size: 14839 bytes --]

Convert pvrusb2 documentation to ReST file and removed the note
about an html version of the documentation, as it is not
shipped inside the Kernel.

Add it to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst   |   1 +
 Documentation/media/v4l-drivers/pvrusb2.rst | 190 +++++++++++++---------------
 2 files changed, 90 insertions(+), 101 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index cb85bca0a077..e88ce12074ae 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -30,4 +30,5 @@ License".
 	meye
 	omap3isp
 	omap4_camera
+	pvrusb2
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/pvrusb2.rst b/Documentation/media/v4l-drivers/pvrusb2.rst
index 2137b589276b..dc0e72d94b1a 100644
--- a/Documentation/media/v4l-drivers/pvrusb2.rst
+++ b/Documentation/media/v4l-drivers/pvrusb2.rst
@@ -1,88 +1,81 @@
-
-$Id$
-Mike Isely <isely@pobox.com>
-
-			    pvrusb2 driver
-
-Background:
-
-  This driver is intended for the "Hauppauge WinTV PVR USB 2.0", which
-  is a USB 2.0 hosted TV Tuner.  This driver is a work in progress.
-  Its history started with the reverse-engineering effort by Björn
-  Danielsson <pvrusb2@dax.nu> whose web page can be found here:
-
-    http://pvrusb2.dax.nu/
-
-  From there Aurelien Alleaume <slts@free.fr> began an effort to
-  create a video4linux compatible driver.  I began with Aurelien's
-  last known snapshot and evolved the driver to the state it is in
-  here.
-
-  More information on this driver can be found at:
-
-    http://www.isely.net/pvrusb2.html
-
-
-  This driver has a strong separation of layers.  They are very
-  roughly:
-
-  1a. Low level wire-protocol implementation with the device.
-
-  1b. I2C adaptor implementation and corresponding I2C client drivers
-      implemented elsewhere in V4L.
-
-  1c. High level hardware driver implementation which coordinates all
-      activities that ensure correct operation of the device.
-
-  2.  A "context" layer which manages instancing of driver, setup,
-      tear-down, arbitration, and interaction with high level
-      interfaces appropriately as devices are hotplugged in the
-      system.
-
-  3.  High level interfaces which glue the driver to various published
-      Linux APIs (V4L, sysfs, maybe DVB in the future).
-
-  The most important shearing layer is between the top 2 layers.  A
-  lot of work went into the driver to ensure that any kind of
-  conceivable API can be laid on top of the core driver.  (Yes, the
-  driver internally leverages V4L to do its work but that really has
-  nothing to do with the API published by the driver to the outside
-  world.)  The architecture allows for different APIs to
-  simultaneously access the driver.  I have a strong sense of fairness
-  about APIs and also feel that it is a good design principle to keep
-  implementation and interface isolated from each other.  Thus while
-  right now the V4L high level interface is the most complete, the
-  sysfs high level interface will work equally well for similar
-  functions, and there's no reason I see right now why it shouldn't be
-  possible to produce a DVB high level interface that can sit right
-  alongside V4L.
-
-  NOTE: Complete documentation on the pvrusb2 driver is contained in
-  the html files within the doc directory; these are exactly the same
-  as what is on the web site at the time.  Browse those files
-  (especially the FAQ) before asking questions.
-
+The pvrusb2 driver
+==================
+
+Author: Mike Isely <isely@pobox.com>
+
+Background
+----------
+
+This driver is intended for the "Hauppauge WinTV PVR USB 2.0", which
+is a USB 2.0 hosted TV Tuner.  This driver is a work in progress.
+Its history started with the reverse-engineering effort by Björn
+Danielsson <pvrusb2@dax.nu> whose web page can be found here:
+http://pvrusb2.dax.nu/
+
+From there Aurelien Alleaume <slts@free.fr> began an effort to
+create a video4linux compatible driver.  I began with Aurelien's
+last known snapshot and evolved the driver to the state it is in
+here.
+
+More information on this driver can be found at:
+http://www.isely.net/pvrusb2.html
+
+
+This driver has a strong separation of layers.  They are very
+roughly:
+
+1. Low level wire-protocol implementation with the device.
+
+2. I2C adaptor implementation and corresponding I2C client drivers
+   implemented elsewhere in V4L.
+
+3. High level hardware driver implementation which coordinates all
+   activities that ensure correct operation of the device.
+
+4. A "context" layer which manages instancing of driver, setup,
+   tear-down, arbitration, and interaction with high level
+   interfaces appropriately as devices are hotplugged in the
+   system.
+
+5. High level interfaces which glue the driver to various published
+   Linux APIs (V4L, sysfs, maybe DVB in the future).
+
+The most important shearing layer is between the top 2 layers.  A
+lot of work went into the driver to ensure that any kind of
+conceivable API can be laid on top of the core driver.  (Yes, the
+driver internally leverages V4L to do its work but that really has
+nothing to do with the API published by the driver to the outside
+world.)  The architecture allows for different APIs to
+simultaneously access the driver.  I have a strong sense of fairness
+about APIs and also feel that it is a good design principle to keep
+implementation and interface isolated from each other.  Thus while
+right now the V4L high level interface is the most complete, the
+sysfs high level interface will work equally well for similar
+functions, and there's no reason I see right now why it shouldn't be
+possible to produce a DVB high level interface that can sit right
+alongside V4L.
 
 Building
+--------
 
-  To build these modules essentially amounts to just running "Make",
-  but you need the kernel source tree nearby and you will likely also
-  want to set a few controlling environment variables first in order
-  to link things up with that source tree.  Please see the Makefile
-  here for comments that explain how to do that.
+To build these modules essentially amounts to just running "Make",
+but you need the kernel source tree nearby and you will likely also
+want to set a few controlling environment variables first in order
+to link things up with that source tree.  Please see the Makefile
+here for comments that explain how to do that.
 
+Source file list / functional overview
+--------------------------------------
 
-Source file list / functional overview:
+(Note: The term "module" used below generally refers to loosely
+defined functional units within the pvrusb2 driver and bears no
+relation to the Linux kernel's concept of a loadable module.)
 
-  (Note: The term "module" used below generally refers to loosely
-  defined functional units within the pvrusb2 driver and bears no
-  relation to the Linux kernel's concept of a loadable module.)
-
-  pvrusb2-audio.[ch] - This is glue logic that resides between this
+pvrusb2-audio.[ch] - This is glue logic that resides between this
     driver and the msp3400.ko I2C client driver (which is found
     elsewhere in V4L).
 
-  pvrusb2-context.[ch] - This module implements the context for an
+pvrusb2-context.[ch] - This module implements the context for an
     instance of the driver.  Everything else eventually ties back to
     or is otherwise instanced within the data structures implemented
     here.  Hotplugging is ultimately coordinated here.  All high level
@@ -93,28 +86,28 @@ Source file list / functional overview:
     the tuner's frequency through sysfs while simultaneously streaming
     video through V4L out to an instance of mplayer).
 
-  pvrusb2-debug.h - This header defines a printk() wrapper and a mask
+pvrusb2-debug.h - This header defines a printk() wrapper and a mask
     of debugging bit definitions for the various kinds of debug
     messages that can be enabled within the driver.
 
-  pvrusb2-debugifc.[ch] - This module implements a crude command line
+pvrusb2-debugifc.[ch] - This module implements a crude command line
     oriented debug interface into the driver.  Aside from being part
     of the process for implementing manual firmware extraction (see
     the pvrusb2 web site mentioned earlier), probably I'm the only one
     who has ever used this.  It is mainly a debugging aid.
 
-  pvrusb2-eeprom.[ch] - This is glue logic that resides between this
+pvrusb2-eeprom.[ch] - This is glue logic that resides between this
     driver the tveeprom.ko module, which is itself implemented
     elsewhere in V4L.
 
-  pvrusb2-encoder.[ch] - This module implements all protocol needed to
+pvrusb2-encoder.[ch] - This module implements all protocol needed to
     interact with the Conexant mpeg2 encoder chip within the pvrusb2
     device.  It is a crude echo of corresponding logic in ivtv,
     however the design goals (strict isolation) and physical layer
     (proxy through USB instead of PCI) are enough different that this
     implementation had to be completely different.
 
-  pvrusb2-hdw-internal.h - This header defines the core data structure
+pvrusb2-hdw-internal.h - This header defines the core data structure
     in the driver used to track ALL internal state related to control
     of the hardware.  Nobody outside of the core hardware-handling
     modules should have any business using this header.  All external
@@ -123,16 +116,16 @@ Source file list / functional overview:
     level interfaces are restricted to the API defined in
     pvrusb2-hdw.h and NOT this header.
 
-  pvrusb2-hdw.h - This header defines the full internal API for
+pvrusb2-hdw.h - This header defines the full internal API for
     controlling the hardware.  High level interfaces (e.g. V4L, sysfs)
     will work through here.
 
-  pvrusb2-hdw.c - This module implements all the various bits of logic
+pvrusb2-hdw.c - This module implements all the various bits of logic
     that handle overall control of a specific pvrusb2 device.
     (Policy, instantiation, and arbitration of pvrusb2 devices fall
     within the jurisdiction of pvrusb-context not here).
 
-  pvrusb2-i2c-chips-*.c - These modules implement the glue logic to
+pvrusb2-i2c-chips-\*.c - These modules implement the glue logic to
     tie together and configure various I2C modules as they attach to
     the I2C bus.  There are two versions of this file.  The "v4l2"
     version is intended to be used in-tree alongside V4L, where we
@@ -142,17 +135,17 @@ Source file list / functional overview:
     from ivtv or older kernel snapshots (or even the support modules
     in the standalone snapshot).
 
-  pvrusb2-i2c-cmd-v4l1.[ch] - This module implements generic V4L1
+pvrusb2-i2c-cmd-v4l1.[ch] - This module implements generic V4L1
     compatible commands to the I2C modules.  It is here where state
     changes inside the pvrusb2 driver are translated into V4L1
     commands that are in turn send to the various I2C modules.
 
-  pvrusb2-i2c-cmd-v4l2.[ch] - This module implements generic V4L2
+pvrusb2-i2c-cmd-v4l2.[ch] - This module implements generic V4L2
     compatible commands to the I2C modules.  It is here where state
     changes inside the pvrusb2 driver are translated into V4L2
     commands that are in turn send to the various I2C modules.
 
-  pvrusb2-i2c-core.[ch] - This module provides an implementation of a
+pvrusb2-i2c-core.[ch] - This module provides an implementation of a
     kernel-friendly I2C adaptor driver, through which other external
     I2C client drivers (e.g. msp3400, tuner, lirc) may connect and
     operate corresponding chips within the pvrusb2 device.  It is
@@ -162,51 +155,46 @@ Source file list / functional overview:
     pvrusb2-context, and then ultimately made available to users
     through one of the high level interfaces).
 
-  pvrusb2-io.[ch] - This module implements a very low level ring of
+pvrusb2-io.[ch] - This module implements a very low level ring of
     transfer buffers, required in order to stream data from the
     device.  This module is *very* low level.  It only operates the
     buffers and makes no attempt to define any policy or mechanism for
     how such buffers might be used.
 
-  pvrusb2-ioread.[ch] - This module layers on top of pvrusb2-io.[ch]
+pvrusb2-ioread.[ch] - This module layers on top of pvrusb2-io.[ch]
     to provide a streaming API usable by a read() system call style of
     I/O.  Right now this is the only layer on top of pvrusb2-io.[ch],
     however the underlying architecture here was intended to allow for
     other styles of I/O to be implemented with additional modules, like
     mmap()'ed buffers or something even more exotic.
 
-  pvrusb2-main.c - This is the top level of the driver.  Module level
+pvrusb2-main.c - This is the top level of the driver.  Module level
     and USB core entry points are here.  This is our "main".
 
-  pvrusb2-sysfs.[ch] - This is the high level interface which ties the
+pvrusb2-sysfs.[ch] - This is the high level interface which ties the
     pvrusb2 driver into sysfs.  Through this interface you can do
     everything with the driver except actually stream data.
 
-  pvrusb2-tuner.[ch] - This is glue logic that resides between this
+pvrusb2-tuner.[ch] - This is glue logic that resides between this
     driver and the tuner.ko I2C client driver (which is found
     elsewhere in V4L).
 
-  pvrusb2-util.h - This header defines some common macros used
+pvrusb2-util.h - This header defines some common macros used
     throughout the driver.  These macros are not really specific to
     the driver, but they had to go somewhere.
 
-  pvrusb2-v4l2.[ch] - This is the high level interface which ties the
+pvrusb2-v4l2.[ch] - This is the high level interface which ties the
     pvrusb2 driver into video4linux.  It is through here that V4L
     applications can open and operate the driver in the usual V4L
     ways.  Note that **ALL** V4L functionality is published only
     through here and nowhere else.
 
-  pvrusb2-video-*.[ch] - This is glue logic that resides between this
+pvrusb2-video-\*.[ch] - This is glue logic that resides between this
     driver and the saa711x.ko I2C client driver (which is found
     elsewhere in V4L).  Note that saa711x.ko used to be known as
     saa7115.ko in ivtv.  There are two versions of this; one is
     selected depending on the particular saa711[5x].ko that is found.
 
-  pvrusb2.h - This header contains compile time tunable parameters
+pvrusb2.h - This header contains compile time tunable parameters
     (and at the moment the driver has very little that needs to be
     tuned).
-
-
-  -Mike Isely
-  isely@pobox.com
-
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 24/36] [media] doc-rst: add pxa_camera documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (21 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 23/36] [media] doc-rst: add documentation for pvrusb2 Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 25/36] [media] doc-rst: add documentation for radiotrack Mauro Carvalho Chehab
                   ` (11 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert pxa_camera to ReST format and add it to the
media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst      |   1 +
 Documentation/media/v4l-drivers/pxa_camera.rst | 212 ++++++++++++++-----------
 2 files changed, 116 insertions(+), 97 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index e88ce12074ae..eb0ed669545e 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -31,4 +31,5 @@ License".
 	omap3isp
 	omap4_camera
 	pvrusb2
+	pxa_camera
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/pxa_camera.rst b/Documentation/media/v4l-drivers/pxa_camera.rst
index 51ed1578b0e8..554f91b04e70 100644
--- a/Documentation/media/v4l-drivers/pxa_camera.rst
+++ b/Documentation/media/v4l-drivers/pxa_camera.rst
@@ -1,84 +1,91 @@
-                              PXA-Camera Host Driver
-                              ======================
+PXA-Camera Host Driver
+======================
+
+Author: Robert Jarzmik <robert.jarzmik@free.fr>
 
 Constraints
 -----------
-  a) Image size for YUV422P format
-     All YUV422P images are enforced to have width x height % 16 = 0.
-     This is due to DMA constraints, which transfers only planes of 8 byte
-     multiples.
+
+a) Image size for YUV422P format
+   All YUV422P images are enforced to have width x height % 16 = 0.
+   This is due to DMA constraints, which transfers only planes of 8 byte
+   multiples.
 
 
 Global video workflow
 ---------------------
-  a) QCI stopped
-     Initialy, the QCI interface is stopped.
-     When a buffer is queued (pxa_videobuf_ops->buf_queue), the QCI starts.
 
-  b) QCI started
-     More buffers can be queued while the QCI is started without halting the
-     capture.  The new buffers are "appended" at the tail of the DMA chain, and
-     smoothly captured one frame after the other.
+a) QCI stopped
+   Initialy, the QCI interface is stopped.
+   When a buffer is queued (pxa_videobuf_ops->buf_queue), the QCI starts.
 
-     Once a buffer is filled in the QCI interface, it is marked as "DONE" and
-     removed from the active buffers list. It can be then requeud or dequeued by
-     userland application.
+b) QCI started
+   More buffers can be queued while the QCI is started without halting the
+   capture.  The new buffers are "appended" at the tail of the DMA chain, and
+   smoothly captured one frame after the other.
 
-     Once the last buffer is filled in, the QCI interface stops.
+   Once a buffer is filled in the QCI interface, it is marked as "DONE" and
+   removed from the active buffers list. It can be then requeud or dequeued by
+   userland application.
 
-  c) Capture global finite state machine schema
+   Once the last buffer is filled in, the QCI interface stops.
 
-      +----+                             +---+  +----+
-      | DQ |                             | Q |  | DQ |
-      |    v                             |   v  |    v
-    +-----------+                     +------------------------+
-    |   STOP    |                     | Wait for capture start |
-    +-----------+         Q           +------------------------+
-+-> | QCI: stop | ------------------> | QCI: run               | <------------+
-|   | DMA: stop |                     | DMA: stop              |              |
-|   +-----------+             +-----> +------------------------+              |
-|                            /                            |                   |
-|                           /             +---+  +----+   |                   |
-|capture list empty        /              | Q |  | DQ |   | QCI Irq EOF       |
-|                         /               |   v  |    v   v                   |
-|   +--------------------+             +----------------------+               |
-|   | DMA hotlink missed |             |    Capture running   |               |
-|   +--------------------+             +----------------------+               |
-|   | QCI: run           |     +-----> | QCI: run             | <-+           |
-|   | DMA: stop          |    /        | DMA: run             |   |           |
-|   +--------------------+   /         +----------------------+   | Other     |
-|     ^                     /DMA still            |               | channels  |
-|     | capture list       /  running             | DMA Irq End   | not       |
-|     | not empty         /                       |               | finished  |
-|     |                  /                        v               | yet       |
-|   +----------------------+           +----------------------+   |           |
-|   |  Videobuf released   |           |  Channel completed   |   |           |
-|   +----------------------+           +----------------------+   |           |
-+-- | QCI: run             |           | QCI: run             | --+           |
-    | DMA: run             |           | DMA: run             |               |
-    +----------------------+           +----------------------+               |
-               ^                      /           |                           |
-               |          no overrun /            | overrun                   |
-               |                    /             v                           |
-    +--------------------+         /   +----------------------+               |
-    |  Frame completed   |        /    |     Frame overran    |               |
-    +--------------------+ <-----+     +----------------------+ restart frame |
-    | QCI: run           |             | QCI: stop            | --------------+
-    | DMA: run           |             | DMA: stop            |
-    +--------------------+             +----------------------+
+c) Capture global finite state machine schema
 
-    Legend: - each box is a FSM state
-            - each arrow is the condition to transition to another state
-            - an arrow with a comment is a mandatory transition (no condition)
-            - arrow "Q" means : a buffer was enqueued
-            - arrow "DQ" means : a buffer was dequeued
-            - "QCI: stop" means the QCI interface is not enabled
-            - "DMA: stop" means all 3 DMA channels are stopped
-            - "DMA: run" means at least 1 DMA channel is still running
+.. code-block:: none
+
+	+----+                             +---+  +----+
+	| DQ |                             | Q |  | DQ |
+	|    v                             |   v  |    v
+	+-----------+                     +------------------------+
+	|   STOP    |                     | Wait for capture start |
+	+-----------+         Q           +------------------------+
+	+-> | QCI: stop | ------------------> | QCI: run               | <------------+
+	|   | DMA: stop |                     | DMA: stop              |              |
+	|   +-----------+             +-----> +------------------------+              |
+	|                            /                            |                   |
+	|                           /             +---+  +----+   |                   |
+	|capture list empty        /              | Q |  | DQ |   | QCI Irq EOF       |
+	|                         /               |   v  |    v   v                   |
+	|   +--------------------+             +----------------------+               |
+	|   | DMA hotlink missed |             |    Capture running   |               |
+	|   +--------------------+             +----------------------+               |
+	|   | QCI: run           |     +-----> | QCI: run             | <-+           |
+	|   | DMA: stop          |    /        | DMA: run             |   |           |
+	|   +--------------------+   /         +----------------------+   | Other     |
+	|     ^                     /DMA still            |               | channels  |
+	|     | capture list       /  running             | DMA Irq End   | not       |
+	|     | not empty         /                       |               | finished  |
+	|     |                  /                        v               | yet       |
+	|   +----------------------+           +----------------------+   |           |
+	|   |  Videobuf released   |           |  Channel completed   |   |           |
+	|   +----------------------+           +----------------------+   |           |
+	+-- | QCI: run             |           | QCI: run             | --+           |
+	| DMA: run             |           | DMA: run             |               |
+	+----------------------+           +----------------------+               |
+		^                      /           |                           |
+		|          no overrun /            | overrun                   |
+		|                    /             v                           |
+	+--------------------+         /   +----------------------+               |
+	|  Frame completed   |        /    |     Frame overran    |               |
+	+--------------------+ <-----+     +----------------------+ restart frame |
+	| QCI: run           |             | QCI: stop            | --------------+
+	| DMA: run           |             | DMA: stop            |
+	+--------------------+             +----------------------+
+
+	Legend: - each box is a FSM state
+		- each arrow is the condition to transition to another state
+		- an arrow with a comment is a mandatory transition (no condition)
+		- arrow "Q" means : a buffer was enqueued
+		- arrow "DQ" means : a buffer was dequeued
+		- "QCI: stop" means the QCI interface is not enabled
+		- "DMA: stop" means all 3 DMA channels are stopped
+		- "DMA: run" means at least 1 DMA channel is still running
 
 DMA usage
 ---------
-  a) DMA flow
+
+a) DMA flow
      - first buffer queued for capture
        Once a first buffer is queued for capture, the QCI is started, but data
        transfer is not started. On "End Of Frame" interrupt, the irq handler
@@ -93,22 +100,27 @@ DMA usage
      - finishing the last videobuffer
        On the DMA irq of the last videobuffer, the QCI is stopped.
 
-  b) DMA prepared buffer will have this structure
+b) DMA prepared buffer will have this structure
+
+.. code-block:: none
 
      +------------+-----+---------------+-----------------+
      | desc-sg[0] | ... | desc-sg[last] | finisher/linker |
      +------------+-----+---------------+-----------------+
 
-     This structure is pointed by dma->sg_cpu.
-     The descriptors are used as follows :
-      - desc-sg[i]: i-th descriptor, transferring the i-th sg
-        element to the video buffer scatter gather
-      - finisher: has ddadr=DADDR_STOP, dcmd=ENDIRQEN
-      - linker: has ddadr= desc-sg[0] of next video buffer, dcmd=0
+This structure is pointed by dma->sg_cpu.
+The descriptors are used as follows:
 
-     For the next schema, let's assume d0=desc-sg[0] .. dN=desc-sg[N],
-     "f" stands for finisher and "l" for linker.
-     A typical running chain is :
+- desc-sg[i]: i-th descriptor, transferring the i-th sg
+  element to the video buffer scatter gather
+- finisher: has ddadr=DADDR_STOP, dcmd=ENDIRQEN
+- linker: has ddadr= desc-sg[0] of next video buffer, dcmd=0
+
+For the next schema, let's assume d0=desc-sg[0] .. dN=desc-sg[N],
+"f" stands for finisher and "l" for linker.
+A typical running chain is :
+
+.. code-block:: none
 
          Videobuffer 1         Videobuffer 2
      +---------+----+---+  +----+----+----+---+
@@ -117,7 +129,9 @@ DMA usage
                       |    |
                       +----+
 
-     After the chaining is finished, the chain looks like :
+After the chaining is finished, the chain looks like :
+
+.. code-block:: none
 
          Videobuffer 1         Videobuffer 2         Videobuffer 3
      +---------+----+---+  +----+----+----+---+  +----+----+----+---+
@@ -127,15 +141,18 @@ DMA usage
                       +----+                +----+
                                            new_link
 
-  c) DMA hot chaining timeslice issue
+c) DMA hot chaining timeslice issue
 
-     As DMA chaining is done while DMA _is_ running, the linking may be done
-     while the DMA jumps from one Videobuffer to another. On the schema, that
-     would be a problem if the following sequence is encountered :
+As DMA chaining is done while DMA _is_ running, the linking may be done
+while the DMA jumps from one Videobuffer to another. On the schema, that
+would be a problem if the following sequence is encountered :
+
+- DMA chain is Videobuffer1 + Videobuffer2
+- pxa_videobuf_queue() is called to queue Videobuffer3
+- DMA controller finishes Videobuffer2, and DMA stops
+
+.. code-block:: none
 
-      - DMA chain is Videobuffer1 + Videobuffer2
-      - pxa_videobuf_queue() is called to queue Videobuffer3
-      - DMA controller finishes Videobuffer2, and DMA stops
       =>
          Videobuffer 1         Videobuffer 2
      +---------+----+---+  +----+----+----+---+
@@ -144,11 +161,13 @@ DMA usage
                       |    |                |
                       +----+                +-- DMA DDADR loads DDADR_STOP
 
-      - pxa_dma_add_tail_buf() is called, the Videobuffer2 "finisher" is
-        replaced by a "linker" to Videobuffer3 (creation of new_link)
-      - pxa_videobuf_queue() finishes
-      - the DMA irq handler is called, which terminates Videobuffer2
-      - Videobuffer3 capture is not scheduled on DMA chain (as it stopped !!!)
+- pxa_dma_add_tail_buf() is called, the Videobuffer2 "finisher" is
+  replaced by a "linker" to Videobuffer3 (creation of new_link)
+- pxa_videobuf_queue() finishes
+- the DMA irq handler is called, which terminates Videobuffer2
+- Videobuffer3 capture is not scheduled on DMA chain (as it stopped !!!)
+
+.. code-block:: none
 
          Videobuffer 1         Videobuffer 2         Videobuffer 3
      +---------+----+---+  +----+----+----+---+  +----+----+----+---+
@@ -159,16 +178,15 @@ DMA usage
                                            new_link
                                           DMA DDADR still is DDADR_STOP
 
-      - pxa_camera_check_link_miss() is called
-        This checks if the DMA is finished and a buffer is still on the
-        pcdev->capture list. If that's the case, the capture will be restarted,
-        and Videobuffer3 is scheduled on DMA chain.
-      - the DMA irq handler finishes
+- pxa_camera_check_link_miss() is called
+  This checks if the DMA is finished and a buffer is still on the
+  pcdev->capture list. If that's the case, the capture will be restarted,
+  and Videobuffer3 is scheduled on DMA chain.
+- the DMA irq handler finishes
 
-     Note: if DMA stops just after pxa_camera_check_link_miss() reads DDADR()
+.. note::
+
+     If DMA stops just after pxa_camera_check_link_miss() reads DDADR()
      value, we have the guarantee that the DMA irq handler will be called back
      when the DMA will finish the buffer, and pxa_camera_check_link_miss() will
      be called again, to reschedule Videobuffer3.
-
---
-Author: Robert Jarzmik <robert.jarzmik@free.fr>
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 25/36] [media] doc-rst: add documentation for radiotrack
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (22 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 24/36] [media] doc-rst: add pxa_camera documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 26/36] [media] doc-rst: add documentation for saa7134 Mauro Carvalho Chehab
                   ` (10 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST and add it to the media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst      |   1 +
 Documentation/media/v4l-drivers/radiotrack.rst | 179 ++++++++++++++-----------
 2 files changed, 100 insertions(+), 80 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index eb0ed669545e..03d07f25c5fb 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -32,4 +32,5 @@ License".
 	omap4_camera
 	pvrusb2
 	pxa_camera
+	radiotrack
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/radiotrack.rst b/Documentation/media/v4l-drivers/radiotrack.rst
index d1f3ed199186..2f6325ebfd16 100644
--- a/Documentation/media/v4l-drivers/radiotrack.rst
+++ b/Documentation/media/v4l-drivers/radiotrack.rst
@@ -1,11 +1,13 @@
-NOTES ON RADIOTRACK CARD CONTROL
-by Stephen M. Benoit (benoits@servicepro.com)  Dec 14, 1996
-----------------------------------------------------------------------------
+The Radiotrack radio driver
+===========================
 
-Document version 1.0
+Author: Stephen M. Benoit <benoits@servicepro.com>
+
+Date:  Dec 14, 1996
 
 ACKNOWLEDGMENTS
 ----------------
+
 This document was made based on 'C' code for Linux from Gideon le Grange
 (legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from
 Frans Brinkman (brinkman@esd.nl) in 1996.  The results reported here are from
@@ -18,6 +20,7 @@ want to use the RadioTrack card in an environment other than MS Windows.
 
 WHY THIS DOCUMENT?
 ------------------
+
 I have a RadioTrack card from back when I ran an MS-Windows platform.  After
 converting to Linux, I found Gideon le Grange's command-line software for
 running the card, and found that it was good!  Frans Brinkman made a
@@ -33,6 +36,7 @@ So, without further delay, here are the details.
 
 PHYSICAL DESCRIPTION
 --------------------
+
 The RadioTrack card is an ISA 8-bit FM radio card.  The radio frequency (RF)
 input is simply an antenna lead, and the output is a power audio signal
 available through a miniature phone plug.  Its RF frequencies of operation are
@@ -46,6 +50,7 @@ gets clipped beyond the limits mentioned above.
 
 CONTROLLING THE CARD WITH IOPORT
 --------------------------------
+
 The RadioTrack (base) ioport is configurable for 0x30c or 0x20c.  Only one
 ioport seems to be involved.  The ioport decoding circuitry must be pretty
 simple, as individual ioport bits are directly matched to specific functions
@@ -55,93 +60,107 @@ the ioports appears to be the "Stereo Detect" bit.
 
 The bits of the ioport are arranged as follows:
 
-  MSb                                                         LSb
-+------+------+------+--------+--------+-------+---------+--------+
-| VolA | VolB | ???? | Stereo | Radio  | TuneA | TuneB   | Tune   |
-|  (+) |  (-) |      | Detect | Audio  | (bit) | (latch) | Update |
-|      |      |      | Enable | Enable |       |         | Enable |
-+------+------+------+--------+--------+-------+---------+--------+
+.. code-block:: none
 
+	MSb                                                         LSb
+	+------+------+------+--------+--------+-------+---------+--------+
+	| VolA | VolB | ???? | Stereo | Radio  | TuneA | TuneB   | Tune   |
+	|  (+) |  (-) |      | Detect | Audio  | (bit) | (latch) | Update |
+	|      |      |      | Enable | Enable |       |         | Enable |
+	+------+------+------+--------+--------+-------+---------+--------+
 
-VolA . VolB  [AB......]
------------
-0 0 : audio mute
-0 1 : volume +    (some delay required)
-1 0 : volume -    (some delay required)
-1 1 : stay at present volume
 
-Stereo Detect Enable [...S....]
---------------------
-0 : No Detect
-1 : Detect
+====  ====  =================================
+VolA  VolB  Description
+====  ====  =================================
+0	 0  audio mute
+0	 1  volume +    (some delay required)
+1	 0  volume -    (some delay required)
+1	 1  stay at present volume
+====  ====  =================================
+
+====================	===========
+Stereo Detect Enable	Description
+====================	===========
+0			No Detect
+1			Detect
+====================	===========
+
+Results available by reading ioport >60 msec after last port write.
 
-  Results available by reading ioport >60 msec after last port write.
   0xff ==> no stereo detected,  0xfd ==> stereo detected.
 
-Radio to Audio (path) Enable [....R...]
-----------------------------
-0 : Disable path (silence)
-1 : Enable path  (audio produced)
+=============================	=============================
+Radio to Audio (path) Enable	Description
+=============================	=============================
+0				Disable path (silence)
+1				Enable path  (audio produced)
+=============================	=============================
 
-TuneA . TuneB [.....AB.]
--------------
-0 0 : "zero" bit phase 1
-0 1 : "zero" bit phase 2
+=====  =====  ==================
+TuneA  TuneB  Description
+=====  =====  ==================
+0	0     "zero" bit phase 1
+0	1     "zero" bit phase 2
+1	0     "one" bit phase 1
+1	1     "one" bit phase 2
+=====  =====  ==================
 
-1 0 : "one" bit phase 1
-1 1 : "one" bit phase 2
 
-  24-bit code, where bits = (freq*40) + 10486188.
-  The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid.
-  The bits are shifted in LSb first.
+24-bit code, where bits = (freq*40) + 10486188.
+The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid.
+The bits are shifted in LSb first.
 
-Tune Update Enable [.......T]
-------------------
-0 : Tuner held constant
-1 : Tuner updating in progress
+==================	===========================
+Tune Update Enable	Description
+==================	===========================
+0			Tuner held constant
+1			Tuner updating in progress
+==================	===========================
 
 
 PROGRAMMING EXAMPLES
 --------------------
-Default:        BASE <-- 0xc8  (current volume, no stereo detect,
-				radio enable, tuner adjust disable)
-
-Card Off:	BASE <-- 0x00  (audio mute, no stereo detect,
-				radio disable, tuner adjust disable)
-
-Card On:	BASE <-- 0x00  (see "Card Off", clears any unfinished business)
-		BASE <-- 0xc8  (see "Default")
-
-Volume Down:    BASE <-- 0x48  (volume down, no stereo detect,
-				radio enable, tuner adjust disable)
-		* wait 10 msec *
-		BASE <-- 0xc8  (see "Default")
-
-Volume Up:      BASE <-- 0x88  (volume up, no stereo detect,
-				radio enable, tuner adjust disable)
-		* wait 10 msec *
-		BASE <-- 0xc8  (see "Default")
-
-Check Stereo:   BASE <-- 0xd8  (current volume, stereo detect,
-				radio enable, tuner adjust disable)
-		* wait 100 msec *
-		x <-- BASE     (read ioport)
-		BASE <-- 0xc8  (see "Default")
-
-		x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
-
-Set Frequency:  code = (freq*40) + 10486188
-		foreach of the 24 bits in code,
-		(from Least to Most Significant):
-		  to write a "zero" bit,
-		    BASE <-- 0x01  (audio mute, no stereo detect, radio
-				    disable, "zero" bit phase 1, tuner adjust)
-		    BASE <-- 0x03  (audio mute, no stereo detect, radio
-				    disable, "zero" bit phase 2, tuner adjust)
-		  to write a "one" bit,
-		    BASE <-- 0x05  (audio mute, no stereo detect, radio
-				    disable, "one" bit phase 1, tuner adjust)
-		    BASE <-- 0x07  (audio mute, no stereo detect, radio
-				    disable, "one" bit phase 2, tuner adjust)
-
-----------------------------------------------------------------------------
+
+.. code-block:: none
+
+	Default:        BASE <-- 0xc8  (current volume, no stereo detect,
+					radio enable, tuner adjust disable)
+
+	Card Off:	BASE <-- 0x00  (audio mute, no stereo detect,
+					radio disable, tuner adjust disable)
+
+	Card On:	BASE <-- 0x00  (see "Card Off", clears any unfinished business)
+			BASE <-- 0xc8  (see "Default")
+
+	Volume Down:    BASE <-- 0x48  (volume down, no stereo detect,
+					radio enable, tuner adjust disable)
+			wait 10 msec
+			BASE <-- 0xc8  (see "Default")
+
+	Volume Up:      BASE <-- 0x88  (volume up, no stereo detect,
+					radio enable, tuner adjust disable)
+			wait 10 msec
+			BASE <-- 0xc8  (see "Default")
+
+	Check Stereo:   BASE <-- 0xd8  (current volume, stereo detect,
+					radio enable, tuner adjust disable)
+			wait 100 msec
+			x <-- BASE     (read ioport)
+			BASE <-- 0xc8  (see "Default")
+
+			x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
+
+	Set Frequency:  code = (freq*40) + 10486188
+			foreach of the 24 bits in code,
+			(from Least to Most Significant):
+			to write a "zero" bit,
+			BASE <-- 0x01  (audio mute, no stereo detect, radio
+					disable, "zero" bit phase 1, tuner adjust)
+			BASE <-- 0x03  (audio mute, no stereo detect, radio
+					disable, "zero" bit phase 2, tuner adjust)
+			to write a "one" bit,
+			BASE <-- 0x05  (audio mute, no stereo detect, radio
+					disable, "one" bit phase 1, tuner adjust)
+			BASE <-- 0x07  (audio mute, no stereo detect, radio
+					disable, "one" bit phase 2, tuner adjust)
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 26/36] [media] doc-rst: add documentation for saa7134
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (23 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 25/36] [media] doc-rst: add documentation for radiotrack Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 27/36] [media] doc-rst: add sh_mobile_ceu_camera crop documentation Mauro Carvalho Chehab
                   ` (9 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST and add to the media/v4l-device book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst   |  1 +
 Documentation/media/v4l-drivers/saa7134.rst | 43 +++++++++++++----------------
 2 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 03d07f25c5fb..f761627d3fa1 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -33,4 +33,5 @@ License".
 	pvrusb2
 	pxa_camera
 	radiotrack
+	saa7134
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/saa7134.rst b/Documentation/media/v4l-drivers/saa7134.rst
index b911f0871874..584caf8a3594 100644
--- a/Documentation/media/v4l-drivers/saa7134.rst
+++ b/Documentation/media/v4l-drivers/saa7134.rst
@@ -1,7 +1,8 @@
+The saa7134 driver
+==================
 
+Author Gerd Hoffmann
 
-What is it?
-===========
 
 This is a v4l2/oss device driver for saa7130/33/34/35 based capture / TV
 boards.  See http://www.semiconductors.philips.com/pip/saa7134hl for a
@@ -9,7 +10,7 @@ description.
 
 
 Status
-======
+------
 
 Almost everything is working.  video, sound, tuner, radio, mpeg ts, ...
 
@@ -19,12 +20,14 @@ configuration info.
 
 
 Build
-=====
+-----
 
 Pick up videodev + v4l2 patches from http://bytesex.org/patches/.
 Configure, build, install + boot the new kernel.  You'll need at least
 these config options:
 
+.. code-block:: none
+
 	CONFIG_I2C=m
 	CONFIG_VIDEO_DEV=m
 
@@ -35,7 +38,7 @@ valid choices.
 
 
 Changes / Fixes
-===============
+---------------
 
 Please mail me unified diffs ("diff -u") with your changes, and don't
 forget to tell me what it changes / which problem it fixes / whatever
@@ -43,40 +46,32 @@ it is good for ...
 
 
 Known Problems
-==============
+--------------
 
 * The tuner for the flyvideos isn't detected automatically and the
   default might not work for you depending on which version you have.
   There is a tuner= insmod option to override the driver's default.
 
 Card Variations:
-================
+----------------
 
 Cards can use either of these two crystals (xtal):
- - 32.11 MHz -> .audio_clock=0x187de7
- - 24.576MHz -> .audio_clock=0x200000
-(xtal * .audio_clock = 51539600)
+
+- 32.11 MHz -> .audio_clock=0x187de7
+- 24.576MHz -> .audio_clock=0x200000 (xtal * .audio_clock = 51539600)
 
 Some details about 30/34/35:
 
- - saa7130 - low-price chip, doesn't have mute, that is why all those
- cards should have .mute field defined in their tuner structure.
+- saa7130 - low-price chip, doesn't have mute, that is why all those
+  cards should have .mute field defined in their tuner structure.
 
- - saa7134 - usual chip
+- saa7134 - usual chip
 
- - saa7133/35 - saa7135 is probably a marketing decision, since all those
- chips identifies itself as 33 on pci.
+- saa7133/35 - saa7135 is probably a marketing decision, since all those
+  chips identifies itself as 33 on pci.
 
 Credits
-=======
+-------
 
 andrew.stevens@philips.com + werner.leeb@philips.com for providing
 saa7134 hardware specs and sample board.
-
-
-Have fun,
-
-  Gerd
-
---
-Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 27/36] [media] doc-rst: add sh_mobile_ceu_camera crop documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (24 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 26/36] [media] doc-rst: add documentation for saa7134 Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 28/36] [media] doc-rst: add documentation for si470x Mauro Carvalho Chehab
                   ` (8 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=true, Size: 2782 bytes --]

Convert it to ReST and add it to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst          |  1 +
 .../media/v4l-drivers/sh_mobile_ceu_camera.rst     | 57 +++++++++++-----------
 2 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index f761627d3fa1..64556192f12a 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -34,4 +34,5 @@ License".
 	pxa_camera
 	radiotrack
 	saa7134
+	sh_mobile_ceu_camera
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst b/Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst
index 1e96ce6e2d2f..e40ffea7708c 100644
--- a/Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst
+++ b/Documentation/media/v4l-drivers/sh_mobile_ceu_camera.rst
@@ -1,5 +1,7 @@
-	Cropping and Scaling algorithm, used in the sh_mobile_ceu_camera driver
-	=======================================================================
+Cropping and Scaling algorithm, used in the sh_mobile_ceu_camera driver
+=======================================================================
+
+Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 
 Terminology
 -----------
@@ -12,29 +14,31 @@ combined scales: sensor_scale * host_scale
 Generic scaling / cropping scheme
 ---------------------------------
 
--1--
-|
--2-- -\
-|      --\
-|         --\
-+-5-- .      -- -3-- -\
-|      `...            -\
-|          `... -4-- .   - -7..
-|                     `.
-|                       `. .6--
-|
-|                        . .6'-
-|                      .´
-|           ... -4'- .´
-|       ...´             - -7'.
-+-5'- .´               -/
-|            -- -3'- -/
-|         --/
-|      --/
--2'- -/
-|
-|
--1'-
+.. code-block:: none
+
+	-1--
+	|
+	-2-- -\
+	|      --\
+	|         --\
+	+-5-- .      -- -3-- -\
+	|      `...            -\
+	|          `... -4-- .   - -7..
+	|                     `.
+	|                       `. .6--
+	|
+	|                        . .6'-
+	|                      .´
+	|           ... -4'- .´
+	|       ...´             - -7'.
+	+-5'- .´               -/
+	|            -- -3'- -/
+	|         --/
+	|      --/
+	-2'- -/
+	|
+	|
+	-1'-
 
 In the above chart minuses and slashes represent "real" data amounts, points and
 accents represent "useful" data, basically, CEU scaled and cropped output,
@@ -134,6 +138,3 @@ Cropping is performed in the following 6 steps:
 5. Calculate and apply host scale = (6' - 6) / (4' - 4)
 
 6. Calculate and apply host crop: 6 - 7 = (5 - 2) * (6' - 6) / (5' - 5)
-
---
-Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 28/36] [media] doc-rst: add documentation for si470x
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (25 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 27/36] [media] doc-rst: add sh_mobile_ceu_camera crop documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 29/36] [media] doc-rst: add documentation for si4713 Mauro Carvalho Chehab
                   ` (7 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST and add to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst  |  1 +
 Documentation/media/v4l-drivers/si470x.rst | 74 ++++++++++++++++++++++--------
 2 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 64556192f12a..5a582438b2c4 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -35,4 +35,5 @@ License".
 	radiotrack
 	saa7134
 	sh_mobile_ceu_camera
+	si470x
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/si470x.rst b/Documentation/media/v4l-drivers/si470x.rst
index 98c32925eb39..955d8ca159fe 100644
--- a/Documentation/media/v4l-drivers/si470x.rst
+++ b/Documentation/media/v4l-drivers/si470x.rst
@@ -1,10 +1,14 @@
-Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers
+.. include:: <isonum.txt>
 
-Copyright (c) 2009 Tobias Lorenz <tobias.lorenz@gmx.net>
+The Silicon Labs Si470x FM Radio Receivers driver
+=================================================
+
+Copyright |copy| 2009 Tobias Lorenz <tobias.lorenz@gmx.net>
 
 
 Information from Silicon Labs
-=============================
+-----------------------------
+
 Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
 most often used radio receivers in cell phones. Usually they are connected with
 I2C. But SiLabs also provides a reference design, which integrates this IC,
@@ -16,9 +20,11 @@ http://www.silabs.com/usbradio
 
 
 Supported ICs
-=============
+-------------
+
 The following ICs have a very similar register set, so that they are or will be
 supported somewhen by the driver:
+
 - Si4700: FM radio receiver
 - Si4701: FM radio receiver, RDS Support
 - Si4702: FM radio receiver
@@ -30,14 +36,17 @@ supported somewhen by the driver:
 - Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support
 - Si4708: Smallest FM receivers
 - Si4709: Smallest FM receivers, RDS Support
+
 More information on these can be downloaded here:
 http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx
 
 
 Supported USB devices
-=====================
+---------------------
+
 Currently the following USB radios (vendor:product) with the Silicon Labs si470x
 chips are known to work:
+
 - 10c4:818a: Silicon Labs USB FM Radio Reference Design
 - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
 - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
@@ -45,8 +54,10 @@ chips are known to work:
 
 
 Software
-========
+--------
+
 Testing is usually done with most application under Debian/testing:
+
 - fmtools - Utility for managing FM tuner cards
 - gnomeradio - FM-radio tuner for the GNOME desktop
 - gradio - GTK FM radio tuner
@@ -54,8 +65,12 @@ Testing is usually done with most application under Debian/testing:
 - radio - ncurses-based radio application
 - mplayer - The Ultimate Movie Player For Linux
 - v4l2-ctl - Collection of command line video4linux utilities
+
 For example, you can use:
-v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all
+
+.. code-block:: none
+
+	v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all
 
 There is also a library libv4l, which can be used. It's going to have a function
 for frequency seeking, either by using hardware functionality as in radio-si470x
@@ -69,30 +84,48 @@ There is currently no project for making TMC sentences human readable.
 
 
 Audio Listing
-=============
+-------------
+
 USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
 also select SND_USB_AUDIO, as this is required to get sound from the radio. For
 listing you have to redirect the sound, for example using one of the following
 commands. Please adjust the audio devices to your needs (/dev/dsp* and hw:x,x).
 
 If you just want to test audio (very poor quality):
-cat /dev/dsp1 > /dev/dsp
+
+.. code-block:: none
+
+	cat /dev/dsp1 > /dev/dsp
 
 If you use sox + OSS try:
-sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
+
+.. code-block:: none
+
+	sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
+
 or using sox + alsa:
-sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0
+
+.. code-block:: none
+
+	sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0
 
 If you use arts try:
-arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
+
+.. code-block:: none
+
+	arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
 
 If you use mplayer try:
-mplayer -radio adevice=hw=1.0:arate=96000 \
-	-rawaudio rate=96000 \
-	radio://<frequency>/capture
+
+.. code-block:: none
+
+	mplayer -radio adevice=hw=1.0:arate=96000 \
+		-rawaudio rate=96000 \
+		radio://<frequency>/capture
 
 Module Parameters
-=================
+-----------------
+
 After loading the module, you still have access to some of them in the sysfs
 mount under /sys/module/radio_si470x/parameters. The contents of read-only files
 (0444) are not updated, even if space, band and de are changed using private
@@ -100,7 +133,8 @@ video controls. The others are runtime changeable.
 
 
 Errors
-======
+------
+
 Increase tune_timeout, if you often get -EIO errors.
 
 When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.
@@ -109,7 +143,8 @@ If you get any errors from snd_usb_audio, please report them to the ALSA people.
 
 
 Open Issues
-===========
+-----------
+
 V4L minor device allocation and parameter setting is not perfect. A solution is
 currently under discussion.
 
@@ -125,5 +160,6 @@ functions in the kernel.
 
 
 Other useful information and links
-==================================
+----------------------------------
+
 http://www.silabs.com/usbradio
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 29/36] [media] doc-rst: add documentation for si4713
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (26 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 28/36] [media] doc-rst: add documentation for si470x Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 30/36] [media] doc-rst: add documentation for si476x Mauro Carvalho Chehab
                   ` (6 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Arnd Bergmann, Lee Jones, Krzysztof Kozlowski, linux-doc

Convert it to ReST and add it to the media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/si4713.rst | 188 ++++++++++++++++-------------
 1 file changed, 101 insertions(+), 87 deletions(-)

diff --git a/Documentation/media/v4l-drivers/si4713.rst b/Documentation/media/v4l-drivers/si4713.rst
index 2ddc6b095a76..3022e7cfe9a8 100644
--- a/Documentation/media/v4l-drivers/si4713.rst
+++ b/Documentation/media/v4l-drivers/si4713.rst
@@ -1,11 +1,16 @@
-Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters
+.. include:: <isonum.txt>
+
+The Silicon Labs Si4713 FM Radio Transmitter Driver
+===================================================
+
+Copyright |copy| 2009 Nokia Corporation
 
-Copyright (c) 2009 Nokia Corporation
 Contact: Eduardo Valentin <eduardo.valentin@nokia.com>
 
 
 Information about the Device
-============================
+----------------------------
+
 This chip is a Silicon Labs product. It is a I2C device, currently on 0x63 address.
 Basically, it has transmission and signal noise level measurement features.
 
@@ -19,7 +24,8 @@ properties which can change the behavior of this chip.
 Users must comply with local regulations on radio frequency (RF) transmission.
 
 Device driver description
-=========================
+-------------------------
+
 There are two modules to handle this device. One is a I2C device driver
 and the other is a platform driver.
 
@@ -37,140 +43,148 @@ etc. But mostly of its properties will be present in the extended controls.
 When the v4l2 mute property is set to 1 (true), the driver will turn the chip off.
 
 Properties description
-======================
+----------------------
 
 The properties can be accessed using v4l2 extended controls.
 Here is an output from v4l2-ctl util:
-/ # v4l2-ctl -d /dev/radio0 --all -L
-Driver Info:
-	Driver name   : radio-si4713
-	Card type     : Silicon Labs Si4713 Modulator
-	Bus info      :
-	Driver version: 0
-	Capabilities  : 0x00080800
-		RDS Output
-		Modulator
-Audio output: 0 (FM Modulator Audio Out)
-Frequency: 1408000 (88.000000 MHz)
-Video Standard = 0x00000000
-Modulator:
-	Name                 : FM Modulator
-	Capabilities         : 62.5 Hz stereo rds
-	Frequency range      : 76.0 MHz - 108.0 MHz
-	Subchannel modulation: stereo+rds
 
-User Controls
+.. code-block:: none
 
-			   mute (bool) : default=1 value=0
+	/ # v4l2-ctl -d /dev/radio0 --all -L
+	Driver Info:
+		Driver name   : radio-si4713
+		Card type     : Silicon Labs Si4713 Modulator
+		Bus info      :
+		Driver version: 0
+		Capabilities  : 0x00080800
+			RDS Output
+			Modulator
+	Audio output: 0 (FM Modulator Audio Out)
+	Frequency: 1408000 (88.000000 MHz)
+	Video Standard = 0x00000000
+	Modulator:
+		Name                 : FM Modulator
+		Capabilities         : 62.5 Hz stereo rds
+		Frequency range      : 76.0 MHz - 108.0 MHz
+		Subchannel modulation: stereo+rds
 
-FM Radio Modulator Controls
+	User Controls
 
-	   rds_signal_deviation (int)  : min=0 max=90000 step=10 default=200 value=200 flags=slider
-		 rds_program_id (int)  : min=0 max=65535 step=1 default=0 value=0
-	       rds_program_type (int)  : min=0 max=31 step=1 default=0 value=0
-		    rds_ps_name (str)  : min=0 max=96 step=8 value='si4713  '
-		 rds_radio_text (str)  : min=0 max=384 step=32 value=''
-  audio_limiter_feature_enabled (bool) : default=1 value=1
-     audio_limiter_release_time (int)  : min=250 max=102390 step=50 default=5010 value=5010 flags=slider
-	audio_limiter_deviation (int)  : min=0 max=90000 step=10 default=66250 value=66250 flags=slider
-audio_compression_feature_enabl (bool) : default=1 value=1
-	 audio_compression_gain (int)  : min=0 max=20 step=1 default=15 value=15 flags=slider
-    audio_compression_threshold (int)  : min=-40 max=0 step=1 default=-40 value=-40 flags=slider
-  audio_compression_attack_time (int)  : min=0 max=5000 step=500 default=0 value=0 flags=slider
- audio_compression_release_time (int)  : min=100000 max=1000000 step=100000 default=1000000 value=1000000 flags=slider
-     pilot_tone_feature_enabled (bool) : default=1 value=1
-	   pilot_tone_deviation (int)  : min=0 max=90000 step=10 default=6750 value=6750 flags=slider
-	   pilot_tone_frequency (int)  : min=0 max=19000 step=1 default=19000 value=19000 flags=slider
-	  pre_emphasis_settings (menu) : min=0 max=2 default=1 value=1
-	       tune_power_level (int)  : min=0 max=120 step=1 default=88 value=88 flags=slider
-	 tune_antenna_capacitor (int)  : min=0 max=191 step=1 default=0 value=110 flags=slider
-/ #
+				mute (bool) : default=1 value=0
+
+	FM Radio Modulator Controls
+
+		rds_signal_deviation (int)  : min=0 max=90000 step=10 default=200 value=200 flags=slider
+			rds_program_id (int)  : min=0 max=65535 step=1 default=0 value=0
+		rds_program_type (int)  : min=0 max=31 step=1 default=0 value=0
+			rds_ps_name (str)  : min=0 max=96 step=8 value='si4713  '
+			rds_radio_text (str)  : min=0 max=384 step=32 value=''
+	audio_limiter_feature_enabled (bool) : default=1 value=1
+	audio_limiter_release_time (int)  : min=250 max=102390 step=50 default=5010 value=5010 flags=slider
+		audio_limiter_deviation (int)  : min=0 max=90000 step=10 default=66250 value=66250 flags=slider
+	audio_compression_feature_enabl (bool) : default=1 value=1
+		audio_compression_gain (int)  : min=0 max=20 step=1 default=15 value=15 flags=slider
+	audio_compression_threshold (int)  : min=-40 max=0 step=1 default=-40 value=-40 flags=slider
+	audio_compression_attack_time (int)  : min=0 max=5000 step=500 default=0 value=0 flags=slider
+	audio_compression_release_time (int)  : min=100000 max=1000000 step=100000 default=1000000 value=1000000 flags=slider
+	pilot_tone_feature_enabled (bool) : default=1 value=1
+		pilot_tone_deviation (int)  : min=0 max=90000 step=10 default=6750 value=6750 flags=slider
+		pilot_tone_frequency (int)  : min=0 max=19000 step=1 default=19000 value=19000 flags=slider
+		pre_emphasis_settings (menu) : min=0 max=2 default=1 value=1
+		tune_power_level (int)  : min=0 max=120 step=1 default=88 value=88 flags=slider
+		tune_antenna_capacitor (int)  : min=0 max=191 step=1 default=0 value=110 flags=slider
 
 Here is a summary of them:
 
 * Pilot is an audible tone sent by the device.
 
-pilot_frequency - Configures the frequency of the stereo pilot tone.
-pilot_deviation - Configures pilot tone frequency deviation level.
-pilot_enabled - Enables or disables the pilot tone feature.
+- pilot_frequency - Configures the frequency of the stereo pilot tone.
+- pilot_deviation - Configures pilot tone frequency deviation level.
+- pilot_enabled - Enables or disables the pilot tone feature.
 
-* The si4713 device is capable of applying audio compression to the transmitted signal.
+* The si4713 device is capable of applying audio compression to the
+  transmitted signal.
 
-acomp_enabled - Enables or disables the audio dynamic range control feature.
-acomp_gain - Sets the gain for audio dynamic range control.
-acomp_threshold - Sets the threshold level for audio dynamic range control.
-acomp_attack_time - Sets the attack time for audio dynamic range control.
-acomp_release_time - Sets the release time for audio dynamic range control.
+- acomp_enabled - Enables or disables the audio dynamic range control feature.
+- acomp_gain - Sets the gain for audio dynamic range control.
+- acomp_threshold - Sets the threshold level for audio dynamic range control.
+- acomp_attack_time - Sets the attack time for audio dynamic range control.
+- acomp_release_time - Sets the release time for audio dynamic range control.
 
 * Limiter setups audio deviation limiter feature. Once a over deviation occurs,
-it is possible to adjust the front-end gain of the audio input and always
-prevent over deviation.
+  it is possible to adjust the front-end gain of the audio input and always
+  prevent over deviation.
 
-limiter_enabled - Enables or disables the limiter feature.
-limiter_deviation - Configures audio frequency deviation level.
-limiter_release_time - Sets the limiter release time.
+- limiter_enabled - Enables or disables the limiter feature.
+- limiter_deviation - Configures audio frequency deviation level.
+- limiter_release_time - Sets the limiter release time.
 
 * Tuning power
 
-power_level - Sets the output power level for signal transmission.
-antenna_capacitor - This selects the value of antenna tuning capacitor manually
-or automatically if set to zero.
+- power_level - Sets the output power level for signal transmission.
+  antenna_capacitor - This selects the value of antenna tuning capacitor
+  manually or automatically if set to zero.
 
 * RDS related
 
-rds_ps_name - Sets the RDS ps name field for transmission.
-rds_radio_text - Sets the RDS radio text for transmission.
-rds_pi - Sets the RDS PI field for transmission.
-rds_pty - Sets the RDS PTY field for transmission.
+- rds_ps_name - Sets the RDS ps name field for transmission.
+- rds_radio_text - Sets the RDS radio text for transmission.
+- rds_pi - Sets the RDS PI field for transmission.
+- rds_pty - Sets the RDS PTY field for transmission.
 
 * Region related
 
-preemphasis - sets the preemphasis to be applied for transmission.
+- preemphasis - sets the preemphasis to be applied for transmission.
 
 RNL
-===
+---
 
 This device also has an interface to measure received noise level. To do that, you should
 ioctl the device node. Here is an code of example:
 
-int main (int argc, char *argv[])
-{
-	struct si4713_rnl rnl;
-	int fd = open("/dev/radio0", O_RDWR);
-	int rval;
+.. code-block:: none
 
-	if (argc < 2)
-		return -EINVAL;
+	int main (int argc, char *argv[])
+	{
+		struct si4713_rnl rnl;
+		int fd = open("/dev/radio0", O_RDWR);
+		int rval;
 
-	if (fd < 0)
-		return fd;
+		if (argc < 2)
+			return -EINVAL;
 
-	sscanf(argv[1], "%d", &rnl.frequency);
+		if (fd < 0)
+			return fd;
 
-	rval = ioctl(fd, SI4713_IOC_MEASURE_RNL, &rnl);
-	if (rval < 0)
-		return rval;
+		sscanf(argv[1], "%d", &rnl.frequency);
 
-	printf("received noise level: %d\n", rnl.rnl);
+		rval = ioctl(fd, SI4713_IOC_MEASURE_RNL, &rnl);
+		if (rval < 0)
+			return rval;
 
-	close(fd);
-}
+		printf("received noise level: %d\n", rnl.rnl);
+
+		close(fd);
+	}
 
 The struct si4713_rnl and SI4713_IOC_MEASURE_RNL are defined under
 include/linux/platform_data/media/si4713.h.
 
 Stereo/Mono and RDS subchannels
-===============================
+-------------------------------
 
 The device can also be configured using the available sub channels for
 transmission. To do that use S/G_MODULATOR ioctl and configure txsubchans properly.
 Refer to the V4L2 API specification for proper use of this ioctl.
 
 Testing
-=======
+-------
 Testing is usually done with v4l2-ctl utility for managing FM tuner cards.
 The tool can be found in v4l-dvb repository under v4l2-apps/util directory.
 
 Example for setting rds ps name:
-# v4l2-ctl -d /dev/radio0 --set-ctrl=rds_ps_name="Dummy"
+
+.. code-block:: none
+
+	# v4l2-ctl -d /dev/radio0 --set-ctrl=rds_ps_name="Dummy"
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 30/36] [media] doc-rst: add documentation for si476x
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (27 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 29/36] [media] doc-rst: add documentation for si4713 Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 31/36] [media] doc-rst: add soc-camera documentation Mauro Carvalho Chehab
                   ` (5 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST and add to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst  |   2 +
 Documentation/media/v4l-drivers/si476x.rst | 229 ++++++++++++-----------------
 2 files changed, 96 insertions(+), 135 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 5a582438b2c4..3ff127195fd3 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -36,4 +36,6 @@ License".
 	saa7134
 	sh_mobile_ceu_camera
 	si470x
+	si4713
+	si476x
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/si476x.rst b/Documentation/media/v4l-drivers/si476x.rst
index 616607955aaf..01a8d44425aa 100644
--- a/Documentation/media/v4l-drivers/si476x.rst
+++ b/Documentation/media/v4l-drivers/si476x.rst
@@ -27,159 +27,118 @@ The drivers exposes following files:
   information. The contents of the file is binary data of the
   following layout:
 
-  Offset	| Name		| Description
-  ====================================================================
-  0x00		| blend_int	| Flag, set when stereo separation has
-  		|  		| crossed below the blend threshold
-  --------------------------------------------------------------------
-  0x01		| hblend_int	| Flag, set when HiBlend cutoff
-  		| 		| frequency is lower than threshold
-  --------------------------------------------------------------------
-  0x02		| hicut_int	| Flag, set when HiCut cutoff
-  		| 		| frequency is lower than threshold
-  --------------------------------------------------------------------
-  0x03		| chbw_int	| Flag, set when channel filter
-  		| 		| bandwidth is less than threshold
-  --------------------------------------------------------------------
-  0x04		| softmute_int	| Flag indicating that softmute
-  		| 		| attenuation has increased above
-		|		| softmute threshold
-  --------------------------------------------------------------------
-  0x05		| smute		| 0 - Audio is not soft muted
-  		| 		| 1 - Audio is soft muted
-  --------------------------------------------------------------------
-  0x06		| smattn	| Soft mute attenuation level in dB
-  --------------------------------------------------------------------
-  0x07		| chbw		| Channel filter bandwidth in kHz
-  --------------------------------------------------------------------
-  0x08		| hicut		| HiCut cutoff frequency in units of
-  		| 		| 100Hz
-  --------------------------------------------------------------------
-  0x09		| hiblend	| HiBlend cutoff frequency in units
-  		| 		| of 100 Hz
-  --------------------------------------------------------------------
-  0x10		| pilot		| 0 - Stereo pilot is not present
-  		| 		| 1 - Stereo pilot is present
-  --------------------------------------------------------------------
-  0x11		| stblend	| Stereo blend in %
-  --------------------------------------------------------------------
+  =============  ==============   ====================================
+  Offset	  Name		  Description
+  =============  ==============   ====================================
+  0x00		  blend_int	  Flag, set when stereo separation has
+				  crossed below the blend threshold
+  0x01		  hblend_int	  Flag, set when HiBlend cutoff
+				  frequency is lower than threshold
+  0x02		  hicut_int	  Flag, set when HiCut cutoff
+				  frequency is lower than threshold
+  0x03		  chbw_int	  Flag, set when channel filter
+				  bandwidth is less than threshold
+  0x04		  softmute_int	  Flag indicating that softmute
+				  attenuation has increased above
+				  softmute threshold
+  0x05		 smute		  0 - Audio is not soft muted
+				  1 - Audio is soft muted
+  0x06		  smattn	  Soft mute attenuation level in dB
+  0x07		  chbw		  Channel filter bandwidth in kHz
+  0x08		  hicut		  HiCut cutoff frequency in units of
+				  100Hz
+  0x09		  hiblend	  HiBlend cutoff frequency in units
+				  of 100 Hz
+  0x10		  pilot		  0 - Stereo pilot is not present
+				  1 - Stereo pilot is present
+  0x11		  stblend	  Stereo blend in %
+  =============  ==============   ====================================
 
 
 * /sys/kernel/debug/<device-name>/rds_blckcnt
   This file contains statistics about RDS receptions. It's binary data
   has the following layout:
 
-  Offset	| Name		| Description
-  ====================================================================
-  0x00		| expected	| Number of expected RDS blocks
-  --------------------------------------------------------------------
-  0x02		| received	| Number of received RDS blocks
-  --------------------------------------------------------------------
-  0x04		| uncorrectable	| Number of uncorrectable RDS blocks
-  --------------------------------------------------------------------
+  =============  ==============   ====================================
+  Offset	  Name		  Description
+  =============  ==============   ====================================
+  0x00		  expected	  Number of expected RDS blocks
+  0x02		  received	  Number of received RDS blocks
+  0x04		  uncorrectable	  Number of uncorrectable RDS blocks
+  =============  ==============   ====================================
 
 * /sys/kernel/debug/<device-name>/agc
   This file contains information about parameters pertaining to
   AGC(Automatic Gain Control)
 
   The layout is:
-  Offset	| Name		| Description
-  ====================================================================
-  0x00		| mxhi		| 0 - FM Mixer PD high threshold is
-  		| 		| not tripped
-		|		| 1 - FM Mixer PD high threshold is
-		|		| tripped
-  --------------------------------------------------------------------
-  0x01		| mxlo		| ditto for FM Mixer PD low
-  --------------------------------------------------------------------
-  0x02		| lnahi		| ditto for FM LNA PD high
-  --------------------------------------------------------------------
-  0x03		| lnalo		| ditto for FM LNA PD low
-  --------------------------------------------------------------------
-  0x04		| fmagc1	| FMAGC1 attenuator resistance
-  		| 		| (see datasheet for more detail)
-  --------------------------------------------------------------------
-  0x05		| fmagc2	| ditto for FMAGC2
-  --------------------------------------------------------------------
-  0x06		| pgagain	| PGA gain in dB
-  --------------------------------------------------------------------
-  0x07		| fmwblang	| FM/WB LNA Gain in dB
-  --------------------------------------------------------------------
+
+  =============  ==============   ====================================
+  Offset	  Name		  Description
+  =============  ==============   ====================================
+  0x00		  mxhi		  0 - FM Mixer PD high threshold is
+				  not tripped
+				  1 - FM Mixer PD high threshold is
+				  tripped
+  0x01		  mxlo		  ditto for FM Mixer PD low
+  0x02		  lnahi		  ditto for FM LNA PD high
+  0x03		  lnalo		  ditto for FM LNA PD low
+  0x04		  fmagc1	  FMAGC1 attenuator resistance
+				  (see datasheet for more detail)
+  0x05		  fmagc2	  ditto for FMAGC2
+  0x06		  pgagain	  PGA gain in dB
+  0x07		  fmwblang	  FM/WB LNA Gain in dB
+  =============  ==============   ====================================
 
 * /sys/kernel/debug/<device-name>/rsq
   This file contains information about parameters pertaining to
   RSQ(Received Signal Quality)
 
   The layout is:
-  Offset	| Name		| Description
-  ====================================================================
-  0x00		| multhint	| 0 - multipath value has not crossed
-  		| 		| the Multipath high threshold
-		|		| 1 - multipath value has crossed
-  		| 		| the Multipath high threshold
-  --------------------------------------------------------------------
-  0x01		| multlint	| ditto for Multipath low threshold
-  --------------------------------------------------------------------
-  0x02		| snrhint	| 0 - received signal's SNR has not
-  		| 		| crossed high threshold
-		|		| 1 - received signal's SNR has
-  		| 		| crossed high threshold
-  --------------------------------------------------------------------
-  0x03		| snrlint	| ditto for low threshold
-  --------------------------------------------------------------------
-  0x04		| rssihint	| ditto for RSSI high threshold
-  --------------------------------------------------------------------
-  0x05		| rssilint	| ditto for RSSI low threshold
-  --------------------------------------------------------------------
-  0x06		| bltf		| Flag indicating if seek command
-  		| 		| reached/wrapped seek band limit
-  --------------------------------------------------------------------
-  0x07		| snr_ready	| Indicates that SNR metrics is ready
-  --------------------------------------------------------------------
-  0x08		| rssiready	| ditto for RSSI metrics
-  --------------------------------------------------------------------
-  0x09		| injside	| 0 - Low-side injection is being used
-  		| 		| 1 - High-side injection is used
-  --------------------------------------------------------------------
-  0x10		| afcrl		| Flag indicating if AFC rails
-  --------------------------------------------------------------------
-  0x11		| valid		| Flag indicating if channel is valid
-  --------------------------------------------------------------------
-  0x12		| readfreq	| Current tuned frequency
-  --------------------------------------------------------------------
-  0x14		| freqoff	| Signed frequency offset in units of
-  		| 		| 2ppm
-  --------------------------------------------------------------------
-  0x15		| rssi		| Signed value of RSSI in dBuV
-  --------------------------------------------------------------------
-  0x16		| snr		| Signed RF SNR in dB
-  --------------------------------------------------------------------
-  0x17		| issi		| Signed Image Strength Signal
-  		| 		| indicator
-  --------------------------------------------------------------------
-  0x18		| lassi		| Signed Low side adjacent Channel
-  		| 		| Strength indicator
-  --------------------------------------------------------------------
-  0x19		| hassi		| ditto fpr High side
-  --------------------------------------------------------------------
-  0x20		| mult		| Multipath indicator
-  --------------------------------------------------------------------
-  0x21		| dev		| Frequency deviation
-  --------------------------------------------------------------------
-  0x24		| assi		| Adjacent channel SSI
-  --------------------------------------------------------------------
-  0x25		| usn		| Ultrasonic noise indicator
-  --------------------------------------------------------------------
-  0x26		| pilotdev	| Pilot deviation in units of 100 Hz
-  --------------------------------------------------------------------
-  0x27		| rdsdev	| ditto for RDS
-  --------------------------------------------------------------------
-  0x28		| assidev	| ditto for ASSI
-  --------------------------------------------------------------------
-  0x29		| strongdev	| Frequency deviation
-  --------------------------------------------------------------------
-  0x30		| rdspi		| RDS PI code
-  --------------------------------------------------------------------
+
+  =============  ==============   ====================================
+  Offset	  Name		  Description
+  =============  ==============   ====================================
+  0x00		  multhint	  0 - multipath value has not crossed
+				  the Multipath high threshold
+				  1 - multipath value has crossed
+				  the Multipath high threshold
+  0x01		  multlint	  ditto for Multipath low threshold
+  0x02		  snrhint	  0 - received signal's SNR has not
+				  crossed high threshold
+				  1 - received signal's SNR has
+				  crossed high threshold
+  0x03		  snrlint	  ditto for low threshold
+  0x04		  rssihint	  ditto for RSSI high threshold
+  0x05		  rssilint	  ditto for RSSI low threshold
+  0x06		  bltf		  Flag indicating if seek command
+				  reached/wrapped seek band limit
+  0x07		  snr_ready	  Indicates that SNR metrics is ready
+  0x08		  rssiready	  ditto for RSSI metrics
+  0x09		  injside	  0 - Low-side injection is being used
+				  1 - High-side injection is used
+  0x10		  afcrl		  Flag indicating if AFC rails
+  0x11		  valid		  Flag indicating if channel is valid
+  0x12		  readfreq	  Current tuned frequency
+  0x14		  freqoff	  Signed frequency offset in units of
+				  2ppm
+  0x15		  rssi		  Signed value of RSSI in dBuV
+  0x16		  snr		  Signed RF SNR in dB
+  0x17		  issi		  Signed Image Strength Signal
+				  indicator
+  0x18		  lassi		  Signed Low side adjacent Channel
+				  Strength indicator
+  0x19		  hassi		  ditto fpr High side
+  0x20		  mult		  Multipath indicator
+  0x21		  dev		  Frequency deviation
+  0x24		  assi		  Adjacent channel SSI
+  0x25		  usn		  Ultrasonic noise indicator
+  0x26		  pilotdev	  Pilot deviation in units of 100 Hz
+  0x27		  rdsdev	  ditto for RDS
+  0x28		  assidev	  ditto for ASSI
+  0x29		  strongdev	  Frequency deviation
+  0x30		  rdspi		  RDS PI code
+  =============  ==============   ====================================
 
 * /sys/kernel/debug/<device-name>/rsq_primary
   This file contains information about parameters pertaining to
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 31/36] [media] doc-rst: add soc-camera documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (28 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 30/36] [media] doc-rst: add documentation for si476x Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 32/36] [media] doc-rst: add documentation for uvcvideo Mauro Carvalho Chehab
                   ` (4 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST format and add it at media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst      |  1 +
 Documentation/media/v4l-drivers/si476x.rst     | 12 +++++---
 Documentation/media/v4l-drivers/soc-camera.rst | 41 +++++++++++++++-----------
 3 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 3ff127195fd3..a982d73abcb6 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -38,4 +38,5 @@ License".
 	si470x
 	si4713
 	si476x
+	soc-camera
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/si476x.rst b/Documentation/media/v4l-drivers/si476x.rst
index 01a8d44425aa..d5c07bb7524d 100644
--- a/Documentation/media/v4l-drivers/si476x.rst
+++ b/Documentation/media/v4l-drivers/si476x.rst
@@ -1,9 +1,13 @@
-SI476x Driver Readme
-------------------------------------------------
-	Copyright (C) 2013 Andrey Smirnov <andrew.smirnov@gmail.com>
+.. include:: <isonum.txt>
+
+
+The SI476x Driver
+=================
+
+Copyright |copy| 2013 Andrey Smirnov <andrew.smirnov@gmail.com>
 
 TODO for the driver
-------------------------------
+-------------------
 
 - According to the SiLabs' datasheet it is possible to update the
   firmware of the radio chip in the run-time, thus bringing it to the
diff --git a/Documentation/media/v4l-drivers/soc-camera.rst b/Documentation/media/v4l-drivers/soc-camera.rst
index 84f41cf1f3e8..ba0c15dd092c 100644
--- a/Documentation/media/v4l-drivers/soc-camera.rst
+++ b/Documentation/media/v4l-drivers/soc-camera.rst
@@ -1,5 +1,7 @@
-			Soc-Camera Subsystem
-			====================
+The Soc-Camera Drivers
+======================
+
+Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 
 Terminology
 -----------
@@ -45,10 +47,14 @@ Camera host API
 
 A host camera driver is registered using the
 
-soc_camera_host_register(struct soc_camera_host *);
+.. code-block:: none
+
+	soc_camera_host_register(struct soc_camera_host *);
 
 function. The host object can be initialized as follows:
 
+.. code-block:: none
+
 	struct soc_camera_host	*ici;
 	ici->drv_name		= DRV_NAME;
 	ici->ops		= &camera_host_ops;
@@ -58,18 +64,20 @@ function. The host object can be initialized as follows:
 
 All camera host methods are passed in a struct soc_camera_host_ops:
 
-static struct soc_camera_host_ops camera_host_ops = {
-	.owner		= THIS_MODULE,
-	.add		= camera_add_device,
-	.remove		= camera_remove_device,
-	.set_fmt	= camera_set_fmt_cap,
-	.try_fmt	= camera_try_fmt_cap,
-	.init_videobuf2	= camera_init_videobuf2,
-	.poll		= camera_poll,
-	.querycap	= camera_querycap,
-	.set_bus_param	= camera_set_bus_param,
-	/* The rest of host operations are optional */
-};
+.. code-block:: none
+
+	static struct soc_camera_host_ops camera_host_ops = {
+		.owner		= THIS_MODULE,
+		.add		= camera_add_device,
+		.remove		= camera_remove_device,
+		.set_fmt	= camera_set_fmt_cap,
+		.try_fmt	= camera_try_fmt_cap,
+		.init_videobuf2	= camera_init_videobuf2,
+		.poll		= camera_poll,
+		.querycap	= camera_querycap,
+		.set_bus_param	= camera_set_bus_param,
+		/* The rest of host operations are optional */
+	};
 
 .add and .remove methods are called when a sensor is attached to or detached
 from the host. .set_bus_param is used to configure physical connection
@@ -159,6 +167,3 @@ configure camera drivers to produce the FOURCC format, requested by the user,
 using the VIDIOC_S_FMT ioctl(). Apart from those standard format conversions,
 host drivers can also provide their own conversion rules by implementing a
 .get_formats and, if required, a .put_formats methods.
-
---
-Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 32/36] [media] doc-rst: add documentation for uvcvideo
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (29 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 31/36] [media] doc-rst: add soc-camera documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 33/36] [media] doc-rst: add documentation for Zoran driver Mauro Carvalho Chehab
                   ` (3 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

Convert it to ReST and add to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst    |  1 +
 Documentation/media/v4l-drivers/uvcvideo.rst | 48 ++++++++++++++++++----------
 2 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index a982d73abcb6..90224e0231df 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -39,4 +39,5 @@ License".
 	si4713
 	si476x
 	soc-camera
+	uvcvideo
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/uvcvideo.rst b/Documentation/media/v4l-drivers/uvcvideo.rst
index 35ce19cddcf8..d68b3d59a4b5 100644
--- a/Documentation/media/v4l-drivers/uvcvideo.rst
+++ b/Documentation/media/v4l-drivers/uvcvideo.rst
@@ -1,5 +1,5 @@
-Linux USB Video Class (UVC) driver
-==================================
+The Linux USB Video Class (UVC) driver
+======================================
 
 This file documents some driver-specific aspects of the UVC driver, such as
 driver-specific ioctls and implementation notes.
@@ -11,7 +11,8 @@ linux-uvc-devel@lists.berlios.de.
 Extension Unit (XU) support
 ---------------------------
 
-1. Introduction
+Introduction
+~~~~~~~~~~~~
 
 The UVC specification allows for vendor-specific extensions through extension
 units (XUs). The Linux UVC driver supports extension unit controls (XU controls)
@@ -31,7 +32,8 @@ maximum flexibility.
 Both mechanisms complement each other and are described in more detail below.
 
 
-2. Control mappings
+Control mappings
+~~~~~~~~~~~~~~~~
 
 The UVC driver provides an API for user space applications to define so-called
 control mappings at runtime. These allow for individual XU controls or byte
@@ -82,7 +84,8 @@ For details on the UVCIOC_CTRL_QUERY ioctl please refer to the section titled
 "IOCTL reference" below.
 
 
-4. Security
+Security
+~~~~~~~~
 
 The API doesn't currently provide a fine-grained access control facility. The
 UVCIOC_CTRL_ADD and UVCIOC_CTRL_MAP ioctls require super user permissions.
@@ -90,20 +93,24 @@ UVCIOC_CTRL_ADD and UVCIOC_CTRL_MAP ioctls require super user permissions.
 Suggestions on how to improve this are welcome.
 
 
-5. Debugging
+Debugging
+~~~~~~~~~
 
 In order to debug problems related to XU controls or controls in general it is
 recommended to enable the UVC_TRACE_CONTROL bit in the module parameter 'trace'.
 This causes extra output to be written into the system log.
 
 
-6. IOCTL reference
+IOCTL reference
+~~~~~~~~~~~~~~~
 
----- UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control ----
+UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Argument: struct uvc_xu_control_mapping
 
-Description:
+**Description**:
+
 	This ioctl creates a mapping between a UVC control or part of a UVC
 	control and a V4L2 control. Once mappings are defined, userspace
 	applications can access vendor-defined UVC control through the V4L2
@@ -122,7 +129,8 @@ Description:
 	For signed integer V4L2 controls the data_type field should be set to
 	UVC_CTRL_DATA_TYPE_SIGNED. Other values are currently ignored.
 
-Return value:
+**Return value**:
+
 	On success 0 is returned. On error -1 is returned and errno is set
 	appropriately.
 
@@ -137,7 +145,10 @@ Return value:
 	EEXIST
 		Mapping already exists.
 
-Data types:
+**Data types**:
+
+.. code-block:: none
+
 	* struct uvc_xu_control_mapping
 
 	__u32	id		V4L2 control identifier
@@ -170,11 +181,12 @@ Data types:
 	UVC_CTRL_DATA_TYPE_BITMASK	Bitmask
 
 
----- UVCIOC_CTRL_QUERY - Query a UVC XU control ----
-
+UVCIOC_CTRL_QUERY - Query a UVC XU control
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Argument: struct uvc_xu_control_query
 
-Description:
+**Description**:
+
 	This ioctl queries a UVC XU control identified by its extension unit ID
 	and control selector.
 
@@ -213,7 +225,8 @@ Description:
 	important for the result of the UVC_GET_LEN requests, which is always
 	returned as a little-endian 16-bit integer by the device.
 
-Return value:
+**Return value**:
+
 	On success 0 is returned. On error -1 is returned and errno is set
 	appropriately.
 
@@ -229,7 +242,10 @@ Return value:
 	EFAULT
 		The data pointer references an inaccessible memory area.
 
-Data types:
+**Data types**:
+
+.. code-block:: none
+
 	* struct uvc_xu_control_query
 
 	__u8	unit		Extension unit ID
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 33/36] [media] doc-rst: add documentation for Zoran driver
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (30 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 32/36] [media] doc-rst: add documentation for uvcvideo Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 34/36] [media] doc-rst: add vivid documentation Mauro Carvalho Chehab
                   ` (2 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=true, Size: 17708 bytes --]

Convert it to ReST and add to media/v4l-drivers book.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst |   1 +
 Documentation/media/v4l-drivers/zoran.rst | 305 ++++++++++++++++++------------
 2 files changed, 189 insertions(+), 117 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 90224e0231df..4431b089af49 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -40,4 +40,5 @@ License".
 	si476x
 	soc-camera
 	uvcvideo
+	zoran
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/zoran.rst b/Documentation/media/v4l-drivers/zoran.rst
index b5a911fd0602..c3a0f7bc2c7b 100644
--- a/Documentation/media/v4l-drivers/zoran.rst
+++ b/Documentation/media/v4l-drivers/zoran.rst
@@ -1,139 +1,191 @@
-Frequently Asked Questions:
-===========================
-subject: unified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33)
+The Zoran driver
+================
+
+unified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33)
+
 website: http://mjpeg.sourceforge.net/driver-zoran/
 
-1. What cards are supported
-1.1 What the TV decoder can do an what not
-1.2 What the TV encoder can do an what not
-2. How do I get this damn thing to work
-3. What mainboard should I use (or why doesn't my card work)
-4. Programming interface
-5. Applications
-6. Concerning buffer sizes, quality, output size etc.
-7. It hangs/crashes/fails/whatevers! Help!
-8. Maintainers/Contacting
-9. License
 
-===========================
+Frequently Asked Questions
+--------------------------
 
-1. What cards are supported
+What cards are supported
+------------------------
 
 Iomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro
 DC10/DC10+/DC30/DC30+ and related boards (available under various names).
 
-Iomega Buz:
+Iomega Buz
+~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36060 MJPEG codec
 * Philips saa7111 TV decoder
 * Philips saa7185 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, saa7111, saa7185, zr36060, zr36067
+videocodec, saa7111, saa7185, zr36060, zr36067
+
 Inputs/outputs: Composite and S-video
+
 Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
+
 Card number: 7
 
-AverMedia 6 Eyes AVS6EYES:
+AverMedia 6 Eyes AVS6EYES
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36060 MJPEG codec
 * Samsung ks0127 TV decoder
 * Conexant bt866  TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, ks0127, bt866, zr36060, zr36067
-Inputs/outputs: Six physical inputs. 1-6 are composite,
-		1-2, 3-4, 5-6 doubles as S-video,
-		1-3 triples as component.
-		One composite output.
+videocodec, ks0127, bt866, zr36060, zr36067
+
+Inputs/outputs:
+	Six physical inputs. 1-6 are composite,
+	1-2, 3-4, 5-6 doubles as S-video,
+	1-3 triples as component.
+	One composite output.
+
 Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
+
 Card number: 8
-Not autodetected, card=8 is necessary.
 
-Linux Media Labs LML33:
+.. note::
+
+   Not autodetected, card=8 is necessary.
+
+Linux Media Labs LML33
+~~~~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36060 MJPEG codec
 * Brooktree bt819 TV decoder
 * Brooktree bt856 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, bt819, bt856, zr36060, zr36067
+videocodec, bt819, bt856, zr36060, zr36067
+
 Inputs/outputs: Composite and S-video
+
 Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
+
 Card number: 5
 
-Linux Media Labs LML33R10:
+Linux Media Labs LML33R10
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36060 MJPEG codec
 * Philips saa7114 TV decoder
 * Analog Devices adv7170 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, saa7114, adv7170, zr36060, zr36067
+videocodec, saa7114, adv7170, zr36060, zr36067
+
 Inputs/outputs: Composite and S-video
+
 Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
+
 Card number: 6
 
-Pinnacle/Miro DC10(new):
+Pinnacle/Miro DC10(new)
+~~~~~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36057 PCI controller
 * Zoran zr36060 MJPEG codec
 * Philips saa7110a TV decoder
 * Analog Devices adv7176 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, saa7110, adv7175, zr36060, zr36067
+videocodec, saa7110, adv7175, zr36060, zr36067
+
 Inputs/outputs: Composite, S-video and Internal
+
 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
+
 Card number: 1
 
-Pinnacle/Miro DC10+:
+Pinnacle/Miro DC10+
+~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36060 MJPEG codec
 * Philips saa7110a TV decoder
 * Analog Devices adv7176 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, sa7110, adv7175, zr36060, zr36067
+videocodec, sa7110, adv7175, zr36060, zr36067
+
 Inputs/outputs: Composite, S-video and Internal
+
 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
+
 Card number: 2
 
-Pinnacle/Miro DC10(old): *
+Pinnacle/Miro DC10(old)
+~~~~~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36057 PCI controller
 * Zoran zr36050 MJPEG codec
 * Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?)
 * Micronas vpx3220a TV decoder
-* mse3000 TV encoder or Analog Devices adv7176 TV encoder *
+* mse3000 TV encoder or Analog Devices adv7176 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
+videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
+
 Inputs/outputs: Composite, S-video and Internal
+
 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
+
 Card number: 0
 
-Pinnacle/Miro DC30: *
+Pinnacle/Miro DC30
+~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36057 PCI controller
 * Zoran zr36050 MJPEG codec
 * Zoran zr36016 Video Front End
 * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
 * Analog Devices adv7176 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
+videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
+
 Inputs/outputs: Composite, S-video and Internal
+
 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
+
 Card number: 3
 
-Pinnacle/Miro DC30+: *
+Pinnacle/Miro DC30+
+~~~~~~~~~~~~~~~~~~~
+
 * Zoran zr36067 PCI controller
 * Zoran zr36050 MJPEG codec
 * Zoran zr36016 Video Front End
 * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
 * Analog Devices adv7176 TV encoder
+
 Drivers to use: videodev, i2c-core, i2c-algo-bit,
-		videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067
+videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067
+
 Inputs/outputs: Composite, S-video and Internal
+
 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
+
 Card number: 4
 
-Note: No module for the mse3000 is available yet
-Note: No module for the vpx3224 is available yet
+.. note::
 
-===========================
+   #) No module for the mse3000 is available yet
+   #) No module for the vpx3224 is available yet
 
 1.1 What the TV decoder can do an what not
+------------------------------------------
 
 The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that
 information is not enough. There are several formats of the TV standards.
@@ -187,32 +239,44 @@ to split coma and luma instead of a Delay line.
 But I did not defiantly find out what NTSC Comb is.
 
 Philips saa7111 TV decoder
-was introduced in 1997, is used in the BUZ and
-can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1997, is used in the BUZ and
+- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
 
 Philips saa7110a TV decoder
-was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
-can handle: PAL B/G, NTSC M and SECAM
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
+- can handle: PAL B/G, NTSC M and SECAM
 
 Philips saa7114 TV decoder
-was introduced in 2000, is used in the LML33R10 and
-can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 2000, is used in the LML33R10 and
+- can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
 
 Brooktree bt819 TV decoder
-was introduced in 1996, and is used in the LML33 and
-can handle: PAL B/D/G/H/I, NTSC M
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1996, and is used in the LML33 and
+- can handle: PAL B/D/G/H/I, NTSC M
 
 Micronas vpx3220a TV decoder
-was introduced in 1996, is used in the DC30 and DC30+ and
-can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1996, is used in the DC30 and DC30+ and
+- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb
 
 Samsung ks0127 TV decoder
-is used in the AVS6EYES card and
-can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-===========================
+- is used in the AVS6EYES card and
+- can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM
 
-1.2 What the TV encoder can do an what not
+
+What the TV encoder can do an what not
+--------------------------------------
 
 The TV encoder are doing the "same" as the decoder, but in the oder direction.
 You feed them digital data and the generate a Composite or SVHS signal.
@@ -220,36 +284,47 @@ For information about the colorsystems and TV norm take a look in the
 TV decoder section.
 
 Philips saa7185 TV Encoder
-was introduced in 1996, is used in the BUZ
-can generate: PAL B/G, NTSC M
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1996, is used in the BUZ
+- can generate: PAL B/G, NTSC M
 
 Brooktree bt856 TV Encoder
-was introduced in 1994, is used in the LML33
-can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1994, is used in the LML33
+- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
 
 Analog Devices adv7170 TV Encoder
-was introduced in 2000, is used in the LML300R10
-can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 2000, is used in the LML300R10
+- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60
 
 Analog Devices adv7175 TV Encoder
-was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+
-can generate: PAL B/D/G/H/I/N, PAL M, NTSC M
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+
+- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M
 
 ITT mse3000 TV encoder
-was introduced in 1991, is used in the DC10 old
-can generate: PAL , NTSC , SECAM
+~~~~~~~~~~~~~~~~~~~~~~
+
+- was introduced in 1991, is used in the DC10 old
+- can generate: PAL , NTSC , SECAM
 
 Conexant bt866 TV encoder
-is used in AVS6EYES, and
-can generate: NTSC/PAL, PAL­M, PAL­N
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- is used in AVS6EYES, and
+- can generate: NTSC/PAL, PAL­M, PAL­N
 
 The adv717x, should be able to produce PAL N. But you find nothing PAL N
 specific in the registers. Seem that you have to reuse a other standard
 to generate PAL N, maybe it would work if you use the PAL M settings.
 
-==========================
-
-2. How do I get this damn thing to work
+How do I get this damn thing to work
+------------------------------------
 
 Load zr36067.o. If it can't autodetect your card, use the card=X insmod
 option with X being the card number as given in the previous section.
@@ -268,9 +343,9 @@ XF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in
 one of your startup scripts (normally rc.local) if you don't use X. Both
 make sure that the modules are loaded on startup, under the root account.
 
-===========================
+What mainboard should I use (or why doesn't my card work)
+---------------------------------------------------------
 
-3. What mainboard should I use (or why doesn't my card work)
 
 <insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA.
 
@@ -278,31 +353,31 @@ Experience tells us that people with a Buz, on average, have more problems
 than users with a DC10+/LML33. Also, it tells us that people owning a VIA-
 based mainboard (ktXXX, MVP3) have more problems than users with a mainboard
 based on a different chipset. Here's some notes from Andrew Stevens:
---
+
 Here's my experience of using LML33 and Buz on various motherboards:
 
-VIA MVP3
-	Forget it. Pointless. Doesn't work.
-Intel 430FX (Pentium 200)
-	LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
-Intel 440BX (early stepping)
-	LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
-Intel 440BX (late stepping)
-	Buz tolerable, LML3 almost perfect (occasional single frame drops)
-SiS735
-	LML33 perfect, Buz tolerable.
-VIA KT133(*)
-	LML33 starting to get annoying, Buz poor enough that I have up.
+- VIA MVP3
+	- Forget it. Pointless. Doesn't work.
+- Intel 430FX (Pentium 200)
+	- LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
+- Intel 440BX (early stepping)
+	- LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
+- Intel 440BX (late stepping)
+	- Buz tolerable, LML3 almost perfect (occasional single frame drops)
+- SiS735
+	- LML33 perfect, Buz tolerable.
+- VIA KT133(*)
+	- LML33 starting to get annoying, Buz poor enough that I have up.
+
+- Both 440BX boards were dual CPU versions.
 
-Both 440BX boards were dual CPU versions.
---
 Bernhard Praschinger later added:
---
-AMD 751
-	Buz perfect-tolerable
-AMD 760
-	Buz perfect-tolerable
---
+
+- AMD 751
+	- Buz perfect-tolerable
+- AMD 760
+	- Buz perfect-tolerable
+
 In general, people on the user mailinglist won't give you much of a chance
 if you have a VIA-based motherboard. They may be cheap, but sometimes, you'd
 rather want to spend some more money on better boards. In general, VIA
@@ -317,9 +392,8 @@ the quality/buffersize during capture (see 'Concerning buffer sizes, quality,
 output size etc.'). If it hangs, there's little we can do as of now. Check
 your IRQs and make sure the card has its own interrupts.
 
-===========================
-
-4. Programming interface
+Programming interface
+---------------------
 
 This driver conforms to video4linux2. Support for V4L1 and for the custom
 zoran ioctls has been removed in kernel 2.6.38.
@@ -337,35 +411,39 @@ Additional notes for software developers:
    settings of a variety of TV capture cards which may work in ITU or
    square pixel format.
 
-===========================
-
-5. Applications
+Applications
+------------
 
 Applications known to work with this driver:
 
 TV viewing:
+
 * xawtv
 * kwintv
 * probably any TV application that supports video4linux or video4linux2.
 
 MJPEG capture/playback:
+
 * mjpegtools/lavtools (or Linux Video Studio)
 * gstreamer
 * mplayer
 
 General raw capture:
+
 * xawtv
 * gstreamer
 * probably any application that supports video4linux or video4linux2
 
 Video editing:
+
 * Cinelerra
 * MainActor
 * mjpegtools (or Linux Video Studio)
 
-===========================
 
-6. Concerning buffer sizes, quality, output size etc.
+Concerning buffer sizes, quality, output size etc.
+--------------------------------------------------
+
 
 The zr36060 can do 1:2 JPEG compression. This is really the theoretical
 maximum that the chipset can reach. The driver can, however, limit compression
@@ -448,9 +526,8 @@ If you experience timeouts, lowering the quality/buffersize or using
 'low_bitrate=1 as insmod option for zr36060.o might actually help, as is
 proven by the Buz.
 
-===========================
-
-7. It hangs/crashes/fails/whatevers! Help!
+It hangs/crashes/fails/whatevers! Help!
+---------------------------------------
 
 Make sure that the card has its own interrupts (see /proc/interrupts), check
 the output of dmesg at high verbosity (load zr36067.o with debug=2,
@@ -467,9 +544,8 @@ the kernel version, driver version, glibc version, gcc version and any other
 information that might possibly be of interest. Also provide the dmesg output
 at high verbosity. See 'Contacting' on how to contact the developers.
 
-===========================
-
-8. Maintainers/Contacting
+Maintainers/Contacting
+----------------------
 
 The driver is currently maintained by Laurent Pinchart and Ronald Bultje
 (<laurent.pinchart@skynet.be> and <rbultje@ronald.bitfreak.net>). For bug
@@ -487,11 +563,10 @@ Previous maintainers/developers of this driver include Serguei Miridonov
 <mirsev@cicese.mx>, Wolfgang Scherr <scherr@net4you.net>, Dave Perks
 <dperks@ibm.net> and Rainer Johanni <Rainer@Johanni.de>.
 
-===========================
+Driver's License
+----------------
 
-9. License
-
-This driver is distributed under the terms of the General Public License.
+    This driver is distributed under the terms of the General Public License.
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -503,8 +578,4 @@ This driver is distributed under the terms of the General Public License.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
 See http://www.gnu.org/ for more information.
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 34/36] [media] doc-rst: add vivid documentation
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (31 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 33/36] [media] doc-rst: add documentation for Zoran driver Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 35/36] [media] doc-rst: add documentation about IR on V4L boards Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 36/36] [media] v4l-with-ir.rst: update it to reflect the current status Mauro Carvalho Chehab
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet,
	Hans Verkuil, Eric Engestrom, linux-doc

Convert it to ReST and add to media/v4l-drivers book.

As the sections here (and on other docs) are numbered,
let's also make this book auto-numbered.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst |   2 +
 Documentation/media/v4l-drivers/vivid.rst | 667 ++++++++++++++++++------------
 2 files changed, 415 insertions(+), 254 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 4431b089af49..d660623eeea6 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -17,6 +17,7 @@ License".
 
 .. toctree::
 	:maxdepth: 5
+	:numbered:
 
 	fourcc
 	cardlist
@@ -40,5 +41,6 @@ License".
 	si476x
 	soc-camera
 	uvcvideo
+	vivid
 	zoran
 	zr364xx
diff --git a/Documentation/media/v4l-drivers/vivid.rst b/Documentation/media/v4l-drivers/vivid.rst
index 1b26519c6ddc..c8cf371e8bb9 100644
--- a/Documentation/media/v4l-drivers/vivid.rst
+++ b/Documentation/media/v4l-drivers/vivid.rst
@@ -1,5 +1,5 @@
-vivid: Virtual Video Test Driver
-================================
+The Virtual Video Test Driver (vivid)
+=====================================
 
 This driver emulates video4linux hardware of various types: video capture, video
 output, vbi capture and output, radio receivers and transmitters and a software
@@ -37,49 +37,8 @@ This document describes the features implemented by this driver:
 
 These features will be described in more detail below.
 
-
-Table of Contents
------------------
-
-Section 1: Configuring the driver
-Section 2: Video Capture
-Section 2.1: Webcam Input
-Section 2.2: TV and S-Video Inputs
-Section 2.3: HDMI Input
-Section 3: Video Output
-Section 3.1: S-Video Output
-Section 3.2: HDMI Output
-Section 4: VBI Capture
-Section 5: VBI Output
-Section 6: Radio Receiver
-Section 7: Radio Transmitter
-Section 8: Software Defined Radio Receiver
-Section 9: Controls
-Section 9.1: User Controls - Test Controls
-Section 9.2: User Controls - Video Capture
-Section 9.3: User Controls - Audio
-Section 9.4: Vivid Controls
-Section 9.4.1: Test Pattern Controls
-Section 9.4.2: Capture Feature Selection Controls
-Section 9.4.3: Output Feature Selection Controls
-Section 9.4.4: Error Injection Controls
-Section 9.4.5: VBI Raw Capture Controls
-Section 9.5: Digital Video Controls
-Section 9.6: FM Radio Receiver Controls
-Section 9.7: FM Radio Modulator
-Section 10: Video, VBI and RDS Looping
-Section 10.1: Video and Sliced VBI looping
-Section 10.2: Radio & RDS Looping
-Section 11: Cropping, Composing, Scaling
-Section 12: Formats
-Section 13: Capture Overlay
-Section 14: Output Overlay
-Section 15: CEC (Consumer Electronics Control)
-Section 16: Some Future Improvements
-
-
-Section 1: Configuring the driver
----------------------------------
+Configuring the driver
+----------------------
 
 By default the driver will create a single instance that has a video capture
 device with webcam, TV, S-Video and HDMI inputs, a video output device with
@@ -89,71 +48,94 @@ radio receiver device, one radio transmitter device and one SDR device.
 The number of instances, devices, video inputs and outputs and their types are
 all configurable using the following module options:
 
-n_devs: number of driver instances to create. By default set to 1. Up to 64
+- n_devs:
+
+	number of driver instances to create. By default set to 1. Up to 64
 	instances can be created.
 
-node_types: which devices should each driver instance create. An array of
+- node_types:
+
+	which devices should each driver instance create. An array of
 	hexadecimal values, one for each instance. The default is 0x1d3d.
 	Each value is a bitmask with the following meaning:
-		bit 0: Video Capture node
-		bit 2-3: VBI Capture node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
-		bit 4: Radio Receiver node
-		bit 5: Software Defined Radio Receiver node
-		bit 8: Video Output node
-		bit 10-11: VBI Output node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
-		bit 12: Radio Transmitter node
-		bit 16: Framebuffer for testing overlays
+
+		- bit 0: Video Capture node
+		- bit 2-3: VBI Capture node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
+		- bit 4: Radio Receiver node
+		- bit 5: Software Defined Radio Receiver node
+		- bit 8: Video Output node
+		- bit 10-11: VBI Output node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
+		- bit 12: Radio Transmitter node
+		- bit 16: Framebuffer for testing overlays
 
 	So to create four instances, the first two with just one video capture
 	device, the second two with just one video output device you would pass
 	these module options to vivid:
 
+	.. code-block:: none
+
 		n_devs=4 node_types=0x1,0x1,0x100,0x100
 
-num_inputs: the number of inputs, one for each instance. By default 4 inputs
+- num_inputs:
+
+	the number of inputs, one for each instance. By default 4 inputs
 	are created for each video capture device. At most 16 inputs can be created,
 	and there must be at least one.
 
-input_types: the input types for each instance, the default is 0xe4. This defines
+- input_types:
+
+	the input types for each instance, the default is 0xe4. This defines
 	what the type of each input is when the inputs are created for each driver
 	instance. This is a hexadecimal value with up to 16 pairs of bits, each
 	pair gives the type and bits 0-1 map to input 0, bits 2-3 map to input 1,
 	30-31 map to input 15. Each pair of bits has the following meaning:
 
-		00: this is a webcam input
-		01: this is a TV tuner input
-		10: this is an S-Video input
-		11: this is an HDMI input
+		- 00: this is a webcam input
+		- 01: this is a TV tuner input
+		- 10: this is an S-Video input
+		- 11: this is an HDMI input
 
 	So to create a video capture device with 8 inputs where input 0 is a TV
 	tuner, inputs 1-3 are S-Video inputs and inputs 4-7 are HDMI inputs you
 	would use the following module options:
 
+	.. code-block:: none
+
 		num_inputs=8 input_types=0xffa9
 
-num_outputs: the number of outputs, one for each instance. By default 2 outputs
+- num_outputs:
+
+	the number of outputs, one for each instance. By default 2 outputs
 	are created for each video output device. At most 16 outputs can be
 	created, and there must be at least one.
 
-output_types: the output types for each instance, the default is 0x02. This defines
+- output_types:
+
+	the output types for each instance, the default is 0x02. This defines
 	what the type of each output is when the outputs are created for each
 	driver instance. This is a hexadecimal value with up to 16 bits, each bit
 	gives the type and bit 0 maps to output 0, bit 1 maps to output 1, bit
 	15 maps to output 15. The meaning of each bit is as follows:
 
-		0: this is an S-Video output
-		1: this is an HDMI output
+		- 0: this is an S-Video output
+		- 1: this is an HDMI output
 
 	So to create a video output device with 8 outputs where outputs 0-3 are
 	S-Video outputs and outputs 4-7 are HDMI outputs you would use the
 	following module options:
 
+	.. code-block:: none
+
 		num_outputs=8 output_types=0xf0
 
-vid_cap_nr: give the desired videoX start number for each video capture device.
+- vid_cap_nr:
+
+	give the desired videoX start number for each video capture device.
 	The default is -1 which will just take the first free number. This allows
 	you to map capture video nodes to specific videoX device nodes. Example:
 
+	.. code-block:: none
+
 		n_devs=4 vid_cap_nr=2,4,6,8
 
 	This will attempt to assign /dev/video2 for the video capture device of
@@ -161,25 +143,39 @@ vid_cap_nr: give the desired videoX start number for each video capture device.
 	instance. If it can't succeed, then it will just take the next free
 	number.
 
-vid_out_nr: give the desired videoX start number for each video output device.
-        The default is -1 which will just take the first free number.
+- vid_out_nr:
 
-vbi_cap_nr: give the desired vbiX start number for each vbi capture device.
-        The default is -1 which will just take the first free number.
+	give the desired videoX start number for each video output device.
+	The default is -1 which will just take the first free number.
 
-vbi_out_nr: give the desired vbiX start number for each vbi output device.
-        The default is -1 which will just take the first free number.
+- vbi_cap_nr:
 
-radio_rx_nr: give the desired radioX start number for each radio receiver device.
-        The default is -1 which will just take the first free number.
+	give the desired vbiX start number for each vbi capture device.
+	The default is -1 which will just take the first free number.
 
-radio_tx_nr: give the desired radioX start number for each radio transmitter
+- vbi_out_nr:
+
+	give the desired vbiX start number for each vbi output device.
+	The default is -1 which will just take the first free number.
+
+- radio_rx_nr:
+
+	give the desired radioX start number for each radio receiver device.
+	The default is -1 which will just take the first free number.
+
+- radio_tx_nr:
+
+	give the desired radioX start number for each radio transmitter
 	device. The default is -1 which will just take the first free number.
 
-sdr_cap_nr: give the desired swradioX start number for each SDR capture device.
-        The default is -1 which will just take the first free number.
+- sdr_cap_nr:
 
-ccs_cap_mode: specify the allowed video capture crop/compose/scaling combination
+	give the desired swradioX start number for each SDR capture device.
+	The default is -1 which will just take the first free number.
+
+- ccs_cap_mode:
+
+	specify the allowed video capture crop/compose/scaling combination
 	for each driver instance. Video capture devices can have any combination
 	of cropping, composing and scaling capabilities and this will tell the
 	vivid driver which of those is should emulate. By default the user can
@@ -188,21 +184,30 @@ ccs_cap_mode: specify the allowed video capture crop/compose/scaling combination
 	The value is either -1 (controlled by the user) or a set of three bits,
 	each enabling (1) or disabling (0) one of the features:
 
-		bit 0: Enable crop support. Cropping will take only part of the
-		       incoming picture.
-		bit 1: Enable compose support. Composing will copy the incoming
-		       picture into a larger buffer.
-		bit 2: Enable scaling support. Scaling can scale the incoming
-		       picture. The scaler of the vivid driver can enlarge up
-		       or down to four times the original size. The scaler is
-		       very simple and low-quality. Simplicity and speed were
-		       key, not quality.
+	- bit 0:
+
+		Enable crop support. Cropping will take only part of the
+		incoming picture.
+	- bit 1:
+
+		Enable compose support. Composing will copy the incoming
+		picture into a larger buffer.
+
+	- bit 2:
+
+		Enable scaling support. Scaling can scale the incoming
+		picture. The scaler of the vivid driver can enlarge up
+		or down to four times the original size. The scaler is
+		very simple and low-quality. Simplicity and speed were
+		key, not quality.
 
 	Note that this value is ignored by webcam inputs: those enumerate
 	discrete framesizes and that is incompatible with cropping, composing
 	or scaling.
 
-ccs_out_mode: specify the allowed video output crop/compose/scaling combination
+- ccs_out_mode:
+
+	specify the allowed video output crop/compose/scaling combination
 	for each driver instance. Video output devices can have any combination
 	of cropping, composing and scaling capabilities and this will tell the
 	vivid driver which of those is should emulate. By default the user can
@@ -211,28 +216,42 @@ ccs_out_mode: specify the allowed video output crop/compose/scaling combination
 	The value is either -1 (controlled by the user) or a set of three bits,
 	each enabling (1) or disabling (0) one of the features:
 
-		bit 0: Enable crop support. Cropping will take only part of the
-		       outgoing buffer.
-		bit 1: Enable compose support. Composing will copy the incoming
-		       buffer into a larger picture frame.
-		bit 2: Enable scaling support. Scaling can scale the incoming
-		       buffer. The scaler of the vivid driver can enlarge up
-		       or down to four times the original size. The scaler is
-		       very simple and low-quality. Simplicity and speed were
-		       key, not quality.
-
-multiplanar: select whether each device instance supports multi-planar formats,
+	- bit 0:
+
+		Enable crop support. Cropping will take only part of the
+		outgoing buffer.
+
+	- bit 1:
+
+		Enable compose support. Composing will copy the incoming
+		buffer into a larger picture frame.
+
+	- bit 2:
+
+		Enable scaling support. Scaling can scale the incoming
+		buffer. The scaler of the vivid driver can enlarge up
+		or down to four times the original size. The scaler is
+		very simple and low-quality. Simplicity and speed were
+		key, not quality.
+
+- multiplanar:
+
+	select whether each device instance supports multi-planar formats,
 	and thus the V4L2 multi-planar API. By default device instances are
 	single-planar.
 
 	This module option can override that for each instance. Values are:
 
-		1: this is a single-planar instance.
-		2: this is a multi-planar instance.
+		- 1: this is a single-planar instance.
+		- 2: this is a multi-planar instance.
 
-vivid_debug: enable driver debugging info
+- vivid_debug:
 
-no_error_inj: if set disable the error injecting controls. This option is
+	enable driver debugging info
+
+- no_error_inj:
+
+	if set disable the error injecting controls. This option is
 	needed in order to run a tool like v4l2-compliance. Tools like that
 	exercise all controls including a control like 'Disconnect' which
 	emulates a USB disconnect, making the device inaccessible and so
@@ -250,8 +269,8 @@ It is also very suitable to emulate hardware that is not yet available, e.g.
 when developing software for a new upcoming device.
 
 
-Section 2: Video Capture
-------------------------
+Video Capture
+-------------
 
 This is probably the most frequently used feature. The video capture device
 can be configured by using the module options num_inputs, input_types and
@@ -270,8 +289,8 @@ frame/field sequence counting will keep track of that so the sequence
 count will skip whenever frames are dropped.
 
 
-Section 2.1: Webcam Input
--------------------------
+Webcam Input
+~~~~~~~~~~~~
 
 The webcam input supports three framesizes: 320x180, 640x360 and 1280x720. It
 supports frames per second settings of 10, 15, 25, 30, 50 and 60 fps. Which ones
@@ -282,8 +301,8 @@ The initially selected colorspace when you switch to the webcam input will be
 sRGB.
 
 
-Section 2.2: TV and S-Video Inputs
-----------------------------------
+TV and S-Video Inputs
+~~~~~~~~~~~~~~~~~~~~~
 
 The only difference between the TV and S-Video input is that the TV has a
 tuner. Otherwise they behave identically.
@@ -338,8 +357,8 @@ Finally, for these inputs the v4l2_timecode struct is filled in in the
 dequeued v4l2_buffer struct.
 
 
-Section 2.3: HDMI Input
------------------------
+HDMI Input
+~~~~~~~~~~
 
 The HDMI inputs supports all CEA-861 and DMT timings, both progressive and
 interlaced, for pixelclock frequencies between 25 and 600 MHz. The field
@@ -372,8 +391,8 @@ There is a maximum of 15 HDMI inputs (if there are more, then they will be
 reduced to 15) since that's the limitation of the EDID physical address.
 
 
-Section 3: Video Output
------------------------
+Video Output
+------------
 
 The video output device can be configured by using the module options
 num_outputs, output_types and ccs_out_mode (see section 1 for more detailed
@@ -384,8 +403,8 @@ below.
 Like with video capture the framerate is also exact in the long term.
 
 
-Section 3.1: S-Video Output
----------------------------
+S-Video Output
+~~~~~~~~~~~~~~
 
 This output supports audio outputs as well: "Line-Out 1" and "Line-Out 2".
 The S-Video output supports all TV standards.
@@ -396,8 +415,8 @@ The initially selected colorspace when you switch to the TV or S-Video input
 will be SMPTE-170M.
 
 
-Section 3.2: HDMI Output
-------------------------
+HDMI Output
+~~~~~~~~~~~
 
 The HDMI output supports all CEA-861 and DMT timings, both progressive and
 interlaced, for pixelclock frequencies between 25 and 600 MHz. The field
@@ -418,8 +437,8 @@ There is a maximum of 15 HDMI outputs (if there are more, then they will be
 reduced to 15) since that's the limitation of the EDID physical address. See
 also the CEC section for more details.
 
-Section 4: VBI Capture
-----------------------
+VBI Capture
+-----------
 
 There are three types of VBI capture devices: those that only support raw
 (undecoded) VBI, those that only support sliced (decoded) VBI and those that
@@ -435,8 +454,8 @@ The VBI device will only work for the S-Video and TV inputs, it will give
 back an error if the current input is a webcam or HDMI.
 
 
-Section 5: VBI Output
----------------------
+VBI Output
+----------
 
 There are three types of VBI output devices: those that only support raw
 (undecoded) VBI, those that only support sliced (decoded) VBI and those that
@@ -449,15 +468,15 @@ The VBI device will only work for the S-Video output, it will give
 back an error if the current output is HDMI.
 
 
-Section 6: Radio Receiver
--------------------------
+Radio Receiver
+--------------
 
 The radio receiver emulates an FM/AM/SW receiver. The FM band also supports RDS.
 The frequency ranges are:
 
-	FM: 64 MHz - 108 MHz
-	AM: 520 kHz - 1710 kHz
-	SW: 2300 kHz - 26.1 MHz
+	- FM: 64 MHz - 108 MHz
+	- AM: 520 kHz - 1710 kHz
+	- SW: 2300 kHz - 26.1 MHz
 
 Valid channels are emulated every 1 MHz for FM and every 100 kHz for AM and SW.
 The signal strength decreases the further the frequency is from the valid
@@ -485,15 +504,15 @@ The receiver supports HW frequency seek, either in Bounded mode, Wrap Around
 mode or both, which is configurable with the "Radio HW Seek Mode" control.
 
 
-Section 7: Radio Transmitter
-----------------------------
+Radio Transmitter
+-----------------
 
 The radio transmitter emulates an FM/AM/SW transmitter. The FM band also supports RDS.
 The frequency ranges are:
 
-	FM: 64 MHz - 108 MHz
-	AM: 520 kHz - 1710 kHz
-	SW: 2300 kHz - 26.1 MHz
+	- FM: 64 MHz - 108 MHz
+	- AM: 520 kHz - 1710 kHz
+	- SW: 2300 kHz - 26.1 MHz
 
 The initial frequency when the driver is loaded is 95.5 MHz.
 
@@ -503,8 +522,8 @@ using controls, and in 'Block I/O' mode the blocks are passed to the driver
 using write().
 
 
-Section 8: Software Defined Radio Receiver
-------------------------------------------
+Software Defined Radio Receiver
+-------------------------------
 
 The SDR receiver has three frequency bands for the ADC tuner:
 
@@ -518,15 +537,15 @@ The generated data contains the In-phase and Quadrature components of a
 1 kHz tone that has an amplitude of sqrt(2).
 
 
-Section 9: Controls
--------------------
+Controls
+--------
 
 Different devices support different controls. The sections below will describe
 each control and which devices support them.
 
 
-Section 9.1: User Controls - Test Controls
-------------------------------------------
+User Controls - Test Controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The Button, Boolean, Integer 32 Bits, Integer 64 Bits, Menu, String, Bitmask and
 Integer Menu are controls that represent all possible control types. The Menu
@@ -537,8 +556,8 @@ allow you to check if your application can handle such things correctly.
 These controls are supported for every device type.
 
 
-Section 9.2: User Controls - Video Capture
-------------------------------------------
+User Controls - Video Capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The following controls are specific to video capture.
 
@@ -563,8 +582,8 @@ The 'Alpha Component' control can be used to set the alpha component for
 formats containing an alpha channel.
 
 
-Section 9.3: User Controls - Audio
-----------------------------------
+User Controls - Audio
+~~~~~~~~~~~~~~~~~~~~~
 
 The following controls are specific to video capture and output and radio
 receivers and transmitters.
@@ -574,70 +593,98 @@ control the volume and mute the audio. They don't actually do anything in
 the vivid driver.
 
 
-Section 9.4: Vivid Controls
----------------------------
+Vivid Controls
+~~~~~~~~~~~~~~
 
 These vivid custom controls control the image generation, error injection, etc.
 
 
-Section 9.4.1: Test Pattern Controls
-------------------------------------
+Test Pattern Controls
+^^^^^^^^^^^^^^^^^^^^^
 
 The Test Pattern Controls are all specific to video capture.
 
-Test Pattern: selects which test pattern to use. Use the CSC Colorbar for
+- Test Pattern:
+
+	selects which test pattern to use. Use the CSC Colorbar for
 	testing colorspace conversions: the colors used in that test pattern
 	map to valid colors in all colorspaces. The colorspace conversion
 	is disabled for the other test patterns.
 
-OSD Text Mode: selects whether the text superimposed on the
+- OSD Text Mode:
+
+	selects whether the text superimposed on the
 	test pattern should be shown, and if so, whether only counters should
 	be displayed or the full text.
 
-Horizontal Movement: selects whether the test pattern should
+- Horizontal Movement:
+
+	selects whether the test pattern should
 	move to the left or right and at what speed.
 
-Vertical Movement: does the same for the vertical direction.
+- Vertical Movement:
 
-Show Border: show a two-pixel wide border at the edge of the actual image,
+	does the same for the vertical direction.
+
+- Show Border:
+
+	show a two-pixel wide border at the edge of the actual image,
 	excluding letter or pillarboxing.
 
-Show Square: show a square in the middle of the image. If the image is
+- Show Square:
+
+	show a square in the middle of the image. If the image is
 	displayed with the correct pixel and image aspect ratio corrections,
 	then the width and height of the square on the monitor should be
 	the same.
 
-Insert SAV Code in Image: adds a SAV (Start of Active Video) code to the image.
+- Insert SAV Code in Image:
+
+	adds a SAV (Start of Active Video) code to the image.
 	This can be used to check if such codes in the image are inadvertently
 	interpreted instead of being ignored.
 
-Insert EAV Code in Image: does the same for the EAV (End of Active Video) code.
+- Insert EAV Code in Image:
 
+	does the same for the EAV (End of Active Video) code.
 
-Section 9.4.2: Capture Feature Selection Controls
--------------------------------------------------
+
+Capture Feature Selection Controls
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 These controls are all specific to video capture.
 
-Sensor Flipped Horizontally: the image is flipped horizontally and the
+- Sensor Flipped Horizontally:
+
+	the image is flipped horizontally and the
 	V4L2_IN_ST_HFLIP input status flag is set. This emulates the case where
 	a sensor is for example mounted upside down.
 
-Sensor Flipped Vertically: the image is flipped vertically and the
+- Sensor Flipped Vertically:
+
+	the image is flipped vertically and the
 	V4L2_IN_ST_VFLIP input status flag is set. This emulates the case where
-        a sensor is for example mounted upside down.
+	a sensor is for example mounted upside down.
 
-Standard Aspect Ratio: selects if the image aspect ratio as used for the TV or
+- Standard Aspect Ratio:
+
+	selects if the image aspect ratio as used for the TV or
 	S-Video input should be 4x3, 16x9 or anamorphic widescreen. This may
 	introduce letterboxing.
 
-DV Timings Aspect Ratio: selects if the image aspect ratio as used for the HDMI
+- DV Timings Aspect Ratio:
+
+	selects if the image aspect ratio as used for the HDMI
 	input should be the same as the source width and height ratio, or if
 	it should be 4x3 or 16x9. This may introduce letter or pillarboxing.
 
-Timestamp Source: selects when the timestamp for each buffer is taken.
+- Timestamp Source:
 
-Colorspace: selects which colorspace should be used when generating the image.
+	selects when the timestamp for each buffer is taken.
+
+- Colorspace:
+
+	selects which colorspace should be used when generating the image.
 	This only applies if the CSC Colorbar test pattern is selected,
 	otherwise the test pattern will go through unconverted.
 	This behavior is also what you want, since a 75% Colorbar
@@ -647,95 +694,124 @@ Colorspace: selects which colorspace should be used when generating the image.
 	Changing the colorspace will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a detected colorspace change.
 
-Transfer Function: selects which colorspace transfer function should be used when
+- Transfer Function:
+
+	selects which colorspace transfer function should be used when
 	generating an image. This only applies if the CSC Colorbar test pattern is
 	selected, otherwise the test pattern will go through unconverted.
-        This behavior is also what you want, since a 75% Colorbar
-        should really have 75% signal intensity and should not be affected
-        by colorspace conversions.
+	This behavior is also what you want, since a 75% Colorbar
+	should really have 75% signal intensity and should not be affected
+	by colorspace conversions.
 
 	Changing the transfer function will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a detected colorspace change.
 
-Y'CbCr Encoding: selects which Y'CbCr encoding should be used when generating
+- Y'CbCr Encoding:
+
+	selects which Y'CbCr encoding should be used when generating
 	a Y'CbCr image.	This only applies if the format is set to a Y'CbCr format
 	as opposed to an RGB format.
 
 	Changing the Y'CbCr encoding will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a detected colorspace change.
 
-Quantization: selects which quantization should be used for the RGB or Y'CbCr
+- Quantization:
+
+	selects which quantization should be used for the RGB or Y'CbCr
 	encoding when generating the test pattern.
 
 	Changing the quantization will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a detected colorspace change.
 
-Limited RGB Range (16-235): selects if the RGB range of the HDMI source should
+- Limited RGB Range (16-235):
+
+	selects if the RGB range of the HDMI source should
 	be limited or full range. This combines with the Digital Video 'Rx RGB
 	Quantization Range' control and can be used to test what happens if
 	a source provides you with the wrong quantization range information.
 	See the description of that control for more details.
 
-Apply Alpha To Red Only: apply the alpha channel as set by the 'Alpha Component'
+- Apply Alpha To Red Only:
+
+	apply the alpha channel as set by the 'Alpha Component'
 	user control to the red color of the test pattern only.
 
-Enable Capture Cropping: enables crop support. This control is only present if
+- Enable Capture Cropping:
+
+	enables crop support. This control is only present if
 	the ccs_cap_mode module option is set to the default value of -1 and if
 	the no_error_inj module option is set to 0 (the default).
 
-Enable Capture Composing: enables composing support. This control is only
+- Enable Capture Composing:
+
+	enables composing support. This control is only
 	present if the ccs_cap_mode module option is set to the default value of
 	-1 and if the no_error_inj module option is set to 0 (the default).
 
-Enable Capture Scaler: enables support for a scaler (maximum 4 times upscaling
+- Enable Capture Scaler:
+
+	enables support for a scaler (maximum 4 times upscaling
 	and downscaling). This control is only present if the ccs_cap_mode
 	module option is set to the default value of -1 and if the no_error_inj
 	module option is set to 0 (the default).
 
-Maximum EDID Blocks: determines how many EDID blocks the driver supports.
+- Maximum EDID Blocks:
+
+	determines how many EDID blocks the driver supports.
 	Note that the vivid driver does not actually interpret new EDID
 	data, it just stores it. It allows for up to 256 EDID blocks
 	which is the maximum supported by the standard.
 
-Fill Percentage of Frame: can be used to draw only the top X percent
+- Fill Percentage of Frame:
+
+	can be used to draw only the top X percent
 	of the image. Since each frame has to be drawn by the driver, this
 	demands a lot of the CPU. For large resolutions this becomes
 	problematic. By drawing only part of the image this CPU load can
 	be reduced.
 
 
-Section 9.4.3: Output Feature Selection Controls
-------------------------------------------------
+Output Feature Selection Controls
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 These controls are all specific to video output.
 
-Enable Output Cropping: enables crop support. This control is only present if
+- Enable Output Cropping:
+
+	enables crop support. This control is only present if
 	the ccs_out_mode module option is set to the default value of -1 and if
 	the no_error_inj module option is set to 0 (the default).
 
-Enable Output Composing: enables composing support. This control is only
+- Enable Output Composing:
+
+	enables composing support. This control is only
 	present if the ccs_out_mode module option is set to the default value of
 	-1 and if the no_error_inj module option is set to 0 (the default).
 
-Enable Output Scaler: enables support for a scaler (maximum 4 times upscaling
+- Enable Output Scaler:
+
+	enables support for a scaler (maximum 4 times upscaling
 	and downscaling). This control is only present if the ccs_out_mode
 	module option is set to the default value of -1 and if the no_error_inj
 	module option is set to 0 (the default).
 
 
-Section 9.4.4: Error Injection Controls
----------------------------------------
+Error Injection Controls
+^^^^^^^^^^^^^^^^^^^^^^^^
 
 The following two controls are only valid for video and vbi capture.
 
-Standard Signal Mode: selects the behavior of VIDIOC_QUERYSTD: what should
-	it return?
+- Standard Signal Mode:
+
+	selects the behavior of VIDIOC_QUERYSTD: what should it return?
 
 	Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a changed input condition (e.g. a cable
 	was plugged in or out).
 
-Standard: selects the standard that VIDIOC_QUERYSTD should return if the
+- Standard:
+
+	selects the standard that VIDIOC_QUERYSTD should return if the
 	previous control is set to "Selected Standard".
 
 	Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
@@ -744,14 +820,17 @@ Standard: selects the standard that VIDIOC_QUERYSTD should return if the
 
 The following two controls are only valid for video capture.
 
-DV Timings Signal Mode: selects the behavior of VIDIOC_QUERY_DV_TIMINGS: what
+- DV Timings Signal Mode:
+	selects the behavior of VIDIOC_QUERY_DV_TIMINGS: what
 	should it return?
 
 	Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
 	to be sent since it emulates a changed input condition (e.g. a cable
 	was plugged in or out).
 
-DV Timings: selects the timings the VIDIOC_QUERY_DV_TIMINGS should return
+- DV Timings:
+
+	selects the timings the VIDIOC_QUERY_DV_TIMINGS should return
 	if the previous control is set to "Selected DV Timings".
 
 	Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
@@ -763,52 +842,74 @@ is set to 0 (the default). These controls are valid for video and vbi
 capture and output streams and for the SDR capture device except for the
 Disconnect control which is valid for all devices.
 
-Wrap Sequence Number: test what happens when you wrap the sequence number in
+- Wrap Sequence Number:
+
+	test what happens when you wrap the sequence number in
 	struct v4l2_buffer around.
 
-Wrap Timestamp: test what happens when you wrap the timestamp in struct
+- Wrap Timestamp:
+
+	test what happens when you wrap the timestamp in struct
 	v4l2_buffer around.
 
-Percentage of Dropped Buffers: sets the percentage of buffers that
+- Percentage of Dropped Buffers:
+
+	sets the percentage of buffers that
 	are never returned by the driver (i.e., they are dropped).
 
-Disconnect: emulates a USB disconnect. The device will act as if it has
+- Disconnect:
+
+	emulates a USB disconnect. The device will act as if it has
 	been disconnected. Only after all open filehandles to the device
 	node have been closed will the device become 'connected' again.
 
-Inject V4L2_BUF_FLAG_ERROR: when pressed, the next frame returned by
+- Inject V4L2_BUF_FLAG_ERROR:
+
+	when pressed, the next frame returned by
 	the driver will have the error flag set (i.e. the frame is marked
 	corrupt).
 
-Inject VIDIOC_REQBUFS Error: when pressed, the next REQBUFS or CREATE_BUFS
+- Inject VIDIOC_REQBUFS Error:
+
+	when pressed, the next REQBUFS or CREATE_BUFS
 	ioctl call will fail with an error. To be precise: the videobuf2
 	queue_setup() op will return -EINVAL.
 
-Inject VIDIOC_QBUF Error: when pressed, the next VIDIOC_QBUF or
+- Inject VIDIOC_QBUF Error:
+
+	when pressed, the next VIDIOC_QBUF or
 	VIDIOC_PREPARE_BUFFER ioctl call will fail with an error. To be
 	precise: the videobuf2 buf_prepare() op will return -EINVAL.
 
-Inject VIDIOC_STREAMON Error: when pressed, the next VIDIOC_STREAMON ioctl
+- Inject VIDIOC_STREAMON Error:
+
+	when pressed, the next VIDIOC_STREAMON ioctl
 	call will fail with an error. To be precise: the videobuf2
 	start_streaming() op will return -EINVAL.
 
-Inject Fatal Streaming Error: when pressed, the streaming core will be
+- Inject Fatal Streaming Error:
+
+	when pressed, the streaming core will be
 	marked as having suffered a fatal error, the only way to recover
 	from that is to stop streaming. To be precise: the videobuf2
 	vb2_queue_error() function is called.
 
 
-Section 9.4.5: VBI Raw Capture Controls
----------------------------------------
+VBI Raw Capture Controls
+^^^^^^^^^^^^^^^^^^^^^^^^
 
-Interlaced VBI Format: if set, then the raw VBI data will be interlaced instead
+- Interlaced VBI Format:
+
+	if set, then the raw VBI data will be interlaced instead
 	of providing it grouped by field.
 
 
-Section 9.5: Digital Video Controls
------------------------------------
+Digital Video Controls
+~~~~~~~~~~~~~~~~~~~~~~
 
-Rx RGB Quantization Range: sets the RGB quantization detection of the HDMI
+- Rx RGB Quantization Range:
+
+	sets the RGB quantization detection of the HDMI
 	input. This combines with the Vivid 'Limited RGB Range (16-235)'
 	control and can be used to test what happens if a source provides
 	you with the wrong quantization range information. This can be tested
@@ -817,72 +918,124 @@ Rx RGB Quantization Range: sets the RGB quantization detection of the HDMI
 	control. The effect is easy to see if the 'Gray Ramp' test pattern
 	is selected.
 
-Tx RGB Quantization Range: sets the RGB quantization detection of the HDMI
+- Tx RGB Quantization Range:
+
+	sets the RGB quantization detection of the HDMI
 	output. It is currently not used for anything in vivid, but most HDMI
 	transmitters would typically have this control.
 
-Transmit Mode: sets the transmit mode of the HDMI output to HDMI or DVI-D. This
+- Transmit Mode:
+
+	sets the transmit mode of the HDMI output to HDMI or DVI-D. This
 	affects the reported colorspace since DVI_D outputs will always use
 	sRGB.
 
 
-Section 9.6: FM Radio Receiver Controls
----------------------------------------
+FM Radio Receiver Controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-RDS Reception: set if the RDS receiver should be enabled.
+- RDS Reception:
 
-RDS Program Type:
-RDS PS Name:
-RDS Radio Text:
-RDS Traffic Announcement:
-RDS Traffic Program:
-RDS Music: these are all read-only controls. If RDS Rx I/O Mode is set to
+	set if the RDS receiver should be enabled.
+
+- RDS Program Type:
+
+
+- RDS PS Name:
+
+
+- RDS Radio Text:
+
+
+- RDS Traffic Announcement:
+
+
+- RDS Traffic Program:
+
+
+- RDS Music:
+
+	these are all read-only controls. If RDS Rx I/O Mode is set to
 	"Block I/O", then they are inactive as well. If RDS Rx I/O Mode is set
-	to "Controls", then these controls report the received RDS data. Note
-	that the vivid implementation of this is pretty basic: they are only
+	to "Controls", then these controls report the received RDS data.
+
+.. note::
+	The vivid implementation of this is pretty basic: they are only
 	updated when you set a new frequency or when you get the tuner status
 	(VIDIOC_G_TUNER).
 
-Radio HW Seek Mode: can be one of "Bounded", "Wrap Around" or "Both". This
+- Radio HW Seek Mode:
+
+	can be one of "Bounded", "Wrap Around" or "Both". This
 	determines if VIDIOC_S_HW_FREQ_SEEK will be bounded by the frequency
 	range or wrap-around or if it is selectable by the user.
 
-Radio Programmable HW Seek: if set, then the user can provide the lower and
+- Radio Programmable HW Seek:
+
+	if set, then the user can provide the lower and
 	upper bound of the HW Seek. Otherwise the frequency range boundaries
 	will be used.
 
-Generate RBDS Instead of RDS: if set, then generate RBDS (the US variant of
+- Generate RBDS Instead of RDS:
+
+	if set, then generate RBDS (the US variant of
 	RDS) data instead of RDS (European-style RDS). This affects only the
 	PICODE and PTY codes.
 
-RDS Rx I/O Mode: this can be "Block I/O" where the RDS blocks have to be read()
+- RDS Rx I/O Mode:
+
+	this can be "Block I/O" where the RDS blocks have to be read()
 	by the application, or "Controls" where the RDS data is provided by
 	the RDS controls mentioned above.
 
 
-Section 9.7: FM Radio Modulator Controls
-----------------------------------------
-
-RDS Program ID:
-RDS Program Type:
-RDS PS Name:
-RDS Radio Text:
-RDS Stereo:
-RDS Artificial Head:
-RDS Compressed:
-RDS Dynamic PTY:
-RDS Traffic Announcement:
-RDS Traffic Program:
-RDS Music: these are all controls that set the RDS data that is transmitted by
+FM Radio Modulator Controls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- RDS Program ID:
+
+
+- RDS Program Type:
+
+
+- RDS PS Name:
+
+
+- RDS Radio Text:
+
+
+- RDS Stereo:
+
+
+- RDS Artificial Head:
+
+
+- RDS Compressed:
+
+
+- RDS Dynamic PTY:
+
+
+- RDS Traffic Announcement:
+
+
+- RDS Traffic Program:
+
+
+- RDS Music:
+
+	these are all controls that set the RDS data that is transmitted by
 	the FM modulator.
 
-RDS Tx I/O Mode: this can be "Block I/O" where the application has to use write()
-	to pass the RDS blocks to the driver, or "Controls" where the RDS data is
-	provided by the RDS controls mentioned above.
+- RDS Tx I/O Mode:
 
+	this can be "Block I/O" where the application has to use write()
+	to pass the RDS blocks to the driver, or "Controls" where the RDS data
+	is Provided by the RDS controls mentioned above.
 
-Section 10: Video, VBI and RDS Looping
---------------------------------------
+
+Video, VBI and RDS Looping
+--------------------------
 
 The vivid driver supports looping of video output to video input, VBI output
 to VBI input and RDS output to RDS input. For video/VBI looping this emulates
@@ -898,8 +1051,8 @@ Looping is currently supported only between devices created by the same
 vivid driver instance.
 
 
-Section 10.1: Video and Sliced VBI looping
-------------------------------------------
+Video and Sliced VBI looping
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The way to enable video/VBI looping is currently fairly crude. A 'Loop Video'
 control is available in the "Vivid" control class of the video
@@ -948,8 +1101,8 @@ for either raw or sliced VBI. Note that at the moment only CC/XDS (60 Hz formats
 and WSS (50 Hz formats) VBI data is looped. Teletext VBI data is not looped.
 
 
-Section 10.2: Radio & RDS Looping
----------------------------------
+Radio & RDS Looping
+~~~~~~~~~~~~~~~~~~~
 
 As mentioned in section 6 the radio receiver emulates stations are regular
 frequency intervals. Depending on the frequency of the radio receiver a
@@ -963,8 +1116,8 @@ frequencies of the radio receiver and transmitter are not identical, so
 initially no looping takes place.
 
 
-Section 11: Cropping, Composing, Scaling
-----------------------------------------
+Cropping, Composing, Scaling
+----------------------------
 
 This driver supports cropping, composing and scaling in any combination. Normally
 which features are supported can be selected through the Vivid controls,
@@ -997,8 +1150,8 @@ If the combination of crop, compose and scaling allows it, then it is possible
 to change crop and compose rectangles on the fly.
 
 
-Section 12: Formats
--------------------
+Formats
+-------
 
 The driver supports all the regular packed and planar 4:4:4, 4:2:2 and 4:2:0
 YUYV formats, 8, 16, 24 and 32 RGB packed formats and various multiplanar
@@ -1021,8 +1174,8 @@ data_offset to be non-zero, so this is a useful feature for testing applications
 Video output will also honor any data_offset that the application set.
 
 
-Section 13: Capture Overlay
----------------------------
+Capture Overlay
+---------------
 
 Note: capture overlay support is implemented primarily to test the existing
 V4L2 capture overlay API. In practice few if any GPUs support such overlays
@@ -1055,6 +1208,8 @@ the output overlay for the video output, turn on video looping and capture
 to see the blended framebuffer overlay that's being written to by the second
 instance. This setup would require the following commands:
 
+.. code-block:: none
+
 	$ sudo modprobe vivid n_devs=2 node_types=0x10101,0x1
 	$ v4l2-ctl -d1 --find-fb
 	/dev/fb1 is the framebuffer associated with base address 0x12800000
@@ -1072,10 +1227,14 @@ instance. This setup would require the following commands:
 
 And from another console:
 
+.. code-block:: none
+
 	$ v4l2-ctl -d1 --stream-out-mmap
 
 And yet another console:
 
+.. code-block:: none
+
 	$ qv4l2
 
 and start streaming.
@@ -1083,8 +1242,8 @@ and start streaming.
 As you can see, this is not for the faint of heart...
 
 
-Section 14: Output Overlay
---------------------------
+Output Overlay
+--------------
 
 Note: output overlays are primarily implemented in order to test the existing
 V4L2 output overlay API. Whether this API should be used for new drivers is
@@ -1116,8 +1275,8 @@ capabilities will slow down the video loop considerably as a lot of checks have
 to be done per pixel.
 
 
-Section 15: CEC (Consumer Electronics Control)
-----------------------------------------------
+CEC (Consumer Electronics Control)
+----------------------------------
 
 If there are HDMI inputs then a CEC adapter will be created that has
 the same number of input ports. This is the equivalent of e.g. a TV that
@@ -1135,8 +1294,8 @@ there are more outputs than inputs then the remaining outputs have a CEC adapter
 that is disabled and reports an invalid physical address.
 
 
-Section 16: Some Future Improvements
-------------------------------------
+Some Future Improvements
+------------------------
 
 Just as a reminder and in no particular order:
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 35/36] [media] doc-rst: add documentation about IR on V4L boards
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (32 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 34/36] [media] doc-rst: add vivid documentation Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  2016-07-18  1:56 ` [PATCH 36/36] [media] v4l-with-ir.rst: update it to reflect the current status Mauro Carvalho Chehab
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

This section is outdated, but let's add it, after converting
to ReST, and then fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/index.rst       |  1 +
 Documentation/media/v4l-drivers/v4l-with-ir.rst | 15 +++++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index d660623eeea6..8a026455b09c 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -20,6 +20,7 @@ License".
 	:numbered:
 
 	fourcc
+	v4l-with-ir
 	cardlist
 	cafe_ccic
 	cpia2
diff --git a/Documentation/media/v4l-drivers/v4l-with-ir.rst b/Documentation/media/v4l-drivers/v4l-with-ir.rst
index 0da47a847056..334174a52bda 100644
--- a/Documentation/media/v4l-drivers/v4l-with-ir.rst
+++ b/Documentation/media/v4l-drivers/v4l-with-ir.rst
@@ -1,9 +1,13 @@
-
 infrared remote control support in video4linux drivers
 ======================================================
 
+Author: Gerd Hoffmann
 
-basics
+.. note::
+
+   This section is outdated.
+
+Basics
 ------
 
 Current versions use the linux input layer to support infrared
@@ -23,7 +27,7 @@ Feel free to contact me in case of trouble.  Note that the ir-kbd-*
 modules work on 2.6.x kernels only through ...
 
 
-how it works
+How it works
 ------------
 
 The modules register the remote as keyboard within the linux input
@@ -42,7 +46,7 @@ events and the like.  You can also use the kbd utility to change the
 keymaps (2.6.x kernels only through).
 
 
-using with lircd
+Using with lircd
 ================
 
 The cvs version of the lircd daemon supports reading events from the
@@ -50,7 +54,7 @@ linux input layer (via event device).  The input layer tools tarball
 comes with a lircd config file.
 
 
-using without lircd
+Using without lircd
 ===================
 
 XFree86 likely can be configured to recognise the remote keys.  Once I
@@ -69,4 +73,3 @@ Have fun,
   Gerd
 
 --
-Gerd Knorr <kraxel@bytesex.org>
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH 36/36] [media] v4l-with-ir.rst: update it to reflect the current status
  2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
                   ` (33 preceding siblings ...)
  2016-07-18  1:56 ` [PATCH 35/36] [media] doc-rst: add documentation about IR on V4L boards Mauro Carvalho Chehab
@ 2016-07-18  1:56 ` Mauro Carvalho Chehab
  34 siblings, 0 replies; 36+ messages in thread
From: Mauro Carvalho Chehab @ 2016-07-18  1:56 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Jonathan Corbet, linux-doc

This document were really old. Update it to reflect the current
status of the IR drivers for TV.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/v4l-drivers/v4l-with-ir.rst | 82 ++++++++++++-------------
 1 file changed, 40 insertions(+), 42 deletions(-)

diff --git a/Documentation/media/v4l-drivers/v4l-with-ir.rst b/Documentation/media/v4l-drivers/v4l-with-ir.rst
index 334174a52bda..613e1e79fc96 100644
--- a/Documentation/media/v4l-drivers/v4l-with-ir.rst
+++ b/Documentation/media/v4l-drivers/v4l-with-ir.rst
@@ -1,31 +1,34 @@
-infrared remote control support in video4linux drivers
+Infrared remote control support in video4linux drivers
 ======================================================
 
-Author: Gerd Hoffmann
-
-.. note::
-
-   This section is outdated.
+Authors: Gerd Hoffmann, Mauro Carvalho Chehab
 
 Basics
 ------
 
-Current versions use the linux input layer to support infrared
-remote controls.  I suggest to download my input layer tools
-from http://bytesex.org/snapshot/input-<date>.tar.gz
+Most analog and digital TV boards support remote controllers. Several of
+them have a microprocessor that receives the IR carriers, convert into
+pulse/space sequences and then to scan codes, returning such codes to
+userspace ("scancode mode"). Other boards return just the pulse/space
+sequences ("raw mode").
 
-Modules you have to load:
+The support for remote controller in scancode mode is provided by the
+standard Linux input layer. The support for raw mode is provided via LIRC.
 
-  saa7134	statically built in, i.e. just the driver :)
-  bttv		ir-kbd-gpio or ir-kbd-i2c depending on your
-		card.
+In order to check the support and test it, it is suggested to download
+the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_. It provides
+two tools to handle remote controllers:
 
-ir-kbd-gpio and ir-kbd-i2c don't support all cards lirc supports
-(yet), mainly for the reason that the code of lirc_i2c and lirc_gpio
-was very confusing and I decided to basically start over from scratch.
-Feel free to contact me in case of trouble.  Note that the ir-kbd-*
-modules work on 2.6.x kernels only through ...
+- ir-keytable: provides a way to query the remote controller, list the
+  protocols it supports, enable in-kernel support for IR decoder or
+  switch the protocol and to test the reception of scan codes;
 
+- ir-ctl: provide tools to handle remote controllers that support raw mode
+  via LIRC interface.
+
+Usually, the remote controller module is auto-loaded when the TV card is
+detected. However, for a few devices, you need to manually load the
+ir-kbd-i2c module.
 
 How it works
 ------------
@@ -36,40 +39,35 @@ layer, i.e. you'll see the keys of the remote as normal key strokes
 
 Using the event devices (CONFIG_INPUT_EVDEV) it is possible for
 applications to access the remote via /dev/input/event<n> devices.
-You might have to create the special files using "/sbin/MAKEDEV
-input".  The input layer tools mentioned above use the event device.
+The udev/systemd will automatically create the devices. If you install
+the `v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_, it may also
+automatically load a different keytable than the default one. Please see
+`v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ ir-keytable.1
+man page for details.
 
-The input layer tools are nice for trouble shooting, i.e. to check
+The ir-keytable tool is nice for trouble shooting, i.e. to check
 whenever the input device is really present, which of the devices it
 is, check whenever pressing keys on the remote actually generates
-events and the like.  You can also use the kbd utility to change the
-keymaps (2.6.x kernels only through).
+events and the like.  You can also use any other input utility that changes
+the keymaps, like the input kbd utility.
 
 
 Using with lircd
 ================
 
-The cvs version of the lircd daemon supports reading events from the
-linux input layer (via event device).  The input layer tools tarball
-comes with a lircd config file.
+The latest versions of the lircd daemon supports reading events from the
+linux input layer (via event device). It also supports receiving IR codes
+in lirc mode.
 
 
 Using without lircd
 ===================
 
-XFree86 likely can be configured to recognise the remote keys.  Once I
-simply tried to configure one of the multimedia keyboards as input
-device, which had the effect that XFree86 recognised some of the keys
-of my remote control and passed volume up/down key presses as
-XF86AudioRaiseVolume and XF86AudioLowerVolume key events to the X11
-clients.
-
-It likely is possible to make that fly with a nice xkb config file,
-I know next to nothing about that through.
-
-
-Have fun,
-
-  Gerd
-
---
+Xorg recognizes several IR keycodes that have its numerical value lower
+than 247. With the advent of Wayland, the input driver got updated too,
+and should now accept all keycodes. Yet, you may want to just reasign
+the keycodes to something that your favorite media application likes.
+
+This can be done by setting
+`v4l-utils <https://git.linuxtv.org/v4l-utils.git/>`_ to load your own
+keytable in runtime. Please read  ir-keytable.1 man page for details.
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2016-07-18  1:56 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-18  1:55 [PATCH 01/36] [media] extract_xc3028.pl: move it to scripts/dir Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 02/36] [media] doc-rst: move cardlists to media/v4l-drivers Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 03/36] [media] doc-rst: Remove deprecated API.html document Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 04/36] [media] doc-rst: move framework docs to kAPI documentation Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 05/36] [media] doc-rst: do a poor man's conversion of v4l2-framework Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 06/36] [media] doc-rst: move videobuf documentation to media/kapi Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 07/36] [media] doc-rst: Convert videobuf documentation to ReST Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 08/36] doc-rst: add v4l-drivers to index file Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 09/36] [media] doc-rst: Move v4l docs to media/v4l-drivers Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 10/36] [media] doc-rst: convert fourcc to rst format Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 11/36] [media] doc-rst: convert cafe_ccic file " Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 12/36] [media] doc-rst: add gspca cardlist Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 13/36] [media] doc-rst: add Zoran zr364xx documentation Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 14/36] [media] doc-rst: add documentation for cpia2 driver Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 15/36] [media] doc-rst: Add cx88 documentation to media book Mauro Carvalho Chehab
2016-07-18  1:55 ` [PATCH 16/36] [media] cx88.rst: Update the documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 17/36] [media] doc-rst: add davinci-vpbe documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 18/36] [media] doc-rst: add documentation for fimc driver Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 19/36] [media] doc-rst: Add ivtv documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 20/36] [media] doc-rst: add meye documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 21/36] [media] doc-rst: add omap3isp documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 22/36] [media] doc-rst: add omap4_camera documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 23/36] [media] doc-rst: add documentation for pvrusb2 Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 24/36] [media] doc-rst: add pxa_camera documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 25/36] [media] doc-rst: add documentation for radiotrack Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 26/36] [media] doc-rst: add documentation for saa7134 Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 27/36] [media] doc-rst: add sh_mobile_ceu_camera crop documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 28/36] [media] doc-rst: add documentation for si470x Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 29/36] [media] doc-rst: add documentation for si4713 Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 30/36] [media] doc-rst: add documentation for si476x Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 31/36] [media] doc-rst: add soc-camera documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 32/36] [media] doc-rst: add documentation for uvcvideo Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 33/36] [media] doc-rst: add documentation for Zoran driver Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 34/36] [media] doc-rst: add vivid documentation Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 35/36] [media] doc-rst: add documentation about IR on V4L boards Mauro Carvalho Chehab
2016-07-18  1:56 ` [PATCH 36/36] [media] v4l-with-ir.rst: update it to reflect the current status Mauro Carvalho Chehab

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.