diff options
Diffstat (limited to 'Documentation/media/v4l-drivers')
42 files changed, 0 insertions, 11086 deletions
diff --git a/Documentation/media/v4l-drivers/au0828-cardlist.rst b/Documentation/media/v4l-drivers/au0828-cardlist.rst deleted file mode 100644 index aaaadc934e7a..000000000000 --- a/Documentation/media/v4l-drivers/au0828-cardlist.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -AU0828 cards list -================= - -.. tabularcolumns:: |p{1.4cm}|p{6.5cm}|p{10.0cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - USB IDs - - * - 0 - - Unknown board - - - - * - 1 - - Hauppauge HVR950Q - - 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 - - 2040:7240 - - * - 3 - - DViCO FusionHDTV USB - - 0fe9:d620 - - * - 4 - - Hauppauge HVR950Q rev xxF8 - - 2040:7201, 2040:7211, 2040:7281 - - * - 5 - - Hauppauge Woodbury - - 05e1:0480, 2040:8200 diff --git a/Documentation/media/v4l-drivers/bttv-cardlist.rst b/Documentation/media/v4l-drivers/bttv-cardlist.rst deleted file mode 100644 index f5806856b5a1..000000000000 --- a/Documentation/media/v4l-drivers/bttv-cardlist.rst +++ /dev/null @@ -1,683 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -BTTV cards list -=============== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 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/bttv.rst b/Documentation/media/v4l-drivers/bttv.rst deleted file mode 100644 index 9b15a0cba283..000000000000 --- a/Documentation/media/v4l-drivers/bttv.rst +++ /dev/null @@ -1,1806 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The bttv driver -=============== - -Release notes for bttv ----------------------- - -You'll need at least these config options for bttv: - -.. code-block:: none - - CONFIG_I2C=m - CONFIG_I2C_ALGOBIT=m - CONFIG_VIDEO_DEV=m - -The latest bttv version is available from http://bytesex.org/bttv/ - - -Make bttv work with your card ------------------------------ - -Just try "modprobe bttv" and see if that works. - -If it doesn't bttv likely could not autodetect your card and needs some -insmod options. The most important insmod option for bttv is "card=n" -to select the correct card type. If you get video but no sound you've -very likely specified the wrong (or no) card type. A list of supported -cards is in CARDLIST.bttv - -If bttv takes very long to load (happens sometimes with the cheap -cards which have no tuner), try adding this to your modules.conf: - -.. code-block:: none - - options i2c-algo-bit bit_test=1 - -For the WinTV/PVR you need one firmware file from the driver CD: -hcwamc.rbf. The file is in the pvr45xxx.exe archive (self-extracting -zip file, unzip can unpack it). Put it into the /etc/pvr directory or -use the firm_altera=<path> insmod option to point the driver to the -location of the file. - -If your card isn't listed in CARDLIST.bttv or if you have trouble making -audio work, you should read the Sound-FAQ. - - -Autodetecting cards -------------------- - -bttv uses the PCI Subsystem ID to autodetect the card type. lspci lists -the Subsystem ID in the second line, looks like this: - -.. code-block:: none - - 00:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02) - Subsystem: Hauppauge computer works Inc. WinTV/GO - Flags: bus master, medium devsel, latency 32, IRQ 5 - Memory at e2000000 (32-bit, prefetchable) [size=4K] - -only bt878-based cards can have a subsystem ID (which does not mean -that every card really has one). bt848 cards can't have a Subsystem -ID and therefore can't be autodetected. There is a list with the ID's -in bttv-cards.c (in case you are intrested or want to mail patches -with updates). - - -Still doesn't work? -------------------- - -I do NOT have a lab with 30+ different grabber boards and a -PAL/NTSC/SECAM test signal generator at home, so I often can't -reproduce your problems. This makes debugging very difficult for me. -If you have some knowledge and spare time, please try to fix this -yourself (patches very welcome of course...) You know: The linux -slogan is "Do it yourself". - -There is a mailing list at -http://vger.kernel.org/vger-lists.html#linux-media - -If you have trouble with some specific TV card, try to ask there -instead of mailing me directly. The chance that someone with the -same card listens there is much higher... - -For problems with sound: There are a lot of different systems used -for TV sound all over the world. And there are also different chips -which decode the audio signal. Reports about sound problems ("stereo -doesn't work") are pretty useless unless you include some details -about your hardware and the TV sound scheme used in your country (or -at least the country you are living in). - -Modprobe options ----------------- - -Note: "modinfo <module>" prints various information about a kernel -module, among them a complete and up-to-date list of insmod options. -This list tends to be outdated because it is updated manually ... - -========================================================================== - -bttv.o - -.. code-block:: none - - the bt848/878 (grabber chip) driver - - insmod args: - card=n card type, see CARDLIST for a list. - tuner=n tuner type, see CARDLIST for a list. - radio=0/1 card supports radio - pll=0/1/2 pll settings - 0: don't use PLL - 1: 28 MHz crystal installed - 2: 35 MHz crystal installed - - triton1=0/1 for Triton1 (+others) compatibility - vsfx=0/1 yet another chipset bug compatibility bit - see README.quirks for details on these two. - - bigendian=n Set the endianness of the gfx framebuffer. - Default is native endian. - fieldnr=0/1 Count fields. Some TV descrambling software - needs this, for others it only generates - 50 useless IRQs/sec. default is 0 (off). - autoload=0/1 autoload helper modules (tuner, audio). - default is 1 (on). - bttv_verbose=0/1/2 verbose level (at insmod time, while - looking at the hardware). default is 1. - bttv_debug=0/1 debug messages (for capture). - default is 0 (off). - irq_debug=0/1 irq handler debug messages. - default is 0 (off). - gbuffers=2-32 number of capture buffers for mmap'ed capture. - default is 4. - gbufsize= size of capture buffers. default and - maximum value is 0x208000 (~2MB) - no_overlay=0 Enable overlay on broken hardware. There - are some chipsets (SIS for example) which - are known to have problems with the PCI DMA - push used by bttv. bttv will disable overlay - by default on this hardware to avoid crashes. - With this insmod option you can override this. - no_overlay=1 Disable overlay. It should be used by broken - hardware that doesn't support PCI2PCI direct - transfers. - automute=0/1 Automatically mutes the sound if there is - no TV signal, on by default. You might try - to disable this if you have bad input signal - quality which leading to unwanted sound - dropouts. - chroma_agc=0/1 AGC of chroma signal, off by default. - adc_crush=0/1 Luminance ADC crush, on by default. - i2c_udelay= Allow reduce I2C speed. Default is 5 usecs - (meaning 66,67 Kbps). The default is the - maximum supported speed by kernel bitbang - algorithm. You may use lower numbers, if I2C - messages are lost (16 is known to work on - all supported cards). - - bttv_gpio=0/1 - gpiomask= - audioall= - audiomux= - See Sound-FAQ for a detailed description. - - remap, card, radio and pll accept up to four comma-separated arguments - (for multiple boards). - -tuner.o - -.. code-block:: none - - The tuner driver. You need this unless you want to use only - with a camera or external tuner ... - - insmod args: - debug=1 print some debug info to the syslog - type=n type of the tuner chip. n as follows: - see CARDLIST for a complete list. - pal=[bdgil] select PAL variant (used for some tuners - only, important for the audio carrier). - -tvaudio.o - -.. code-block:: none - - new, experimental module which is supported to provide a single - driver for all simple i2c audio control chips (tda/tea*). - - insmod args: - tda8425 = 1 enable/disable the support for the - tda9840 = 1 various chips. - tda9850 = 1 The tea6300 can't be autodetected and is - tda9855 = 1 therefore off by default, if you have - tda9873 = 1 this one on your card (STB uses these) - tda9874a = 1 you have to enable it explicitly. - tea6300 = 0 The two tda985x chips use the same i2c - tea6420 = 1 address and can't be disturgished from - pic16c54 = 1 each other, you might have to disable - the wrong one. - debug = 1 print debug messages - - insmod args for tda9874a: - tda9874a_SIF=1/2 select sound IF input pin (1 or 2) - (default is pin 1) - tda9874a_AMSEL=0/1 auto-mute select for NICAM (default=0) - Please read note 3 below! - tda9874a_STD=n select TV sound standard (0..8): - 0 - A2, B/G - 1 - A2, M (Korea) - 2 - A2, D/K (1) - 3 - A2, D/K (2) - 4 - A2, D/K (3) - 5 - NICAM, I - 6 - NICAM, B/G - 7 - NICAM, D/K (default) - 8 - NICAM, L - - Note 1: tda9874a supports both tda9874h (old) and tda9874a (new) chips. - Note 2: tda9874h/a and tda9875 (which is supported separately by - tda9875.o) use the same i2c address so both modules should not be - used at the same time. - Note 3: Using tda9874a_AMSEL option depends on your TV card design! - AMSEL=0: auto-mute will switch between NICAM sound - and the sound on 1st carrier (i.e. FM mono or AM). - AMSEL=1: auto-mute will switch between NICAM sound - and the analog mono input (MONOIN pin). - If tda9874a decoder on your card has MONOIN pin not connected, then - use only tda9874_AMSEL=0 or don't specify this option at all. - For example: - card=65 (FlyVideo 2000S) - set AMSEL=1 or AMSEL=0 - card=72 (Prolink PV-BT878P rev.9B) - set AMSEL=0 only - -msp3400.o - -.. code-block:: none - - The driver for the msp34xx sound processor chips. If you have a - stereo card, you probably want to insmod this one. - - insmod args: - debug=1/2 print some debug info to the syslog, - 2 is more verbose. - simple=1 Use the "short programming" method. Newer - msp34xx versions support this. You need this - for dbx stereo. Default is on if supported by - the chip. - once=1 Don't check the TV-stations Audio mode - every few seconds, but only once after - channel switches. - amsound=1 Audio carrier is AM/NICAM at 6.5 Mhz. This - should improve things for french people, the - carrier autoscan seems to work with FM only... - -tea6300.o - OBSOLETE (use tvaudio instead) - -.. code-block:: none - - The driver for the tea6300 fader chip. If you have a stereo - card and the msp3400.o doesn't work, you might want to try this - one. This chip is seen on most STB TV/FM cards (usually from - Gateway OEM sold surplus on auction sites). - - insmod args: - debug=1 print some debug info to the syslog. - -tda8425.o - OBSOLETE (use tvaudio instead) - -.. code-block:: none - - The driver for the tda8425 fader chip. This driver used to be - part of bttv.c, so if your sound used to work but does not - anymore, try loading this module. - - insmod args: - debug=1 print some debug info to the syslog. - -tda985x.o - OBSOLETE (use tvaudio instead) - -.. code-block:: none - - The driver for the tda9850/55 audio chips. - - insmod args: - debug=1 print some debug info to the syslog. - chip=9850/9855 set the chip type. - - -If the box freezes hard with bttv ---------------------------------- - -It might be a bttv driver bug. It also might be bad hardware. It also -might be something else ... - -Just mailing me "bttv freezes" isn't going to help much. This README -has a few hints how you can help to pin down the problem. - - -bttv bugs -~~~~~~~~~ - -If some version works and another doesn't it is likely to be a driver -bug. It is very helpful if you can tell where exactly it broke -(i.e. the last working and the first broken version). - -With a hard freeze you probably doesn't find anything in the logfiles. -The only way to capture any kernel messages is to hook up a serial -console and let some terminal application log the messages. /me uses -screen. See Documentation/admin-guide/serial-console.rst for details on setting -up a serial console. - -Read Documentation/admin-guide/bug-hunting.rst to learn how to get any useful -information out of a register+stack dump printed by the kernel on -protection faults (so-called "kernel oops"). - -If you run into some kind of deadlock, you can try to dump a call trace -for each process using sysrq-t (see Documentation/admin-guide/sysrq.rst). -This way it is possible to figure where *exactly* some process in "D" -state is stuck. - -I've seen reports that bttv 0.7.x crashes whereas 0.8.x works rock solid -for some people. Thus probably a small buglet left somewhere in bttv -0.7.x. I have no idea where exactly, it works stable for me and a lot of -other people. But in case you have problems with the 0.7.x versions you -can give 0.8.x a try ... - - -hardware bugs -~~~~~~~~~~~~~ - -Some hardware can't deal with PCI-PCI transfers (i.e. grabber => vga). -Sometimes problems show up with bttv just because of the high load on -the PCI bus. The bt848/878 chips have a few workarounds for known -incompatibilities, see README.quirks. - -Some folks report that increasing the pci latency helps too, -althrought I'm not sure whenever this really fixes the problems or -only makes it less likely to happen. Both bttv and btaudio have a -insmod option to set the PCI latency of the device. - -Some mainboard have problems to deal correctly with multiple devices -doing DMA at the same time. bttv + ide seems to cause this sometimes, -if this is the case you likely see freezes only with video and hard disk -access at the same time. Updating the IDE driver to get the latest and -greatest workarounds for hardware bugs might fix these problems. - - -other -~~~~~ - -If you use some binary-only yunk (like nvidia module) try to reproduce -the problem without. - -IRQ sharing is known to cause problems in some cases. It works just -fine in theory and many configurations. Neverless it might be worth a -try to shuffle around the PCI cards to give bttv another IRQ or make -it share the IRQ with some other piece of hardware. IRQ sharing with -VGA cards seems to cause trouble sometimes. I've also seen funny -effects with bttv sharing the IRQ with the ACPI bridge (and -apci-enabled kernel). - -Bttv quirks ------------ - -Below is what the bt878 data book says about the PCI bug compatibility -modes of the bt878 chip. - -The triton1 insmod option sets the EN_TBFX bit in the control register. -The vsfx insmod option does the same for EN_VSFX bit. If you have -stability problems you can try if one of these options makes your box -work solid. - -drivers/pci/quirks.c knows about these issues, this way these bits are -enabled automagically for known-buggy chipsets (look at the kernel -messages, bttv tells you). - -Normal PCI Mode -~~~~~~~~~~~~~~~ - -The PCI REQ signal is the logical-or of the incoming function requests. -The inter-nal GNT[0:1] signals are gated asynchronously with GNT and -demultiplexed by the audio request signal. Thus the arbiter defaults to -the video function at power-up and parks there during no requests for -bus access. This is desirable since the video will request the bus more -often. However, the audio will have highest bus access priority. Thus -the audio will have first access to the bus even when issuing a request -after the video request but before the PCI external arbiter has granted -access to the Bt879. Neither function can preempt the other once on the -bus. The duration to empty the entire video PCI FIFO onto the PCI bus is -very short compared to the bus access latency the audio PCI FIFO can -tolerate. - - -430FX Compatibility Mode -~~~~~~~~~~~~~~~~~~~~~~~~ - -When using the 430FX PCI, the following rules will ensure -compatibility: - - (1) Deassert REQ at the same time as asserting FRAME. - (2) Do not reassert REQ to request another bus transaction until after - finish-ing the previous transaction. - -Since the individual bus masters do not have direct control of REQ, a -simple logical-or of video and audio requests would violate the rules. -Thus, both the arbiter and the initiator contain 430FX compatibility -mode logic. To enable 430FX mode, set the EN_TBFX bit as indicated in -Device Control Register on page 104. - -When EN_TBFX is enabled, the arbiter ensures that the two compatibility -rules are satisfied. Before GNT is asserted by the PCI arbiter, this -internal arbiter may still logical-or the two requests. However, once -the GNT is issued, this arbiter must lock in its decision and now route -only the granted request to the REQ pin. The arbiter decision lock -happens regardless of the state of FRAME because it does not know when -FRAME will be asserted (typically - each initiator will assert FRAME on -the cycle following GNT). When FRAME is asserted, it is the initiator s -responsibility to remove its request at the same time. It is the -arbiters responsibility to allow this request to flow through to REQ and -not allow the other request to hold REQ asserted. The decision lock may -be removed at the end of the transaction: for example, when the bus is -idle (FRAME and IRDY). The arbiter decision may then continue -asynchronously until GNT is again asserted. - - -Interfacing with Non-PCI 2.1 Compliant Core Logic -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A small percentage of core logic devices may start a bus transaction -during the same cycle that GNT is de-asserted. This is non PCI 2.1 -compliant. To ensure compatibility when using PCs with these PCI -controllers, the EN_VSFX bit must be enabled (refer to Device Control -Register on page 104). When in this mode, the arbiter does not pass GNT -to the internal functions unless REQ is asserted. This prevents a bus -transaction from starting the same cycle as GNT is de-asserted. This -also has the side effect of not being able to take advantage of bus -parking, thus lowering arbitration performance. The Bt879 drivers must -query for these non-compliant devices, and set the EN_VSFX bit only if -required. - - -Other elements of the tvcards array -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you are trying to make a new card work you might find it useful to -know what the other elements in the tvcards array are good for: - -.. code-block:: none - - video_inputs - # of video inputs the card has - audio_inputs - historical cruft, not used any more. - tuner - which input is the tuner - svhs - which input is svhs (all others are labeled composite) - muxsel - video mux, input->registervalue mapping - pll - same as pll= insmod option - tuner_type - same as tuner= insmod option - *_modulename - hint whenever some card needs this or that audio - module loaded to work properly. - has_radio - whenever this TV card has a radio tuner. - no_msp34xx - "1" disables loading of msp3400.o module - no_tda9875 - "1" disables loading of tda9875.o module - needs_tvaudio - set to "1" to load tvaudio.o module - -If some config item is specified both from the tvcards array and as -insmod option, the insmod option takes precedence. - -Cards ------ - -.. note:: - - For a more updated list, please check - https://linuxtv.org/wiki/index.php/Hardware_Device_Information - -Supported cards: Bt848/Bt848a/Bt849/Bt878/Bt879 cards -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -All cards with Bt848/Bt848a/Bt849/Bt878/Bt879 and normal -Composite/S-VHS inputs are supported. Teletext and Intercast support -(PAL only) for ALL cards via VBI sample decoding in software. - -Some cards with additional multiplexing of inputs or other additional -fancy chips are only partially supported (unless specifications by the -card manufacturer are given). When a card is listed here it isn't -necessarily fully supported. - -All other cards only differ by additional components as tuners, sound -decoders, EEPROMs, teletext decoders ... - - -MATRIX Vision -~~~~~~~~~~~~~ - -MV-Delta -- Bt848A -- 4 Composite inputs, 1 S-VHS input (shared with 4th composite) -- EEPROM - -http://www.matrix-vision.de/ - -This card has no tuner but supports all 4 composite (1 shared with an -S-VHS input) of the Bt848A. -Very nice card if you only have satellite TV but several tuners connected -to the card via composite. - -Many thanks to Matrix-Vision for giving us 2 cards for free which made -Bt848a/Bt849 single crystal operation support possible!!! - - - -Miro/Pinnacle PCTV -~~~~~~~~~~~~~~~~~~ - -- Bt848 - some (all??) come with 2 crystals for PAL/SECAM and NTSC -- PAL, SECAM or NTSC TV tuner (Philips or TEMIC) -- MSP34xx sound decoder on add on board - decoder is supported but AFAIK does not yet work - (other sound MUX setting in GPIO port needed??? somebody who fixed this???) -- 1 tuner, 1 composite and 1 S-VHS input -- tuner type is autodetected - -http://www.miro.de/ -http://www.miro.com/ - - -Many thanks for the free card which made first NTSC support possible back -in 1997! - - -Hauppauge Win/TV pci -~~~~~~~~~~~~~~~~~~~~ - -There are many different versions of the Hauppauge cards with different -tuners (TV+Radio ...), teletext decoders. -Note that even cards with same model numbers have (depending on the revision) -different chips on it. - -- Bt848 (and others but always in 2 crystal operation???) - newer cards have a Bt878 - -- PAL, SECAM, NTSC or tuner with or without Radio support - -e.g.: - -- PAL: - - - TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners - - TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3 - -- NTSC: - - - TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners - - TSA5518: no datasheet available on Philips site - -- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip - with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM) - SAA5246 (I2C 0x22) is supported - -- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y - with configuration information - I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf) - -- 1 tuner, 1 composite and (depending on model) 1 S-VHS input - -- 14052B: mux for selection of sound source - -- sound decoder: TDA9800, MSP34xx (stereo cards) - - -Askey CPH-Series -~~~~~~~~~~~~~~~~ -Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink) - -- Card series: - - CPH01x: BT848 capture only - - CPH03x: BT848 - - CPH05x: BT878 with FM - - CPH06x: BT878 (w/o FM) - - CPH07x: BT878 capture only - -- TV standards: - - CPH0x0: NTSC-M/M - - CPH0x1: PAL-B/G - - CPH0x2: PAL-I/I - - CPH0x3: PAL-D/K - - CPH0x4: SECAM-L/L - - CPH0x5: SECAM-B/G - - CPH0x6: SECAM-D/K - - CPH0x7: PAL-N/N - - CPH0x8: PAL-B/H - - CPH0x9: PAL-M/M - -- CPH03x was often sold as "TV capturer". - -Identifying: - - #) 878 cards can be identified by PCI Subsystem-ID: - - 144f:3000 = CPH06x - - 144F:3002 = CPH05x w/ FM - - 144F:3005 = CPH06x_LC (w/o remote control) - #) The cards have a sticker with "CPH"-model on the back. - #) These cards have a number printed on the PCB just above the tuner metal box: - - "80-CP2000300-x" = CPH03X - - "80-CP2000500-x" = CPH05X - - "80-CP2000600-x" = CPH06X / CPH06x_LC - - Askey sells these cards as "Magic TView series", Brand "MagicXpress". - Other OEM often call these "Tview", "TView99" or else. - -Lifeview Flyvideo Series: -~~~~~~~~~~~~~~~~~~~~~~~~~ - -The naming of these series differs in time and space. - -Identifying: - #) Some models can be identified by PCI subsystem ID: - - - 1852:1852 = Flyvideo 98 FM - - 1851:1850 = Flyvideo 98 - - 1851:1851 = Flyvideo 98 EZ (capture only) - - #) There is a print on the PCB: - - - LR25 = Flyvideo (Zoran ZR36120, SAA7110A) - - LR26 Rev.N = Flyvideo II (Bt848) - - LR26 Rev.O = Flyvideo II (Bt878) - - LR37 Rev.C = Flyvideo EZ (Capture only, ZR36120 + SAA7110) - - LR38 Rev.A1= Flyvideo II EZ (Bt848 capture only) - - LR50 Rev.Q = Flyvideo 98 (w/eeprom and PCI subsystem ID) - - LR50 Rev.W = Flyvideo 98 (no eeprom) - - LR51 Rev.E = Flyvideo 98 EZ (capture only) - - LR90 = Flyvideo 2000 (Bt878) - - LR90 Flyvideo 2000S (Bt878) w/Stereo TV (Package incl. LR91 daughterboard) - - LR91 = Stereo daughter card for LR90 - - LR97 = Flyvideo DVBS - - LR99 Rev.E = Low profile card for OEM integration (only internal audio!) bt878 - - LR136 = Flyvideo 2100/3100 (Low profile, SAA7130/SAA7134) - - LR137 = Flyvideo DV2000/DV3000 (SAA7130/SAA7134 + IEEE1394) - - LR138 Rev.C= Flyvideo 2000 (SAA7130) - - LR138 Flyvideo 3000 (SAA7134) w/Stereo TV - - - These exist in variations w/FM and w/Remote sometimes denoted - by suffixes "FM" and "R". - - #) You have a laptop (miniPCI card): - - - Product = FlyTV Platinum Mini - - Model/Chip = LR212/saa7135 - - - Lifeview.com.tw states (Feb. 2002): - "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98." - Their Bt8x8 cards are listed as discontinued. - - Flyvideo 2000S was probably sold as Flyvideo 3000 in some countries(Europe?). - The new Flyvideo 2000/3000 are SAA7130/SAA7134 based. - -"Flyvideo II" had been the name for the 848 cards, nowadays (in Germany) -this name is re-used for LR50 Rev.W. - -The Lifeview website mentioned Flyvideo III at some time, but such a card -has not yet been seen (perhaps it was the german name for LR90 [stereo]). -These cards are sold by many OEMs too. - -FlyVideo A2 (Elta 8680)= LR90 Rev.F (w/Remote, w/o FM, stereo TV by tda9821) {Germany} - -Lifeview 3000 (Elta 8681) as sold by Plus(April 2002), Germany = LR138 w/ saa7134 - -lifeview config coding on gpio pins 0-9 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- LR50 rev. Q ("PARTS: 7031505116), Tuner wurde als Nr. 5 erkannt, Eingänge - SVideo, TV, Composite, Audio, Remote: - - - CP9..1=100001001 (1: 0-Ohm-Widerstand gegen GND unbestückt; 0: bestückt) - - -Typhoon TV card series: -~~~~~~~~~~~~~~~~~~~~~~~ - -These can be CPH, Flyvideo, Pixelview or KNC1 series. -Typhoon is the brand of Anubis. -Model 50680 got re-used, some model no. had different contents over time. - -Models: - - - 50680 "TV Tuner PCI Pal BG"(old,red package)=can be CPH03x(bt848) or CPH06x(bt878) - - 50680 "TV Tuner Pal BG" (blue package)= Pixelview PV-BT878P+ (Rev 9B) - - 50681 "TV Tuner PCI Pal I" (variant of 50680) - - 50682 "TView TV/FM Tuner Pal BG" = Flyvideo 98FM (LR50 Rev.Q) - - .. note:: - - The package has a picture of CPH05x (which would be a real TView) - - - 50683 "TV Tuner PCI SECAM" (variant of 50680) - - 50684 "TV Tuner Pal BG" = Pixelview 878TV(Rev.3D) - - 50686 "TV Tuner" = KNC1 TV Station - - 50687 "TV Tuner stereo" = KNC1 TV Station pro - - 50688 "TV Tuner RDS" (black package) = KNC1 TV Station RDS - - 50689 TV SAT DVB-S CARD CI PCI (SAA7146AH, SU1278?) = "KNC1 TV Station DVB-S" - - 50692 "TV/FM Tuner" (small PCB) - - 50694 TV TUNER CARD RDS (PHILIPS CHIPSET SAA7134HL) - - 50696 TV TUNER STEREO (PHILIPS CHIPSET SAA7134HL, MK3ME Tuner) - - 50804 PC-SAT TV/Audio Karte = Techni-PC-Sat (ZORAN 36120PQC, Tuner:Alps) - - 50866 TVIEW SAT RECEIVER+ADR - - 50868 "TV/FM Tuner Pal I" (variant of 50682) - - 50999 "TV/FM Tuner Secam" (variant of 50682) - -Guillemot -~~~~~~~~~ - -Models: - -- Maxi-TV PCI (ZR36120) -- Maxi TV Video 2 = LR50 Rev.Q (FI1216MF, PAL BG+SECAM) -- Maxi TV Video 3 = CPH064 (PAL BG + SECAM) - -Mentor -~~~~~~ - -Mentor TV card ("55-878TV-U1") = Pixelview 878TV(Rev.3F) (w/FM w/Remote) - -Prolink -~~~~~~~ - -- TV cards: - - - PixelView Play TV pro - (Model: PV-BT878P+ REV 8E) - - PixelView Play TV pro - (Model: PV-BT878P+ REV 9D) - - PixelView Play TV pro - (Model: PV-BT878P+ REV 4C / 8D / 10A ) - - PixelView Play TV - (Model: PV-BT848P+) - - 878TV - (Model: PV-BT878TV) - -- Multimedia TV packages (card + software pack): - - - PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software - - PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E) - - PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A ) - - PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A ) - - PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E) - - PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A ) - - PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800 - - PixelView PlayTV XP PV-M4700,PV-M4700(w/FM) - - PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w - -- Further Cards: - - - PV-BT878P+rev.9B (Play TV Pro, opt. w/FM w/NICAM) - - PV-BT878P+rev.2F - - PV-BT878P Rev.1D (bt878, capture only) - - - XCapture PV-CX881P (cx23881) - - PlayTV HD PV-CX881PL+, PV-CX881PL+(w/FM) (cx23881) - - - DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030 - - DTV2000 DVB-S = Twinhan VP-1020 - -- Video Conferencing: - - - PixelView Meeting PAK - (Model: PV-BT878P) - - PixelView Meeting PAK Lite - (Model: PV-BT878P) - - PixelView Meeting PAK plus - (Model: PV-BT878P+rev 4C/8D/10A) - - PixelView Capture - (Model: PV-BT848P) - - PixelView PlayTV USB pro - - Model No. PV-NT1004+, PV-NT1004+ (w/FM) = NT1004 USB decoder chip + SAA7113 video decoder chip - -Dynalink -~~~~~~~~ - -These are CPH series. - -Phoebemicro -~~~~~~~~~~~ - -- TV Master = CPH030 or CPH060 -- TV Master FM = CPH050 - -Genius/Kye -~~~~~~~~~~ - -- Video Wonder/Genius Internet Video Kit = LR37 Rev.C -- Video Wonder Pro II (848 or 878) = LR26 - -Tekram -~~~~~~ - -- VideoCap C205 (Bt848) -- VideoCap C210 (zr36120 +Philips) -- CaptureTV M200 (ISA) -- CaptureTV M205 (Bt848) - -Lucky Star -~~~~~~~~~~ - -- Image World Conference TV = LR50 Rev. Q - -Leadtek -~~~~~~~ - -- WinView 601 (Bt848) -- WinView 610 (Zoran) -- WinFast2000 -- WinFast2000 XP - -Support for the Leadtek WinView 601 TV/FM -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Author of this section: Jon Tombs <jon@gte.esi.us.es> - -This card is basically the same as all the rest (Bt484A, Philips tuner), -the main difference is that they have attached a programmable attenuator to 3 -GPIO lines in order to give some volume control. They have also stuck an -infra-red remote control decoded on the board, I will add support for this -when I get time (it simple generates an interrupt for each key press, with -the key code is placed in the GPIO port). - -I don't yet have any application to test the radio support. The tuner -frequency setting should work but it is possible that the audio multiplexer -is wrong. If it doesn't work, send me email. - - -- No Thanks to Leadtek they refused to answer any questions about their - hardware. The driver was written by visual inspection of the card. If you - use this driver, send an email insult to them, and tell them you won't - continue buying their hardware unless they support Linux. - -- Little thanks to Princeton Technology Corp (http://www.princeton.com.tw) - who make the audio attenuator. Their publicly available data-sheet available - on their web site doesn't include the chip programming information! Hidden - on their server are the full data-sheets, but don't ask how I found it. - -To use the driver I use the following options, the tuner and pll settings might -be different in your country - -insmod videodev -insmod i2c scan=1 i2c_debug=0 verbose=0 -insmod tuner type=1 debug=0 -insmod bttv pll=1 radio=1 card=17 - - -KNC One -~~~~~~~ - -- TV-Station -- TV-Station SE (+Software Bundle) -- TV-Station pro (+TV stereo) -- TV-Station FM (+Radio) -- TV-Station RDS (+RDS) -- TV Station SAT (analog satellite) -- TV-Station DVB-S - -.. note:: newer Cards have saa7134, but model name stayed the same? - -Provideo -~~~~~~~~ - -- PV951 or PV-951 (also are sold as: - Boeder TV-FM Video Capture Card, - Titanmedia Supervision TV-2400, - Provideo PV951 TF, - 3DeMon PV951, - MediaForte TV-Vision PV951, - Yoko PV951, - Vivanco Tuner Card PCI Art.-Nr.: 68404, - ) now named PV-951T - -- Surveillance Series: - - - PV-141 - - PV-143 - - PV-147 - - PV-148 (capture only) - - PV-150 - - PV-151 - -- TV-FM Tuner Series: - - - PV-951TDV (tv tuner + 1394) - - PV-951T/TF - - PV-951PT/TF - - PV-956T/TF Low Profile - - PV-911 - -Highscreen -~~~~~~~~~~ - -Models: - -- TV Karte = LR50 Rev.S -- TV-Boostar = Terratec Terra TV+ Version 1.0 (Bt848, tda9821) "ceb105.pcb" - -Zoltrix -~~~~~~~ - -Models: - -- Face to Face Capture (Bt848 capture only) (PCB "VP-2848") -- Face To Face TV MAX (Bt848) (PCB "VP-8482 Rev1.3") -- Genie TV (Bt878) (PCB "VP-8790 Rev 2.1") -- Genie Wonder Pro - -AVerMedia -~~~~~~~~~ - -- AVer FunTV Lite (ISA, AV3001 chipset) "M101.C" -- AVerTV -- AVerTV Stereo -- AVerTV Studio (w/FM) -- AVerMedia TV98 with Remote -- AVerMedia TV/FM98 Stereo -- AVerMedia TVCAM98 -- TVCapture (Bt848) -- TVPhone (Bt848) -- TVCapture98 (="AVerMedia TV98" in USA) (Bt878) -- TVPhone98 (Bt878, w/FM) - -======== =========== =============== ======= ====== ======== ======================= -PCB PCI-ID Model-Name Eeprom Tuner Sound Country -======== =========== =============== ======= ====== ======== ======================= -M101.C ISA ! -M108-B Bt848 -- FR1236 US [#f2]_, [#f3]_ -M1A8-A Bt848 AVer TV-Phone FM1216 -- -M168-T 1461:0003 AVerTV Studio 48:17 FM1216 TDA9840T D [#f1]_ w/FM w/Remote -M168-U 1461:0004 TVCapture98 40:11 FI1216 -- D w/Remote -M168II-B 1461:0003 Medion MD9592 48:16 FM1216 TDA9873H D w/FM -======== =========== =============== ======= ====== ======== ======================= - -.. [#f1] Daughterboard MB68-A with TDA9820T and TDA9840T -.. [#f2] Sony NE41S soldered (stereo sound?) -.. [#f3] Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz - -- US site has different drivers for (as of 09/2002): - - - EZ Capture/InterCam PCI (BT-848 chip) - - EZ Capture/InterCam PCI (BT-878 chip) - - TV-Phone (BT-848 chip) - - TV98 (BT-848 chip) - - TV98 With Remote (BT-848 chip) - - TV98 (BT-878 chip) - - TV98 With Remote (BT-878) - - TV/FM98 (BT-878 chip) - - AVerTV - - AverTV Stereo - - AVerTV Studio - -DE hat diverse Treiber fuer diese Modelle (Stand 09/2002): - - - TVPhone (848) mit Philips tuner FR12X6 (w/ FM radio) - - TVPhone (848) mit Philips tuner FM12X6 (w/ FM radio) - - TVCapture (848) w/Philips tuner FI12X6 - - TVCapture (848) non-Philips tuner - - TVCapture98 (Bt878) - - TVPhone98 (Bt878) - - AVerTV und TVCapture98 w/VCR (Bt 878) - - AVerTVStudio und TVPhone98 w/VCR (Bt878) - - AVerTV GO Serie (Kein SVideo Input) - - AVerTV98 (BT-878 chip) - - AVerTV98 mit Fernbedienung (BT-878 chip) - - AVerTV/FM98 (BT-878 chip) - - - VDOmate (www.averm.com.cn) = M168U ? - -Aimslab -~~~~~~~ - -Models: - -- Video Highway or "Video Highway TR200" (ISA) -- Video Highway Xtreme (aka "VHX") (Bt848, FM w/ TEA5757) - -IXMicro (former: IMS=Integrated Micro Solutions) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- IXTV BT848 (=TurboTV) -- IXTV BT878 -- IMS TurboTV (Bt848) - -Lifetec/Medion/Tevion/Aldi -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- LT9306/MD9306 = CPH061 -- LT9415/MD9415 = LR90 Rev.F or Rev.G -- MD9592 = Avermedia TVphone98 (PCI_ID=1461:0003), PCB-Rev=M168II-B (w/TDA9873H) -- MD9717 = KNC One (Rev D4, saa7134, FM1216 MK2 tuner) -- MD5044 = KNC One (Rev D4, saa7134, FM1216ME MK3 tuner) - -Modular Technologies (www.modulartech.com) UK -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- MM100 PCTV (Bt848) -- MM201 PCTV (Bt878, Bt832) w/ Quartzsight camera -- MM202 PCTV (Bt878, Bt832, tda9874) -- MM205 PCTV (Bt878) -- MM210 PCTV (Bt878) (Galaxy TV, Galaxymedia ?) - -Terratec -~~~~~~~~ - -Models: - -- Terra TV+ Version 1.0 (Bt848), "ceb105.PCB" printed on the PCB, TDA9821 -- Terra TV+ Version 1.1 (Bt878), "LR74 Rev.E" printed on the PCB, TDA9821 -- Terra TValueRadio, "LR102 Rev.C" printed on the PCB -- Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB, - "CPH010-E83" on the back, SAA6588T, TDA9873H -- Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB, - "CPH011-D83" on back -- Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0) -- Terra TValue New Revision "LR102 Rec.C" -- Terra Active Radio Upgrade (tea5757h, saa6588t) - -- LR74 is a newer PCB revision of ceb105 (both incl. connector for Active Radio Upgrade) - -- Cinergy 400 (saa7134), "E877 11(S)", "PM820092D" printed on PCB -- Cinergy 600 (saa7134) - -Technisat -~~~~~~~~~ - -Models: - -- Discos ADR PC-Karte ISA (no TV!) -- Discos ADR PC-Karte PCI (probably no TV?) -- Techni-PC-Sat (Sat. analog) - Rev 1.2 (zr36120, vpx3220, stv0030, saa5246, BSJE3-494A) -- Mediafocus I (zr36120/zr36125, drp3510, Sat. analog + ADR Radio) -- Mediafocus II (saa7146, Sat. analog) -- SatADR Rev 2.1 (saa7146a, saa7113h, stv0056a, msp3400c, drp3510a, BSKE3-307A) -- SkyStar 1 DVB (AV7110) = Technotrend Premium -- SkyStar 2 DVB (B2C2) (=Sky2PC) - -Siemens -~~~~~~~ - -Multimedia eXtension Board (MXB) (SAA7146, SAA7111) - -Powercolor -~~~~~~~~~~ - -Models: - -- MTV878 - Package comes with different contents: - - a) pcb "MTV878" (CARD=75) - b) Pixelview Rev. 4\_ - -- MTV878R w/Remote Control -- MTV878F w/Remote Control w/FM radio - -Pinnacle -~~~~~~~~ - -PCTV models: - -- Mirovideo PCTV (Bt848) -- Mirovideo PCTV SE (Bt848) -- Mirovideo PCTV Pro (Bt848 + Daughterboard for TV Stereo and FM) -- Studio PCTV Rave (Bt848 Version = Mirovideo PCTV) -- Studio PCTV Rave (Bt878 package w/o infrared) -- Studio PCTV (Bt878) -- Studio PCTV Pro (Bt878 stereo w/ FM) -- Pinnacle PCTV (Bt878, MT2032) -- Pinnacle PCTV Pro (Bt878, MT2032) -- Pinncale PCTV Sat (bt878a, HM1821/1221) ["Conexant CX24110 with CX24108 tuner, aka HM1221/HM1811"] -- Pinnacle PCTV Sat XE - -M(J)PEG capture and playback models: - -- DC1+ (ISA) -- DC10 (zr36057, zr36060, saa7110, adv7176) -- DC10+ (zr36067, zr36060, saa7110, adv7176) -- DC20 (ql16x24b,zr36050, zr36016, saa7110, saa7187 ...) -- DC30 (zr36057, zr36050, zr36016, vpx3220, adv7176, ad1843, tea6415, miro FST97A1) -- DC30+ (zr36067, zr36050, zr36016, vpx3220, adv7176) -- DC50 (zr36067, zr36050, zr36016, saa7112, adv7176 (2 pcs.?), ad1843, miro FST97A1, Lattice ???) - -Lenco -~~~~~ - -Models: - -- MXR-9565 (=Technisat Mediafocus?) -- MXR-9571 (Bt848) (=CPH031?) -- MXR-9575 -- MXR-9577 (Bt878) (=Prolink 878TV Rev.3x) -- MXTV-9578CP (Bt878) (= Prolink PV-BT878P+4E) - -Iomega -~~~~~~ - -Buz (zr36067, zr36060, saa7111, saa7185) - -LML -~~~ - LML33 (zr36067, zr36060, bt819, bt856) - -Grandtec -~~~~~~~~ - -Models: - -- Grand Video Capture (Bt848) -- Multi Capture Card (Bt878) - -Koutech -~~~~~~~ - -Models: - -- KW-606 (Bt848) -- KW-607 (Bt848 capture only) -- KW-606RSF -- KW-607A (capture only) -- KW-608 (Zoran capture only) - -IODATA (jp) -~~~~~~~~~~~ - -Models: - -- GV-BCTV/PCI -- GV-BCTV2/PCI -- GV-BCTV3/PCI -- GV-BCTV4/PCI -- GV-VCP/PCI (capture only) -- GV-VCP2/PCI (capture only) - -Canopus (jp) -~~~~~~~~~~~~ - -WinDVR = Kworld "KW-TVL878RF" - -www.sigmacom.co.kr -~~~~~~~~~~~~~~~~~~ - -Sigma Cyber TV II - -www.sasem.co.kr -~~~~~~~~~~~~~~~ - -Litte OnAir TV - -hama -~~~~ - -TV/Radio-Tuner Card, PCI (Model 44677) = CPH051 - -Sigma Designs -~~~~~~~~~~~~~ - -Hollywood plus (em8300, em9010, adv7175), (PCB "M340-10") MPEG DVD decoder - -Formac -~~~~~~ - -Models: - -- iProTV (Card for iMac Mezzanine slot, Bt848+SCSI) -- ProTV (Bt848) -- ProTV II = ProTV Stereo (Bt878) ["stereo" means FM stereo, tv is still mono] - -ATI -~~~ - -Models: - -- TV-Wonder -- TV-Wonder VE - -Diamond Multimedia -~~~~~~~~~~~~~~~~~~ - -DTV2000 (Bt848, tda9875) - -Aopen -~~~~~ - -- VA1000 Plus (w/ Stereo) -- VA1000 Lite -- VA1000 (=LR90) - -Intel -~~~~~ - -Models: - -- Smart Video Recorder (ISA full-length) -- Smart Video Recorder pro (ISA half-length) -- Smart Video Recorder III (Bt848) - -STB -~~~ - -Models: - -- STB Gateway 6000704 (bt878) -- STB Gateway 6000699 (bt848) -- STB Gateway 6000402 (bt848) -- STB TV130 PCI - -Videologic -~~~~~~~~~~ - -Models: - -- Captivator Pro/TV (ISA?) -- Captivator PCI/VC (Bt848 bundled with camera) (capture only) - -Technotrend -~~~~~~~~~~~~ - -Models: - -- TT-SAT PCI (PCB "Sat-PCI Rev.:1.3.1"; zr36125, vpx3225d, stc0056a, Tuner:BSKE6-155A -- TT-DVB-Sat - - revisions 1.1, 1.3, 1.5, 1.6 and 2.1 - - This card is sold as OEM from: - - - Siemens DVB-s Card - - Hauppauge WinTV DVB-S - - Technisat SkyStar 1 DVB - - Galaxis DVB Sat - - - Now this card is called TT-PCline Premium Family - - TT-Budget (saa7146, bsru6-701a) - This card is sold as OEM from: - - - Hauppauge WinTV Nova - - Satelco Standard PCI (DVB-S) - - TT-DVB-C PCI - -Teles -~~~~~ - - DVB-s (Rev. 2.2, BSRV2-301A, data only?) - -Remote Vision -~~~~~~~~~~~~~ - -MX RV605 (Bt848 capture only) - -Boeder -~~~~~~ - -Models: - -- PC ChatCam (Model 68252) (Bt848 capture only) -- Tv/Fm Capture Card (Model 68404) = PV951 - -Media-Surfer (esc-kathrein.de) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- Sat-Surfer (ISA) -- Sat-Surfer PCI = Techni-PC-Sat -- Cable-Surfer 1 -- Cable-Surfer 2 -- Cable-Surfer PCI (zr36120) -- Audio-Surfer (ISA Radio card) - -Jetway (www.jetway.com.tw) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- JW-TV 878M -- JW-TV 878 = KWorld KW-TV878RF - -Galaxis -~~~~~~~ - -Models: - -- Galaxis DVB Card S CI -- Galaxis DVB Card C CI -- Galaxis DVB Card S -- Galaxis DVB Card C -- Galaxis plug.in S [neuer Name: Galaxis DVB Card S CI - -Hauppauge -~~~~~~~~~ - -Models: - -- many many WinTV models ... -- WinTV DVBs = Technotrend Premium 1.3 -- WinTV NOVA = Technotrend Budget 1.1 "S-DVB DATA" -- WinTV NOVA-CI "SDVBACI" -- WinTV Nova USB (=Technotrend USB 1.0) -- WinTV-Nexus-s (=Technotrend Premium 2.1 or 2.2) -- WinTV PVR -- WinTV PVR 250 -- WinTV PVR 450 - -US models - --990 WinTV-PVR-350 (249USD) (iTVC15 chipset + radio) --980 WinTV-PVR-250 (149USD) (iTVC15 chipset) --880 WinTV-PVR-PCI (199USD) (KFIR chipset + bt878) --881 WinTV-PVR-USB --190 WinTV-GO --191 WinTV-GO-FM --404 WinTV --401 WinTV-radio --495 WinTV-Theater --602 WinTV-USB --621 WinTV-USB-FM --600 USB-Live --698 WinTV-HD --697 WinTV-D --564 WinTV-Nexus-S - -Deutsche Modelle: - --603 WinTV GO --719 WinTV Primio-FM --718 WinTV PCI-FM --497 WinTV Theater --569 WinTV USB --568 WinTV USB-FM --882 WinTV PVR --981 WinTV PVR 250 --891 WinTV-PVR-USB --541 WinTV Nova --488 WinTV Nova-Ci --564 WinTV-Nexus-s --727 WinTV-DVB-c --545 Common Interface --898 WinTV-Nova-USB - -UK models: - --607 WinTV Go --693,793 WinTV Primio FM --647,747 WinTV PCI FM --498 WinTV Theater --883 WinTV PVR --893 WinTV PVR USB (Duplicate entry) --566 WinTV USB (UK) --573 WinTV USB FM --429 Impact VCB (bt848) --600 USB Live (Video-In 1x Comp, 1xSVHS) --542 WinTV Nova --717 WinTV DVB-S --909 Nova-t PCI --893 Nova-t USB (Duplicate entry) --802 MyTV --804 MyView --809 MyVideo --872 MyTV2Go FM --546 WinTV Nova-S CI --543 WinTV Nova --907 Nova-S USB --908 Nova-T USB --717 WinTV Nexus-S --157 DEC3000-s Standalone + USB - -Spain: - --685 WinTV-Go --690 WinTV-PrimioFM --416 WinTV-PCI Nicam Estereo --677 WinTV-PCI-FM --699 WinTV-Theater --683 WinTV-USB --678 WinTV-USB-FM --983 WinTV-PVR-250 --883 WinTV-PVR-PCI --993 WinTV-PVR-350 --893 WinTV-PVR-USB --728 WinTV-DVB-C PCI --832 MyTV2Go --869 MyTV2Go-FM --805 MyVideo (USB) - - -Matrix-Vision -~~~~~~~~~~~~~ - -Models: - -- MATRIX-Vision MV-Delta -- MATRIX-Vision MV-Delta 2 -- MVsigma-SLC (Bt848) - -Conceptronic (.net) -~~~~~~~~~~~~~~~~~~~ - -Models: - -- TVCON FM, TV card w/ FM = CPH05x -- TVCON = CPH06x - -BestData -~~~~~~~~ - -Models: - -- HCC100 = VCC100rev1 + camera -- VCC100 rev1 (bt848) -- VCC100 rev2 (bt878) - -Gallant (www.gallantcom.com) www.minton.com.tw -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- Intervision IV-510 (capture only bt8x8) -- Intervision IV-550 (bt8x8) -- Intervision IV-100 (zoran) -- Intervision IV-1000 (bt8x8) - -Asonic (www.asonic.com.cn) (website down) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -SkyEye tv 878 - -Hoontech -~~~~~~~~ - -878TV/FM - -Teppro (www.itcteppro.com.tw) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- ITC PCITV (Card Ver 1.0) "Teppro TV1/TVFM1 Card" -- ITC PCITV (Card Ver 2.0) -- ITC PCITV (Card Ver 3.0) = "PV-BT878P+ (REV.9D)" -- ITC PCITV (Card Ver 4.0) -- TEPPRO IV-550 (For BT848 Main Chip) -- ITC DSTTV (bt878, satellite) -- ITC VideoMaker (saa7146, StreamMachine sm2110, tvtuner) "PV-SM2210P+ (REV:1C)" - -Kworld (www.kworld.com.tw) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -PC TV Station: - -- KWORLD KW-TV878R TV (no radio) -- KWORLD KW-TV878RF TV (w/ radio) -- KWORLD KW-TVL878RF (low profile) -- KWORLD KW-TV713XRF (saa7134) - - - MPEG TV Station (same cards as above plus WinDVR Software MPEG en/decoder) - -- KWORLD KW-TV878R -Pro TV (no Radio) -- KWORLD KW-TV878RF-Pro TV (w/ Radio) -- KWORLD KW-TV878R -Ultra TV (no Radio) -- KWORLD KW-TV878RF-Ultra TV (w/ Radio) - -JTT/ Justy Corp.(http://www.jtt.ne.jp/) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -JTT-02 (JTT TV) "TV watchmate pro" (bt848) - -ADS www.adstech.com -~~~~~~~~~~~~~~~~~~~ - -Models: - -- Channel Surfer TV ( CHX-950 ) -- Channel Surfer TV+FM ( CHX-960FM ) - -AVEC www.prochips.com -~~~~~~~~~~~~~~~~~~~~~ - -AVEC Intercapture (bt848, tea6320) - -NoBrand -~~~~~~~ - -TV Excel = Australian Name for "PV-BT878P+ 8E" or "878TV Rev.3\_" - -Mach www.machspeed.com -~~~~~~~~~~~~~~~~~~~~~~ - -Mach TV 878 - -Eline www.eline-net.com/ -~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- Eline Vision TVMaster / TVMaster FM (ELV-TVM/ ELV-TVM-FM) = LR26 (bt878) -- Eline Vision TVMaster-2000 (ELV-TVM-2000, ELV-TVM-2000-FM)= LR138 (saa713x) - -Spirit -~~~~~~ - -- Spirit TV Tuner/Video Capture Card (bt848) - -Boser www.boser.com.tw -~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- HS-878 Mini PCI Capture Add-on Card -- HS-879 Mini PCI 3D Audio and Capture Add-on Card (w/ ES1938 Solo-1) - -Satelco www.citycom-gmbh.de, www.satelco.de -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- TV-FM =KNC1 saa7134 -- Standard PCI (DVB-S) = Technotrend Budget -- Standard PCI (DVB-S) w/ CI -- Satelco Highend PCI (DVB-S) = Technotrend Premium - - -Sensoray www.sensoray.com -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- Sensoray 311 (PC/104 bus) -- Sensoray 611 (PCI) - -CEI (Chartered Electronics Industries Pte Ltd [CEI] [FCC ID HBY]) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- TV Tuner - HBY-33A-RAFFLES Brooktree Bt848KPF + Philips -- TV Tuner MG9910 - HBY33A-TVO CEI + Philips SAA7110 + OKI M548262 + ST STV8438CV -- Primetime TV (ISA) - - - acquired by Singapore Technologies - - now operating as Chartered Semiconductor Manufacturing - - Manufacturer of video cards is listed as: - - - Cogent Electronics Industries [CEI] - -AITech -~~~~~~ - -Models: - -- Wavewatcher TV (ISA) -- AITech WaveWatcher TV-PCI = can be LR26 (Bt848) or LR50 (BT878) -- WaveWatcher TVR-202 TV/FM Radio Card (ISA) - -MAXRON -~~~~~~ - -Maxron MaxTV/FM Radio (KW-TV878-FNT) = Kworld or JW-TV878-FBK - -www.ids-imaging.de -~~~~~~~~~~~~~~~~~~ - -Models: - -- Falcon Series (capture only) - -In USA: http://www.theimagingsource.com/ -- DFG/LC1 - -www.sknet-web.co.jp -~~~~~~~~~~~~~~~~~~~ - -SKnet Monster TV (saa7134) - -A-Max www.amaxhk.com (Colormax, Amax, Napa) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -APAC Viewcomp 878 - -Cybertainment -~~~~~~~~~~~~~ - -Models: - -- CyberMail AV Video Email Kit w/ PCI Capture Card (capture only) -- CyberMail Xtreme - -These are Flyvideo - -VCR (http://www.vcrinc.com/) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Video Catcher 16 - -Twinhan -~~~~~~~ - -Models: - -- DST Card/DST-IP (bt878, twinhan asic) VP-1020 - - Sold as: - - - KWorld DVBS Satellite TV-Card - - Powercolor DSTV Satellite Tuner Card - - Prolink Pixelview DTV2000 - - Provideo PV-911 Digital Satellite TV Tuner Card With Common Interface ? - -- DST-CI Card (DVB Satellite) VP-1030 -- DCT Card (DVB cable) - -MSI -~~~ - -Models: - -- MSI TV@nywhere Tuner Card (MS-8876) (CX23881/883) Not Bt878 compatible. -- MS-8401 DVB-S - -Focus www.focusinfo.com -~~~~~~~~~~~~~~~~~~~~~~~ - -InVideo PCI (bt878) - -Sdisilk www.sdisilk.com/ -~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- SDI Silk 100 -- SDI Silk 200 SDI Input Card - -www.euresys.com -~~~~~~~~~~~~~~~ - -PICOLO series - -PMC/Pace -~~~~~~~~ - -www.pacecom.co.uk website closed - -Mercury www.kobian.com (UK and FR) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Models: - -- LR50 -- LR138RBG-Rx == LR138 - -TEC sound -~~~~~~~~~ - -TV-Mate = Zoltrix VP-8482 - -Though educated googling found: www.techmakers.com - -(package and manuals don't have any other manufacturer info) TecSound - -Lorenzen www.lorenzen.de -~~~~~~~~~~~~~~~~~~~~~~~~ - -SL DVB-S PCI = Technotrend Budget PCI (su1278 or bsru version) - -Origo (.uk) www.origo2000.com -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -PC TV Card = LR50 - -I/O Magic www.iomagic.com -~~~~~~~~~~~~~~~~~~~~~~~~~ - -PC PVR - Desktop TV Personal Video Recorder DR-PCTV100 = Pinnacle ROB2D-51009464 4.0 + Cyberlink PowerVCR II - -Arowana -~~~~~~~ - -TV-Karte / Poso Power TV (?) = Zoltrix VP-8482 (?) - -iTVC15 boards -~~~~~~~~~~~~~ - -kuroutoshikou.com ITVC15 -yuan.com MPG160 PCI TV (Internal PCI MPEG2 encoder card plus TV-tuner) - -Asus www.asuscom.com -~~~~~~~~~~~~~~~~~~~~ - -Models: - -- Asus TV Tuner Card 880 NTSC (low profile, cx23880) -- Asus TV (saa7134) - -Hoontech -~~~~~~~~ - -http://www.hoontech.de/ - -- HART Vision 848 (H-ART Vision 848) -- HART Vision 878 (H-Art Vision 878) - - - -Chips used at bttv devices --------------------------- - -- all boards: - - - Brooktree Bt848/848A/849/878/879: video capture chip - -- Board specific - - - Miro PCTV: - - - Philips or Temic Tuner - - - Hauppauge Win/TV pci (version 405): - - - Microchip 24LC02B or Philips 8582E2Y: - - - 256 Byte EEPROM with configuration information - - I2C 0xa0-0xa1, (24LC02B also responds to 0xa2-0xaf) - - - Philips SAA5246AGP/E: Videotext decoder chip, I2C 0x22-0x23 - - - TDA9800: sound decoder - - - Winbond W24257AS-35: 32Kx8 CMOS static RAM (Videotext buffer mem) - - - 14052B: analog switch for selection of sound source - -- PAL: - - - TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners - - TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3 - -- NTSC: - - - TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners - - TSA5518: no datasheet available on Philips site - -- STB TV pci: - - - ??? - - if you want better support for STB cards send me info! - Look at the board! What chips are on it? - - - - -Specs ------ - -Philips http://www.Semiconductors.COM/pip/ - -Conexant http://www.conexant.com/ - -Micronas http://www.micronas.com/en/home/index.html - -Thanks ------- - -Many thanks to: - -- Markus Schroeder <schroedm@uni-duesseldorf.de> for information on the Bt848 - and tuner programming and his control program xtvc. - -- Martin Buck <martin-2.buck@student.uni-ulm.de> for his great Videotext - package. - -- Gerd Hoffmann for the MSP3400 support and the modular - I2C, tuner, ... support. - - -- MATRIX Vision for giving us 2 cards for free, which made support of - single crystal operation possible. - -- MIRO for providing a free PCTV card and detailed information about the - components on their cards. (E.g. how the tuner type is detected) - Without their card I could not have debugged the NTSC mode. - -- Hauppauge for telling how the sound input is selected and what components - they do and will use on their radio cards. - Also many thanks for faxing me the FM1216 data sheet. - -Contributors ------------- - -Michael Chu <mmchu@pobox.com> - AverMedia fix and more flexible card recognition - -Alan Cox <alan@lxorguk.ukuu.org.uk> - Video4Linux interface and 2.1.x kernel adaptation - -Chris Kleitsch - Hardware I2C - -Gerd Hoffmann - Radio card (ITT sound processor) - -bigfoot <bigfoot@net-way.net> - -Ragnar Hojland Espinosa <ragnar@macula.net> - ConferenceTV card - - -+ many more (please mail me if you are missing in this list and would - like to be mentioned) diff --git a/Documentation/media/v4l-drivers/cafe_ccic.rst b/Documentation/media/v4l-drivers/cafe_ccic.rst deleted file mode 100644 index ff7fbce1342a..000000000000 --- a/Documentation/media/v4l-drivers/cafe_ccic.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The cafe_ccic driver -==================== - -Author: Jonathan Corbet <corbet@lwn.net> - -Introduction ------------- - -"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. - -Current status: the core driver works. It can generate data in YUV422, -RGB565, and RGB444 formats. (Anybody looking at the code will see RGB32 as -well, but that is a debugging aid which will be removed shortly). VGA and -QVGA modes work; CIF is there but the colors remain funky. Only the OV7670 -sensor is known to work with this controller at this time. - -To try it out: either of these commands will work: - -.. 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: - - - alloc_bufs_at_load: Normally, the driver will not allocate any DMA - buffers until the time comes to transfer data. If this option is set, - then worst-case-sized buffers will be allocated at module load time. - This option nails down the memory for the life of the module, but - perhaps decreases the chances of an allocation failure later on. - - - dma_buf_size: The size of DMA buffers to allocate. Note that this - option is only consulted for load-time allocation; when buffers are - allocated at run time, they will be sized appropriately for the current - camera settings. - - - n_dma_bufs: The controller can cycle through either two or three DMA - buffers. Normally, the driver tries to use three buffers; on faster - systems, however, it will work well with only two. - - - min_buffers: The minimum number of streaming I/O buffers that the driver - will consent to work with. Default is one, but, on slower systems, - better behavior with mplayer can be achieved by setting to a higher - value (like six). - - - max_buffers: The maximum number of streaming I/O buffers; default is - ten. That number was carefully picked out of a hat and should not be - assumed to actually mean much of anything. - - - 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. diff --git a/Documentation/media/v4l-drivers/cardlist.rst b/Documentation/media/v4l-drivers/cardlist.rst deleted file mode 100644 index 14249f47fbc2..000000000000 --- a/Documentation/media/v4l-drivers/cardlist.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -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 - gspca-cardlist diff --git a/Documentation/media/v4l-drivers/cpia2.rst b/Documentation/media/v4l-drivers/cpia2.rst deleted file mode 100644 index 6f4258aebbfe..000000000000 --- a/Documentation/media/v4l-drivers/cpia2.rst +++ /dev/null @@ -1,149 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The cpia2 driver -================ - -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. - -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 -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. - -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. - -Setup -~~~~~ - -Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This -may be done automatically by your distribution. - -Driver options -~~~~~~~~~~~~~~ - -.. tabularcolumns:: |p{13ex}|L| - - -============== ======================================================== -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 -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 -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 -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 -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 -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 -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. - -========== ========== ======== ===== -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 -this case use 2 buffers. You are probably not reading at the full frame rate. -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. - -Using the camera -~~~~~~~~~~~~~~~~ - -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. diff --git a/Documentation/media/v4l-drivers/cx23885-cardlist.rst b/Documentation/media/v4l-drivers/cx23885-cardlist.rst deleted file mode 100644 index ddff8da98eeb..000000000000 --- a/Documentation/media/v4l-drivers/cx23885-cardlist.rst +++ /dev/null @@ -1,263 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -cx23885 cards list -================== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 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, 0070:7137 - - * - 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 - - * - 56 - - Hauppauge WinTV-QuadHD-DVB - - 0070:6a28, 0070:6b28 - - * - 57 - - Hauppauge WinTV-QuadHD-ATSC - - 0070:6a18, 0070:6b18 - - * - 58 - - Hauppauge WinTV-HVR-1265(161111) - - 0070:2a18 - - * - 59 - - Hauppauge WinTV-Starburst2 - - 0070:f02a - - * - 60 - - Hauppauge WinTV-QuadHD-DVB(885) - - - - * - 61 - - Hauppauge WinTV-QuadHD-ATSC(885) - - diff --git a/Documentation/media/v4l-drivers/cx88-cardlist.rst b/Documentation/media/v4l-drivers/cx88-cardlist.rst deleted file mode 100644 index 56ee08028106..000000000000 --- a/Documentation/media/v4l-drivers/cx88-cardlist.rst +++ /dev/null @@ -1,379 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -CX88 cards list -=============== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 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/cx88.rst b/Documentation/media/v4l-drivers/cx88.rst deleted file mode 100644 index e4badb18199d..000000000000 --- a/Documentation/media/v4l-drivers/cx88.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The cx88 driver -=============== - -Author: Gerd Hoffmann - -This is a v4l2 device driver for the cx2388x chip. - - -Current status --------------- - -video - - Works. - - Overlay isn't supported. - -audio - - 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 - - Works. - - -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 -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] - -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. We need at least the - following information to add the card: - - - 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 - 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 diff --git a/Documentation/media/v4l-drivers/davinci-vpbe.rst b/Documentation/media/v4l-drivers/davinci-vpbe.rst deleted file mode 100644 index 9e6360fd02db..000000000000 --- a/Documentation/media/v4l-drivers/davinci-vpbe.rst +++ /dev/null @@ -1,65 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The VPBE V4L2 driver design -=========================== - -Functional partitioning ------------------------ - -Consists of the following: - - 1. V4L2 display driver - - Implements creation of video2 and video3 device nodes and - provides v4l2 device interface to manage VID0 and VID1 layers. - - 2. Display controller - - Loads up VENC, OSD and external encoders such as ths8200. It provides - a set of API calls to V4L2 drivers to set the output/standards - in the VENC or external sub devices. It also provides - a device object to access the services from OSD subdevice - using sub device ops. The connection of external encoders to VENC LCD - controller port is done at init time based on default output and standard - selection or at run time when application change the output through - V4L2 IOCTLs. - - When connected to an external encoder, vpbe controller is also responsible - for setting up the interface between VENC and external encoders based on - board specific settings (specified in board-xxx-evm.c). This allows - interfacing external encoders such as ths8200. The setup_if_config() - is implemented for this as well as configure_venc() (part of the next patch) - API to set timings in VENC for a specific display resolution. As of this - patch series, the interconnection and enabling and setting of the external - encoders is not present, and would be a part of the next patch series. - - 3. VENC subdevice module - - Responsible for setting outputs provided through internal DACs and also - setting timings at LCD controller port when external encoders are connected - at the port or LCD panel timings required. When external encoder/LCD panel - is connected, the timings for a specific standard/preset is retrieved from - the board specific table and the values are used to set the timings in - venc using non-standard timing mode. - - Support LCD Panel displays using the VENC. For example to support a Logic - PD display, it requires setting up the LCD controller port with a set of - timings for the resolution supported and setting the dot clock. So we could - add the available outputs as a board specific entry (i.e add the "LogicPD" - output name to board-xxx-evm.c). A table of timings for various LCDs - supported can be maintained in the board specific setup file to support - various LCD displays.As of this patch a basic driver is present, and this - support for external encoders and displays forms a part of the next - patch series. - - 4. OSD module - - OSD module implements all OSD layer management and hardware specific - features. The VPBE module interacts with the OSD for enabling and - disabling appropriate features of the OSD. - -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. diff --git a/Documentation/media/v4l-drivers/em28xx-cardlist.rst b/Documentation/media/v4l-drivers/em28xx-cardlist.rst deleted file mode 100644 index 2956cbdc28e0..000000000000 --- a/Documentation/media/v4l-drivers/em28xx-cardlist.rst +++ /dev/null @@ -1,428 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -EM28xx cards list -================= - -.. tabularcolumns:: |p{1.4cm}|p{10.0cm}|p{1.9cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 12 3 16 - :stub-columns: 0 - - * - Card number - - Card name - - Empia Chip - - USB IDs - * - 0 - - Unknown EM2800 video grabber - - em2800 - - eb1a:2800 - * - 1 - - Unknown EM2750/28xx video grabber - - em2820 or 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 or em2840 - - 0ccd:0036 - * - 3 - - Pinnacle PCTV USB 2 - - em2820 or em2840 - - 2304:0208 - * - 4 - - Hauppauge WinTV USB 2 - - em2820 or em2840 - - 2040:4200, 2040:4201 - * - 5 - - MSI VOX USB 2.0 - - em2820 or 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 / Kworld DVD Maker 2 / Plextor ConvertX PX-AV100U - - em2820 or 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 or em2840 - - - * - 13 - - Terratec Prodigy XS - - em2880 - - - * - 14 - - SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 - - em2820 or 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 or em2840 - - 2001:f112 - * - 25 - - Gadmei UTV310 - - em2820 or em2840 - - - * - 26 - - Hercules Smart TV USB 2.0 - - em2820 or em2840 - - - * - 27 - - Pinnacle PCTV USB 2 (Philips FM1216ME) - - em2820 or em2840 - - - * - 28 - - Leadtek Winfast USB II Deluxe - - em2820 or em2840 - - - * - 29 - - EM2860/TVP5150 Reference Design - - em2860 - - eb1a:5051 - * - 30 - - Videology 20K14XUSB USB2.0 - - em2820 or 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 Cinergy 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 or 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 or em2840 - - - * - 62 - - Gadmei TVR200 - - em2820 or em2840 - - - * - 63 - - Kaiomy TVnPC U2 - - em2860 - - eb1a:e303 - * - 64 - - Easy Cap Capture DC-60 - - em2860 - - 1b80:e309 - * - 65 - - IO-DATA GV-MVP/SZ - - em2820 or 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 or 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, 2013:0264, 2040:0264, 2040:8264, 2040:8268, 2040:8268 - * - 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, 2040:8265 - * - 100 - - Hauppauge WinTV-dualHD 01595 ATSC/QAM - - em28174 - - 2040:026d, 2040:826d - * - 101 - - Terratec Cinergy H6 rev. 2 - - em2884 - - 0ccd:10b2 - * - 102 - - :ZOLID HYBRID TV STICK - - em2882 - - diff --git a/Documentation/media/v4l-drivers/fimc.rst b/Documentation/media/v4l-drivers/fimc.rst deleted file mode 100644 index 0b8ddc4a3008..000000000000 --- a/Documentation/media/v4l-drivers/fimc.rst +++ /dev/null @@ -1,153 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -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 -space converter, image resizer and rotator. It's also capable of capturing -data from LCD controller (FIMD) through the SoC internal writeback data -path. There are multiple FIMC instances in the SoCs (up to 4), having -slightly different capabilities, like pixel alignment constraints, rotator -availability, LCD writeback support, etc. The driver is located at -drivers/media/platform/exynos4-is directory. - -Supported SoCs --------------- - -S5PC100 (mem-to-mem only), S5PV210, EXYNOS4210 - -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 - -Not currently supported ------------------------ - -- LCD writeback input -- per frame clock gating (mem-to-mem) - -User space interfaces ---------------------- - -Media device interface -~~~~~~~~~~~~~~~~~~~~~~ - -The driver supports Media Controller API as defined at :ref:`media_controller`. -The media device driver name is "SAMSUNG S5P FIMC". - -The purpose of this interface is to allow changing assignment of FIMC instances -to the SoC peripheral camera input at runtime and optionally to control internal -connections of the MIPI-CSIS device(s) to the FIMC entities. - -The media device interface allows to configure the SoC for capturing image -data from the sensor through more than one FIMC instance (e.g. for simultaneous -viewfinder and still capture setup). - -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. - -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 -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. - -Capture video node -~~~~~~~~~~~~~~~~~~ - -The driver supports V4L2 Video Capture Interface as defined at -:ref:`devices`. - -At the capture and mem-to-mem video nodes only the multi-planar API is -supported. For more details see: :ref:`planar-apis`. - -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). - -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 -device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode. - -In typical use case there could be a following capture pipeline configuration: -sensor subdev -> mipi-csi subdev -> fimc subdev -> video node - -When we configure these devices through sub-device API at user space, the -configuration flow must be from left to right, and the video node is -configured as last one. - -When we don't use sub-device user space API the whole configuration of all -devices belonging to the pipeline is done at the video node driver. -The sysfs entry allows to instruct the capture node driver not to configure -the sub-devices (format, crop), to avoid resetting the subdevs' configuration -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): - -.. 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): - -.. 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 -more precise FIMC capture subsystem control. In addition a separate v4l2 -sub-device node is created per each MIPI-CSIS device. - -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. - -.. 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: - -.. 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 -optional s5p-csis.ko (MIPI-CSI receiver subdev). diff --git a/Documentation/media/v4l-drivers/gspca-cardlist.rst b/Documentation/media/v4l-drivers/gspca-cardlist.rst deleted file mode 100644 index adda933616f1..000000000000 --- a/Documentation/media/v4l-drivers/gspca-cardlist.rst +++ /dev/null @@ -1,451 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The gspca cards list -==================== - -The modules for the gspca webcam drivers are: - -- 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 -se401 03e8:0004 Endpoints/AoxSE401 -zc3xx 03f0:1b07 HP Premium Starter Cam -m5602 0402:5602 ALi Video Camera Controller -spca501 040a:0002 Kodak DVC-325 -spca500 040a:0300 Kodak EZ200 -zc3xx 041e:041e Creative WebCam Live! -ov519 041e:4003 Video Blaster WebCam Go Plus -stv0680 041e:4007 Go Mini -spca500 041e:400a Creative PC-CAM 300 -sunplus 041e:400b Creative PC-CAM 600 -sunplus 041e:4012 PC-Cam350 -sunplus 041e:4013 Creative Pccam750 -zc3xx 041e:4017 Creative Webcam Mobile PD1090 -spca508 041e:4018 Creative Webcam Vista (PD1100) -spca561 041e:401a Creative Webcam Vista (PD1100) -zc3xx 041e:401c Creative NX -spca505 041e:401d Creative Webcam NX ULTRA -zc3xx 041e:401e Creative Nx Pro -zc3xx 041e:401f Creative Webcam Notebook PD1171 -zc3xx 041e:4022 Webcam NX Pro -pac207 041e:4028 Creative Webcam Vista Plus -zc3xx 041e:4029 Creative WebCam Vista Pro -zc3xx 041e:4034 Creative Instant P0620 -zc3xx 041e:4035 Creative Instant P0620D -zc3xx 041e:4036 Creative Live ! -sq930x 041e:4038 Creative Joy-IT -zc3xx 041e:403a Creative Nx Pro 2 -spca561 041e:403b Creative Webcam Vista (VF0010) -sq930x 041e:403c Creative Live! Ultra -sq930x 041e:403d Creative Live! Ultra for Notebooks -sq930x 041e:4041 Creative Live! Motion -zc3xx 041e:4051 Creative Live!Cam Notebook Pro (VF0250) -ov519 041e:4052 Creative Live! VISTA IM -zc3xx 041e:4053 Creative Live!Cam Video IM -vc032x 041e:405b Creative Live! Cam Notebook Ultra (VC0130) -ov519 041e:405f Creative Live! VISTA VF0330 -ov519 041e:4060 Creative Live! VISTA VF0350 -ov519 041e:4061 Creative Live! VISTA VF0400 -ov519 041e:4064 Creative Live! VISTA VF0420 -ov519 041e:4067 Creative Live! Cam Video IM (VF0350) -ov519 041e:4068 Creative Live! VISTA VF0470 -sn9c2028 0458:7003 GeniusVideocam Live v2 -spca561 0458:7004 Genius VideoCAM Express V2 -sn9c2028 0458:7005 Genius Smart 300, version 2 -sunplus 0458:7006 Genius Dsc 1.3 Smart -zc3xx 0458:7007 Genius VideoCam V2 -zc3xx 0458:700c Genius VideoCam V3 -zc3xx 0458:700f Genius VideoCam Web V2 -sonixj 0458:7025 Genius Eye 311Q -sn9c20x 0458:7029 Genius Look 320s -sonixj 0458:702e Genius Slim 310 NB -sn9c20x 0458:7045 Genius Look 1320 V2 -sn9c20x 0458:704a Genius Slim 1320 -sn9c20x 0458:704c Genius i-Look 1321 -sn9c20x 045e:00f4 LifeCam VX-6000 (SN9C20x + OV9650) -sonixj 045e:00f5 MicroSoft VX3000 -sonixj 045e:00f7 MicroSoft VX1000 -ov519 045e:028c Micro$oft xbox cam -kinect 045e:02ae Xbox NUI Camera -kinect 045e:02bf Kinect for Windows NUI Camera -spca561 0461:0815 Micro Innovations IC200 Webcam -sunplus 0461:0821 Fujifilm MV-1 -zc3xx 0461:0a00 MicroInnovation WebCam320 -stv06xx 046D:08F0 QuickCamMessenger -stv06xx 046D:08F5 QuickCamCommunicate -stv06xx 046D:08F6 QuickCamMessenger (new) -stv06xx 046d:0840 QuickCamExpress -stv06xx 046d:0850 LEGOcam / QuickCam Web -stv06xx 046d:0870 DexxaWebCam USB -spca500 046d:0890 Logitech QuickCam traveler -vc032x 046d:0892 Logitech Orbicam -vc032x 046d:0896 Logitech Orbicam -vc032x 046d:0897 Logitech QuickCam for Dell notebooks -zc3xx 046d:089d Logitech QuickCam E2500 -zc3xx 046d:08a0 Logitech QC IM -zc3xx 046d:08a1 Logitech QC IM 0x08A1 +sound -zc3xx 046d:08a2 Labtec Webcam Pro -zc3xx 046d:08a3 Logitech QC Chat -zc3xx 046d:08a6 Logitech QCim -zc3xx 046d:08a7 Logitech QuickCam Image -zc3xx 046d:08a9 Logitech Notebook Deluxe -zc3xx 046d:08aa Labtec Webcam Notebook -zc3xx 046d:08ac Logitech QuickCam Cool -zc3xx 046d:08ad Logitech QCCommunicate STX -zc3xx 046d:08ae Logitech QuickCam for Notebooks -zc3xx 046d:08af Logitech QuickCam Cool -zc3xx 046d:08b9 Logitech QuickCam Express -zc3xx 046d:08d7 Logitech QCam STX -zc3xx 046d:08d8 Logitech Notebook Deluxe -zc3xx 046d:08d9 Logitech QuickCam IM/Connect -zc3xx 046d:08da Logitech QuickCam Messenger -zc3xx 046d:08dd Logitech QuickCam for Notebooks -spca500 046d:0900 Logitech Inc. ClickSmart 310 -spca500 046d:0901 Logitech Inc. ClickSmart 510 -sunplus 046d:0905 Logitech ClickSmart 820 -tv8532 046d:0920 Logitech QuickCam Express -tv8532 046d:0921 Labtec Webcam -spca561 046d:0928 Logitech QC Express Etch2 -spca561 046d:0929 Labtec Webcam Elch2 -spca561 046d:092a Logitech QC for Notebook -spca561 046d:092b Labtec Webcam Plus -spca561 046d:092c Logitech QC chat Elch2 -spca561 046d:092d Logitech QC Elch2 -spca561 046d:092e Logitech QC Elch2 -spca561 046d:092f Logitech QuickCam Express Plus -sunplus 046d:0960 Logitech ClickSmart 420 -nw80x 046d:d001 Logitech QuickCam Pro (dark focus ring) -se401 0471:030b PhilipsPCVC665K -sunplus 0471:0322 Philips DMVC1300K -zc3xx 0471:0325 Philips SPC 200 NC -zc3xx 0471:0326 Philips SPC 300 NC -sonixj 0471:0327 Philips SPC 600 NC -sonixj 0471:0328 Philips SPC 700 NC -zc3xx 0471:032d Philips SPC 210 NC -zc3xx 0471:032e Philips SPC 315 NC -sonixj 0471:0330 Philips SPC 710 NC -se401 047d:5001 Kensington67014 -se401 047d:5002 Kensington6701(5/7) -se401 047d:5003 Kensington67016 -spca501 0497:c001 Smile International -sunplus 04a5:3003 Benq DC 1300 -sunplus 04a5:3008 Benq DC 1500 -sunplus 04a5:300a Benq DC 3410 -spca500 04a5:300c Benq DC 1016 -benq 04a5:3035 Benq DC E300 -vicam 04c1:009d HomeConnect Webcam [vicam] -konica 04c8:0720 IntelYC 76 -finepix 04cb:0104 Fujifilm FinePix 4800 -finepix 04cb:0109 Fujifilm FinePix A202 -finepix 04cb:010b Fujifilm FinePix A203 -finepix 04cb:010f Fujifilm FinePix A204 -finepix 04cb:0111 Fujifilm FinePix A205 -finepix 04cb:0113 Fujifilm FinePix A210 -finepix 04cb:0115 Fujifilm FinePix A303 -finepix 04cb:0117 Fujifilm FinePix A310 -finepix 04cb:0119 Fujifilm FinePix F401 -finepix 04cb:011b Fujifilm FinePix F402 -finepix 04cb:011d Fujifilm FinePix F410 -finepix 04cb:0121 Fujifilm FinePix F601 -finepix 04cb:0123 Fujifilm FinePix F700 -finepix 04cb:0125 Fujifilm FinePix M603 -finepix 04cb:0127 Fujifilm FinePix S300 -finepix 04cb:0129 Fujifilm FinePix S304 -finepix 04cb:012b Fujifilm FinePix S500 -finepix 04cb:012d Fujifilm FinePix S602 -finepix 04cb:012f Fujifilm FinePix S700 -finepix 04cb:0131 Fujifilm FinePix unknown model -finepix 04cb:013b Fujifilm FinePix unknown model -finepix 04cb:013d Fujifilm FinePix unknown model -finepix 04cb:013f Fujifilm FinePix F420 -sunplus 04f1:1001 JVC GC A50 -spca561 04fc:0561 Flexcam 100 -spca1528 04fc:1528 Sunplus MD80 clone -sunplus 04fc:500c Sunplus CA500C -sunplus 04fc:504a Aiptek Mini PenCam 1.3 -sunplus 04fc:504b Maxell MaxPocket LE 1.3 -sunplus 04fc:5330 Digitrex 2110 -sunplus 04fc:5360 Sunplus Generic -spca500 04fc:7333 PalmPixDC85 -sunplus 04fc:ffff Pure DigitalDakota -nw80x 0502:d001 DVC V6 -spca501 0506:00df 3Com HomeConnect Lite -sunplus 052b:1507 Megapixel 5 Pretec DC-1007 -sunplus 052b:1513 Megapix V4 -sunplus 052b:1803 MegaImage VI -nw80x 052b:d001 EZCam Pro p35u -tv8532 0545:808b Veo Stingray -tv8532 0545:8333 Veo Stingray -sunplus 0546:3155 Polaroid PDC3070 -sunplus 0546:3191 Polaroid Ion 80 -sunplus 0546:3273 Polaroid PDC2030 -touptek 0547:6801 TTUCMOS08000KPB, AS MU800 -dtcs033 0547:7303 Anchor Chips, Inc -ov519 054c:0154 Sonny toy4 -ov519 054c:0155 Sonny toy5 -cpia1 0553:0002 CPIA CPiA (version1) based cameras -stv0680 0553:0202 STV0680 Camera -zc3xx 055f:c005 Mustek Wcam300A -spca500 055f:c200 Mustek Gsmart 300 -sunplus 055f:c211 Kowa Bs888e Microcamera -spca500 055f:c220 Gsmart Mini -sunplus 055f:c230 Mustek Digicam 330K -sunplus 055f:c232 Mustek MDC3500 -sunplus 055f:c360 Mustek DV4000 Mpeg4 -sunplus 055f:c420 Mustek gSmart Mini 2 -sunplus 055f:c430 Mustek Gsmart LCD 2 -sunplus 055f:c440 Mustek DV 3000 -sunplus 055f:c520 Mustek gSmart Mini 3 -sunplus 055f:c530 Mustek Gsmart LCD 3 -sunplus 055f:c540 Gsmart D30 -sunplus 055f:c630 Mustek MDC4000 -sunplus 055f:c650 Mustek MDC5500Z -nw80x 055f:d001 Mustek Wcam 300 mini -zc3xx 055f:d003 Mustek WCam300A -zc3xx 055f:d004 Mustek WCam300 AN -conex 0572:0041 Creative Notebook cx11646 -ov519 05a9:0511 Video Blaster WebCam 3/WebCam Plus, D-Link USB Digital Video Camera -ov519 05a9:0518 Creative WebCam -ov519 05a9:0519 OV519 Microphone -ov519 05a9:0530 OmniVision -ov534_9 05a9:1550 OmniVision VEHO Filmscanner -ov519 05a9:2800 OmniVision SuperCAM -ov519 05a9:4519 Webcam Classic -ov534_9 05a9:8065 OmniVision test kit ov538+ov9712 -ov519 05a9:8519 OmniVision -ov519 05a9:a511 D-Link USB Digital Video Camera -ov519 05a9:a518 D-Link DSB-C310 Webcam -sunplus 05da:1018 Digital Dream Enigma 1.3 -stk014 05e1:0893 Syntek DV4000 -gl860 05e3:0503 Genesys Logic PC Camera -gl860 05e3:f191 Genesys Logic PC Camera -vicam 0602:1001 ViCam Webcam -spca561 060b:a001 Maxell Compact Pc PM3 -zc3xx 0698:2003 CTX M730V built in -topro 06a2:0003 TP6800 PC Camera, CmoX CX0342 webcam -topro 06a2:6810 Creative Qmax -nw80x 06a5:0000 Typhoon Webcam 100 USB -nw80x 06a5:d001 Divio based webcams -nw80x 06a5:d800 Divio Chicony TwinkleCam, Trust SpaceCam -spca500 06bd:0404 Agfa CL20 -spca500 06be:0800 Optimedia -nw80x 06be:d001 EZCam Pro p35u -sunplus 06d6:0031 Trust 610 LCD PowerC@m Zoom -sunplus 06d6:0041 Aashima Technology B.V. -spca506 06e1:a190 ADS Instant VCD -ov534 06f8:3002 Hercules Blog Webcam -ov534_9 06f8:3003 Hercules Dualpix HD Weblog -sonixj 06f8:3004 Hercules Classic Silver -sonixj 06f8:3008 Hercules Deluxe Optical Glass -pac7302 06f8:3009 Hercules Classic Link -pac7302 06f8:301b Hercules Link -nw80x 0728:d001 AVerMedia Camguard -spca508 0733:0110 ViewQuest VQ110 -spca501 0733:0401 Intel Create and Share -spca501 0733:0402 ViewQuest M318B -spca505 0733:0430 Intel PC Camera Pro -sunplus 0733:1311 Digital Dream Epsilon 1.3 -sunplus 0733:1314 Mercury 2.1MEG Deluxe Classic Cam -sunplus 0733:2211 Jenoptik jdc 21 LCD -sunplus 0733:2221 Mercury Digital Pro 3.1p -sunplus 0733:3261 Concord 3045 spca536a -sunplus 0733:3281 Cyberpix S550V -spca506 0734:043b 3DeMon USB Capture aka -cpia1 0813:0001 QX3 camera -ov519 0813:0002 Dual Mode USB Camera Plus -spca500 084d:0003 D-Link DSC-350 -spca500 08ca:0103 Aiptek PocketDV -sunplus 08ca:0104 Aiptek PocketDVII 1.3 -sunplus 08ca:0106 Aiptek Pocket DV3100+ -mr97310a 08ca:0110 Trust Spyc@m 100 -mr97310a 08ca:0111 Aiptek PenCam VGA+ -sunplus 08ca:2008 Aiptek Mini PenCam 2 M -sunplus 08ca:2010 Aiptek PocketCam 3M -sunplus 08ca:2016 Aiptek PocketCam 2 Mega -sunplus 08ca:2018 Aiptek Pencam SD 2M -sunplus 08ca:2020 Aiptek Slim 3000F -sunplus 08ca:2022 Aiptek Slim 3200 -sunplus 08ca:2024 Aiptek DV3500 Mpeg4 -sunplus 08ca:2028 Aiptek PocketCam4M -sunplus 08ca:2040 Aiptek PocketDV4100M -sunplus 08ca:2042 Aiptek PocketDV5100 -sunplus 08ca:2050 Medion MD 41437 -sunplus 08ca:2060 Aiptek PocketDV5300 -tv8532 0923:010f ICM532 cams -mr97310a 093a:010e All known CIF cams with this ID -mr97310a 093a:010f All known VGA cams with this ID -mars 093a:050f Mars-Semi Pc-Camera -pac207 093a:2460 Qtec Webcam 100 -pac207 093a:2461 HP Webcam -pac207 093a:2463 Philips SPC 220 NC -pac207 093a:2464 Labtec Webcam 1200 -pac207 093a:2468 Webcam WB-1400T -pac207 093a:2470 Genius GF112 -pac207 093a:2471 Genius VideoCam ge111 -pac207 093a:2472 Genius VideoCam ge110 -pac207 093a:2474 Genius iLook 111 -pac207 093a:2476 Genius e-Messenger 112 -pac7311 093a:2600 PAC7311 Typhoon -pac7311 093a:2601 Philips SPC 610 NC -pac7311 093a:2603 Philips SPC 500 NC -pac7311 093a:2608 Trust WB-3300p -pac7311 093a:260e Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350 -pac7311 093a:260f SnakeCam -pac7302 093a:2620 Apollo AC-905 -pac7302 093a:2621 PAC731x -pac7302 093a:2622 Genius Eye 312 -pac7302 093a:2623 Pixart Imaging, Inc. -pac7302 093a:2624 PAC7302 -pac7302 093a:2625 Genius iSlim 310 -pac7302 093a:2626 Labtec 2200 -pac7302 093a:2627 Genius FaceCam 300 -pac7302 093a:2628 Genius iLook 300 -pac7302 093a:2629 Genious iSlim 300 -pac7302 093a:262a Webcam 300k -pac7302 093a:262c Philips SPC 230 NC -jl2005bcd 0979:0227 Various brands, 19 known cameras supported -jeilinj 0979:0270 Sakar 57379 -jeilinj 0979:0280 Sportscam DV15, Sakar 57379 -zc3xx 0ac8:0301 Web Camera -zc3xx 0ac8:0302 Z-star Vimicro zc0302 -vc032x 0ac8:0321 Vimicro generic vc0321 -vc032x 0ac8:0323 Vimicro Vc0323 -vc032x 0ac8:0328 A4Tech PK-130MG -zc3xx 0ac8:301b Z-Star zc301b -zc3xx 0ac8:303b Vimicro 0x303b -zc3xx 0ac8:305b Z-star Vimicro zc0305b -zc3xx 0ac8:307b PC Camera (ZS0211) -vc032x 0ac8:c001 Sony embedded vimicro -vc032x 0ac8:c002 Sony embedded vimicro -vc032x 0ac8:c301 Samsung Q1 Ultra Premium -spca508 0af9:0010 Hama USB Sightcam 100 -spca508 0af9:0011 Hama USB Sightcam 100 -ov519 0b62:0059 iBOT2 Webcam -sonixb 0c45:6001 Genius VideoCAM NB -sonixb 0c45:6005 Microdia Sweex Mini Webcam -sonixb 0c45:6007 Sonix sn9c101 + Tas5110D -sonixb 0c45:6009 spcaCam@120 -sonixb 0c45:600d spcaCam@120 -sonixb 0c45:6011 Microdia PC Camera (SN9C102) -sonixb 0c45:6019 Generic Sonix OV7630 -sonixb 0c45:6024 Generic Sonix Tas5130c -sonixb 0c45:6025 Xcam Shanga -sonixb 0c45:6027 GeniusEye 310 -sonixb 0c45:6028 Sonix Btc Pc380 -sonixb 0c45:6029 spcaCam@150 -sonixb 0c45:602a Meade ETX-105EC Camera -sonixb 0c45:602c Generic Sonix OV7630 -sonixb 0c45:602d LIC-200 LG -sonixb 0c45:602e Genius VideoCam Messenger -sonixj 0c45:6040 Speed NVC 350K -sonixj 0c45:607c Sonix sn9c102p Hv7131R -sonixb 0c45:6083 VideoCAM Look -sonixb 0c45:608c VideoCAM Look -sonixb 0c45:608f PC Camera (SN9C103 + OV7630) -sonixb 0c45:60a8 VideoCAM Look -sonixb 0c45:60aa VideoCAM Look -sonixb 0c45:60af VideoCAM Look -sonixb 0c45:60b0 Genius VideoCam Look -sonixj 0c45:60c0 Sangha Sn535 -sonixj 0c45:60ce USB-PC-Camera-168 (TALK-5067) -sonixj 0c45:60ec SN9C105+MO4000 -sonixj 0c45:60fb Surfer NoName -sonixj 0c45:60fc LG-LIC300 -sonixj 0c45:60fe Microdia Audio -sonixj 0c45:6100 PC Camera (SN9C128) -sonixj 0c45:6102 PC Camera (SN9C128) -sonixj 0c45:610a PC Camera (SN9C128) -sonixj 0c45:610b PC Camera (SN9C128) -sonixj 0c45:610c PC Camera (SN9C128) -sonixj 0c45:610e PC Camera (SN9C128) -sonixj 0c45:6128 Microdia/Sonix SNP325 -sonixj 0c45:612a Avant Camera -sonixj 0c45:612b Speed-Link REFLECT2 -sonixj 0c45:612c Typhoon Rasy Cam 1.3MPix -sonixj 0c45:612e PC Camera (SN9C110) -sonixj 0c45:6130 Sonix Pccam -sonixj 0c45:6138 Sn9c120 Mo4000 -sonixj 0c45:613a Microdia Sonix PC Camera -sonixj 0c45:613b Surfer SN-206 -sonixj 0c45:613c Sonix Pccam168 -sonixj 0c45:613e PC Camera (SN9C120) -sonixj 0c45:6142 Hama PC-Webcam AC-150 -sonixj 0c45:6143 Sonix Pccam168 -sonixj 0c45:6148 Digitus DA-70811/ZSMC USB PC Camera ZS211/Microdia -sonixj 0c45:614a Frontech E-Ccam (JIL-2225) -sn9c20x 0c45:6240 PC Camera (SN9C201 + MT9M001) -sn9c20x 0c45:6242 PC Camera (SN9C201 + MT9M111) -sn9c20x 0c45:6248 PC Camera (SN9C201 + OV9655) -sn9c20x 0c45:624c PC Camera (SN9C201 + MT9M112) -sn9c20x 0c45:624e PC Camera (SN9C201 + SOI968) -sn9c20x 0c45:624f PC Camera (SN9C201 + OV9650) -sn9c20x 0c45:6251 PC Camera (SN9C201 + OV9650) -sn9c20x 0c45:6253 PC Camera (SN9C201 + OV9650) -sn9c20x 0c45:6260 PC Camera (SN9C201 + OV7670) -sn9c20x 0c45:6270 PC Camera (SN9C201 + MT9V011/MT9V111/MT9V112) -sn9c20x 0c45:627b PC Camera (SN9C201 + OV7660) -sn9c20x 0c45:627c PC Camera (SN9C201 + HV7131R) -sn9c20x 0c45:627f PC Camera (SN9C201 + OV9650) -sn9c20x 0c45:6280 PC Camera (SN9C202 + MT9M001) -sn9c20x 0c45:6282 PC Camera (SN9C202 + MT9M111) -sn9c20x 0c45:6288 PC Camera (SN9C202 + OV9655) -sn9c20x 0c45:628c PC Camera (SN9C201 + MT9M112) -sn9c20x 0c45:628e PC Camera (SN9C202 + SOI968) -sn9c20x 0c45:628f PC Camera (SN9C202 + OV9650) -sn9c20x 0c45:62a0 PC Camera (SN9C202 + OV7670) -sn9c20x 0c45:62b0 PC Camera (SN9C202 + MT9V011/MT9V111/MT9V112) -sn9c20x 0c45:62b3 PC Camera (SN9C202 + OV9655) -sn9c20x 0c45:62bb PC Camera (SN9C202 + OV7660) -sn9c20x 0c45:62bc PC Camera (SN9C202 + HV7131R) -sn9c2028 0c45:8001 Wild Planet Digital Spy Camera -sn9c2028 0c45:8003 Sakar #11199, #6637x, #67480 keychain cams -sn9c2028 0c45:8008 Mini-Shotz ms-350 -sn9c2028 0c45:800a Vivitar Vivicam 3350B -sunplus 0d64:0303 Sunplus FashionCam DXG -ov519 0e96:c001 TRUST 380 USB2 SPACEC@M -etoms 102c:6151 Qcam Sangha CIF -etoms 102c:6251 Qcam xxxxxx VGA -ov519 1046:9967 W9967CF/W9968CF WebCam IC, Video Blaster WebCam Go -zc3xx 10fd:0128 Typhoon Webshot II USB 300k 0x0128 -spca561 10fd:7e50 FlyCam Usb 100 -zc3xx 10fd:804d Typhoon Webshot II Webcam [zc0301] -zc3xx 10fd:8050 Typhoon Webshot II USB 300k -ov534 1415:2000 Sony HD Eye for PS3 (SLEH 00201) -pac207 145f:013a Trust WB-1300N -pac7302 145f:013c Trust -sn9c20x 145f:013d Trust WB-3600R -vc032x 15b8:6001 HP 2.0 Megapixel -vc032x 15b8:6002 HP 2.0 Megapixel rz406aa -stk1135 174f:6a31 ASUSlaptop, MT9M112 sensor -spca501 1776:501c Arowana 300K CMOS Camera -t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops -vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC -pac7302 1ae7:2001 SpeedLinkSnappy Mic SL-6825-SBK -pac207 2001:f115 D-Link DSB-C120 -sq905c 2770:9050 Disney pix micro (CIF) -sq905c 2770:9051 Lego Bionicle -sq905c 2770:9052 Disney pix micro 2 (VGA) -sq905c 2770:905c All 11 known cameras with this ID -sq905 2770:9120 All 24 known cameras with this ID -sq905c 2770:913d All 4 known cameras with this ID -sq930x 2770:930b Sweex Motion Tracking / I-Tec iCam Tracer -sq930x 2770:930c Trust WB-3500T / NSG Robbie 2.0 -spca500 2899:012c Toptro Industrial -ov519 8020:ef04 ov519 -spca508 8086:0110 Intel Easy PC Camera -spca500 8086:0630 Intel Pocket PC Camera -spca506 99fa:8988 Grandtec V.cap -sn9c20x a168:0610 Dino-Lite Digital Microscope (SN9C201 + HV7131R) -sn9c20x a168:0611 Dino-Lite Digital Microscope (SN9C201 + HV7131R) -sn9c20x a168:0613 Dino-Lite Digital Microscope (SN9C201 + HV7131R) -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) -sn9c20x a168:0618 Dino-Lite Digital Microscope (SN9C201 + HV7131R) -spca561 abcd:cdee Petcam -========= ========= =================================================================== diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst deleted file mode 100644 index 3182951c7651..000000000000 --- a/Documentation/media/v4l-drivers/imx.rst +++ /dev/null @@ -1,621 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -i.MX Video Capture Driver -========================= - -Introduction ------------- - -The Freescale i.MX5/6 contains an Image Processing Unit (IPU), which -handles the flow of image frames to and from capture devices and -display devices. - -For image capture, the IPU contains the following internal subunits: - -- Image DMA Controller (IDMAC) -- Camera Serial Interface (CSI) -- Image Converter (IC) -- Sensor Multi-FIFO Controller (SMFC) -- Image Rotator (IRT) -- Video De-Interlacing or Combining Block (VDIC) - -The IDMAC is the DMA controller for transfer of image frames to and from -memory. Various dedicated DMA channels exist for both video capture and -display paths. During transfer, the IDMAC is also capable of vertical -image flip, 8x8 block transfer (see IRT description), pixel component -re-ordering (for example UYVY to YUYV) within the same colorspace, and -packed <--> planar conversion. The IDMAC can also perform a simple -de-interlacing by interweaving even and odd lines during transfer -(without motion compensation which requires the VDIC). - -The CSI is the backend capture unit that interfaces directly with -camera sensors over Parallel, BT.656/1120, and MIPI CSI-2 buses. - -The IC handles color-space conversion, resizing (downscaling and -upscaling), horizontal flip, and 90/270 degree rotation operations. - -There are three independent "tasks" within the IC that can carry out -conversions concurrently: pre-process encoding, pre-process viewfinder, -and post-processing. Within each task, conversions are split into three -sections: downsizing section, main section (upsizing, flip, colorspace -conversion, and graphics plane combining), and rotation section. - -The IPU time-shares the IC task operations. The time-slice granularity -is one burst of eight pixels in the downsizing section, one image line -in the main processing section, one image frame in the rotation section. - -The SMFC is composed of four independent FIFOs that each can transfer -captured frames from sensors directly to memory concurrently via four -IDMAC channels. - -The IRT carries out 90 and 270 degree image rotation operations. The -rotation operation is carried out on 8x8 pixel blocks at a time. This -operation is supported by the IDMAC which handles the 8x8 block transfer -along with block reordering, in coordination with vertical flip. - -The VDIC handles the conversion of interlaced video to progressive, with -support for different motion compensation modes (low, medium, and high -motion). The deinterlaced output frames from the VDIC can be sent to the -IC pre-process viewfinder task for further conversions. The VDIC also -contains a Combiner that combines two image planes, with alpha blending -and color keying. - -In addition to the IPU internal subunits, there are also two units -outside the IPU that are also involved in video capture on i.MX: - -- MIPI CSI-2 Receiver for camera sensors with the MIPI CSI-2 bus - interface. This is a Synopsys DesignWare core. -- Two video multiplexers for selecting among multiple sensor inputs - to send to a CSI. - -For more info, refer to the latest versions of the i.MX5/6 reference -manuals [#f1]_ and [#f2]_. - - -Features --------- - -Some of the features of this driver include: - -- Many different pipelines can be configured via media controller API, - that correspond to the hardware video capture pipelines supported in - the i.MX. - -- Supports parallel, BT.565, and MIPI CSI-2 interfaces. - -- Concurrent independent streams, by configuring pipelines to multiple - video capture interfaces using independent entities. - -- Scaling, color-space conversion, horizontal and vertical flip, and - image rotation via IC task subdevs. - -- Many pixel formats supported (RGB, packed and planar YUV, partial - planar YUV). - -- The VDIC subdev supports motion compensated de-interlacing, with three - motion compensation modes: low, medium, and high motion. Pipelines are - defined that allow sending frames to the VDIC subdev directly from the - CSI. There is also support in the future for sending frames to the - VDIC from memory buffers via a output/mem2mem devices. - -- Includes a Frame Interval Monitor (FIM) that can correct vertical sync - problems with the ADV718x video decoders. - - -Entities --------- - -imx6-mipi-csi2 --------------- - -This is the MIPI CSI-2 receiver entity. It has one sink pad to receive -the MIPI CSI-2 stream (usually from a MIPI CSI-2 camera sensor). It has -four source pads, corresponding to the four MIPI CSI-2 demuxed virtual -channel outputs. Multiple source pads can be enabled to independently -stream from multiple virtual channels. - -This entity actually consists of two sub-blocks. One is the MIPI CSI-2 -core. This is a Synopsys Designware MIPI CSI-2 core. The other sub-block -is a "CSI-2 to IPU gasket". The gasket acts as a demultiplexer of the -four virtual channels streams, providing four separate parallel buses -containing each virtual channel that are routed to CSIs or video -multiplexers as described below. - -On i.MX6 solo/dual-lite, all four virtual channel buses are routed to -two video multiplexers. Both CSI0 and CSI1 can receive any virtual -channel, as selected by the video multiplexers. - -On i.MX6 Quad, virtual channel 0 is routed to IPU1-CSI0 (after selected -by a video mux), virtual channels 1 and 2 are hard-wired to IPU1-CSI1 -and IPU2-CSI0, respectively, and virtual channel 3 is routed to -IPU2-CSI1 (again selected by a video mux). - -ipuX_csiY_mux -------------- - -These are the video multiplexers. They have two or more sink pads to -select from either camera sensors with a parallel interface, or from -MIPI CSI-2 virtual channels from imx6-mipi-csi2 entity. They have a -single source pad that routes to a CSI (ipuX_csiY entities). - -On i.MX6 solo/dual-lite, there are two video mux entities. One sits -in front of IPU1-CSI0 to select between a parallel sensor and any of -the four MIPI CSI-2 virtual channels (a total of five sink pads). The -other mux sits in front of IPU1-CSI1, and again has five sink pads to -select between a parallel sensor and any of the four MIPI CSI-2 virtual -channels. - -On i.MX6 Quad, there are two video mux entities. One sits in front of -IPU1-CSI0 to select between a parallel sensor and MIPI CSI-2 virtual -channel 0 (two sink pads). The other mux sits in front of IPU2-CSI1 to -select between a parallel sensor and MIPI CSI-2 virtual channel 3 (two -sink pads). - -ipuX_csiY ---------- - -These are the CSI entities. They have a single sink pad receiving from -either a video mux or from a MIPI CSI-2 virtual channel as described -above. - -This entity has two source pads. The first source pad can link directly -to the ipuX_vdic entity or the ipuX_ic_prp entity, using hardware links -that require no IDMAC memory buffer transfer. - -When the direct source pad is routed to the ipuX_ic_prp entity, frames -from the CSI can be processed by one or both of the IC pre-processing -tasks. - -When the direct source pad is routed to the ipuX_vdic entity, the VDIC -will carry out motion-compensated de-interlace using "high motion" mode -(see description of ipuX_vdic entity). - -The second source pad sends video frames directly to memory buffers -via the SMFC and an IDMAC channel, bypassing IC pre-processing. This -source pad is routed to a capture device node, with a node name of the -format "ipuX_csiY capture". - -Note that since the IDMAC source pad makes use of an IDMAC channel, -pixel reordering within the same colorspace can be carried out by the -IDMAC channel. For example, if the CSI sink pad is receiving in UYVY -order, the capture device linked to the IDMAC source pad can capture -in YUYV order. Also, if the CSI sink pad is receiving a packed YUV -format, the capture device can capture a planar YUV format such as -YUV420. - -The IDMAC channel at the IDMAC source pad also supports simple -interweave without motion compensation, which is activated if the source -pad's field type is sequential top-bottom or bottom-top, and the -requested capture interface field type is set to interlaced (t-b, b-t, -or unqualified interlaced). The capture interface will enforce the same -field order as the source pad field order (interlaced-bt if source pad -is seq-bt, interlaced-tb if source pad is seq-tb). - -For events produced by ipuX_csiY, see ref:`imx_api_ipuX_csiY`. - -Cropping in ipuX_csiY ---------------------- - -The CSI supports cropping the incoming raw sensor frames. This is -implemented in the ipuX_csiY entities at the sink pad, using the -crop selection subdev API. - -The CSI also supports fixed divide-by-two downscaling independently in -width and height. This is implemented in the ipuX_csiY entities at -the sink pad, using the compose selection subdev API. - -The output rectangle at the ipuX_csiY source pad is the same as -the compose rectangle at the sink pad. So the source pad rectangle -cannot be negotiated, it must be set using the compose selection -API at sink pad (if /2 downscale is desired, otherwise source pad -rectangle is equal to incoming rectangle). - -To give an example of crop and /2 downscale, this will crop a -1280x960 input frame to 640x480, and then /2 downscale in both -dimensions to 320x240 (assumes ipu1_csi0 is linked to ipu1_csi0_mux): - -.. code-block:: none - - media-ctl -V "'ipu1_csi0_mux':2[fmt:UYVY2X8/1280x960]" - media-ctl -V "'ipu1_csi0':0[crop:(0,0)/640x480]" - media-ctl -V "'ipu1_csi0':0[compose:(0,0)/320x240]" - -Frame Skipping in ipuX_csiY ---------------------------- - -The CSI supports frame rate decimation, via frame skipping. Frame -rate decimation is specified by setting the frame intervals at -sink and source pads. The ipuX_csiY entity then applies the best -frame skip setting to the CSI to achieve the desired frame rate -at the source pad. - -The following example reduces an assumed incoming 60 Hz frame -rate by half at the IDMAC output source pad: - -.. code-block:: none - - media-ctl -V "'ipu1_csi0':0[fmt:UYVY2X8/640x480@1/60]" - media-ctl -V "'ipu1_csi0':2[fmt:UYVY2X8/640x480@1/30]" - -Frame Interval Monitor in ipuX_csiY ------------------------------------ - -See ref:`imx_api_FIM`. - -ipuX_vdic ---------- - -The VDIC carries out motion compensated de-interlacing, with three -motion compensation modes: low, medium, and high motion. The mode is -specified with the menu control V4L2_CID_DEINTERLACING_MODE. The VDIC -has two sink pads and a single source pad. - -The direct sink pad receives from an ipuX_csiY direct pad. With this -link the VDIC can only operate in high motion mode. - -When the IDMAC sink pad is activated, it receives from an output -or mem2mem device node. With this pipeline, the VDIC can also operate -in low and medium modes, because these modes require receiving -frames from memory buffers. Note that an output or mem2mem device -is not implemented yet, so this sink pad currently has no links. - -The source pad routes to the IC pre-processing entity ipuX_ic_prp. - -ipuX_ic_prp ------------ - -This is the IC pre-processing entity. It acts as a router, routing -data from its sink pad to one or both of its source pads. - -This entity has a single sink pad. The sink pad can receive from the -ipuX_csiY direct pad, or from ipuX_vdic. - -This entity has two source pads. One source pad routes to the -pre-process encode task entity (ipuX_ic_prpenc), the other to the -pre-process viewfinder task entity (ipuX_ic_prpvf). Both source pads -can be activated at the same time if the sink pad is receiving from -ipuX_csiY. Only the source pad to the pre-process viewfinder task entity -can be activated if the sink pad is receiving from ipuX_vdic (frames -from the VDIC can only be processed by the pre-process viewfinder task). - -ipuX_ic_prpenc --------------- - -This is the IC pre-processing encode entity. It has a single sink -pad from ipuX_ic_prp, and a single source pad. The source pad is -routed to a capture device node, with a node name of the format -"ipuX_ic_prpenc capture". - -This entity performs the IC pre-process encode task operations: -color-space conversion, resizing (downscaling and upscaling), -horizontal and vertical flip, and 90/270 degree rotation. Flip -and rotation are provided via standard V4L2 controls. - -Like the ipuX_csiY IDMAC source, this entity also supports simple -de-interlace without motion compensation, and pixel reordering. - -ipuX_ic_prpvf -------------- - -This is the IC pre-processing viewfinder entity. It has a single sink -pad from ipuX_ic_prp, and a single source pad. The source pad is routed -to a capture device node, with a node name of the format -"ipuX_ic_prpvf capture". - -This entity is identical in operation to ipuX_ic_prpenc, with the same -resizing and CSC operations and flip/rotation controls. It will receive -and process de-interlaced frames from the ipuX_vdic if ipuX_ic_prp is -receiving from ipuX_vdic. - -Like the ipuX_csiY IDMAC source, this entity supports simple -interweaving without motion compensation. However, note that if the -ipuX_vdic is included in the pipeline (ipuX_ic_prp is receiving from -ipuX_vdic), it's not possible to use interweave in ipuX_ic_prpvf, -since the ipuX_vdic has already carried out de-interlacing (with -motion compensation) and therefore the field type output from -ipuX_vdic can only be none (progressive). - -Capture Pipelines ------------------ - -The following describe the various use-cases supported by the pipelines. - -The links shown do not include the backend sensor, video mux, or mipi -csi-2 receiver links. This depends on the type of sensor interface -(parallel or mipi csi-2). So these pipelines begin with: - -sensor -> ipuX_csiY_mux -> ... - -for parallel sensors, or: - -sensor -> imx6-mipi-csi2 -> (ipuX_csiY_mux) -> ... - -for mipi csi-2 sensors. The imx6-mipi-csi2 receiver may need to route -to the video mux (ipuX_csiY_mux) before sending to the CSI, depending -on the mipi csi-2 virtual channel, hence ipuX_csiY_mux is shown in -parenthesis. - -Unprocessed Video Capture: --------------------------- - -Send frames directly from sensor to camera device interface node, with -no conversions, via ipuX_csiY IDMAC source pad: - --> ipuX_csiY:2 -> ipuX_csiY capture - -IC Direct Conversions: ----------------------- - -This pipeline uses the preprocess encode entity to route frames directly -from the CSI to the IC, to carry out scaling up to 1024x1024 resolution, -CSC, flipping, and image rotation: - --> ipuX_csiY:1 -> 0:ipuX_ic_prp:1 -> 0:ipuX_ic_prpenc:1 -> ipuX_ic_prpenc capture - -Motion Compensated De-interlace: --------------------------------- - -This pipeline routes frames from the CSI direct pad to the VDIC entity to -support motion-compensated de-interlacing (high motion mode only), -scaling up to 1024x1024, CSC, flip, and rotation: - --> ipuX_csiY:1 -> 0:ipuX_vdic:2 -> 0:ipuX_ic_prp:2 -> 0:ipuX_ic_prpvf:1 -> ipuX_ic_prpvf capture - - -Usage Notes ------------ - -To aid in configuration and for backward compatibility with V4L2 -applications that access controls only from video device nodes, the -capture device interfaces inherit controls from the active entities -in the current pipeline, so controls can be accessed either directly -from the subdev or from the active capture device interface. For -example, the FIM controls are available either from the ipuX_csiY -subdevs or from the active capture device. - -The following are specific usage notes for the Sabre* reference -boards: - - -SabreLite with OV5642 and OV5640 --------------------------------- - -This platform requires the OmniVision OV5642 module with a parallel -camera interface, and the OV5640 module with a MIPI CSI-2 -interface. Both modules are available from Boundary Devices: - -- https://boundarydevices.com/product/nit6x_5mp -- https://boundarydevices.com/product/nit6x_5mp_mipi - -Note that if only one camera module is available, the other sensor -node can be disabled in the device tree. - -The OV5642 module is connected to the parallel bus input on the i.MX -internal video mux to IPU1 CSI0. It's i2c bus connects to i2c bus 2. - -The MIPI CSI-2 OV5640 module is connected to the i.MX internal MIPI CSI-2 -receiver, and the four virtual channel outputs from the receiver are -routed as follows: vc0 to the IPU1 CSI0 mux, vc1 directly to IPU1 CSI1, -vc2 directly to IPU2 CSI0, and vc3 to the IPU2 CSI1 mux. The OV5640 is -also connected to i2c bus 2 on the SabreLite, therefore the OV5642 and -OV5640 must not share the same i2c slave address. - -The following basic example configures unprocessed video capture -pipelines for both sensors. The OV5642 is routed to ipu1_csi0, and -the OV5640, transmitting on MIPI CSI-2 virtual channel 1 (which is -imx6-mipi-csi2 pad 2), is routed to ipu1_csi1. Both sensors are -configured to output 640x480, and the OV5642 outputs YUYV2X8, the -OV5640 UYVY2X8: - -.. code-block:: none - - # Setup links for OV5642 - media-ctl -l "'ov5642 1-0042':0 -> 'ipu1_csi0_mux':1[1]" - media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" - media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]" - # Setup links for OV5640 - media-ctl -l "'ov5640 1-0040':0 -> 'imx6-mipi-csi2':0[1]" - media-ctl -l "'imx6-mipi-csi2':2 -> 'ipu1_csi1':0[1]" - media-ctl -l "'ipu1_csi1':2 -> 'ipu1_csi1 capture':0[1]" - # Configure pads for OV5642 pipeline - media-ctl -V "'ov5642 1-0042':0 [fmt:YUYV2X8/640x480 field:none]" - media-ctl -V "'ipu1_csi0_mux':2 [fmt:YUYV2X8/640x480 field:none]" - media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/640x480 field:none]" - # Configure pads for OV5640 pipeline - media-ctl -V "'ov5640 1-0040':0 [fmt:UYVY2X8/640x480 field:none]" - media-ctl -V "'imx6-mipi-csi2':2 [fmt:UYVY2X8/640x480 field:none]" - media-ctl -V "'ipu1_csi1':2 [fmt:AYUV32/640x480 field:none]" - -Streaming can then begin independently on the capture device nodes -"ipu1_csi0 capture" and "ipu1_csi1 capture". The v4l2-ctl tool can -be used to select any supported YUV pixelformat on the capture device -nodes, including planar. - -i.MX6Q SabreAuto with ADV7180 decoder -------------------------------------- - -On the i.MX6Q SabreAuto, an on-board ADV7180 SD decoder is connected to the -parallel bus input on the internal video mux to IPU1 CSI0. - -The following example configures a pipeline to capture from the ADV7180 -video decoder, assuming NTSC 720x480 input signals, using simple -interweave (unconverted and without motion compensation). The adv7180 -must output sequential or alternating fields (field type 'seq-bt' for -NTSC, or 'alternate'): - -.. code-block:: none - - # Setup links - media-ctl -l "'adv7180 3-0021':0 -> 'ipu1_csi0_mux':1[1]" - media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" - media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]" - # Configure pads - media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x480 field:seq-bt]" - media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x480]" - media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/720x480]" - # Configure "ipu1_csi0 capture" interface (assumed at /dev/video4) - v4l2-ctl -d4 --set-fmt-video=field=interlaced_bt - -Streaming can then begin on /dev/video4. The v4l2-ctl tool can also be -used to select any supported YUV pixelformat on /dev/video4. - -This example configures a pipeline to capture from the ADV7180 -video decoder, assuming PAL 720x576 input signals, with Motion -Compensated de-interlacing. The adv7180 must output sequential or -alternating fields (field type 'seq-tb' for PAL, or 'alternate'). - -.. code-block:: none - - # Setup links - media-ctl -l "'adv7180 3-0021':0 -> 'ipu1_csi0_mux':1[1]" - media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" - media-ctl -l "'ipu1_csi0':1 -> 'ipu1_vdic':0[1]" - media-ctl -l "'ipu1_vdic':2 -> 'ipu1_ic_prp':0[1]" - media-ctl -l "'ipu1_ic_prp':2 -> 'ipu1_ic_prpvf':0[1]" - media-ctl -l "'ipu1_ic_prpvf':1 -> 'ipu1_ic_prpvf capture':0[1]" - # Configure pads - media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x576 field:seq-tb]" - media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x576]" - media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]" - media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]" - media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]" - media-ctl -V "'ipu1_ic_prpvf':1 [fmt:AYUV32/720x576 field:none]" - # Configure "ipu1_ic_prpvf capture" interface (assumed at /dev/video2) - v4l2-ctl -d2 --set-fmt-video=field=none - -Streaming can then begin on /dev/video2. The v4l2-ctl tool can also be -used to select any supported YUV pixelformat on /dev/video2. - -This platform accepts Composite Video analog inputs to the ADV7180 on -Ain1 (connector J42). - -i.MX6DL SabreAuto with ADV7180 decoder --------------------------------------- - -On the i.MX6DL SabreAuto, an on-board ADV7180 SD decoder is connected to the -parallel bus input on the internal video mux to IPU1 CSI0. - -The following example configures a pipeline to capture from the ADV7180 -video decoder, assuming NTSC 720x480 input signals, using simple -interweave (unconverted and without motion compensation). The adv7180 -must output sequential or alternating fields (field type 'seq-bt' for -NTSC, or 'alternate'): - -.. code-block:: none - - # Setup links - media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]" - media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]" - media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]" - # Configure pads - media-ctl -V "'adv7180 4-0021':0 [fmt:UYVY2X8/720x480 field:seq-bt]" - media-ctl -V "'ipu1_csi0_mux':5 [fmt:UYVY2X8/720x480]" - media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/720x480]" - # Configure "ipu1_csi0 capture" interface (assumed at /dev/video0) - v4l2-ctl -d0 --set-fmt-video=field=interlaced_bt - -Streaming can then begin on /dev/video0. The v4l2-ctl tool can also be -used to select any supported YUV pixelformat on /dev/video0. - -This example configures a pipeline to capture from the ADV7180 -video decoder, assuming PAL 720x576 input signals, with Motion -Compensated de-interlacing. The adv7180 must output sequential or -alternating fields (field type 'seq-tb' for PAL, or 'alternate'). - -.. code-block:: none - - # Setup links - media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]" - media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]" - media-ctl -l "'ipu1_csi0':1 -> 'ipu1_vdic':0[1]" - media-ctl -l "'ipu1_vdic':2 -> 'ipu1_ic_prp':0[1]" - media-ctl -l "'ipu1_ic_prp':2 -> 'ipu1_ic_prpvf':0[1]" - media-ctl -l "'ipu1_ic_prpvf':1 -> 'ipu1_ic_prpvf capture':0[1]" - # Configure pads - media-ctl -V "'adv7180 4-0021':0 [fmt:UYVY2X8/720x576 field:seq-tb]" - media-ctl -V "'ipu1_csi0_mux':5 [fmt:UYVY2X8/720x576]" - media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]" - media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]" - media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]" - media-ctl -V "'ipu1_ic_prpvf':1 [fmt:AYUV32/720x576 field:none]" - # Configure "ipu1_ic_prpvf capture" interface (assumed at /dev/video2) - v4l2-ctl -d2 --set-fmt-video=field=none - -Streaming can then begin on /dev/video2. The v4l2-ctl tool can also be -used to select any supported YUV pixelformat on /dev/video2. - -This platform accepts Composite Video analog inputs to the ADV7180 on -Ain1 (connector J42). - -SabreSD with MIPI CSI-2 OV5640 ------------------------------- - -Similarly to SabreLite, the SabreSD supports a parallel interface -OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640 module. The OV5642 -connects to i2c bus 1 and the OV5640 to i2c bus 2. - -The device tree for SabreSD includes OF graphs for both the parallel -OV5642 and the MIPI CSI-2 OV5640, but as of this writing only the MIPI -CSI-2 OV5640 has been tested, so the OV5642 node is currently disabled. -The OV5640 module connects to MIPI connector J5 (sorry I don't have the -compatible module part number or URL). - -The following example configures a direct conversion pipeline to capture -from the OV5640, transmitting on MIPI CSI-2 virtual channel 1. $sensorfmt -can be any format supported by the OV5640. $sensordim is the frame -dimension part of $sensorfmt (minus the mbus pixel code). $outputfmt can -be any format supported by the ipu1_ic_prpenc entity at its output pad: - -.. code-block:: none - - # Setup links - media-ctl -l "'ov5640 1-003c':0 -> 'imx6-mipi-csi2':0[1]" - media-ctl -l "'imx6-mipi-csi2':2 -> 'ipu1_csi1':0[1]" - media-ctl -l "'ipu1_csi1':1 -> 'ipu1_ic_prp':0[1]" - media-ctl -l "'ipu1_ic_prp':1 -> 'ipu1_ic_prpenc':0[1]" - media-ctl -l "'ipu1_ic_prpenc':1 -> 'ipu1_ic_prpenc capture':0[1]" - # Configure pads - media-ctl -V "'ov5640 1-003c':0 [fmt:$sensorfmt field:none]" - media-ctl -V "'imx6-mipi-csi2':2 [fmt:$sensorfmt field:none]" - media-ctl -V "'ipu1_csi1':1 [fmt:AYUV32/$sensordim field:none]" - media-ctl -V "'ipu1_ic_prp':1 [fmt:AYUV32/$sensordim field:none]" - media-ctl -V "'ipu1_ic_prpenc':1 [fmt:$outputfmt field:none]" - -Streaming can then begin on "ipu1_ic_prpenc capture" node. The v4l2-ctl -tool can be used to select any supported YUV or RGB pixelformat on the -capture device node. - - -Known Issues ------------- - -1. When using 90 or 270 degree rotation control at capture resolutions - near the IC resizer limit of 1024x1024, and combined with planar - pixel formats (YUV420, YUV422p), frame capture will often fail with - no end-of-frame interrupts from the IDMAC channel. To work around - this, use lower resolution and/or packed formats (YUYV, RGB3, etc.) - when 90 or 270 rotations are needed. - - -File list ---------- - -drivers/staging/media/imx/ -include/media/imx.h -include/linux/imx-media.h - -References ----------- - -.. [#f1] http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf -.. [#f2] http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6SDLRM.pdf - - -Authors -------- - -- Steve Longerbeam <steve_longerbeam@mentor.com> -- Philipp Zabel <kernel@pengutronix.de> -- Russell King <linux@armlinux.org.uk> - -Copyright (C) 2012-2017 Mentor Graphics Inc. diff --git a/Documentation/media/v4l-drivers/imx7.rst b/Documentation/media/v4l-drivers/imx7.rst deleted file mode 100644 index 1e442c97da47..000000000000 --- a/Documentation/media/v4l-drivers/imx7.rst +++ /dev/null @@ -1,161 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -i.MX7 Video Capture Driver -========================== - -Introduction ------------- - -The i.MX7 contrary to the i.MX5/6 family does not contain an Image Processing -Unit (IPU); because of that the capabilities to perform operations or -manipulation of the capture frames are less feature rich. - -For image capture the i.MX7 has three units: -- CMOS Sensor Interface (CSI) -- Video Multiplexer -- MIPI CSI-2 Receiver - -.. code-block:: none - - MIPI Camera Input ---> MIPI CSI-2 --- > |\ - | \ - | \ - | M | - | U | ------> CSI ---> Capture - | X | - | / - Parallel Camera Input ----------------> | / - |/ - -For additional information, please refer to the latest versions of the i.MX7 -reference manual [#f1]_. - -Entities --------- - -imx7-mipi-csi2 --------------- - -This is the MIPI CSI-2 receiver entity. It has one sink pad to receive the pixel -data from MIPI CSI-2 camera sensor. It has one source pad, corresponding to the -virtual channel 0. This module is compliant to previous version of Samsung -D-phy, and supports two D-PHY Rx Data lanes. - -csi-mux -------- - -This is the video multiplexer. It has two sink pads to select from either camera -sensor with a parallel interface or from MIPI CSI-2 virtual channel 0. It has -a single source pad that routes to the CSI. - -csi ---- - -The CSI enables the chip to connect directly to external CMOS image sensor. CSI -can interface directly with Parallel and MIPI CSI-2 buses. It has 256 x 64 FIFO -to store received image pixel data and embedded DMA controllers to transfer data -from the FIFO through AHB bus. - -This entity has one sink pad that receives from the csi-mux entity and a single -source pad that routes video frames directly to memory buffers. This pad is -routed to a capture device node. - -Usage Notes ------------ - -To aid in configuration and for backward compatibility with V4L2 applications -that access controls only from video device nodes, the capture device interfaces -inherit controls from the active entities in the current pipeline, so controls -can be accessed either directly from the subdev or from the active capture -device interface. For example, the sensor controls are available either from the -sensor subdevs or from the active capture device. - -Warp7 with OV2680 ------------------ - -On this platform an OV2680 MIPI CSI-2 module is connected to the internal MIPI -CSI-2 receiver. The following example configures a video capture pipeline with -an output of 800x600, and BGGR 10 bit bayer format: - -.. code-block:: none - - # Setup links - media-ctl -l "'ov2680 1-0036':0 -> 'imx7-mipi-csis.0':0[1]" - media-ctl -l "'imx7-mipi-csis.0':1 -> 'csi-mux':1[1]" - media-ctl -l "'csi-mux':2 -> 'csi':0[1]" - media-ctl -l "'csi':1 -> 'csi capture':0[1]" - - # Configure pads for pipeline - media-ctl -V "'ov2680 1-0036':0 [fmt:SBGGR10_1X10/800x600 field:none]" - media-ctl -V "'csi-mux':1 [fmt:SBGGR10_1X10/800x600 field:none]" - media-ctl -V "'csi-mux':2 [fmt:SBGGR10_1X10/800x600 field:none]" - media-ctl -V "'imx7-mipi-csis.0':0 [fmt:SBGGR10_1X10/800x600 field:none]" - media-ctl -V "'csi':0 [fmt:SBGGR10_1X10/800x600 field:none]" - -After this streaming can start. The v4l2-ctl tool can be used to select any of -the resolutions supported by the sensor. - -.. code-block:: none - - # media-ctl -p - Media controller API version 5.2.0 - - Media device information - ------------------------ - driver imx7-csi - model imx-media - serial - bus info - hw revision 0x0 - driver version 5.2.0 - - Device topology - - entity 1: csi (2 pads, 2 links) - type V4L2 subdev subtype Unknown flags 0 - device node name /dev/v4l-subdev0 - pad0: Sink - [fmt:SBGGR10_1X10/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range] - <- "csi-mux":2 [ENABLED] - pad1: Source - [fmt:SBGGR10_1X10/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range] - -> "csi capture":0 [ENABLED] - - - entity 4: csi capture (1 pad, 1 link) - type Node subtype V4L flags 0 - device node name /dev/video0 - pad0: Sink - <- "csi":1 [ENABLED] - - - entity 10: csi-mux (3 pads, 2 links) - type V4L2 subdev subtype Unknown flags 0 - device node name /dev/v4l-subdev1 - pad0: Sink - [fmt:Y8_1X8/1x1 field:none] - pad1: Sink - [fmt:SBGGR10_1X10/800x600 field:none] - <- "imx7-mipi-csis.0":1 [ENABLED] - pad2: Source - [fmt:SBGGR10_1X10/800x600 field:none] - -> "csi":0 [ENABLED] - - - entity 14: imx7-mipi-csis.0 (2 pads, 2 links) - type V4L2 subdev subtype Unknown flags 0 - device node name /dev/v4l-subdev2 - pad0: Sink - [fmt:SBGGR10_1X10/800x600 field:none] - <- "ov2680 1-0036":0 [ENABLED] - pad1: Source - [fmt:SBGGR10_1X10/800x600 field:none] - -> "csi-mux":1 [ENABLED] - - - entity 17: ov2680 1-0036 (1 pad, 1 link) - type V4L2 subdev subtype Sensor flags 0 - device node name /dev/v4l-subdev3 - pad0: Source - [fmt:SBGGR10_1X10/800x600@1/30 field:none colorspace:srgb] - -> "imx7-mipi-csis.0":0 [ENABLED] - -References ----------- - -.. [#f1] https://www.nxp.com/docs/en/reference-manual/IMX7SRM.pdf diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst index 8962a86dad70..aef375cfb05a 100644 --- a/Documentation/media/v4l-drivers/index.rst +++ b/Documentation/media/v4l-drivers/index.rst @@ -31,38 +31,13 @@ For more details see the file COPYING in the source distribution of Linux. :maxdepth: 5 :numbered: - v4l-with-ir tuners - cardlist - bttv - cafe_ccic - cpia2 - cx88 - davinci-vpbe - fimc - imx - imx7 - ipu3 - ivtv max2175 - meye - omap3isp - omap4_camera - philips pvrusb2 pxa_camera - qcom_camss radiotrack - rcar-fdp1 - saa7134 sh_mobile_ceu_camera - si470x - si4713 - si476x uvcvideo - vimc - vivid - zr364xx bttv-devel cpia2_devel diff --git a/Documentation/media/v4l-drivers/ipu3.rst b/Documentation/media/v4l-drivers/ipu3.rst deleted file mode 100644 index a694f49491f9..000000000000 --- a/Documentation/media/v4l-drivers/ipu3.rst +++ /dev/null @@ -1,558 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -=============================================================== -Intel Image Processing Unit 3 (IPU3) Imaging Unit (ImgU) driver -=============================================================== - -Copyright |copy| 2018 Intel Corporation - -Introduction -============ - -This file documents the Intel IPU3 (3rd generation Image Processing Unit) -Imaging Unit drivers located under drivers/media/pci/intel/ipu3 (CIO2) as well -as under drivers/staging/media/ipu3 (ImgU). - -The Intel IPU3 found in certain Kaby Lake (as well as certain Sky Lake) -platforms (U/Y processor lines) is made up of two parts namely the Imaging Unit -(ImgU) and the CIO2 device (MIPI CSI2 receiver). - -The CIO2 device receives the raw Bayer data from the sensors and outputs the -frames in a format that is specific to the IPU3 (for consumption by the IPU3 -ImgU). The CIO2 driver is available as drivers/media/pci/intel/ipu3/ipu3-cio2* -and is enabled through the CONFIG_VIDEO_IPU3_CIO2 config option. - -The Imaging Unit (ImgU) is responsible for processing images captured -by the IPU3 CIO2 device. The ImgU driver sources can be found under -drivers/staging/media/ipu3 directory. The driver is enabled through the -CONFIG_VIDEO_IPU3_IMGU config option. - -The two driver modules are named ipu3_csi2 and ipu3_imgu, respectively. - -The drivers has been tested on Kaby Lake platforms (U/Y processor lines). - -Both of the drivers implement V4L2, Media Controller and V4L2 sub-device -interfaces. The IPU3 CIO2 driver supports camera sensors connected to the CIO2 -MIPI CSI-2 interfaces through V4L2 sub-device sensor drivers. - -CIO2 -==== - -The CIO2 is represented as a single V4L2 subdev, which provides a V4L2 subdev -interface to the user space. There is a video node for each CSI-2 receiver, -with a single media controller interface for the entire device. - -The CIO2 contains four independent capture channel, each with its own MIPI CSI-2 -receiver and DMA engine. Each channel is modelled as a V4L2 sub-device exposed -to userspace as a V4L2 sub-device node and has two pads: - -.. tabularcolumns:: |p{0.8cm}|p{4.0cm}|p{4.0cm}| - -.. flat-table:: - - * - pad - - direction - - purpose - - * - 0 - - sink - - MIPI CSI-2 input, connected to the sensor subdev - - * - 1 - - source - - Raw video capture, connected to the V4L2 video interface - -The V4L2 video interfaces model the DMA engines. They are exposed to userspace -as V4L2 video device nodes. - -Capturing frames in raw Bayer format ------------------------------------- - -CIO2 MIPI CSI2 receiver is used to capture frames (in packed raw Bayer format) -from the raw sensors connected to the CSI2 ports. The captured frames are used -as input to the ImgU driver. - -Image processing using IPU3 ImgU requires tools such as raw2pnm [#f1]_, and -yavta [#f2]_ due to the following unique requirements and / or features specific -to IPU3. - --- The IPU3 CSI2 receiver outputs the captured frames from the sensor in packed -raw Bayer format that is specific to IPU3. - --- Multiple video nodes have to be operated simultaneously. - -Let us take the example of ov5670 sensor connected to CSI2 port 0, for a -2592x1944 image capture. - -Using the media contorller APIs, the ov5670 sensor is configured to send -frames in packed raw Bayer format to IPU3 CSI2 receiver. - -# This example assumes /dev/media0 as the CIO2 media device - -export MDEV=/dev/media0 - -# and that ov5670 sensor is connected to i2c bus 10 with address 0x36 - -export SDEV=$(media-ctl -d $MDEV -e "ov5670 10-0036") - -# Establish the link for the media devices using media-ctl [#f3]_ -media-ctl -d $MDEV -l "ov5670:0 -> ipu3-csi2 0:0[1]" - -# Set the format for the media devices -media-ctl -d $MDEV -V "ov5670:0 [fmt:SGRBG10/2592x1944]" - -media-ctl -d $MDEV -V "ipu3-csi2 0:0 [fmt:SGRBG10/2592x1944]" - -media-ctl -d $MDEV -V "ipu3-csi2 0:1 [fmt:SGRBG10/2592x1944]" - -Once the media pipeline is configured, desired sensor specific settings -(such as exposure and gain settings) can be set, using the yavta tool. - -e.g - -yavta -w 0x009e0903 444 $SDEV - -yavta -w 0x009e0913 1024 $SDEV - -yavta -w 0x009e0911 2046 $SDEV - -Once the desired sensor settings are set, frame captures can be done as below. - -e.g - -yavta --data-prefix -u -c10 -n5 -I -s2592x1944 --file=/tmp/frame-#.bin \ - -f IPU3_SGRBG10 $(media-ctl -d $MDEV -e "ipu3-cio2 0") - -With the above command, 10 frames are captured at 2592x1944 resolution, with -sGRBG10 format and output as IPU3_SGRBG10 format. - -The captured frames are available as /tmp/frame-#.bin files. - -ImgU -==== - -The ImgU is represented as two V4L2 subdevs, each of which provides a V4L2 -subdev interface to the user space. - -Each V4L2 subdev represents a pipe, which can support a maximum of 2 streams. -This helps to support advanced camera features like Continuous View Finder (CVF) -and Snapshot During Video(SDV). - -The ImgU contains two independent pipes, each modelled as a V4L2 sub-device -exposed to userspace as a V4L2 sub-device node. - -Each pipe has two sink pads and three source pads for the following purpose: - -.. tabularcolumns:: |p{0.8cm}|p{4.0cm}|p{4.0cm}| - -.. flat-table:: - - * - pad - - direction - - purpose - - * - 0 - - sink - - Input raw video stream - - * - 1 - - sink - - Processing parameters - - * - 2 - - source - - Output processed video stream - - * - 3 - - source - - Output viewfinder video stream - - * - 4 - - source - - 3A statistics - -Each pad is connected to a corresponding V4L2 video interface, exposed to -userspace as a V4L2 video device node. - -Device operation ----------------- - -With ImgU, once the input video node ("ipu3-imgu 0/1":0, in -<entity>:<pad-number> format) is queued with buffer (in packed raw Bayer -format), ImgU starts processing the buffer and produces the video output in YUV -format and statistics output on respective output nodes. The driver is expected -to have buffers ready for all of parameter, output and statistics nodes, when -input video node is queued with buffer. - -At a minimum, all of input, main output, 3A statistics and viewfinder -video nodes should be enabled for IPU3 to start image processing. - -Each ImgU V4L2 subdev has the following set of video nodes. - -input, output and viewfinder video nodes ----------------------------------------- - -The frames (in packed raw Bayer format specific to the IPU3) received by the -input video node is processed by the IPU3 Imaging Unit and are output to 2 video -nodes, with each targeting a different purpose (main output and viewfinder -output). - -Details onand the Bayer format specific to the IPU3 can be found in -:ref:`v4l2-pix-fmt-ipu3-sbggr10`. - -The driver supports V4L2 Video Capture Interface as defined at :ref:`devices`. - -Only the multi-planar API is supported. More details can be found at -:ref:`planar-apis`. - -Parameters video node ---------------------- - -The parameters video node receives the ImgU algorithm parameters that are used -to configure how the ImgU algorithms process the image. - -Details on processing parameters specific to the IPU3 can be found in -:ref:`v4l2-meta-fmt-params`. - -3A statistics video node ------------------------- - -3A statistics video node is used by the ImgU driver to output the 3A (auto -focus, auto exposure and auto white balance) statistics for the frames that are -being processed by the ImgU to user space applications. User space applications -can use this statistics data to compute the desired algorithm parameters for -the ImgU. - -Configuring the Intel IPU3 -========================== - -The IPU3 ImgU pipelines can be configured using the Media Controller, defined at -:ref:`media_controller`. - -Firmware binary selection -------------------------- - -The firmware binary is selected using the V4L2_CID_INTEL_IPU3_MODE, currently -defined in drivers/staging/media/ipu3/include/intel-ipu3.h . "VIDEO" and "STILL" -modes are available. - -Processing the image in raw Bayer format ----------------------------------------- - -Configuring ImgU V4L2 subdev for image processing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ImgU V4L2 subdevs have to be configured with media controller APIs to have -all the video nodes setup correctly. - -Let us take "ipu3-imgu 0" subdev as an example. - -media-ctl -d $MDEV -r - -media-ctl -d $MDEV -l "ipu3-imgu 0 input":0 -> "ipu3-imgu 0":0[1] - -media-ctl -d $MDEV -l "ipu3-imgu 0":2 -> "ipu3-imgu 0 output":0[1] - -media-ctl -d $MDEV -l "ipu3-imgu 0":3 -> "ipu3-imgu 0 viewfinder":0[1] - -media-ctl -d $MDEV -l "ipu3-imgu 0":4 -> "ipu3-imgu 0 3a stat":0[1] - -Also the pipe mode of the corresponding V4L2 subdev should be set as desired -(e.g 0 for video mode or 1 for still mode) through the control id 0x009819a1 as -below. - -yavta -w "0x009819A1 1" /dev/v4l-subdev7 - -Certain hardware blocks in ImgU pipeline can change the frame resolution by -cropping or scaling, these hardware blocks include Input Feeder(IF), Bayer Down -Scaler (BDS) and Geometric Distortion Correction (GDC). -There is also a block which can change the frame resolution - YUV Scaler, it is -only applicable to the secondary output. - -RAW Bayer frames go through these ImgU pipeline hardware blocks and the final -processed image output to the DDR memory. - -.. kernel-figure:: ipu3_rcb.svg - :alt: ipu3 resolution blocks image - - IPU3 resolution change hardware blocks - -**Input Feeder** - -Input Feeder gets the Bayer frame data from the sensor, it can enable cropping -of lines and columns from the frame and then store pixels into device's internal -pixel buffer which are ready to readout by following blocks. - -**Bayer Down Scaler** - -Bayer Down Scaler is capable of performing image scaling in Bayer domain, the -downscale factor can be configured from 1X to 1/4X in each axis with -configuration steps of 0.03125 (1/32). - -**Geometric Distortion Correction** - -Geometric Distortion Correction is used to performe correction of distortions -and image filtering. It needs some extra filter and envelop padding pixels to -work, so the input resolution of GDC should be larger than the output -resolution. - -**YUV Scaler** - -YUV Scaler which similar with BDS, but it is mainly do image down scaling in -YUV domain, it can support up to 1/12X down scaling, but it can not be applied -to the main output. - -The ImgU V4L2 subdev has to be configured with the supported resolutions in all -the above hardware blocks, for a given input resolution. -For a given supported resolution for an input frame, the Input Feeder, Bayer -Down Scaler and GDC blocks should be configured with the supported resolutions -as each hardware block has its own alignment requirement. - -You must configure the output resolution of the hardware blocks smartly to meet -the hardware requirement along with keeping the maximum field of view. The -intermediate resolutions can be generated by specific tool - - -https://github.com/intel/intel-ipu3-pipecfg - -This tool can be used to generate intermediate resolutions. More information can -be obtained by looking at the following IPU3 ImgU configuration table. - -https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/master - -Under baseboard-poppy/media-libs/cros-camera-hal-configs-poppy/files/gcss -directory, graph_settings_ov5670.xml can be used as an example. - -The following steps prepare the ImgU pipeline for the image processing. - -1. The ImgU V4L2 subdev data format should be set by using the -VIDIOC_SUBDEV_S_FMT on pad 0, using the GDC width and height obtained above. - -2. The ImgU V4L2 subdev cropping should be set by using the -VIDIOC_SUBDEV_S_SELECTION on pad 0, with V4L2_SEL_TGT_CROP as the target, -using the input feeder height and width. - -3. The ImgU V4L2 subdev composing should be set by using the -VIDIOC_SUBDEV_S_SELECTION on pad 0, with V4L2_SEL_TGT_COMPOSE as the target, -using the BDS height and width. - -For the ov5670 example, for an input frame with a resolution of 2592x1944 -(which is input to the ImgU subdev pad 0), the corresponding resolutions -for input feeder, BDS and GDC are 2592x1944, 2592x1944 and 2560x1920 -respectively. - -Once this is done, the received raw Bayer frames can be input to the ImgU -V4L2 subdev as below, using the open source application v4l2n [#f1]_. - -For an image captured with 2592x1944 [#f4]_ resolution, with desired output -resolution as 2560x1920 and viewfinder resolution as 2560x1920, the following -v4l2n command can be used. This helps process the raw Bayer frames and produces -the desired results for the main output image and the viewfinder output, in NV12 -format. - -v4l2n --pipe=4 --load=/tmp/frame-#.bin --open=/dev/video4 ---fmt=type:VIDEO_OUTPUT_MPLANE,width=2592,height=1944,pixelformat=0X47337069 ---reqbufs=type:VIDEO_OUTPUT_MPLANE,count:1 --pipe=1 --output=/tmp/frames.out ---open=/dev/video5 ---fmt=type:VIDEO_CAPTURE_MPLANE,width=2560,height=1920,pixelformat=NV12 ---reqbufs=type:VIDEO_CAPTURE_MPLANE,count:1 --pipe=2 --output=/tmp/frames.vf ---open=/dev/video6 ---fmt=type:VIDEO_CAPTURE_MPLANE,width=2560,height=1920,pixelformat=NV12 ---reqbufs=type:VIDEO_CAPTURE_MPLANE,count:1 --pipe=3 --open=/dev/video7 ---output=/tmp/frames.3A --fmt=type:META_CAPTURE,? ---reqbufs=count:1,type:META_CAPTURE --pipe=1,2,3,4 --stream=5 - -where /dev/video4, /dev/video5, /dev/video6 and /dev/video7 devices point to -input, output, viewfinder and 3A statistics video nodes respectively. - -Converting the raw Bayer image into YUV domain ----------------------------------------------- - -The processed images after the above step, can be converted to YUV domain -as below. - -Main output frames -~~~~~~~~~~~~~~~~~~ - -raw2pnm -x2560 -y1920 -fNV12 /tmp/frames.out /tmp/frames.out.ppm - -where 2560x1920 is output resolution, NV12 is the video format, followed -by input frame and output PNM file. - -Viewfinder output frames -~~~~~~~~~~~~~~~~~~~~~~~~ - -raw2pnm -x2560 -y1920 -fNV12 /tmp/frames.vf /tmp/frames.vf.ppm - -where 2560x1920 is output resolution, NV12 is the video format, followed -by input frame and output PNM file. - -Example user space code for IPU3 -================================ - -User space code that configures and uses IPU3 is available here. - -https://chromium.googlesource.com/chromiumos/platform/arc-camera/+/master/ - -The source can be located under hal/intel directory. - -Overview of IPU3 pipeline -========================= - -IPU3 pipeline has a number of image processing stages, each of which takes a -set of parameters as input. The major stages of pipelines are shown here: - -.. kernel-render:: DOT - :alt: IPU3 ImgU Pipeline - :caption: IPU3 ImgU Pipeline Diagram - - digraph "IPU3 ImgU" { - node [shape=box] - splines="ortho" - rankdir="LR" - - a [label="Raw pixels"] - b [label="Bayer Downscaling"] - c [label="Optical Black Correction"] - d [label="Linearization"] - e [label="Lens Shading Correction"] - f [label="White Balance / Exposure / Focus Apply"] - g [label="Bayer Noise Reduction"] - h [label="ANR"] - i [label="Demosaicing"] - j [label="Color Correction Matrix"] - k [label="Gamma correction"] - l [label="Color Space Conversion"] - m [label="Chroma Down Scaling"] - n [label="Chromatic Noise Reduction"] - o [label="Total Color Correction"] - p [label="XNR3"] - q [label="TNR"] - r [label="DDR"] - - { rank=same; a -> b -> c -> d -> e -> f } - { rank=same; g -> h -> i -> j -> k -> l } - { rank=same; m -> n -> o -> p -> q -> r } - - a -> g -> m [style=invis, weight=10] - - f -> g - l -> m - } - -The table below presents a description of the above algorithms. - -======================== ======================================================= -Name Description -======================== ======================================================= -Optical Black Correction Optical Black Correction block subtracts a pre-defined - value from the respective pixel values to obtain better - image quality. - Defined in :c:type:`ipu3_uapi_obgrid_param`. -Linearization This algo block uses linearization parameters to - address non-linearity sensor effects. The Lookup table - table is defined in - :c:type:`ipu3_uapi_isp_lin_vmem_params`. -SHD Lens shading correction is used to correct spatial - non-uniformity of the pixel response due to optical - lens shading. This is done by applying a different gain - for each pixel. The gain, black level etc are - configured in :c:type:`ipu3_uapi_shd_config_static`. -BNR Bayer noise reduction block removes image noise by - applying a bilateral filter. - See :c:type:`ipu3_uapi_bnr_static_config` for details. -ANR Advanced Noise Reduction is a block based algorithm - that performs noise reduction in the Bayer domain. The - convolution matrix etc can be found in - :c:type:`ipu3_uapi_anr_config`. -DM Demosaicing converts raw sensor data in Bayer format - into RGB (Red, Green, Blue) presentation. Then add - outputs of estimation of Y channel for following stream - processing by Firmware. The struct is defined as - :c:type:`ipu3_uapi_dm_config`. -Color Correction Color Correction algo transforms sensor specific color - space to the standard "sRGB" color space. This is done - by applying 3x3 matrix defined in - :c:type:`ipu3_uapi_ccm_mat_config`. -Gamma correction Gamma correction :c:type:`ipu3_uapi_gamma_config` is a - basic non-linear tone mapping correction that is - applied per pixel for each pixel component. -CSC Color space conversion transforms each pixel from the - RGB primary presentation to YUV (Y: brightness, - UV: Luminance) presentation. This is done by applying - a 3x3 matrix defined in - :c:type:`ipu3_uapi_csc_mat_config` -CDS Chroma down sampling - After the CSC is performed, the Chroma Down Sampling - is applied for a UV plane down sampling by a factor - of 2 in each direction for YUV 4:2:0 using a 4x2 - configurable filter :c:type:`ipu3_uapi_cds_params`. -CHNR Chroma noise reduction - This block processes only the chrominance pixels and - performs noise reduction by cleaning the high - frequency noise. - See struct :c:type:`ipu3_uapi_yuvp1_chnr_config`. -TCC Total color correction as defined in struct - :c:type:`ipu3_uapi_yuvp2_tcc_static_config`. -XNR3 eXtreme Noise Reduction V3 is the third revision of - noise reduction algorithm used to improve image - quality. This removes the low frequency noise in the - captured image. Two related structs are being defined, - :c:type:`ipu3_uapi_isp_xnr3_params` for ISP data memory - and :c:type:`ipu3_uapi_isp_xnr3_vmem_params` for vector - memory. -TNR Temporal Noise Reduction block compares successive - frames in time to remove anomalies / noise in pixel - values. :c:type:`ipu3_uapi_isp_tnr3_vmem_params` and - :c:type:`ipu3_uapi_isp_tnr3_params` are defined for ISP - vector and data memory respectively. -======================== ======================================================= - -Other often encountered acronyms not listed in above table: - - ACC - Accelerator cluster - AWB_FR - Auto white balance filter response statistics - BDS - Bayer downscaler parameters - CCM - Color correction matrix coefficients - IEFd - Image enhancement filter directed - Obgrid - Optical black level compensation - OSYS - Output system configuration - ROI - Region of interest - YDS - Y down sampling - YTM - Y-tone mapping - -A few stages of the pipeline will be executed by firmware running on the ISP -processor, while many others will use a set of fixed hardware blocks also -called accelerator cluster (ACC) to crunch pixel data and produce statistics. - -ACC parameters of individual algorithms, as defined by -:c:type:`ipu3_uapi_acc_param`, can be chosen to be applied by the user -space through struct :c:type:`ipu3_uapi_flags` embedded in -:c:type:`ipu3_uapi_params` structure. For parameters that are configured as -not enabled by the user space, the corresponding structs are ignored by the -driver, in which case the existing configuration of the algorithm will be -preserved. - -References -========== - -.. [#f5] drivers/staging/media/ipu3/include/intel-ipu3.h - -.. [#f1] https://github.com/intel/nvt - -.. [#f2] http://git.ideasonboard.org/yavta.git - -.. [#f3] http://git.ideasonboard.org/?p=media-ctl.git;a=summary - -.. [#f4] ImgU limitation requires an additional 16x16 for all input resolutions diff --git a/Documentation/media/v4l-drivers/ipu3_rcb.svg b/Documentation/media/v4l-drivers/ipu3_rcb.svg deleted file mode 100644 index d878421b42a0..000000000000 --- a/Documentation/media/v4l-drivers/ipu3_rcb.svg +++ /dev/null @@ -1,331 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="774pt" height="152pt" viewBox="0 0 774 152" version="1.1"> -<defs> -<g> -<symbol overflow="visible" id="glyph0-0"> -<path style="stroke:none;" d="M 1 0 L 1 -15 L 9 -15 L 9 0 Z M 8 -1 L 8 -14 L 2 -14 L 2 -1 Z M 8 -1 "/> -</symbol> -<symbol overflow="visible" id="glyph0-1"> -<path style="stroke:none;" d="M 4.6875 -1.15625 C 5.519531 -1.15625 6.15625 -1.316406 6.59375 -1.640625 C 7.039062 -1.960938 7.265625 -2.441406 7.265625 -3.078125 C 7.265625 -3.460938 7.179688 -3.789062 7.015625 -4.0625 C 6.859375 -4.34375 6.644531 -4.582031 6.375 -4.78125 C 6.113281 -4.988281 5.816406 -5.171875 5.484375 -5.328125 C 5.148438 -5.484375 4.804688 -5.628906 4.453125 -5.765625 C 4.054688 -5.921875 3.675781 -6.097656 3.3125 -6.296875 C 2.945312 -6.492188 2.617188 -6.726562 2.328125 -7 C 2.046875 -7.269531 1.820312 -7.582031 1.65625 -7.9375 C 1.488281 -8.300781 1.40625 -8.726562 1.40625 -9.21875 C 1.40625 -10.300781 1.742188 -11.144531 2.421875 -11.75 C 3.097656 -12.351562 4.046875 -12.65625 5.265625 -12.65625 C 5.597656 -12.65625 5.925781 -12.628906 6.25 -12.578125 C 6.570312 -12.535156 6.875 -12.476562 7.15625 -12.40625 C 7.4375 -12.34375 7.6875 -12.265625 7.90625 -12.171875 C 8.125 -12.085938 8.300781 -12 8.4375 -11.90625 L 7.921875 -10.515625 C 7.648438 -10.679688 7.28125 -10.84375 6.8125 -11 C 6.351562 -11.15625 5.835938 -11.234375 5.265625 -11.234375 C 4.660156 -11.234375 4.140625 -11.082031 3.703125 -10.78125 C 3.265625 -10.488281 3.046875 -10.039062 3.046875 -9.4375 C 3.046875 -9.09375 3.109375 -8.800781 3.234375 -8.5625 C 3.359375 -8.320312 3.53125 -8.109375 3.75 -7.921875 C 3.96875 -7.742188 4.222656 -7.582031 4.515625 -7.4375 C 4.804688 -7.289062 5.128906 -7.144531 5.484375 -7 C 5.984375 -6.789062 6.441406 -6.578125 6.859375 -6.359375 C 7.285156 -6.148438 7.648438 -5.894531 7.953125 -5.59375 C 8.253906 -5.300781 8.488281 -4.953125 8.65625 -4.546875 C 8.820312 -4.148438 8.90625 -3.664062 8.90625 -3.09375 C 8.90625 -2.019531 8.539062 -1.191406 7.8125 -0.609375 C 7.082031 -0.0234375 6.039062 0.265625 4.6875 0.265625 C 4.238281 0.265625 3.820312 0.234375 3.4375 0.171875 C 3.050781 0.109375 2.707031 0.03125 2.40625 -0.0625 C 2.101562 -0.15625 1.835938 -0.25 1.609375 -0.34375 C 1.390625 -0.4375 1.21875 -0.519531 1.09375 -0.59375 L 1.59375 -1.953125 C 1.863281 -1.804688 2.257812 -1.632812 2.78125 -1.4375 C 3.300781 -1.25 3.9375 -1.15625 4.6875 -1.15625 Z M 4.6875 -1.15625 "/> -</symbol> -<symbol overflow="visible" id="glyph0-2"> -<path style="stroke:none;" d="M 5.1875 -9.5 C 6.4375 -9.5 7.398438 -9.109375 8.078125 -8.328125 C 8.753906 -7.546875 9.09375 -6.363281 9.09375 -4.78125 L 9.09375 -4.203125 L 2.453125 -4.203125 C 2.523438 -3.242188 2.84375 -2.515625 3.40625 -2.015625 C 3.976562 -1.515625 4.773438 -1.265625 5.796875 -1.265625 C 6.390625 -1.265625 6.890625 -1.3125 7.296875 -1.40625 C 7.710938 -1.5 8.023438 -1.597656 8.234375 -1.703125 L 8.453125 -0.296875 C 8.253906 -0.191406 7.894531 -0.0820312 7.375 0.03125 C 6.851562 0.15625 6.269531 0.21875 5.625 0.21875 C 4.820312 0.21875 4.113281 0.0976562 3.5 -0.140625 C 2.894531 -0.390625 2.394531 -0.726562 2 -1.15625 C 1.601562 -1.582031 1.300781 -2.09375 1.09375 -2.6875 C 0.894531 -3.28125 0.796875 -3.925781 0.796875 -4.625 C 0.796875 -5.445312 0.921875 -6.164062 1.171875 -6.78125 C 1.429688 -7.394531 1.765625 -7.898438 2.171875 -8.296875 C 2.585938 -8.703125 3.054688 -9.003906 3.578125 -9.203125 C 4.097656 -9.398438 4.632812 -9.5 5.1875 -9.5 Z M 7.421875 -5.546875 C 7.421875 -6.328125 7.210938 -6.945312 6.796875 -7.40625 C 6.390625 -7.863281 5.84375 -8.09375 5.15625 -8.09375 C 4.769531 -8.09375 4.421875 -8.019531 4.109375 -7.875 C 3.796875 -7.726562 3.523438 -7.535156 3.296875 -7.296875 C 3.066406 -7.054688 2.882812 -6.78125 2.75 -6.46875 C 2.625 -6.164062 2.539062 -5.859375 2.5 -5.546875 Z M 7.421875 -5.546875 "/> -</symbol> -<symbol overflow="visible" id="glyph0-3"> -<path style="stroke:none;" d="M 1.421875 -9.015625 C 2.015625 -9.160156 2.609375 -9.273438 3.203125 -9.359375 C 3.796875 -9.441406 4.351562 -9.484375 4.875 -9.484375 C 6.113281 -9.484375 7.050781 -9.160156 7.6875 -8.515625 C 8.320312 -7.878906 8.640625 -6.851562 8.640625 -5.4375 L 8.640625 0 L 7 0 L 7 -5.140625 C 7 -5.742188 6.945312 -6.226562 6.84375 -6.59375 C 6.738281 -6.96875 6.585938 -7.257812 6.390625 -7.46875 C 6.191406 -7.675781 5.957031 -7.816406 5.6875 -7.890625 C 5.414062 -7.972656 5.117188 -8.015625 4.796875 -8.015625 C 4.535156 -8.015625 4.253906 -8 3.953125 -7.96875 C 3.648438 -7.9375 3.359375 -7.894531 3.078125 -7.84375 L 3.078125 0 L 1.421875 0 Z M 1.421875 -9.015625 "/> -</symbol> -<symbol overflow="visible" id="glyph0-4"> -<path style="stroke:none;" d="M 7.015625 -2.3125 C 7.015625 -2.644531 6.878906 -2.914062 6.609375 -3.125 C 6.335938 -3.34375 6 -3.53125 5.59375 -3.6875 C 5.1875 -3.851562 4.742188 -4.015625 4.265625 -4.171875 C 3.785156 -4.328125 3.335938 -4.515625 2.921875 -4.734375 C 2.515625 -4.960938 2.175781 -5.242188 1.90625 -5.578125 C 1.632812 -5.910156 1.5 -6.34375 1.5 -6.875 C 1.5 -7.625 1.800781 -8.25 2.40625 -8.75 C 3.007812 -9.25 3.960938 -9.5 5.265625 -9.5 C 5.765625 -9.5 6.285156 -9.460938 6.828125 -9.390625 C 7.367188 -9.316406 7.832031 -9.21875 8.21875 -9.09375 L 7.921875 -7.625 C 7.816406 -7.675781 7.671875 -7.726562 7.484375 -7.78125 C 7.296875 -7.84375 7.082031 -7.894531 6.84375 -7.9375 C 6.601562 -7.988281 6.34375 -8.023438 6.0625 -8.046875 C 5.789062 -8.078125 5.53125 -8.09375 5.28125 -8.09375 C 3.84375 -8.09375 3.125 -7.703125 3.125 -6.921875 C 3.125 -6.640625 3.257812 -6.398438 3.53125 -6.203125 C 3.800781 -6.015625 4.144531 -5.835938 4.5625 -5.671875 C 4.976562 -5.515625 5.425781 -5.351562 5.90625 -5.1875 C 6.382812 -5.019531 6.828125 -4.816406 7.234375 -4.578125 C 7.648438 -4.335938 7.992188 -4.046875 8.265625 -3.703125 C 8.546875 -3.367188 8.6875 -2.941406 8.6875 -2.421875 C 8.6875 -1.578125 8.359375 -0.925781 7.703125 -0.46875 C 7.046875 -0.0078125 6.007812 0.21875 4.59375 0.21875 C 3.957031 0.21875 3.375 0.164062 2.84375 0.0625 C 2.3125 -0.0390625 1.800781 -0.203125 1.3125 -0.421875 L 1.640625 -1.921875 C 2.109375 -1.703125 2.597656 -1.523438 3.109375 -1.390625 C 3.617188 -1.253906 4.171875 -1.1875 4.765625 -1.1875 C 6.265625 -1.1875 7.015625 -1.5625 7.015625 -2.3125 Z M 7.015625 -2.3125 "/> -</symbol> -<symbol overflow="visible" id="glyph0-5"> -<path style="stroke:none;" d="M 9.203125 -4.640625 C 9.203125 -3.910156 9.097656 -3.25 8.890625 -2.65625 C 8.679688 -2.0625 8.390625 -1.550781 8.015625 -1.125 C 7.640625 -0.695312 7.191406 -0.363281 6.671875 -0.125 C 6.160156 0.101562 5.597656 0.21875 4.984375 0.21875 C 4.378906 0.21875 3.820312 0.101562 3.3125 -0.125 C 2.800781 -0.363281 2.359375 -0.695312 1.984375 -1.125 C 1.609375 -1.550781 1.316406 -2.0625 1.109375 -2.65625 C 0.898438 -3.25 0.796875 -3.910156 0.796875 -4.640625 C 0.796875 -5.367188 0.898438 -6.035156 1.109375 -6.640625 C 1.316406 -7.242188 1.609375 -7.753906 1.984375 -8.171875 C 2.359375 -8.585938 2.800781 -8.910156 3.3125 -9.140625 C 3.820312 -9.378906 4.378906 -9.5 4.984375 -9.5 C 5.597656 -9.5 6.160156 -9.378906 6.671875 -9.140625 C 7.191406 -8.910156 7.640625 -8.585938 8.015625 -8.171875 C 8.390625 -7.753906 8.679688 -7.242188 8.890625 -6.640625 C 9.097656 -6.035156 9.203125 -5.367188 9.203125 -4.640625 Z M 7.5 -4.640625 C 7.5 -5.691406 7.269531 -6.519531 6.8125 -7.125 C 6.363281 -7.738281 5.753906 -8.046875 4.984375 -8.046875 C 4.222656 -8.046875 3.617188 -7.738281 3.171875 -7.125 C 2.722656 -6.519531 2.5 -5.691406 2.5 -4.640625 C 2.5 -3.597656 2.722656 -2.773438 3.171875 -2.171875 C 3.617188 -1.566406 4.222656 -1.265625 4.984375 -1.265625 C 5.753906 -1.265625 6.363281 -1.566406 6.8125 -2.171875 C 7.269531 -2.773438 7.5 -3.597656 7.5 -4.640625 Z M 7.5 -4.640625 "/> -</symbol> -<symbol overflow="visible" id="glyph0-6"> -<path style="stroke:none;" d="M 2.140625 0 L 2.140625 -8.78125 C 3.503906 -9.25 4.878906 -9.484375 6.265625 -9.484375 C 6.691406 -9.484375 7.097656 -9.460938 7.484375 -9.421875 C 7.867188 -9.390625 8.296875 -9.320312 8.765625 -9.21875 L 8.453125 -7.765625 C 8.023438 -7.878906 7.648438 -7.953125 7.328125 -7.984375 C 7.003906 -8.023438 6.648438 -8.046875 6.265625 -8.046875 C 5.453125 -8.046875 4.625 -7.929688 3.78125 -7.703125 L 3.78125 0 Z M 2.140625 0 "/> -</symbol> -<symbol overflow="visible" id="glyph0-7"> -<path style="stroke:none;" d="M 5.8125 -10.984375 L 5.8125 -1.40625 L 8.21875 -1.40625 L 8.21875 0 L 1.78125 0 L 1.78125 -1.40625 L 4.1875 -1.40625 L 4.1875 -10.984375 L 1.78125 -10.984375 L 1.78125 -12.375 L 8.21875 -12.375 L 8.21875 -10.984375 Z M 5.8125 -10.984375 "/> -</symbol> -<symbol overflow="visible" id="glyph0-8"> -<path style="stroke:none;" d="M 1.8125 0 L 1.8125 -12.375 L 8.84375 -12.375 L 8.84375 -10.984375 L 3.453125 -10.984375 L 3.453125 -7.125 L 8.203125 -7.125 L 8.203125 -5.734375 L 3.453125 -5.734375 L 3.453125 0 Z M 1.8125 0 "/> -</symbol> -<symbol overflow="visible" id="glyph0-9"> -<path style="stroke:none;" d="M 4.078125 0.09375 C 3.878906 0.09375 3.644531 0.0859375 3.375 0.078125 C 3.113281 0.0664062 2.847656 0.0507812 2.578125 0.03125 C 2.316406 0.0078125 2.050781 -0.0195312 1.78125 -0.0625 C 1.507812 -0.101562 1.273438 -0.148438 1.078125 -0.203125 L 1.078125 -12.203125 C 1.273438 -12.253906 1.503906 -12.300781 1.765625 -12.34375 C 2.023438 -12.382812 2.289062 -12.410156 2.5625 -12.421875 C 2.84375 -12.441406 3.113281 -12.457031 3.375 -12.46875 C 3.632812 -12.488281 3.867188 -12.5 4.078125 -12.5 C 4.691406 -12.5 5.265625 -12.445312 5.796875 -12.34375 C 6.328125 -12.238281 6.789062 -12.054688 7.1875 -11.796875 C 7.582031 -11.546875 7.890625 -11.210938 8.109375 -10.796875 C 8.328125 -10.390625 8.4375 -9.878906 8.4375 -9.265625 C 8.4375 -8.960938 8.390625 -8.675781 8.296875 -8.40625 C 8.203125 -8.132812 8.070312 -7.878906 7.90625 -7.640625 C 7.738281 -7.398438 7.546875 -7.1875 7.328125 -7 C 7.109375 -6.820312 6.875 -6.6875 6.625 -6.59375 C 7.300781 -6.40625 7.867188 -6.0625 8.328125 -5.5625 C 8.785156 -5.0625 9.015625 -4.414062 9.015625 -3.625 C 9.015625 -2.394531 8.617188 -1.46875 7.828125 -0.84375 C 7.046875 -0.21875 5.796875 0.09375 4.078125 0.09375 Z M 2.71875 -5.78125 L 2.71875 -1.359375 C 2.75 -1.347656 2.898438 -1.332031 3.171875 -1.3125 C 3.441406 -1.289062 3.785156 -1.28125 4.203125 -1.28125 C 4.609375 -1.28125 5 -1.3125 5.375 -1.375 C 5.757812 -1.445312 6.097656 -1.570312 6.390625 -1.75 C 6.691406 -1.925781 6.929688 -2.160156 7.109375 -2.453125 C 7.285156 -2.753906 7.375 -3.132812 7.375 -3.59375 C 7.375 -4.007812 7.289062 -4.359375 7.125 -4.640625 C 6.957031 -4.921875 6.738281 -5.144531 6.46875 -5.3125 C 6.195312 -5.476562 5.878906 -5.597656 5.515625 -5.671875 C 5.160156 -5.742188 4.789062 -5.78125 4.40625 -5.78125 Z M 2.71875 -7.140625 L 4.015625 -7.140625 C 4.347656 -7.140625 4.679688 -7.171875 5.015625 -7.234375 C 5.347656 -7.304688 5.644531 -7.414062 5.90625 -7.5625 C 6.175781 -7.707031 6.390625 -7.90625 6.546875 -8.15625 C 6.710938 -8.414062 6.796875 -8.738281 6.796875 -9.125 C 6.796875 -9.476562 6.722656 -9.78125 6.578125 -10.03125 C 6.429688 -10.289062 6.238281 -10.5 6 -10.65625 C 5.757812 -10.820312 5.484375 -10.9375 5.171875 -11 C 4.859375 -11.0625 4.53125 -11.09375 4.1875 -11.09375 C 3.832031 -11.09375 3.523438 -11.085938 3.265625 -11.078125 C 3.003906 -11.078125 2.820312 -11.066406 2.71875 -11.046875 Z M 2.71875 -7.140625 "/> -</symbol> -<symbol overflow="visible" id="glyph0-10"> -<path style="stroke:none;" d="M 9.203125 -6.203125 C 9.203125 -5.054688 9.054688 -4.082031 8.765625 -3.28125 C 8.484375 -2.476562 8.09375 -1.828125 7.59375 -1.328125 C 7.09375 -0.828125 6.5 -0.460938 5.8125 -0.234375 C 5.125 -0.015625 4.378906 0.09375 3.578125 0.09375 C 2.753906 0.09375 1.921875 -0.00390625 1.078125 -0.203125 L 1.078125 -12.203125 C 1.921875 -12.398438 2.753906 -12.5 3.578125 -12.5 C 4.378906 -12.5 5.125 -12.382812 5.8125 -12.15625 C 6.5 -11.925781 7.09375 -11.554688 7.59375 -11.046875 C 8.09375 -10.546875 8.484375 -9.894531 8.765625 -9.09375 C 9.054688 -8.300781 9.203125 -7.335938 9.203125 -6.203125 Z M 2.71875 -1.375 C 3.050781 -1.332031 3.390625 -1.3125 3.734375 -1.3125 C 4.335938 -1.3125 4.875 -1.398438 5.34375 -1.578125 C 5.8125 -1.765625 6.203125 -2.054688 6.515625 -2.453125 C 6.835938 -2.847656 7.082031 -3.351562 7.25 -3.96875 C 7.425781 -4.59375 7.515625 -5.335938 7.515625 -6.203125 C 7.515625 -7.878906 7.191406 -9.109375 6.546875 -9.890625 C 5.898438 -10.679688 4.945312 -11.078125 3.6875 -11.078125 C 3.507812 -11.078125 3.335938 -11.070312 3.171875 -11.0625 C 3.003906 -11.0625 2.851562 -11.046875 2.71875 -11.015625 Z M 2.71875 -1.375 "/> -</symbol> -<symbol overflow="visible" id="glyph0-11"> -<path style="stroke:none;" d="M 7.453125 -6.09375 L 9.09375 -6.09375 L 9.09375 -0.296875 C 8.84375 -0.203125 8.4375 -0.0859375 7.875 0.046875 C 7.320312 0.191406 6.664062 0.265625 5.90625 0.265625 C 5.15625 0.265625 4.472656 0.125 3.859375 -0.15625 C 3.242188 -0.445312 2.71875 -0.863281 2.28125 -1.40625 C 1.851562 -1.957031 1.519531 -2.632812 1.28125 -3.4375 C 1.039062 -4.25 0.921875 -5.171875 0.921875 -6.203125 C 0.921875 -7.242188 1.050781 -8.160156 1.3125 -8.953125 C 1.582031 -9.753906 1.945312 -10.425781 2.40625 -10.96875 C 2.863281 -11.519531 3.398438 -11.9375 4.015625 -12.21875 C 4.628906 -12.507812 5.289062 -12.65625 6 -12.65625 C 6.457031 -12.65625 6.859375 -12.617188 7.203125 -12.546875 C 7.546875 -12.484375 7.835938 -12.40625 8.078125 -12.3125 C 8.328125 -12.226562 8.53125 -12.132812 8.6875 -12.03125 C 8.851562 -11.925781 8.976562 -11.847656 9.0625 -11.796875 L 8.515625 -10.421875 C 8.210938 -10.660156 7.847656 -10.851562 7.421875 -11 C 7.003906 -11.15625 6.5625 -11.234375 6.09375 -11.234375 C 5.59375 -11.234375 5.125 -11.113281 4.6875 -10.875 C 4.257812 -10.632812 3.890625 -10.296875 3.578125 -9.859375 C 3.273438 -9.421875 3.035156 -8.890625 2.859375 -8.265625 C 2.679688 -7.648438 2.59375 -6.960938 2.59375 -6.203125 C 2.59375 -5.453125 2.671875 -4.769531 2.828125 -4.15625 C 2.984375 -3.539062 3.207031 -3.015625 3.5 -2.578125 C 3.789062 -2.140625 4.148438 -1.796875 4.578125 -1.546875 C 5.015625 -1.304688 5.515625 -1.1875 6.078125 -1.1875 C 6.460938 -1.1875 6.757812 -1.210938 6.96875 -1.265625 C 7.1875 -1.316406 7.347656 -1.367188 7.453125 -1.421875 Z M 7.453125 -6.09375 "/> -</symbol> -<symbol overflow="visible" id="glyph0-12"> -<path style="stroke:none;" d="M 9.203125 -0.515625 C 8.734375 -0.253906 8.234375 -0.0625 7.703125 0.0625 C 7.179688 0.195312 6.617188 0.265625 6.015625 0.265625 C 5.285156 0.265625 4.609375 0.132812 3.984375 -0.125 C 3.367188 -0.382812 2.832031 -0.773438 2.375 -1.296875 C 1.925781 -1.828125 1.570312 -2.5 1.3125 -3.3125 C 1.050781 -4.132812 0.921875 -5.097656 0.921875 -6.203125 C 0.921875 -7.253906 1.054688 -8.179688 1.328125 -8.984375 C 1.597656 -9.785156 1.96875 -10.457031 2.4375 -11 C 2.90625 -11.539062 3.453125 -11.953125 4.078125 -12.234375 C 4.703125 -12.515625 5.367188 -12.65625 6.078125 -12.65625 C 6.566406 -12.65625 7.066406 -12.585938 7.578125 -12.453125 C 8.097656 -12.328125 8.601562 -12.109375 9.09375 -11.796875 L 8.625 -10.4375 C 7.738281 -10.945312 6.910156 -11.203125 6.140625 -11.203125 C 5.585938 -11.203125 5.09375 -11.082031 4.65625 -10.84375 C 4.226562 -10.613281 3.859375 -10.28125 3.546875 -9.84375 C 3.242188 -9.40625 3.007812 -8.878906 2.84375 -8.265625 C 2.675781 -7.648438 2.59375 -6.960938 2.59375 -6.203125 C 2.59375 -5.347656 2.679688 -4.609375 2.859375 -3.984375 C 3.046875 -3.359375 3.296875 -2.835938 3.609375 -2.421875 C 3.929688 -2.003906 4.316406 -1.695312 4.765625 -1.5 C 5.210938 -1.300781 5.695312 -1.203125 6.21875 -1.203125 C 6.601562 -1.203125 7.007812 -1.25 7.4375 -1.34375 C 7.863281 -1.445312 8.304688 -1.625 8.765625 -1.875 Z M 9.203125 -0.515625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-0"> -<path style="stroke:none;" d="M 0.59375 0 L 0.59375 -9 L 5.40625 -9 L 5.40625 0 Z M 4.796875 -0.59375 L 4.796875 -8.40625 L 1.203125 -8.40625 L 1.203125 -0.59375 Z M 4.796875 -0.59375 "/> -</symbol> -<symbol overflow="visible" id="glyph1-1"> -<path style="stroke:none;" d="M 2.515625 0 L 2.515625 -2.765625 C 2.023438 -3.554688 1.582031 -4.332031 1.1875 -5.09375 C 0.789062 -5.851562 0.445312 -6.628906 0.15625 -7.421875 L 1.265625 -7.421875 C 1.492188 -6.753906 1.757812 -6.113281 2.0625 -5.5 C 2.363281 -4.882812 2.6875 -4.253906 3.03125 -3.609375 C 3.394531 -4.285156 3.71875 -4.929688 4 -5.546875 C 4.28125 -6.160156 4.539062 -6.785156 4.78125 -7.421875 L 5.859375 -7.421875 C 5.554688 -6.640625 5.207031 -5.875 4.8125 -5.125 C 4.414062 -4.382812 3.976562 -3.601562 3.5 -2.78125 L 3.5 0 Z M 2.515625 0 "/> -</symbol> -<symbol overflow="visible" id="glyph1-2"> -<path style="stroke:none;" d="M 3 0.15625 C 2.5625 0.15625 2.1875 0.09375 1.875 -0.03125 C 1.570312 -0.164062 1.320312 -0.347656 1.125 -0.578125 C 0.9375 -0.804688 0.796875 -1.085938 0.703125 -1.421875 C 0.617188 -1.765625 0.578125 -2.144531 0.578125 -2.5625 L 0.578125 -7.421875 L 1.5625 -7.421875 L 1.5625 -2.65625 C 1.5625 -2.28125 1.59375 -1.96875 1.65625 -1.71875 C 1.726562 -1.46875 1.828125 -1.265625 1.953125 -1.109375 C 2.078125 -0.960938 2.222656 -0.859375 2.390625 -0.796875 C 2.566406 -0.734375 2.769531 -0.703125 3 -0.703125 C 3.226562 -0.703125 3.425781 -0.734375 3.59375 -0.796875 C 3.769531 -0.859375 3.921875 -0.960938 4.046875 -1.109375 C 4.171875 -1.265625 4.265625 -1.46875 4.328125 -1.71875 C 4.398438 -1.96875 4.4375 -2.28125 4.4375 -2.65625 L 4.4375 -7.421875 L 5.421875 -7.421875 L 5.421875 -2.5625 C 5.421875 -2.144531 5.375 -1.765625 5.28125 -1.421875 C 5.195312 -1.085938 5.054688 -0.804688 4.859375 -0.578125 C 4.671875 -0.347656 4.421875 -0.164062 4.109375 -0.03125 C 3.804688 0.09375 3.4375 0.15625 3 0.15625 Z M 3 0.15625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-3"> -<path style="stroke:none;" d="M 1.21875 -7.421875 C 1.320312 -6.921875 1.445312 -6.375 1.59375 -5.78125 C 1.738281 -5.1875 1.890625 -4.585938 2.046875 -3.984375 C 2.210938 -3.390625 2.378906 -2.820312 2.546875 -2.28125 C 2.722656 -1.738281 2.882812 -1.265625 3.03125 -0.859375 C 3.15625 -1.265625 3.300781 -1.742188 3.46875 -2.296875 C 3.644531 -2.847656 3.816406 -3.421875 3.984375 -4.015625 C 4.148438 -4.609375 4.304688 -5.203125 4.453125 -5.796875 C 4.609375 -6.390625 4.734375 -6.929688 4.828125 -7.421875 L 5.859375 -7.421875 C 5.796875 -7.109375 5.691406 -6.679688 5.546875 -6.140625 C 5.398438 -5.597656 5.226562 -4.992188 5.03125 -4.328125 C 4.832031 -3.660156 4.609375 -2.953125 4.359375 -2.203125 C 4.117188 -1.453125 3.863281 -0.71875 3.59375 0 L 2.375 0 C 2.125 -0.71875 1.878906 -1.445312 1.640625 -2.1875 C 1.410156 -2.9375 1.195312 -3.644531 1 -4.3125 C 0.800781 -4.976562 0.628906 -5.582031 0.484375 -6.125 C 0.335938 -6.675781 0.226562 -7.109375 0.15625 -7.421875 Z M 1.21875 -7.421875 "/> -</symbol> -<symbol overflow="visible" id="glyph1-4"> -<path style="stroke:none;" d=""/> -</symbol> -<symbol overflow="visible" id="glyph1-5"> -<path style="stroke:none;" d="M 5.515625 -3.71875 C 5.515625 -3.03125 5.425781 -2.445312 5.25 -1.96875 C 5.082031 -1.488281 4.847656 -1.097656 4.546875 -0.796875 C 4.253906 -0.492188 3.898438 -0.273438 3.484375 -0.140625 C 3.078125 -0.00390625 2.628906 0.0625 2.140625 0.0625 C 1.648438 0.0625 1.148438 0 0.640625 -0.125 L 0.640625 -7.3125 C 1.148438 -7.4375 1.648438 -7.5 2.140625 -7.5 C 2.628906 -7.5 3.078125 -7.429688 3.484375 -7.296875 C 3.898438 -7.160156 4.253906 -6.941406 4.546875 -6.640625 C 4.847656 -6.335938 5.082031 -5.941406 5.25 -5.453125 C 5.425781 -4.972656 5.515625 -4.394531 5.515625 -3.71875 Z M 1.625 -0.828125 C 1.832031 -0.804688 2.039062 -0.796875 2.25 -0.796875 C 2.601562 -0.796875 2.921875 -0.847656 3.203125 -0.953125 C 3.484375 -1.054688 3.71875 -1.226562 3.90625 -1.46875 C 4.101562 -1.707031 4.253906 -2.007812 4.359375 -2.375 C 4.460938 -2.75 4.515625 -3.195312 4.515625 -3.71875 C 4.515625 -4.726562 4.316406 -5.46875 3.921875 -5.9375 C 3.535156 -6.40625 2.960938 -6.640625 2.203125 -6.640625 C 2.097656 -6.640625 1.992188 -6.640625 1.890625 -6.640625 C 1.796875 -6.640625 1.707031 -6.628906 1.625 -6.609375 Z M 1.625 -0.828125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-6"> -<path style="stroke:none;" d="M 5.515625 -2.78125 C 5.515625 -2.34375 5.453125 -1.945312 5.328125 -1.59375 C 5.203125 -1.238281 5.023438 -0.929688 4.796875 -0.671875 C 4.578125 -0.410156 4.3125 -0.210938 4 -0.078125 C 3.695312 0.0546875 3.359375 0.125 2.984375 0.125 C 2.628906 0.125 2.296875 0.0546875 1.984375 -0.078125 C 1.679688 -0.210938 1.414062 -0.410156 1.1875 -0.671875 C 0.96875 -0.929688 0.796875 -1.238281 0.671875 -1.59375 C 0.546875 -1.945312 0.484375 -2.34375 0.484375 -2.78125 C 0.484375 -3.21875 0.546875 -3.617188 0.671875 -3.984375 C 0.796875 -4.347656 0.96875 -4.65625 1.1875 -4.90625 C 1.414062 -5.15625 1.679688 -5.347656 1.984375 -5.484375 C 2.296875 -5.628906 2.628906 -5.703125 2.984375 -5.703125 C 3.359375 -5.703125 3.695312 -5.628906 4 -5.484375 C 4.3125 -5.347656 4.578125 -5.15625 4.796875 -4.90625 C 5.023438 -4.65625 5.203125 -4.347656 5.328125 -3.984375 C 5.453125 -3.617188 5.515625 -3.21875 5.515625 -2.78125 Z M 4.5 -2.78125 C 4.5 -3.414062 4.363281 -3.914062 4.09375 -4.28125 C 3.820312 -4.644531 3.453125 -4.828125 2.984375 -4.828125 C 2.523438 -4.828125 2.160156 -4.644531 1.890625 -4.28125 C 1.628906 -3.914062 1.5 -3.414062 1.5 -2.78125 C 1.5 -2.15625 1.628906 -1.660156 1.890625 -1.296875 C 2.160156 -0.929688 2.523438 -0.75 2.984375 -0.75 C 3.453125 -0.75 3.820312 -0.929688 4.09375 -1.296875 C 4.363281 -1.660156 4.5 -2.15625 4.5 -2.78125 Z M 4.5 -2.78125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-7"> -<path style="stroke:none;" d="M 4.109375 0 C 3.992188 -0.269531 3.890625 -0.515625 3.796875 -0.734375 C 3.710938 -0.960938 3.628906 -1.1875 3.546875 -1.40625 C 3.460938 -1.632812 3.378906 -1.867188 3.296875 -2.109375 C 3.210938 -2.359375 3.113281 -2.640625 3 -2.953125 C 2.882812 -2.640625 2.78125 -2.359375 2.6875 -2.109375 C 2.601562 -1.867188 2.519531 -1.632812 2.4375 -1.40625 C 2.351562 -1.1875 2.265625 -0.960938 2.171875 -0.734375 C 2.085938 -0.515625 1.984375 -0.269531 1.859375 0 L 1.109375 0 C 0.890625 -0.976562 0.707031 -1.953125 0.5625 -2.921875 C 0.414062 -3.890625 0.304688 -4.769531 0.234375 -5.5625 L 1.15625 -5.5625 C 1.1875 -5.25 1.210938 -4.941406 1.234375 -4.640625 C 1.265625 -4.347656 1.300781 -4.035156 1.34375 -3.703125 C 1.382812 -3.378906 1.429688 -3.023438 1.484375 -2.640625 C 1.535156 -2.253906 1.59375 -1.820312 1.65625 -1.34375 C 1.78125 -1.664062 1.882812 -1.945312 1.96875 -2.1875 C 2.0625 -2.425781 2.144531 -2.648438 2.21875 -2.859375 C 2.289062 -3.078125 2.359375 -3.296875 2.421875 -3.515625 C 2.492188 -3.742188 2.570312 -4 2.65625 -4.28125 L 3.390625 -4.28125 C 3.472656 -4 3.546875 -3.742188 3.609375 -3.515625 C 3.671875 -3.296875 3.738281 -3.078125 3.8125 -2.859375 C 3.882812 -2.648438 3.957031 -2.425781 4.03125 -2.1875 C 4.113281 -1.945312 4.21875 -1.671875 4.34375 -1.359375 C 4.414062 -1.796875 4.476562 -2.203125 4.53125 -2.578125 C 4.59375 -2.953125 4.640625 -3.304688 4.671875 -3.640625 C 4.710938 -3.972656 4.75 -4.296875 4.78125 -4.609375 C 4.820312 -4.921875 4.851562 -5.238281 4.875 -5.5625 L 5.765625 -5.5625 C 5.734375 -5.164062 5.6875 -4.738281 5.625 -4.28125 C 5.570312 -3.820312 5.503906 -3.351562 5.421875 -2.875 C 5.335938 -2.394531 5.25 -1.910156 5.15625 -1.421875 C 5.0625 -0.929688 4.960938 -0.457031 4.859375 0 Z M 4.109375 0 "/> -</symbol> -<symbol overflow="visible" id="glyph1-8"> -<path style="stroke:none;" d="M 0.859375 -5.40625 C 1.210938 -5.5 1.566406 -5.566406 1.921875 -5.609375 C 2.273438 -5.660156 2.609375 -5.6875 2.921875 -5.6875 C 3.671875 -5.6875 4.234375 -5.492188 4.609375 -5.109375 C 4.992188 -4.722656 5.1875 -4.109375 5.1875 -3.265625 L 5.1875 0 L 4.203125 0 L 4.203125 -3.078125 C 4.203125 -3.441406 4.171875 -3.734375 4.109375 -3.953125 C 4.046875 -4.179688 3.953125 -4.359375 3.828125 -4.484375 C 3.710938 -4.609375 3.570312 -4.691406 3.40625 -4.734375 C 3.25 -4.785156 3.070312 -4.8125 2.875 -4.8125 C 2.71875 -4.8125 2.546875 -4.800781 2.359375 -4.78125 C 2.179688 -4.757812 2.007812 -4.734375 1.84375 -4.703125 L 1.84375 0 L 0.859375 0 Z M 0.859375 -5.40625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-9"> -<path style="stroke:none;" d="M 4.21875 -1.390625 C 4.21875 -1.585938 4.132812 -1.75 3.96875 -1.875 C 3.800781 -2.007812 3.59375 -2.125 3.34375 -2.21875 C 3.101562 -2.3125 2.835938 -2.40625 2.546875 -2.5 C 2.265625 -2.59375 2 -2.707031 1.75 -2.84375 C 1.507812 -2.976562 1.304688 -3.144531 1.140625 -3.34375 C 0.984375 -3.539062 0.90625 -3.800781 0.90625 -4.125 C 0.90625 -4.570312 1.082031 -4.945312 1.4375 -5.25 C 1.800781 -5.550781 2.375 -5.703125 3.15625 -5.703125 C 3.457031 -5.703125 3.769531 -5.675781 4.09375 -5.625 C 4.414062 -5.582031 4.695312 -5.523438 4.9375 -5.453125 L 4.75 -4.578125 C 4.6875 -4.609375 4.597656 -4.640625 4.484375 -4.671875 C 4.367188 -4.710938 4.238281 -4.742188 4.09375 -4.765625 C 3.957031 -4.796875 3.804688 -4.816406 3.640625 -4.828125 C 3.472656 -4.847656 3.316406 -4.859375 3.171875 -4.859375 C 2.304688 -4.859375 1.875 -4.625 1.875 -4.15625 C 1.875 -3.988281 1.953125 -3.84375 2.109375 -3.71875 C 2.273438 -3.601562 2.484375 -3.5 2.734375 -3.40625 C 2.984375 -3.3125 3.25 -3.210938 3.53125 -3.109375 C 3.820312 -3.015625 4.09375 -2.894531 4.34375 -2.75 C 4.59375 -2.601562 4.796875 -2.425781 4.953125 -2.21875 C 5.117188 -2.019531 5.203125 -1.765625 5.203125 -1.453125 C 5.203125 -0.953125 5.003906 -0.5625 4.609375 -0.28125 C 4.222656 -0.0078125 3.609375 0.125 2.765625 0.125 C 2.378906 0.125 2.023438 0.09375 1.703125 0.03125 C 1.378906 -0.03125 1.078125 -0.125 0.796875 -0.25 L 0.984375 -1.15625 C 1.265625 -1.019531 1.554688 -0.910156 1.859375 -0.828125 C 2.171875 -0.742188 2.503906 -0.703125 2.859375 -0.703125 C 3.765625 -0.703125 4.21875 -0.929688 4.21875 -1.390625 Z M 4.21875 -1.390625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-10"> -<path style="stroke:none;" d="M 0.59375 -2.765625 C 0.59375 -3.273438 0.671875 -3.710938 0.828125 -4.078125 C 0.984375 -4.441406 1.203125 -4.742188 1.484375 -4.984375 C 1.765625 -5.234375 2.09375 -5.414062 2.46875 -5.53125 C 2.84375 -5.644531 3.238281 -5.703125 3.65625 -5.703125 C 3.925781 -5.703125 4.195312 -5.679688 4.46875 -5.640625 C 4.738281 -5.609375 5.023438 -5.546875 5.328125 -5.453125 L 5.09375 -4.59375 C 4.832031 -4.6875 4.59375 -4.75 4.375 -4.78125 C 4.15625 -4.8125 3.929688 -4.828125 3.703125 -4.828125 C 3.421875 -4.828125 3.148438 -4.785156 2.890625 -4.703125 C 2.640625 -4.628906 2.414062 -4.507812 2.21875 -4.34375 C 2.03125 -4.1875 1.878906 -3.976562 1.765625 -3.71875 C 1.660156 -3.457031 1.609375 -3.140625 1.609375 -2.765625 C 1.609375 -2.421875 1.660156 -2.117188 1.765625 -1.859375 C 1.867188 -1.609375 2.015625 -1.398438 2.203125 -1.234375 C 2.390625 -1.078125 2.613281 -0.957031 2.875 -0.875 C 3.144531 -0.789062 3.4375 -0.75 3.75 -0.75 C 4.007812 -0.75 4.253906 -0.765625 4.484375 -0.796875 C 4.722656 -0.828125 4.984375 -0.890625 5.265625 -0.984375 L 5.40625 -0.15625 C 5.125 -0.0507812 4.835938 0.0195312 4.546875 0.0625 C 4.265625 0.101562 3.957031 0.125 3.625 0.125 C 3.175781 0.125 2.765625 0.0664062 2.390625 -0.046875 C 2.023438 -0.171875 1.707031 -0.351562 1.4375 -0.59375 C 1.164062 -0.832031 0.957031 -1.132812 0.8125 -1.5 C 0.664062 -1.863281 0.59375 -2.285156 0.59375 -2.765625 Z M 0.59375 -2.765625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-11"> -<path style="stroke:none;" d="M 3.0625 -0.703125 C 3.3125 -0.703125 3.53125 -0.707031 3.71875 -0.71875 C 3.914062 -0.738281 4.082031 -0.765625 4.21875 -0.796875 L 4.21875 -2.453125 C 4.082031 -2.492188 3.925781 -2.523438 3.75 -2.546875 C 3.570312 -2.566406 3.382812 -2.578125 3.1875 -2.578125 C 3 -2.578125 2.816406 -2.5625 2.640625 -2.53125 C 2.460938 -2.507812 2.304688 -2.460938 2.171875 -2.390625 C 2.035156 -2.316406 1.921875 -2.222656 1.828125 -2.109375 C 1.742188 -1.992188 1.703125 -1.847656 1.703125 -1.671875 C 1.703125 -1.304688 1.820312 -1.050781 2.0625 -0.90625 C 2.3125 -0.769531 2.644531 -0.703125 3.0625 -0.703125 Z M 2.96875 -5.703125 C 3.382812 -5.703125 3.734375 -5.648438 4.015625 -5.546875 C 4.296875 -5.441406 4.523438 -5.296875 4.703125 -5.109375 C 4.878906 -4.929688 5.003906 -4.707031 5.078125 -4.4375 C 5.148438 -4.175781 5.1875 -3.890625 5.1875 -3.578125 L 5.1875 -0.09375 C 4.957031 -0.0507812 4.648438 -0.00390625 4.265625 0.046875 C 3.890625 0.0976562 3.5 0.125 3.09375 0.125 C 2.789062 0.125 2.492188 0.0976562 2.203125 0.046875 C 1.921875 -0.00390625 1.664062 -0.09375 1.4375 -0.21875 C 1.21875 -0.351562 1.039062 -0.535156 0.90625 -0.765625 C 0.769531 -0.992188 0.703125 -1.289062 0.703125 -1.65625 C 0.703125 -1.976562 0.769531 -2.25 0.90625 -2.46875 C 1.039062 -2.6875 1.21875 -2.863281 1.4375 -3 C 1.664062 -3.132812 1.921875 -3.234375 2.203125 -3.296875 C 2.484375 -3.359375 2.769531 -3.390625 3.0625 -3.390625 C 3.445312 -3.390625 3.832031 -3.34375 4.21875 -3.25 L 4.21875 -3.53125 C 4.21875 -3.695312 4.195312 -3.859375 4.15625 -4.015625 C 4.125 -4.171875 4.054688 -4.3125 3.953125 -4.4375 C 3.847656 -4.5625 3.707031 -4.660156 3.53125 -4.734375 C 3.363281 -4.816406 3.144531 -4.859375 2.875 -4.859375 C 2.53125 -4.859375 2.226562 -4.832031 1.96875 -4.78125 C 1.71875 -4.738281 1.523438 -4.691406 1.390625 -4.640625 L 1.265625 -5.453125 C 1.398438 -5.523438 1.625 -5.582031 1.9375 -5.625 C 2.257812 -5.675781 2.601562 -5.703125 2.96875 -5.703125 Z M 2.96875 -5.703125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-12"> -<path style="stroke:none;" d="M 4.0625 0.125 C 3.707031 0.125 3.410156 0.078125 3.171875 -0.015625 C 2.941406 -0.109375 2.757812 -0.25 2.625 -0.4375 C 2.488281 -0.632812 2.390625 -0.875 2.328125 -1.15625 C 2.273438 -1.4375 2.25 -1.765625 2.25 -2.140625 L 2.25 -7.421875 L 0.640625 -7.421875 L 0.640625 -8.25 L 3.234375 -8.25 L 3.234375 -2.140625 C 3.234375 -1.867188 3.25 -1.644531 3.28125 -1.46875 C 3.320312 -1.289062 3.378906 -1.144531 3.453125 -1.03125 C 3.535156 -0.925781 3.628906 -0.851562 3.734375 -0.8125 C 3.847656 -0.769531 3.984375 -0.75 4.140625 -0.75 C 4.367188 -0.75 4.582031 -0.773438 4.78125 -0.828125 C 4.988281 -0.890625 5.144531 -0.953125 5.25 -1.015625 L 5.40625 -0.1875 C 5.351562 -0.15625 5.28125 -0.117188 5.1875 -0.078125 C 5.101562 -0.046875 5 -0.015625 4.875 0.015625 C 4.757812 0.046875 4.628906 0.0703125 4.484375 0.09375 C 4.347656 0.113281 4.207031 0.125 4.0625 0.125 Z M 4.0625 0.125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-13"> -<path style="stroke:none;" d="M 2.515625 -6.4375 C 2.304688 -6.4375 2.125 -6.503906 1.96875 -6.640625 C 1.8125 -6.785156 1.734375 -6.984375 1.734375 -7.234375 C 1.734375 -7.484375 1.8125 -7.679688 1.96875 -7.828125 C 2.125 -7.972656 2.304688 -8.046875 2.515625 -8.046875 C 2.722656 -8.046875 2.898438 -7.972656 3.046875 -7.828125 C 3.203125 -7.679688 3.28125 -7.484375 3.28125 -7.234375 C 3.28125 -6.984375 3.203125 -6.785156 3.046875 -6.640625 C 2.898438 -6.503906 2.722656 -6.4375 2.515625 -6.4375 Z M 2.25 -4.734375 L 0.640625 -4.734375 L 0.640625 -5.5625 L 3.234375 -5.5625 L 3.234375 -2.140625 C 3.234375 -1.585938 3.3125 -1.21875 3.46875 -1.03125 C 3.625 -0.84375 3.851562 -0.75 4.15625 -0.75 C 4.382812 -0.75 4.597656 -0.773438 4.796875 -0.828125 C 4.992188 -0.890625 5.144531 -0.953125 5.25 -1.015625 L 5.40625 -0.1875 C 5.351562 -0.15625 5.28125 -0.117188 5.1875 -0.078125 C 5.101562 -0.046875 5.003906 -0.015625 4.890625 0.015625 C 4.773438 0.046875 4.644531 0.0703125 4.5 0.09375 C 4.363281 0.113281 4.21875 0.125 4.0625 0.125 C 3.71875 0.125 3.425781 0.078125 3.1875 -0.015625 C 2.957031 -0.109375 2.769531 -0.25 2.625 -0.4375 C 2.488281 -0.632812 2.390625 -0.875 2.328125 -1.15625 C 2.273438 -1.4375 2.25 -1.765625 2.25 -2.140625 Z M 2.25 -4.734375 "/> -</symbol> -<symbol overflow="visible" id="glyph1-14"> -<path style="stroke:none;" d="M 4.15625 -0.515625 C 4.039062 -0.453125 3.863281 -0.382812 3.625 -0.3125 C 3.394531 -0.238281 3.128906 -0.203125 2.828125 -0.203125 C 2.503906 -0.203125 2.195312 -0.253906 1.90625 -0.359375 C 1.625 -0.472656 1.378906 -0.640625 1.171875 -0.859375 C 0.960938 -1.078125 0.796875 -1.351562 0.671875 -1.6875 C 0.546875 -2.03125 0.484375 -2.4375 0.484375 -2.90625 C 0.484375 -3.3125 0.539062 -3.679688 0.65625 -4.015625 C 0.769531 -4.359375 0.9375 -4.65625 1.15625 -4.90625 C 1.375 -5.15625 1.644531 -5.347656 1.96875 -5.484375 C 2.289062 -5.628906 2.65625 -5.703125 3.0625 -5.703125 C 3.539062 -5.703125 3.945312 -5.664062 4.28125 -5.59375 C 4.625 -5.53125 4.910156 -5.46875 5.140625 -5.40625 L 5.140625 -0.4375 C 5.140625 0.425781 4.921875 1.050781 4.484375 1.4375 C 4.054688 1.820312 3.398438 2.015625 2.515625 2.015625 C 2.160156 2.015625 1.835938 1.984375 1.546875 1.921875 C 1.253906 1.867188 0.992188 1.804688 0.765625 1.734375 L 0.953125 0.859375 C 1.160156 0.941406 1.394531 1.007812 1.65625 1.0625 C 1.925781 1.125 2.222656 1.15625 2.546875 1.15625 C 3.117188 1.15625 3.53125 1.035156 3.78125 0.796875 C 4.03125 0.566406 4.15625 0.191406 4.15625 -0.328125 Z M 4.15625 -4.6875 C 4.0625 -4.71875 3.925781 -4.75 3.75 -4.78125 C 3.582031 -4.8125 3.359375 -4.828125 3.078125 -4.828125 C 2.554688 -4.828125 2.160156 -4.648438 1.890625 -4.296875 C 1.628906 -3.941406 1.5 -3.472656 1.5 -2.890625 C 1.5 -2.566406 1.535156 -2.289062 1.609375 -2.0625 C 1.691406 -1.84375 1.796875 -1.65625 1.921875 -1.5 C 2.054688 -1.351562 2.207031 -1.242188 2.375 -1.171875 C 2.539062 -1.109375 2.722656 -1.078125 2.921875 -1.078125 C 3.160156 -1.078125 3.390625 -1.113281 3.609375 -1.1875 C 3.835938 -1.257812 4.019531 -1.34375 4.15625 -1.4375 Z M 4.15625 -4.6875 "/> -</symbol> -<symbol overflow="visible" id="glyph1-15"> -<path style="stroke:none;" d="M 2.8125 -0.703125 C 3.3125 -0.703125 3.691406 -0.796875 3.953125 -0.984375 C 4.222656 -1.171875 4.359375 -1.457031 4.359375 -1.84375 C 4.359375 -2.082031 4.304688 -2.28125 4.203125 -2.4375 C 4.109375 -2.601562 3.984375 -2.75 3.828125 -2.875 C 3.671875 -3 3.488281 -3.109375 3.28125 -3.203125 C 3.082031 -3.296875 2.878906 -3.378906 2.671875 -3.453125 C 2.429688 -3.546875 2.203125 -3.648438 1.984375 -3.765625 C 1.765625 -3.890625 1.566406 -4.03125 1.390625 -4.1875 C 1.222656 -4.351562 1.085938 -4.546875 0.984375 -4.765625 C 0.890625 -4.984375 0.84375 -5.238281 0.84375 -5.53125 C 0.84375 -6.175781 1.046875 -6.679688 1.453125 -7.046875 C 1.859375 -7.410156 2.425781 -7.59375 3.15625 -7.59375 C 3.351562 -7.59375 3.550781 -7.578125 3.75 -7.546875 C 3.945312 -7.523438 4.128906 -7.492188 4.296875 -7.453125 C 4.460938 -7.410156 4.609375 -7.359375 4.734375 -7.296875 C 4.867188 -7.242188 4.976562 -7.191406 5.0625 -7.140625 L 4.75 -6.3125 C 4.59375 -6.40625 4.375 -6.5 4.09375 -6.59375 C 3.8125 -6.695312 3.5 -6.75 3.15625 -6.75 C 2.789062 -6.75 2.476562 -6.65625 2.21875 -6.46875 C 1.957031 -6.289062 1.828125 -6.019531 1.828125 -5.65625 C 1.828125 -5.457031 1.863281 -5.285156 1.9375 -5.140625 C 2.007812 -4.992188 2.113281 -4.863281 2.25 -4.75 C 2.382812 -4.644531 2.535156 -4.546875 2.703125 -4.453125 C 2.878906 -4.367188 3.070312 -4.285156 3.28125 -4.203125 C 3.59375 -4.078125 3.875 -3.945312 4.125 -3.8125 C 4.375 -3.6875 4.585938 -3.535156 4.765625 -3.359375 C 4.953125 -3.179688 5.09375 -2.972656 5.1875 -2.734375 C 5.289062 -2.492188 5.34375 -2.203125 5.34375 -1.859375 C 5.34375 -1.210938 5.125 -0.710938 4.6875 -0.359375 C 4.25 -0.015625 3.625 0.15625 2.8125 0.15625 C 2.539062 0.15625 2.289062 0.132812 2.0625 0.09375 C 1.832031 0.0625 1.625 0.0195312 1.4375 -0.03125 C 1.257812 -0.09375 1.101562 -0.148438 0.96875 -0.203125 C 0.832031 -0.253906 0.726562 -0.304688 0.65625 -0.359375 L 0.953125 -1.171875 C 1.117188 -1.085938 1.359375 -0.988281 1.671875 -0.875 C 1.984375 -0.757812 2.363281 -0.703125 2.8125 -0.703125 Z M 2.8125 -0.703125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-16"> -<path style="stroke:none;" d="M 3.109375 -5.703125 C 3.859375 -5.703125 4.4375 -5.46875 4.84375 -5 C 5.25 -4.53125 5.453125 -3.820312 5.453125 -2.875 L 5.453125 -2.515625 L 1.46875 -2.515625 C 1.507812 -1.941406 1.703125 -1.503906 2.046875 -1.203125 C 2.390625 -0.898438 2.867188 -0.75 3.484375 -0.75 C 3.835938 -0.75 4.132812 -0.773438 4.375 -0.828125 C 4.625 -0.890625 4.8125 -0.953125 4.9375 -1.015625 L 5.078125 -0.1875 C 4.953125 -0.113281 4.734375 -0.046875 4.421875 0.015625 C 4.109375 0.0859375 3.757812 0.125 3.375 0.125 C 2.894531 0.125 2.472656 0.0507812 2.109375 -0.09375 C 1.742188 -0.238281 1.441406 -0.4375 1.203125 -0.6875 C 0.960938 -0.945312 0.78125 -1.253906 0.65625 -1.609375 C 0.539062 -1.960938 0.484375 -2.347656 0.484375 -2.765625 C 0.484375 -3.265625 0.554688 -3.695312 0.703125 -4.0625 C 0.859375 -4.4375 1.0625 -4.742188 1.3125 -4.984375 C 1.5625 -5.222656 1.835938 -5.398438 2.140625 -5.515625 C 2.453125 -5.640625 2.773438 -5.703125 3.109375 -5.703125 Z M 4.453125 -3.328125 C 4.453125 -3.796875 4.328125 -4.164062 4.078125 -4.4375 C 3.828125 -4.71875 3.5 -4.859375 3.09375 -4.859375 C 2.863281 -4.859375 2.65625 -4.8125 2.46875 -4.71875 C 2.28125 -4.632812 2.117188 -4.519531 1.984375 -4.375 C 1.847656 -4.226562 1.738281 -4.0625 1.65625 -3.875 C 1.570312 -3.695312 1.519531 -3.515625 1.5 -3.328125 Z M 4.453125 -3.328125 "/> -</symbol> -<symbol overflow="visible" id="glyph1-17"> -<path style="stroke:none;" d="M 4.15625 -4.390625 C 4.039062 -4.492188 3.875 -4.59375 3.65625 -4.6875 C 3.445312 -4.78125 3.222656 -4.828125 2.984375 -4.828125 C 2.722656 -4.828125 2.5 -4.773438 2.3125 -4.671875 C 2.125 -4.566406 1.96875 -4.421875 1.84375 -4.234375 C 1.726562 -4.054688 1.640625 -3.84375 1.578125 -3.59375 C 1.523438 -3.34375 1.5 -3.070312 1.5 -2.78125 C 1.5 -2.132812 1.648438 -1.632812 1.953125 -1.28125 C 2.253906 -0.925781 2.648438 -0.75 3.140625 -0.75 C 3.390625 -0.75 3.597656 -0.757812 3.765625 -0.78125 C 3.941406 -0.8125 4.070312 -0.835938 4.15625 -0.859375 Z M 4.15625 -8.140625 L 5.140625 -8.3125 L 5.140625 -0.15625 C 4.929688 -0.09375 4.65625 -0.03125 4.3125 0.03125 C 3.976562 0.09375 3.585938 0.125 3.140625 0.125 C 2.742188 0.125 2.378906 0.0546875 2.046875 -0.078125 C 1.722656 -0.210938 1.441406 -0.40625 1.203125 -0.65625 C 0.972656 -0.90625 0.796875 -1.207031 0.671875 -1.5625 C 0.546875 -1.925781 0.484375 -2.332031 0.484375 -2.78125 C 0.484375 -3.21875 0.535156 -3.613281 0.640625 -3.96875 C 0.742188 -4.320312 0.898438 -4.625 1.109375 -4.875 C 1.316406 -5.132812 1.566406 -5.335938 1.859375 -5.484375 C 2.148438 -5.628906 2.488281 -5.703125 2.875 -5.703125 C 3.164062 -5.703125 3.421875 -5.664062 3.640625 -5.59375 C 3.867188 -5.519531 4.039062 -5.441406 4.15625 -5.359375 Z M 4.15625 -8.140625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-18"> -<path style="stroke:none;" d="M 1.28125 0 L 1.28125 -5.265625 C 2.101562 -5.546875 2.925781 -5.6875 3.75 -5.6875 C 4.007812 -5.6875 4.253906 -5.675781 4.484375 -5.65625 C 4.722656 -5.632812 4.976562 -5.59375 5.25 -5.53125 L 5.078125 -4.65625 C 4.816406 -4.726562 4.585938 -4.773438 4.390625 -4.796875 C 4.203125 -4.816406 3.988281 -4.828125 3.75 -4.828125 C 3.269531 -4.828125 2.773438 -4.757812 2.265625 -4.625 L 2.265625 0 Z M 1.28125 0 "/> -</symbol> -<symbol overflow="visible" id="glyph1-19"> -<path style="stroke:none;" d="M 0.609375 1.046875 C 0.679688 1.085938 0.78125 1.117188 0.90625 1.140625 C 1.039062 1.160156 1.164062 1.171875 1.28125 1.171875 C 1.675781 1.171875 1.984375 1.082031 2.203125 0.90625 C 2.421875 0.738281 2.625 0.460938 2.8125 0.078125 C 2.363281 -0.773438 1.941406 -1.6875 1.546875 -2.65625 C 1.148438 -3.625 0.828125 -4.59375 0.578125 -5.5625 L 1.65625 -5.5625 C 1.738281 -5.25 1.832031 -4.90625 1.9375 -4.53125 C 2.039062 -4.15625 2.160156 -3.769531 2.296875 -3.375 C 2.441406 -2.988281 2.585938 -2.597656 2.734375 -2.203125 C 2.890625 -1.804688 3.054688 -1.425781 3.234375 -1.0625 C 3.367188 -1.4375 3.488281 -1.800781 3.59375 -2.15625 C 3.707031 -2.519531 3.8125 -2.882812 3.90625 -3.25 C 4.007812 -3.613281 4.109375 -3.984375 4.203125 -4.359375 C 4.296875 -4.742188 4.394531 -5.144531 4.5 -5.5625 L 5.53125 -5.5625 C 5.269531 -4.53125 4.984375 -3.523438 4.671875 -2.546875 C 4.359375 -1.566406 4.019531 -0.660156 3.65625 0.171875 C 3.519531 0.484375 3.375 0.753906 3.21875 0.984375 C 3.0625 1.222656 2.890625 1.414062 2.703125 1.5625 C 2.523438 1.71875 2.316406 1.832031 2.078125 1.90625 C 1.847656 1.976562 1.585938 2.015625 1.296875 2.015625 C 1.140625 2.015625 0.972656 1.992188 0.796875 1.953125 C 0.617188 1.910156 0.5 1.875 0.4375 1.84375 Z M 0.609375 1.046875 "/> -</symbol> -<symbol overflow="visible" id="glyph1-20"> -<path style="stroke:none;" d="M 0.34375 -3.71875 C 0.34375 -4.382812 0.40625 -4.960938 0.53125 -5.453125 C 0.664062 -5.941406 0.847656 -6.34375 1.078125 -6.65625 C 1.304688 -6.96875 1.582031 -7.203125 1.90625 -7.359375 C 2.238281 -7.515625 2.601562 -7.59375 3 -7.59375 C 3.394531 -7.59375 3.753906 -7.515625 4.078125 -7.359375 C 4.410156 -7.203125 4.691406 -6.96875 4.921875 -6.65625 C 5.148438 -6.34375 5.328125 -5.941406 5.453125 -5.453125 C 5.585938 -4.960938 5.65625 -4.382812 5.65625 -3.71875 C 5.65625 -3.050781 5.585938 -2.472656 5.453125 -1.984375 C 5.328125 -1.503906 5.148438 -1.101562 4.921875 -0.78125 C 4.691406 -0.457031 4.410156 -0.21875 4.078125 -0.0625 C 3.753906 0.0820312 3.394531 0.15625 3 0.15625 C 2.601562 0.15625 2.238281 0.0820312 1.90625 -0.0625 C 1.582031 -0.21875 1.304688 -0.457031 1.078125 -0.78125 C 0.847656 -1.101562 0.664062 -1.503906 0.53125 -1.984375 C 0.40625 -2.472656 0.34375 -3.050781 0.34375 -3.71875 Z M 1.359375 -3.71875 C 1.359375 -2.738281 1.488281 -1.988281 1.75 -1.46875 C 2.007812 -0.957031 2.414062 -0.703125 2.96875 -0.703125 C 3.53125 -0.703125 3.953125 -0.957031 4.234375 -1.46875 C 4.515625 -1.988281 4.65625 -2.738281 4.65625 -3.71875 C 4.65625 -4.695312 4.515625 -5.445312 4.234375 -5.96875 C 3.953125 -6.488281 3.53125 -6.75 2.96875 -6.75 C 2.414062 -6.75 2.007812 -6.488281 1.75 -5.96875 C 1.488281 -5.445312 1.359375 -4.695312 1.359375 -3.71875 Z M 1.359375 -3.71875 "/> -</symbol> -<symbol overflow="visible" id="glyph1-21"> -<path style="stroke:none;" d="M 5.140625 -0.15625 C 4.929688 -0.101562 4.644531 -0.046875 4.28125 0.015625 C 3.925781 0.0859375 3.507812 0.125 3.03125 0.125 C 2.613281 0.125 2.265625 0.0625 1.984375 -0.0625 C 1.703125 -0.1875 1.472656 -0.363281 1.296875 -0.59375 C 1.117188 -0.820312 0.992188 -1.09375 0.921875 -1.40625 C 0.847656 -1.71875 0.8125 -2.0625 0.8125 -2.4375 L 0.8125 -5.5625 L 1.796875 -5.5625 L 1.796875 -2.65625 C 1.796875 -1.96875 1.894531 -1.476562 2.09375 -1.1875 C 2.300781 -0.894531 2.644531 -0.75 3.125 -0.75 C 3.226562 -0.75 3.332031 -0.753906 3.4375 -0.765625 C 3.550781 -0.773438 3.65625 -0.785156 3.75 -0.796875 C 3.851562 -0.804688 3.9375 -0.816406 4 -0.828125 C 4.070312 -0.847656 4.125 -0.859375 4.15625 -0.859375 L 4.15625 -5.5625 L 5.140625 -5.5625 Z M 5.140625 -0.15625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-22"> -<path style="stroke:none;" d="M 2.921875 -5.5625 L 5.265625 -5.5625 L 5.265625 -4.734375 L 2.921875 -4.734375 L 2.921875 -2.140625 C 2.921875 -1.867188 2.9375 -1.644531 2.96875 -1.46875 C 3.007812 -1.289062 3.078125 -1.144531 3.171875 -1.03125 C 3.265625 -0.925781 3.382812 -0.851562 3.53125 -0.8125 C 3.675781 -0.769531 3.851562 -0.75 4.0625 -0.75 C 4.34375 -0.75 4.570312 -0.773438 4.75 -0.828125 C 4.925781 -0.878906 5.09375 -0.941406 5.25 -1.015625 L 5.40625 -0.1875 C 5.289062 -0.132812 5.109375 -0.0703125 4.859375 0 C 4.617188 0.0820312 4.316406 0.125 3.953125 0.125 C 3.546875 0.125 3.207031 0.078125 2.9375 -0.015625 C 2.675781 -0.109375 2.46875 -0.25 2.3125 -0.4375 C 2.164062 -0.632812 2.066406 -0.875 2.015625 -1.15625 C 1.960938 -1.4375 1.9375 -1.765625 1.9375 -2.140625 L 1.9375 -4.734375 L 0.75 -4.734375 L 0.75 -5.5625 L 1.9375 -5.5625 L 1.9375 -7.125 L 2.921875 -7.296875 Z M 2.921875 -5.5625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-23"> -<path style="stroke:none;" d="M 4.5 -2.765625 C 4.5 -3.421875 4.347656 -3.925781 4.046875 -4.28125 C 3.742188 -4.632812 3.347656 -4.8125 2.859375 -4.8125 C 2.585938 -4.8125 2.375 -4.796875 2.21875 -4.765625 C 2.0625 -4.742188 1.9375 -4.71875 1.84375 -4.6875 L 1.84375 -1.171875 C 1.957031 -1.066406 2.117188 -0.96875 2.328125 -0.875 C 2.546875 -0.789062 2.773438 -0.75 3.015625 -0.75 C 3.273438 -0.75 3.5 -0.800781 3.6875 -0.90625 C 3.875 -1.007812 4.023438 -1.148438 4.140625 -1.328125 C 4.265625 -1.515625 4.351562 -1.726562 4.40625 -1.96875 C 4.46875 -2.21875 4.5 -2.484375 4.5 -2.765625 Z M 5.515625 -2.765625 C 5.515625 -2.347656 5.460938 -1.957031 5.359375 -1.59375 C 5.253906 -1.238281 5.097656 -0.929688 4.890625 -0.671875 C 4.679688 -0.421875 4.429688 -0.222656 4.140625 -0.078125 C 3.847656 0.0546875 3.507812 0.125 3.125 0.125 C 2.832031 0.125 2.570312 0.0859375 2.34375 0.015625 C 2.125 -0.046875 1.957031 -0.125 1.84375 -0.21875 L 1.84375 1.984375 L 0.859375 1.984375 L 0.859375 -5.40625 C 1.066406 -5.46875 1.34375 -5.53125 1.6875 -5.59375 C 2.03125 -5.65625 2.421875 -5.6875 2.859375 -5.6875 C 3.253906 -5.6875 3.613281 -5.617188 3.9375 -5.484375 C 4.269531 -5.347656 4.550781 -5.15625 4.78125 -4.90625 C 5.019531 -4.65625 5.203125 -4.347656 5.328125 -3.984375 C 5.453125 -3.617188 5.515625 -3.210938 5.515625 -2.765625 Z M 5.515625 -2.765625 "/> -</symbol> -<symbol overflow="visible" id="glyph1-24"> -<path style="stroke:none;" d="M 3.015625 -3.734375 L 4.15625 -7.421875 L 5.09375 -7.421875 C 5.25 -6.253906 5.359375 -5.054688 5.421875 -3.828125 C 5.492188 -2.609375 5.554688 -1.332031 5.609375 0 L 4.65625 0 C 4.644531 -0.425781 4.632812 -0.890625 4.625 -1.390625 C 4.625 -1.898438 4.613281 -2.421875 4.59375 -2.953125 C 4.582031 -3.492188 4.570312 -4.039062 4.5625 -4.59375 C 4.550781 -5.144531 4.539062 -5.679688 4.53125 -6.203125 L 3.4375 -2.8125 L 2.578125 -2.8125 L 1.46875 -6.203125 C 1.46875 -5.679688 1.457031 -5.144531 1.4375 -4.59375 C 1.425781 -4.050781 1.414062 -3.507812 1.40625 -2.96875 C 1.394531 -2.425781 1.382812 -1.898438 1.375 -1.390625 C 1.363281 -0.890625 1.351562 -0.425781 1.34375 0 L 0.390625 0 C 0.410156 -0.601562 0.4375 -1.222656 0.46875 -1.859375 C 0.5 -2.503906 0.535156 -3.144531 0.578125 -3.78125 C 0.617188 -4.414062 0.671875 -5.039062 0.734375 -5.65625 C 0.796875 -6.269531 0.863281 -6.859375 0.9375 -7.421875 L 1.84375 -7.421875 Z M 3.015625 -3.734375 "/> -</symbol> -<symbol overflow="visible" id="glyph2-0"> -<path style="stroke:none;" d="M 0.640625 2.296875 L 0.640625 -9.171875 L 7.140625 -9.171875 L 7.140625 2.296875 Z M 1.375 1.578125 L 6.421875 1.578125 L 6.421875 -8.4375 L 1.375 -8.4375 Z M 1.375 1.578125 "/> -</symbol> -<symbol overflow="visible" id="glyph2-1"> -<path style="stroke:none;" d="M 6.34375 -6.84375 L 6.34375 -5.75 C 6.007812 -5.925781 5.675781 -6.0625 5.34375 -6.15625 C 5.007812 -6.25 4.675781 -6.296875 4.34375 -6.296875 C 3.582031 -6.296875 2.992188 -6.050781 2.578125 -5.5625 C 2.160156 -5.082031 1.953125 -4.410156 1.953125 -3.546875 C 1.953125 -2.679688 2.160156 -2.007812 2.578125 -1.53125 C 2.992188 -1.050781 3.582031 -0.8125 4.34375 -0.8125 C 4.675781 -0.8125 5.007812 -0.851562 5.34375 -0.9375 C 5.675781 -1.03125 6.007812 -1.171875 6.34375 -1.359375 L 6.34375 -0.265625 C 6.019531 -0.117188 5.679688 -0.0078125 5.328125 0.0625 C 4.984375 0.144531 4.613281 0.1875 4.21875 0.1875 C 3.144531 0.1875 2.289062 -0.144531 1.65625 -0.8125 C 1.03125 -1.488281 0.71875 -2.398438 0.71875 -3.546875 C 0.71875 -4.703125 1.035156 -5.613281 1.671875 -6.28125 C 2.304688 -6.945312 3.179688 -7.28125 4.296875 -7.28125 C 4.648438 -7.28125 5 -7.242188 5.34375 -7.171875 C 5.6875 -7.097656 6.019531 -6.988281 6.34375 -6.84375 Z M 6.34375 -6.84375 "/> -</symbol> -<symbol overflow="visible" id="glyph2-2"> -<path style="stroke:none;" d="M 5.34375 -6.015625 C 5.207031 -6.085938 5.0625 -6.140625 4.90625 -6.171875 C 4.757812 -6.210938 4.59375 -6.234375 4.40625 -6.234375 C 3.75 -6.234375 3.242188 -6.019531 2.890625 -5.59375 C 2.535156 -5.164062 2.359375 -4.550781 2.359375 -3.75 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.597656 -6.4375 2.914062 -6.757812 3.3125 -6.96875 C 3.707031 -7.175781 4.1875 -7.28125 4.75 -7.28125 C 4.832031 -7.28125 4.921875 -7.273438 5.015625 -7.265625 C 5.109375 -7.253906 5.21875 -7.238281 5.34375 -7.21875 Z M 5.34375 -6.015625 "/> -</symbol> -<symbol overflow="visible" id="glyph2-3"> -<path style="stroke:none;" d="M 3.984375 -6.296875 C 3.359375 -6.296875 2.863281 -6.050781 2.5 -5.5625 C 2.132812 -5.070312 1.953125 -4.398438 1.953125 -3.546875 C 1.953125 -2.691406 2.128906 -2.019531 2.484375 -1.53125 C 2.847656 -1.050781 3.347656 -0.8125 3.984375 -0.8125 C 4.597656 -0.8125 5.085938 -1.054688 5.453125 -1.546875 C 5.816406 -2.035156 6 -2.703125 6 -3.546875 C 6 -4.390625 5.816406 -5.054688 5.453125 -5.546875 C 5.085938 -6.046875 4.597656 -6.296875 3.984375 -6.296875 Z M 3.984375 -7.28125 C 4.992188 -7.28125 5.789062 -6.945312 6.375 -6.28125 C 6.957031 -5.625 7.25 -4.710938 7.25 -3.546875 C 7.25 -2.378906 6.957031 -1.460938 6.375 -0.796875 C 5.789062 -0.140625 4.992188 0.1875 3.984375 0.1875 C 2.960938 0.1875 2.160156 -0.140625 1.578125 -0.796875 C 1.003906 -1.460938 0.71875 -2.378906 0.71875 -3.546875 C 0.71875 -4.710938 1.003906 -5.625 1.578125 -6.28125 C 2.160156 -6.945312 2.960938 -7.28125 3.984375 -7.28125 Z M 3.984375 -7.28125 "/> -</symbol> -<symbol overflow="visible" id="glyph2-4"> -<path style="stroke:none;" d="M 2.359375 -1.0625 L 2.359375 2.703125 L 1.1875 2.703125 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6.03125 C 2.597656 -6.457031 2.90625 -6.769531 3.28125 -6.96875 C 3.65625 -7.175781 4.101562 -7.28125 4.625 -7.28125 C 5.488281 -7.28125 6.191406 -6.9375 6.734375 -6.25 C 7.273438 -5.5625 7.546875 -4.660156 7.546875 -3.546875 C 7.546875 -2.429688 7.273438 -1.53125 6.734375 -0.84375 C 6.191406 -0.15625 5.488281 0.1875 4.625 0.1875 C 4.101562 0.1875 3.65625 0.0820312 3.28125 -0.125 C 2.90625 -0.332031 2.597656 -0.644531 2.359375 -1.0625 Z M 6.328125 -3.546875 C 6.328125 -4.410156 6.148438 -5.082031 5.796875 -5.5625 C 5.441406 -6.050781 4.957031 -6.296875 4.34375 -6.296875 C 3.726562 -6.296875 3.242188 -6.050781 2.890625 -5.5625 C 2.535156 -5.082031 2.359375 -4.410156 2.359375 -3.546875 C 2.359375 -2.691406 2.535156 -2.019531 2.890625 -1.53125 C 3.242188 -1.039062 3.726562 -0.796875 4.34375 -0.796875 C 4.957031 -0.796875 5.441406 -1.039062 5.796875 -1.53125 C 6.148438 -2.019531 6.328125 -2.691406 6.328125 -3.546875 Z M 6.328125 -3.546875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-5"> -<path style="stroke:none;" d="M 5.75 -6.90625 L 5.75 -5.796875 C 5.425781 -5.960938 5.085938 -6.085938 4.734375 -6.171875 C 4.378906 -6.253906 4.007812 -6.296875 3.625 -6.296875 C 3.039062 -6.296875 2.601562 -6.207031 2.3125 -6.03125 C 2.03125 -5.851562 1.890625 -5.585938 1.890625 -5.234375 C 1.890625 -4.960938 1.988281 -4.75 2.1875 -4.59375 C 2.394531 -4.445312 2.816406 -4.300781 3.453125 -4.15625 L 3.84375 -4.0625 C 4.675781 -3.882812 5.265625 -3.632812 5.609375 -3.3125 C 5.960938 -2.988281 6.140625 -2.539062 6.140625 -1.96875 C 6.140625 -1.300781 5.878906 -0.773438 5.359375 -0.390625 C 4.835938 -0.00390625 4.117188 0.1875 3.203125 0.1875 C 2.816406 0.1875 2.414062 0.148438 2 0.078125 C 1.59375 0.00390625 1.160156 -0.109375 0.703125 -0.265625 L 0.703125 -1.46875 C 1.140625 -1.238281 1.566406 -1.066406 1.984375 -0.953125 C 2.398438 -0.847656 2.8125 -0.796875 3.21875 -0.796875 C 3.769531 -0.796875 4.191406 -0.890625 4.484375 -1.078125 C 4.785156 -1.265625 4.9375 -1.53125 4.9375 -1.875 C 4.9375 -2.1875 4.828125 -2.425781 4.609375 -2.59375 C 4.398438 -2.769531 3.9375 -2.9375 3.21875 -3.09375 L 2.8125 -3.1875 C 2.082031 -3.34375 1.554688 -3.578125 1.234375 -3.890625 C 0.910156 -4.203125 0.75 -4.632812 0.75 -5.1875 C 0.75 -5.851562 0.984375 -6.367188 1.453125 -6.734375 C 1.929688 -7.097656 2.609375 -7.28125 3.484375 -7.28125 C 3.910156 -7.28125 4.316406 -7.25 4.703125 -7.1875 C 5.085938 -7.125 5.4375 -7.03125 5.75 -6.90625 Z M 5.75 -6.90625 "/> -</symbol> -<symbol overflow="visible" id="glyph2-6"> -<path style="stroke:none;" d="M 4.453125 -3.578125 C 3.515625 -3.578125 2.863281 -3.46875 2.5 -3.25 C 2.132812 -3.03125 1.953125 -2.660156 1.953125 -2.140625 C 1.953125 -1.734375 2.085938 -1.40625 2.359375 -1.15625 C 2.628906 -0.914062 3 -0.796875 3.46875 -0.796875 C 4.113281 -0.796875 4.632812 -1.023438 5.03125 -1.484375 C 5.425781 -1.941406 5.625 -2.550781 5.625 -3.3125 L 5.625 -3.578125 Z M 6.78125 -4.0625 L 6.78125 0 L 5.625 0 L 5.625 -1.078125 C 5.351562 -0.648438 5.019531 -0.332031 4.625 -0.125 C 4.226562 0.0820312 3.738281 0.1875 3.15625 0.1875 C 2.425781 0.1875 1.847656 -0.015625 1.421875 -0.421875 C 0.992188 -0.835938 0.78125 -1.382812 0.78125 -2.0625 C 0.78125 -2.863281 1.046875 -3.46875 1.578125 -3.875 C 2.117188 -4.28125 2.921875 -4.484375 3.984375 -4.484375 L 5.625 -4.484375 L 5.625 -4.609375 C 5.625 -5.140625 5.445312 -5.550781 5.09375 -5.84375 C 4.738281 -6.144531 4.238281 -6.296875 3.59375 -6.296875 C 3.1875 -6.296875 2.789062 -6.242188 2.40625 -6.140625 C 2.019531 -6.046875 1.648438 -5.898438 1.296875 -5.703125 L 1.296875 -6.78125 C 1.722656 -6.945312 2.140625 -7.070312 2.546875 -7.15625 C 2.953125 -7.238281 3.34375 -7.28125 3.71875 -7.28125 C 4.75 -7.28125 5.515625 -7.015625 6.015625 -6.484375 C 6.523438 -5.953125 6.78125 -5.144531 6.78125 -4.0625 Z M 6.78125 -4.0625 "/> -</symbol> -<symbol overflow="visible" id="glyph2-7"> -<path style="stroke:none;" d="M 1.21875 -9.875 L 2.390625 -9.875 L 2.390625 0 L 1.21875 0 Z M 1.21875 -9.875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-8"> -<path style="stroke:none;" d="M 7.3125 -3.84375 L 7.3125 -3.28125 L 1.9375 -3.28125 C 1.988281 -2.46875 2.226562 -1.851562 2.65625 -1.4375 C 3.09375 -1.019531 3.695312 -0.8125 4.46875 -0.8125 C 4.914062 -0.8125 5.347656 -0.863281 5.765625 -0.96875 C 6.191406 -1.082031 6.613281 -1.25 7.03125 -1.46875 L 7.03125 -0.359375 C 6.613281 -0.179688 6.179688 -0.046875 5.734375 0.046875 C 5.296875 0.140625 4.851562 0.1875 4.40625 0.1875 C 3.269531 0.1875 2.367188 -0.140625 1.703125 -0.796875 C 1.046875 -1.460938 0.71875 -2.359375 0.71875 -3.484375 C 0.71875 -4.648438 1.03125 -5.570312 1.65625 -6.25 C 2.289062 -6.9375 3.140625 -7.28125 4.203125 -7.28125 C 5.160156 -7.28125 5.914062 -6.972656 6.46875 -6.359375 C 7.03125 -5.742188 7.3125 -4.90625 7.3125 -3.84375 Z M 6.140625 -4.1875 C 6.128906 -4.820312 5.945312 -5.332031 5.59375 -5.71875 C 5.25 -6.101562 4.789062 -6.296875 4.21875 -6.296875 C 3.5625 -6.296875 3.035156 -6.109375 2.640625 -5.734375 C 2.253906 -5.367188 2.03125 -4.851562 1.96875 -4.1875 Z M 6.140625 -4.1875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-9"> -<path style="stroke:none;" d="M 6.328125 -3.546875 C 6.328125 -4.410156 6.148438 -5.082031 5.796875 -5.5625 C 5.441406 -6.050781 4.957031 -6.296875 4.34375 -6.296875 C 3.726562 -6.296875 3.242188 -6.050781 2.890625 -5.5625 C 2.535156 -5.082031 2.359375 -4.410156 2.359375 -3.546875 C 2.359375 -2.691406 2.535156 -2.019531 2.890625 -1.53125 C 3.242188 -1.039062 3.726562 -0.796875 4.34375 -0.796875 C 4.957031 -0.796875 5.441406 -1.039062 5.796875 -1.53125 C 6.148438 -2.019531 6.328125 -2.691406 6.328125 -3.546875 Z M 2.359375 -6.03125 C 2.597656 -6.457031 2.90625 -6.769531 3.28125 -6.96875 C 3.65625 -7.175781 4.101562 -7.28125 4.625 -7.28125 C 5.488281 -7.28125 6.191406 -6.9375 6.734375 -6.25 C 7.273438 -5.5625 7.546875 -4.660156 7.546875 -3.546875 C 7.546875 -2.429688 7.273438 -1.53125 6.734375 -0.84375 C 6.191406 -0.15625 5.488281 0.1875 4.625 0.1875 C 4.101562 0.1875 3.65625 0.0820312 3.28125 -0.125 C 2.90625 -0.332031 2.597656 -0.644531 2.359375 -1.0625 L 2.359375 0 L 1.1875 0 L 1.1875 -9.875 L 2.359375 -9.875 Z M 2.359375 -6.03125 "/> -</symbol> -<symbol overflow="visible" id="glyph2-10"> -<path style="stroke:none;" d="M 1.21875 -7.109375 L 2.390625 -7.109375 L 2.390625 0 L 1.21875 0 Z M 1.21875 -9.875 L 2.390625 -9.875 L 2.390625 -8.390625 L 1.21875 -8.390625 Z M 1.21875 -9.875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-11"> -<path style="stroke:none;" d="M 7.140625 -4.296875 L 7.140625 0 L 5.96875 0 L 5.96875 -4.25 C 5.96875 -4.925781 5.835938 -5.429688 5.578125 -5.765625 C 5.316406 -6.097656 4.921875 -6.265625 4.390625 -6.265625 C 3.765625 -6.265625 3.269531 -6.0625 2.90625 -5.65625 C 2.539062 -5.257812 2.359375 -4.710938 2.359375 -4.015625 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.640625 -6.425781 2.96875 -6.742188 3.34375 -6.953125 C 3.71875 -7.171875 4.15625 -7.28125 4.65625 -7.28125 C 5.46875 -7.28125 6.082031 -7.023438 6.5 -6.515625 C 6.925781 -6.015625 7.140625 -5.273438 7.140625 -4.296875 Z M 7.140625 -4.296875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-12"> -<path style="stroke:none;" d="M 5.90625 -3.640625 C 5.90625 -4.484375 5.726562 -5.132812 5.375 -5.59375 C 5.03125 -6.0625 4.539062 -6.296875 3.90625 -6.296875 C 3.28125 -6.296875 2.789062 -6.0625 2.4375 -5.59375 C 2.09375 -5.132812 1.921875 -4.484375 1.921875 -3.640625 C 1.921875 -2.796875 2.09375 -2.140625 2.4375 -1.671875 C 2.789062 -1.210938 3.28125 -0.984375 3.90625 -0.984375 C 4.539062 -0.984375 5.03125 -1.210938 5.375 -1.671875 C 5.726562 -2.140625 5.90625 -2.796875 5.90625 -3.640625 Z M 7.078125 -0.875 C 7.078125 0.332031 6.804688 1.226562 6.265625 1.8125 C 5.722656 2.40625 4.898438 2.703125 3.796875 2.703125 C 3.390625 2.703125 3.003906 2.671875 2.640625 2.609375 C 2.273438 2.546875 1.921875 2.453125 1.578125 2.328125 L 1.578125 1.1875 C 1.921875 1.375 2.257812 1.507812 2.59375 1.59375 C 2.925781 1.6875 3.265625 1.734375 3.609375 1.734375 C 4.378906 1.734375 4.953125 1.535156 5.328125 1.140625 C 5.710938 0.742188 5.90625 0.140625 5.90625 -0.671875 L 5.90625 -1.25 C 5.664062 -0.832031 5.351562 -0.519531 4.96875 -0.3125 C 4.59375 -0.101562 4.144531 0 3.625 0 C 2.75 0 2.046875 -0.332031 1.515625 -1 C 0.984375 -1.664062 0.71875 -2.546875 0.71875 -3.640625 C 0.71875 -4.734375 0.984375 -5.613281 1.515625 -6.28125 C 2.046875 -6.945312 2.75 -7.28125 3.625 -7.28125 C 4.144531 -7.28125 4.59375 -7.175781 4.96875 -6.96875 C 5.351562 -6.757812 5.664062 -6.445312 5.90625 -6.03125 L 5.90625 -7.109375 L 7.078125 -7.109375 Z M 7.078125 -0.875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-13"> -<path style="stroke:none;" d="M 5.125 -8.609375 C 4.1875 -8.609375 3.441406 -8.257812 2.890625 -7.5625 C 2.347656 -6.875 2.078125 -5.929688 2.078125 -4.734375 C 2.078125 -3.535156 2.347656 -2.585938 2.890625 -1.890625 C 3.441406 -1.203125 4.1875 -0.859375 5.125 -0.859375 C 6.050781 -0.859375 6.785156 -1.203125 7.328125 -1.890625 C 7.878906 -2.585938 8.15625 -3.535156 8.15625 -4.734375 C 8.15625 -5.929688 7.878906 -6.875 7.328125 -7.5625 C 6.785156 -8.257812 6.050781 -8.609375 5.125 -8.609375 Z M 5.125 -9.65625 C 6.445312 -9.65625 7.503906 -9.207031 8.296875 -8.3125 C 9.097656 -7.414062 9.5 -6.222656 9.5 -4.734375 C 9.5 -3.234375 9.097656 -2.035156 8.296875 -1.140625 C 7.503906 -0.253906 6.445312 0.1875 5.125 0.1875 C 3.789062 0.1875 2.722656 -0.253906 1.921875 -1.140625 C 1.128906 -2.035156 0.734375 -3.234375 0.734375 -4.734375 C 0.734375 -6.222656 1.128906 -7.414062 1.921875 -8.3125 C 2.722656 -9.207031 3.789062 -9.65625 5.125 -9.65625 Z M 5.125 -9.65625 "/> -</symbol> -<symbol overflow="visible" id="glyph2-14"> -<path style="stroke:none;" d="M 1.109375 -2.8125 L 1.109375 -7.109375 L 2.265625 -7.109375 L 2.265625 -2.84375 C 2.265625 -2.175781 2.394531 -1.671875 2.65625 -1.328125 C 2.925781 -0.992188 3.320312 -0.828125 3.84375 -0.828125 C 4.476562 -0.828125 4.976562 -1.023438 5.34375 -1.421875 C 5.707031 -1.828125 5.890625 -2.378906 5.890625 -3.078125 L 5.890625 -7.109375 L 7.0625 -7.109375 L 7.0625 0 L 5.890625 0 L 5.890625 -1.09375 C 5.609375 -0.65625 5.28125 -0.332031 4.90625 -0.125 C 4.53125 0.0820312 4.09375 0.1875 3.59375 0.1875 C 2.78125 0.1875 2.160156 -0.0664062 1.734375 -0.578125 C 1.316406 -1.085938 1.109375 -1.832031 1.109375 -2.8125 Z M 4.046875 -7.28125 Z M 4.046875 -7.28125 "/> -</symbol> -<symbol overflow="visible" id="glyph2-15"> -<path style="stroke:none;" d="M 2.375 -9.125 L 2.375 -7.109375 L 4.78125 -7.109375 L 4.78125 -6.203125 L 2.375 -6.203125 L 2.375 -2.34375 C 2.375 -1.757812 2.453125 -1.382812 2.609375 -1.21875 C 2.773438 -1.0625 3.101562 -0.984375 3.59375 -0.984375 L 4.78125 -0.984375 L 4.78125 0 L 3.59375 0 C 2.6875 0 2.0625 -0.164062 1.71875 -0.5 C 1.375 -0.84375 1.203125 -1.457031 1.203125 -2.34375 L 1.203125 -6.203125 L 0.34375 -6.203125 L 0.34375 -7.109375 L 1.203125 -7.109375 L 1.203125 -9.125 Z M 2.375 -9.125 "/> -</symbol> -<symbol overflow="visible" id="glyph2-16"> -<path style="stroke:none;" d=""/> -</symbol> -<symbol overflow="visible" id="glyph2-17"> -<path style="stroke:none;" d="M 1.28125 -9.484375 L 6.71875 -9.484375 L 6.71875 -8.390625 L 2.5625 -8.390625 L 2.5625 -5.609375 L 6.3125 -5.609375 L 6.3125 -4.53125 L 2.5625 -4.53125 L 2.5625 0 L 1.28125 0 Z M 1.28125 -9.484375 "/> -</symbol> -<symbol overflow="visible" id="glyph2-18"> -<path style="stroke:none;" d="M 6.765625 -5.75 C 7.054688 -6.269531 7.40625 -6.65625 7.8125 -6.90625 C 8.21875 -7.15625 8.695312 -7.28125 9.25 -7.28125 C 9.988281 -7.28125 10.554688 -7.019531 10.953125 -6.5 C 11.359375 -5.976562 11.5625 -5.242188 11.5625 -4.296875 L 11.5625 0 L 10.390625 0 L 10.390625 -4.25 C 10.390625 -4.9375 10.265625 -5.441406 10.015625 -5.765625 C 9.773438 -6.097656 9.410156 -6.265625 8.921875 -6.265625 C 8.316406 -6.265625 7.835938 -6.0625 7.484375 -5.65625 C 7.128906 -5.257812 6.953125 -4.710938 6.953125 -4.015625 L 6.953125 0 L 5.78125 0 L 5.78125 -4.25 C 5.78125 -4.9375 5.660156 -5.441406 5.421875 -5.765625 C 5.179688 -6.097656 4.804688 -6.265625 4.296875 -6.265625 C 3.703125 -6.265625 3.226562 -6.0625 2.875 -5.65625 C 2.53125 -5.25 2.359375 -4.703125 2.359375 -4.015625 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.617188 -6.4375 2.9375 -6.757812 3.3125 -6.96875 C 3.6875 -7.175781 4.128906 -7.28125 4.640625 -7.28125 C 5.160156 -7.28125 5.597656 -7.148438 5.953125 -6.890625 C 6.316406 -6.628906 6.585938 -6.25 6.765625 -5.75 Z M 6.765625 -5.75 "/> -</symbol> -<symbol overflow="visible" id="glyph2-19"> -<path style="stroke:none;" d="M 6.953125 -9.171875 L 6.953125 -7.921875 C 6.472656 -8.148438 6.015625 -8.320312 5.578125 -8.4375 C 5.148438 -8.550781 4.734375 -8.609375 4.328125 -8.609375 C 3.628906 -8.609375 3.085938 -8.472656 2.703125 -8.203125 C 2.328125 -7.929688 2.140625 -7.546875 2.140625 -7.046875 C 2.140625 -6.628906 2.265625 -6.3125 2.515625 -6.09375 C 2.773438 -5.882812 3.253906 -5.710938 3.953125 -5.578125 L 4.734375 -5.421875 C 5.679688 -5.234375 6.382812 -4.910156 6.84375 -4.453125 C 7.300781 -3.992188 7.53125 -3.378906 7.53125 -2.609375 C 7.53125 -1.691406 7.222656 -0.992188 6.609375 -0.515625 C 5.992188 -0.046875 5.085938 0.1875 3.890625 0.1875 C 3.441406 0.1875 2.960938 0.132812 2.453125 0.03125 C 1.953125 -0.0703125 1.429688 -0.222656 0.890625 -0.421875 L 0.890625 -1.734375 C 1.410156 -1.441406 1.921875 -1.222656 2.421875 -1.078125 C 2.921875 -0.929688 3.410156 -0.859375 3.890625 -0.859375 C 4.628906 -0.859375 5.195312 -1 5.59375 -1.28125 C 5.988281 -1.570312 6.1875 -1.984375 6.1875 -2.515625 C 6.1875 -2.984375 6.039062 -3.347656 5.75 -3.609375 C 5.46875 -3.867188 5.003906 -4.066406 4.359375 -4.203125 L 3.578125 -4.359375 C 2.617188 -4.546875 1.925781 -4.84375 1.5 -5.25 C 1.070312 -5.65625 0.859375 -6.21875 0.859375 -6.9375 C 0.859375 -7.78125 1.148438 -8.441406 1.734375 -8.921875 C 2.328125 -9.410156 3.144531 -9.65625 4.1875 -9.65625 C 4.625 -9.65625 5.070312 -9.613281 5.53125 -9.53125 C 6 -9.445312 6.472656 -9.328125 6.953125 -9.171875 Z M 6.953125 -9.171875 "/> -</symbol> -<symbol overflow="visible" id="glyph2-20"> -<path style="stroke:none;" d="M 4.1875 0.65625 C 3.851562 1.507812 3.53125 2.0625 3.21875 2.3125 C 2.90625 2.570312 2.488281 2.703125 1.96875 2.703125 L 1.03125 2.703125 L 1.03125 1.734375 L 1.71875 1.734375 C 2.039062 1.734375 2.289062 1.65625 2.46875 1.5 C 2.644531 1.34375 2.835938 0.984375 3.046875 0.421875 L 3.265625 -0.109375 L 0.390625 -7.109375 L 1.625 -7.109375 L 3.84375 -1.546875 L 6.0625 -7.109375 L 7.3125 -7.109375 Z M 4.1875 0.65625 "/> -</symbol> -</g> -</defs> -<g id="surface268880"> -<rect x="0" y="0" width="774" height="152" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.75297 10.408118 L 26.433829 10.408118 L 26.433829 12.281165 L 21.75297 12.281165 Z M 21.75297 10.408118 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 29.079728 10.51222 L 32.829728 10.51222 L 32.829728 12.149915 L 29.079728 12.149915 Z M 29.079728 10.51222 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph0-1" x="20.171875" y="57.705621"/> - <use xlink:href="#glyph0-2" x="30.171875" y="57.705621"/> - <use xlink:href="#glyph0-3" x="40.171875" y="57.705621"/> - <use xlink:href="#glyph0-4" x="50.171875" y="57.705621"/> - <use xlink:href="#glyph0-5" x="60.171875" y="57.705621"/> - <use xlink:href="#glyph0-6" x="70.171875" y="57.705621"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph0-7" x="174.203125" y="60.053277"/> - <use xlink:href="#glyph0-8" x="184.203125" y="60.053277"/> -</g> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 40.925236 10.544446 L 44.675236 10.544446 L 44.675236 12.090345 L 40.925236 12.090345 Z M 40.925236 10.544446 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 34.883439 10.536634 L 38.633439 10.536634 L 38.633439 12.120032 L 34.883439 12.120032 Z M 34.883439 10.536634 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 47.084806 10.484876 L 52.045743 10.484876 L 52.045743 12.130774 L 47.084806 12.130774 Z M 47.084806 10.484876 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 53.980118 10.376868 L 59.866642 10.376868 L 59.866642 12.279603 L 53.980118 12.279603 Z M 53.980118 10.376868 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.048478 13.825501 L 59.868009 13.825501 L 59.868009 15.490345 L 54.048478 15.490345 Z M 54.048478 13.825501 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 26.481876 11.338001 L 28.593009 11.332337 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 28.968009 11.33136 L 28.468595 11.582728 L 28.593009 11.332337 L 28.467228 11.082728 Z M 28.968009 11.33136 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 32.876798 11.329798 L 34.396525 11.328626 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 34.771525 11.328431 L 34.27172 11.578821 L 34.396525 11.328626 L 34.271329 11.078821 Z M 34.771525 11.328431 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 38.633439 11.328431 L 40.438517 11.319642 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 40.813517 11.317884 L 40.314689 11.570228 L 40.438517 11.319642 L 40.312345 11.070423 Z M 40.813517 11.317884 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 44.675236 11.317298 L 46.597892 11.309876 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 46.972892 11.308313 L 46.473868 11.560267 L 46.597892 11.309876 L 46.471915 11.060267 Z M 46.972892 11.308313 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 52.045743 11.307923 L 53.4934 11.323157 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 53.8684 11.327063 L 53.365861 11.57179 L 53.4934 11.323157 L 53.370939 11.07179 Z M 53.8684 11.327063 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph0-9" x="286.757813" y="60.611871"/> - <use xlink:href="#glyph0-10" x="296.757813" y="60.611871"/> - <use xlink:href="#glyph0-1" x="306.757813" y="60.611871"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph0-11" x="405.660156" y="59.904839"/> - <use xlink:href="#glyph0-10" x="415.660156" y="59.904839"/> - <use xlink:href="#glyph0-12" x="425.660156" y="59.904839"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph1-1" x="511.308594" y="58.064616"/> - <use xlink:href="#glyph1-2" x="517.308757" y="58.064616"/> - <use xlink:href="#glyph1-3" x="523.308919" y="58.064616"/> - <use xlink:href="#glyph1-4" x="529.309082" y="58.064616"/> - <use xlink:href="#glyph1-5" x="535.309245" y="58.064616"/> - <use xlink:href="#glyph1-6" x="541.309408" y="58.064616"/> - <use xlink:href="#glyph1-7" x="547.30957" y="58.064616"/> - <use xlink:href="#glyph1-8" x="553.309733" y="58.064616"/> - <use xlink:href="#glyph1-9" x="559.309896" y="58.064616"/> - <use xlink:href="#glyph1-10" x="565.310059" y="58.064616"/> - <use xlink:href="#glyph1-11" x="571.310221" y="58.064616"/> - <use xlink:href="#glyph1-12" x="577.310384" y="58.064616"/> - <use xlink:href="#glyph1-13" x="583.310547" y="58.064616"/> - <use xlink:href="#glyph1-8" x="589.31071" y="58.064616"/> - <use xlink:href="#glyph1-14" x="595.310872" y="58.064616"/> -</g> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.671915 11.342298 L 45.655704 11.342298 L 45.655704 14.657923 L 53.561759 14.657923 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 53.936759 14.657923 L 53.436759 14.907923 L 53.561759 14.657923 L 53.436759 14.407923 Z M 53.936759 14.657923 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph1-15" x="657.078125" y="57.724772"/> - <use xlink:href="#glyph1-16" x="663.078288" y="57.724772"/> - <use xlink:href="#glyph1-10" x="669.078451" y="57.724772"/> - <use xlink:href="#glyph1-6" x="675.078613" y="57.724772"/> - <use xlink:href="#glyph1-8" x="681.078776" y="57.724772"/> - <use xlink:href="#glyph1-17" x="687.078939" y="57.724772"/> - <use xlink:href="#glyph1-11" x="693.079102" y="57.724772"/> - <use xlink:href="#glyph1-18" x="699.079264" y="57.724772"/> - <use xlink:href="#glyph1-19" x="705.079427" y="57.724772"/> - <use xlink:href="#glyph1-4" x="711.07959" y="57.724772"/> - <use xlink:href="#glyph1-20" x="717.079753" y="57.724772"/> - <use xlink:href="#glyph1-21" x="723.079915" y="57.724772"/> - <use xlink:href="#glyph1-22" x="729.080078" y="57.724772"/> - <use xlink:href="#glyph1-23" x="735.080241" y="57.724772"/> - <use xlink:href="#glyph1-21" x="741.080404" y="57.724772"/> - <use xlink:href="#glyph1-22" x="747.080566" y="57.724772"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph1-24" x="673.335938" y="124.170085"/> - <use xlink:href="#glyph1-11" x="679.3361" y="124.170085"/> - <use xlink:href="#glyph1-13" x="685.336263" y="124.170085"/> - <use xlink:href="#glyph1-8" x="691.336426" y="124.170085"/> - <use xlink:href="#glyph1-4" x="697.336589" y="124.170085"/> - <use xlink:href="#glyph1-20" x="703.336751" y="124.170085"/> - <use xlink:href="#glyph1-21" x="709.336914" y="124.170085"/> - <use xlink:href="#glyph1-22" x="715.337077" y="124.170085"/> - <use xlink:href="#glyph1-23" x="721.33724" y="124.170085"/> - <use xlink:href="#glyph1-21" x="727.337402" y="124.170085"/> - <use xlink:href="#glyph1-22" x="733.337565" y="124.170085"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph2-1" x="168.71875" y="31.959093"/> - <use xlink:href="#glyph2-2" x="175.866102" y="31.959093"/> - <use xlink:href="#glyph2-3" x="180.92551" y="31.959093"/> - <use xlink:href="#glyph2-4" x="188.879069" y="31.959093"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph2-5" x="288.109375" y="31.681749"/> - <use xlink:href="#glyph2-1" x="294.882378" y="31.681749"/> - <use xlink:href="#glyph2-6" x="302.029731" y="31.681749"/> - <use xlink:href="#glyph2-7" x="309.996039" y="31.681749"/> - <use xlink:href="#glyph2-8" x="313.607964" y="31.681749"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph2-5" x="535.988281" y="33.365343"/> - <use xlink:href="#glyph2-1" x="542.761285" y="33.365343"/> - <use xlink:href="#glyph2-6" x="549.908637" y="33.365343"/> - <use xlink:href="#glyph2-7" x="557.874946" y="33.365343"/> - <use xlink:href="#glyph2-8" x="561.486871" y="33.365343"/> -</g> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph2-9" x="26.695313" y="32.365343"/> - <use xlink:href="#glyph2-10" x="34.947266" y="32.365343"/> - <use xlink:href="#glyph2-11" x="38.559191" y="32.365343"/> - <use xlink:href="#glyph2-11" x="46.798394" y="32.365343"/> - <use xlink:href="#glyph2-10" x="55.037598" y="32.365343"/> - <use xlink:href="#glyph2-11" x="58.649523" y="32.365343"/> - <use xlink:href="#glyph2-12" x="66.888726" y="32.365343"/> -</g> -<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.14,0.14;stroke-miterlimit:10;" d="M 45.300431 9.486438 L 60.373478 9.486438 L 60.373478 16.175696 L 45.300431 16.175696 Z M 45.300431 9.486438 " transform="matrix(20,0,0,20,-434.059401,-172.47877)"/> -<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> - <use xlink:href="#glyph2-13" x="532.003906" y="11.904405"/> - <use xlink:href="#glyph2-14" x="542.236382" y="11.904405"/> - <use xlink:href="#glyph2-15" x="550.475586" y="11.904405"/> - <use xlink:href="#glyph2-4" x="555.5727" y="11.904405"/> - <use xlink:href="#glyph2-14" x="563.824653" y="11.904405"/> - <use xlink:href="#glyph2-15" x="572.063856" y="11.904405"/> - <use xlink:href="#glyph2-16" x="577.16097" y="11.904405"/> - <use xlink:href="#glyph2-17" x="581.293186" y="11.904405"/> - <use xlink:href="#glyph2-3" x="588.307346" y="11.904405"/> - <use xlink:href="#glyph2-2" x="596.260905" y="11.904405"/> - <use xlink:href="#glyph2-18" x="601.377279" y="11.904405"/> - <use xlink:href="#glyph2-6" x="614.040853" y="11.904405"/> - <use xlink:href="#glyph2-15" x="622.007161" y="11.904405"/> - <use xlink:href="#glyph2-15" x="627.104275" y="11.904405"/> - <use xlink:href="#glyph2-8" x="632.201389" y="11.904405"/> - <use xlink:href="#glyph2-2" x="640.199436" y="11.904405"/> - <use xlink:href="#glyph2-16" x="645.544217" y="11.904405"/> - <use xlink:href="#glyph2-19" x="649.676432" y="11.904405"/> - <use xlink:href="#glyph2-20" x="657.928385" y="11.904405"/> - <use xlink:href="#glyph2-5" x="665.621799" y="11.904405"/> - <use xlink:href="#glyph2-15" x="672.394803" y="11.904405"/> - <use xlink:href="#glyph2-8" x="677.491916" y="11.904405"/> - <use xlink:href="#glyph2-18" x="685.489963" y="11.904405"/> -</g> -</g> -</svg> diff --git a/Documentation/media/v4l-drivers/ivtv-cardlist.rst b/Documentation/media/v4l-drivers/ivtv-cardlist.rst deleted file mode 100644 index c34a9ebc9ac2..000000000000 --- a/Documentation/media/v4l-drivers/ivtv-cardlist.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -IVTV cards list -=============== - -.. tabularcolumns:: |p{1.4cm}|p{12.7cm}|p{3.4cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 0 - - Hauppauge WinTV PVR-250 - - IVTV16 104d:813d - - * - 1 - - Hauppauge WinTV PVR-350 - - IVTV16 104d:813d - - * - 2 - - Hauppauge WinTV PVR-150 - - IVTV16 104d:813d - - * - 3 - - AVerMedia M179 - - IVTV15 1461:a3cf, IVTV15 1461:a3ce - - * - 4 - - Yuan MPG600, Kuroutoshikou ITVC16-STVLP - - IVTV16 12ab:fff3, IVTV16 12ab:ffff - - * - 5 - - YUAN MPG160, Kuroutoshikou ITVC15-STVLP, I/O Data GV-M2TV/PCI - - IVTV15 10fc:40a0 - - * - 6 - - Yuan PG600, Diamond PVR-550 - - IVTV16 ff92:0070, IVTV16 ffab:0600 - - * - 7 - - Adaptec VideOh! AVC-2410 - - IVTV16 9005:0093 - - * - 8 - - Adaptec VideOh! AVC-2010 - - IVTV16 9005:0092 - - * - 9 - - Nagase Transgear 5000TV - - IVTV16 1461:bfff - - * - 10 - - AOpen VA2000MAX-SNT6 - - IVTV16 0000:ff5f - - * - 11 - - Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP - - IVTV16 12ab:0600, IVTV16 fbab:0600, IVTV16 1154:0523 - - * - 12 - - I/O Data GV-MVP/RX, GV-MVP/RX2W (dual tuner) - - IVTV16 10fc:d01e, IVTV16 10fc:d038, IVTV16 10fc:d039 - - * - 13 - - I/O Data GV-MVP/RX2E - - IVTV16 10fc:d025 - - * - 14 - - GotView PCI DVD - - IVTV16 12ab:0600 - - * - 15 - - GotView PCI DVD2 Deluxe - - IVTV16 ffac:0600 - - * - 16 - - Yuan MPC622 - - IVTV16 ff01:d998 - - * - 17 - - Digital Cowboy DCT-MTVP1 - - IVTV16 1461:bfff - - * - 18 - - Yuan PG600-2, GotView PCI DVD Lite - - IVTV16 ffab:0600, IVTV16 ffad:0600 - - * - 19 - - Club3D ZAP-TV1x01 - - IVTV16 ffab:0600 - - * - 20 - - AVerTV MCE 116 Plus - - IVTV16 1461:c439 - - * - 21 - - ASUS Falcon2 - - IVTV16 1043:4b66, IVTV16 1043:462e, IVTV16 1043:4b2e - - * - 22 - - AVerMedia PVR-150 Plus / AVerTV M113 Partsnic (Daewoo) Tuner - - IVTV16 1461:c034, IVTV16 1461:c035 - - * - 23 - - AVerMedia EZMaker PCI Deluxe - - IVTV16 1461:c03f - - * - 24 - - AVerMedia M104 - - IVTV16 1461:c136 - - * - 25 - - Buffalo PC-MV5L/PCI - - IVTV16 1154:052b - - * - 26 - - AVerMedia UltraTV 1500 MCE / AVerTV M113 Philips Tuner - - IVTV16 1461:c019, IVTV16 1461:c01b - - * - 27 - - Sony VAIO Giga Pocket (ENX Kikyou) - - IVTV16 104d:813d - - * - 28 - - Hauppauge WinTV PVR-350 (V1) - - IVTV16 104d:813d - - * - 29 - - Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR) - - IVTV16 104d:813d - - * - 30 - - Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR/YCS) - - IVTV16 104d:813d diff --git a/Documentation/media/v4l-drivers/ivtv.rst b/Documentation/media/v4l-drivers/ivtv.rst deleted file mode 100644 index 7b8775d20214..000000000000 --- a/Documentation/media/v4l-drivers/ivtv.rst +++ /dev/null @@ -1,218 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -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: - - 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 --------- - - * 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 - * Supports NTSC, PAL, SECAM with stereo sound - * Supports SAP and bilingual transmissions. - * Supports raw VBI (closed captions and teletext). - * Supports sliced VBI (closed captions and teletext) and is able to insert - this into the captured MPEG stream. - * Supports raw YUV and PCM input. - -Additional features for the PVR-350 (CX23415 based) ---------------------------------------------------- - - * Provides hardware mpeg2 playback - * Provides comprehensive OSD (On Screen Display: ie. graphics overlaying the - video signal) - * Provides a framebuffer (allowing X applications to appear on the video - device) - * Supports raw YUV output. - -IMPORTANT: In case of problems first read this page: - https://help.ubuntu.com/community/Install_IVTV_Troubleshooting - -See also --------- - -https://linuxtv.org - -IRC ---- - -irc://irc.freenode.net/#v4l - ----------------------------------------------------------- - -Devices -------- - -A maximum of 12 ivtv boards are allowed at the moment. - -Cards that don't have a video output capability (i.e. non PVR350 cards) -lack the vbi8, vbi16, video16 and video48 devices. They also do not -support the framebuffer device /dev/fbx for OSD. - -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: - -.. 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) - -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 -the card number to the base device number'. If you have other capture -cards (e.g. WinTV PCI) that are detected first, then you have to tell -the ivtv module about it so that it will start counting at 1 (or 2, or -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. - - Reading from this device gets you the MPEG1/2 program stream. - Example: - - .. code-block:: none - - cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit) - - -- /dev/video16 - - The decoder output device(s) - - 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: - - .. code-block:: none - - cat my.mpg >/dev/video16 - - -- /dev/video24 - - The raw audio capture device(s). - - 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/video32 - - The raw video capture device(s) - - Read-only - - 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/video48 - - The raw video display device(s) - - Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. - - Writes a YUV stream to the decoder of the card. - - -- /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. diff --git a/Documentation/media/v4l-drivers/meye.rst b/Documentation/media/v4l-drivers/meye.rst deleted file mode 100644 index 9098a1e65f8b..000000000000 --- a/Documentation/media/v4l-drivers/meye.rst +++ /dev/null @@ -1,93 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. 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 -can be found in the "Misc devices" section of the kernel configuration utility) -to be compiled and installed (using its "camera=1" parameter). - -It can do at maximum 30 fps @ 320x240 or 15 fps @ 640x480. - -Grabbing is supported in packed YUV colorspace only. - -MJPEG hardware grabbing is supported via a private API (see below). - -Hardware supported ------------------- - -This driver supports the 'second' version of the MotionEye camera :) - -The first version was connected directly on the video bus of the Neomagic -video card and is unsupported. - -The second one, made by Kawasaki Steel is fully supported by this -driver (PCI vendor/device is 0x136b/0xff01) - -The third one, present in recent (more or less last year) Picturebooks -(C1M* models), is not supported. The manufacturer has given the specs -to the developers under a NDA (which allows the development of a GPL -driver however), but things are not moving very fast (see -http://r-engine.sourceforge.net/) (PCI vendor/device is 0x10cf/0x2011). - -There is a forth model connected on the USB bus in TR1* Vaio laptops. -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 --------------- - -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 ----------- - -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 - -Usage: ------- - -.. code-block:: none - - xawtv >= 3.49 (<http://bytesex.org/xawtv/>) - for display and uncompressed video capture: - - xawtv -c /dev/video0 -geometry 640x480 - or - xawtv -c /dev/video0 -geometry 320x240 - - motioneye (<http://popies.net/meye/>) - for getting ppm or jpg snapshots, mjpeg video - -Bugs / Todo ------------ - -- 'motioneye' still uses the meye private v4l1 API extensions. diff --git a/Documentation/media/v4l-drivers/omap3isp.rst b/Documentation/media/v4l-drivers/omap3isp.rst deleted file mode 100644 index bc447bbec7ce..000000000000 --- a/Documentation/media/v4l-drivers/omap3isp.rst +++ /dev/null @@ -1,92 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -OMAP 3 Image Signal Processor (ISP) driver -========================================== - -Copyright |copy| 2010 Nokia Corporation - -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 -written by Texas Instruments but since that it has been rewritten (twice) at -Nokia. - -The driver has been successfully used on the following versions of OMAP 3: - -- 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 -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 - -Each possible link in the ISP is modelled by a link in the Media controller -interface. For an example program see [#]_. - - -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 -vertical blanking period on the sensor. In memory-to-memory operation the pipe -is run one frame at a time. Applying the settings is done between the frames. - -All the blocks in the ISP, excluding the CSI-2 and possibly the CCP2 receiver, -insist on receiving complete frames. Sensors must thus never send the ISP -partial frames. - -Autoidle does have issues with some ISP blocks on the 3430, at least. -Autoidle is only enabled on 3630 when the omap3isp module parameter autoidle -is non-zero. - -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> -Referenced 2011-03-05. - -OMAP 35xx TRM: -<URL:http://www.ti.com/litv/pdf/spruf98o> Referenced 2011-03-05. - -OMAP 3630 TRM: -<URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vQ.zip> -Referenced 2011-03-05. - -DM 3730 TRM: -<URL:http://www.ti.com/litv/pdf/sprugn4h> Referenced 2011-03-06. - - -References ----------- - -.. [#] http://git.ideasonboard.org/?p=media-ctl.git;a=summary diff --git a/Documentation/media/v4l-drivers/omap4_camera.rst b/Documentation/media/v4l-drivers/omap4_camera.rst deleted file mode 100644 index 24db4222d36d..000000000000 --- a/Documentation/media/v4l-drivers/omap4_camera.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -OMAP4 ISS Driver -================ - -Author: Sergio Aguirre <sergio.a.aguirre@gmail.com> - -Copyright (C) 2012, Texas Instruments - -Introduction ------------- - -The OMAP44XX family of chips contains the Imaging SubSystem (a.k.a. ISS), -Which contains several components that can be categorized in 3 big groups: - -- Interfaces (2 Interfaces: CSI2-A & CSI2-B/CCP2) -- ISP (Image Signal Processor) -- SIMCOP (Still Image Coprocessor) - -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. - -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). - -Tested platforms ----------------- - -- OMAP4430SDP, w/ ES2.1 GP & SEVM4430-CAM-V1-0 (Contains IMX060 & OV5640, in - which only the last one is supported, outputting YUV422 frames). - -- TI Blaze MDP, w/ OMAP4430 ES2.2 EMU (Contains 1 IMX060 & 2 OV5650 sensors, in - which only the OV5650 are supported, outputting RAW10 frames). - -- PandaBoard, Rev. A2, w/ OMAP4430 ES2.1 GP & OV adapter board, tested with - following sensors: - * OV5640 - * OV5650 - -- Tested on mainline kernel: - - http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary - - Tag: v3.3 (commit c16fa4f2ad19908a47c63d8fa436a1178438c7e7) - -File list ---------- -drivers/staging/media/omap4iss/ -include/linux/platform_data/media/omap4iss.h - -References ----------- - -.. [#f1] http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?navigationId=12037&templateId=6123#62 -.. [#f2] http://lwn.net/Articles/420485/ diff --git a/Documentation/media/v4l-drivers/philips.rst b/Documentation/media/v4l-drivers/philips.rst deleted file mode 100644 index e2840be10d08..000000000000 --- a/Documentation/media/v4l-drivers/philips.rst +++ /dev/null @@ -1,247 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -Philips webcams (pwc driver) -============================ - -This file contains some additional information for the Philips and OEM webcams. -E-mail: webcam@smcc.demon.nl Last updated: 2004-01-19 -Site: http://www.smcc.demon.nl/webcam/ - -As of this moment, the following cameras are supported: - - * Philips PCA645 - * Philips PCA646 - * Philips PCVC675 - * Philips PCVC680 - * Philips PCVC690 - * Philips PCVC720/40 - * Philips PCVC730 - * Philips PCVC740 - * Philips PCVC750 - * Askey VC010 - * Creative Labs Webcam 5 - * Creative Labs Webcam Pro Ex - * Logitech QuickCam 3000 Pro - * Logitech QuickCam 4000 Pro - * Logitech QuickCam Notebook Pro - * Logitech QuickCam Zoom - * Logitech QuickCam Orbit - * Logitech QuickCam Sphere - * Samsung MPC-C10 - * Samsung MPC-C30 - * Sotec Afina Eye - * AME CU-001 - * Visionite VCS-UM100 - * Visionite VCS-UC300 - -The main webpage for the Philips driver is at the address above. It contains -a lot of extra information, a FAQ, and the binary plugin 'PWCX'. This plugin -contains decompression routines that allow you to use higher image sizes and -framerates; in addition the webcam uses less bandwidth on the USB bus (handy -if you want to run more than 1 camera simultaneously). These routines fall -under a NDA, and may therefore not be distributed as source; however, its use -is completely optional. - -You can build this code either into your kernel, or as a module. I recommend -the latter, since it makes troubleshooting a lot easier. The built-in -microphone is supported through the USB Audio class. - -When you load the module you can set some default settings for the -camera; some programs depend on a particular image-size or -format and -don't know how to set it properly in the driver. The options are: - -size - Can be one of 'sqcif', 'qsif', 'qcif', 'sif', 'cif' or - 'vga', for an image size of resp. 128x96, 160x120, 176x144, - 320x240, 352x288 and 640x480 (of course, only for those cameras that - support these resolutions). - -fps - Specifies the desired framerate. Is an integer in the range of 4-30. - -fbufs - This parameter specifies the number of internal buffers to use for storing - frames from the cam. This will help if the process that reads images from - the cam is a bit slow or momentarily busy. However, on slow machines it - only introduces lag, so choose carefully. The default is 3, which is - reasonable. You can set it between 2 and 5. - -mbufs - This is an integer between 1 and 10. It will tell the module the number of - buffers to reserve for mmap(), VIDIOCCGMBUF, VIDIOCMCAPTURE and friends. - The default is 2, which is adequate for most applications (double - buffering). - - Should you experience a lot of 'Dumping frame...' messages during - grabbing with a tool that uses mmap(), you might want to increase if. - However, it doesn't really buffer images, it just gives you a bit more - slack when your program is behind. But you need a multi-threaded or - forked program to really take advantage of these buffers. - - The absolute maximum is 10, but don't set it too high! Every buffer takes - up 460 KB of RAM, so unless you have a lot of memory setting this to - something more than 4 is an absolute waste. This memory is only - allocated during open(), so nothing is wasted when the camera is not in - use. - -power_save - When power_save is enabled (set to 1), the module will try to shut down - the cam on close() and re-activate on open(). This will save power and - turn off the LED. Not all cameras support this though (the 645 and 646 - don't have power saving at all), and some models don't work either (they - will shut down, but never wake up). Consider this experimental. By - default this option is disabled. - -compression (only useful with the plugin) - With this option you can control the compression factor that the camera - uses to squeeze the image through the USB bus. You can set the - parameter between 0 and 3:: - - 0 = prefer uncompressed images; if the requested mode is not available - in an uncompressed format, the driver will silently switch to low - compression. - 1 = low compression. - 2 = medium compression. - 3 = high compression. - - High compression takes less bandwidth of course, but it could also - introduce some unwanted artefacts. The default is 2, medium compression. - See the FAQ on the website for an overview of which modes require - compression. - - The compression parameter does not apply to the 645 and 646 cameras - and OEM models derived from those (only a few). Most cams honour this - parameter. - -leds - This settings takes 2 integers, that define the on/off time for the LED - (in milliseconds). One of the interesting things that you can do with - this is let the LED blink while the camera is in use. This:: - - leds=500,500 - - will blink the LED once every second. But with:: - - leds=0,0 - - the LED never goes on, making it suitable for silent surveillance. - - By default the camera's LED is on solid while in use, and turned off - when the camera is not used anymore. - - This parameter works only with the ToUCam range of cameras (720, 730, 740, - 750) and OEMs. For other cameras this command is silently ignored, and - the LED cannot be controlled. - - Finally: this parameters does not take effect UNTIL the first time you - open the camera device. Until then, the LED remains on. - -dev_hint - A long standing problem with USB devices is their dynamic nature: you - never know what device a camera gets assigned; it depends on module load - order, the hub configuration, the order in which devices are plugged in, - and the phase of the moon (i.e. it can be random). With this option you - can give the driver a hint as to what video device node (/dev/videoX) it - should use with a specific camera. This is also handy if you have two - cameras of the same model. - - A camera is specified by its type (the number from the camera model, - like PCA645, PCVC750VC, etc) and optionally the serial number (visible - in /sys/kernel/debug/usb/devices). A hint consists of a string with the - following format:: - - [type[.serialnumber]:]node - - The square brackets mean that both the type and the serialnumber are - optional, but a serialnumber cannot be specified without a type (which - would be rather pointless). The serialnumber is separated from the type - by a '.'; the node number by a ':'. - - This somewhat cryptic syntax is best explained by a few examples:: - - dev_hint=3,5 The first detected cam gets assigned - /dev/video3, the second /dev/video5. Any - other cameras will get the first free - available slot (see below). - - dev_hint=645:1,680:2 The PCA645 camera will get /dev/video1, - and a PCVC680 /dev/video2. - - dev_hint=645.0123:3,645.4567:0 The PCA645 camera with serialnumber - 0123 goes to /dev/video3, the same - camera model with the 4567 serial - gets /dev/video0. - - dev_hint=750:1,4,5,6 The PCVC750 camera will get /dev/video1, the - next 3 Philips cams will use /dev/video4 - through /dev/video6. - - Some points worth knowing: - - - Serialnumbers are case sensitive and must be written full, including - leading zeroes (it's treated as a string). - - If a device node is already occupied, registration will fail and - the webcam is not available. - - You can have up to 64 video devices; be sure to make enough device - nodes in /dev if you want to spread the numbers. - After /dev/video9 comes /dev/video10 (not /dev/videoA). - - If a camera does not match any dev_hint, it will simply get assigned - the first available device node, just as it used to be. - -trace - In order to better detect problems, it is now possible to turn on a - 'trace' of some of the calls the module makes; it logs all items in your - kernel log at debug level. - - The trace variable is a bitmask; each bit represents a certain feature. - If you want to trace something, look up the bit value(s) in the table - below, add the values together and supply that to the trace variable. - - ====== ======= ================================================ ======= - Value Value Description Default - (dec) (hex) - ====== ======= ================================================ ======= - 1 0x1 Module initialization; this will log messages On - while loading and unloading the module - - 2 0x2 probe() and disconnect() traces On - - 4 0x4 Trace open() and close() calls Off - - 8 0x8 read(), mmap() and associated ioctl() calls Off - - 16 0x10 Memory allocation of buffers, etc. Off - - 32 0x20 Showing underflow, overflow and Dumping frame On - messages - - 64 0x40 Show viewport and image sizes Off - - 128 0x80 PWCX debugging Off - ====== ======= ================================================ ======= - - For example, to trace the open() & read() functions, sum 8 + 4 = 12, - so you would supply trace=12 during insmod or modprobe. If - you want to turn the initialization and probing tracing off, set trace=0. - The default value for trace is 35 (0x23). - - - -Example:: - - # modprobe pwc size=cif fps=15 power_save=1 - -The fbufs, mbufs and trace parameters are global and apply to all connected -cameras. Each camera has its own set of buffers. - -size and fps only specify defaults when you open() the device; this is to -accommodate some tools that don't set the size. You can change these -settings after open() with the Video4Linux ioctl() calls. The default of -defaults is QCIF size at 10 fps. - -The compression parameter is semiglobal; it sets the initial compression -preference for all camera's, but this parameter can be set per camera with -the VIDIOCPWCSCQUAL ioctl() call. - -All parameters are optional. - diff --git a/Documentation/media/v4l-drivers/qcom_camss.rst b/Documentation/media/v4l-drivers/qcom_camss.rst deleted file mode 100644 index a72e17d09cb7..000000000000 --- a/Documentation/media/v4l-drivers/qcom_camss.rst +++ /dev/null @@ -1,185 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -Qualcomm Camera Subsystem driver -================================ - -Introduction ------------- - -This file documents the Qualcomm Camera Subsystem driver located under -drivers/media/platform/qcom/camss. - -The current version of the driver supports the Camera Subsystem found on -Qualcomm MSM8916/APQ8016 and MSM8996/APQ8096 processors. - -The driver implements V4L2, Media controller and V4L2 subdev interfaces. -Camera sensor using V4L2 subdev interface in the kernel is supported. - -The driver is implemented using as a reference the Qualcomm Camera Subsystem -driver for Android as found in Code Aurora [#f1]_ [#f2]_. - - -Qualcomm Camera Subsystem hardware ----------------------------------- - -The Camera Subsystem hardware found on 8x16 / 8x96 processors and supported by -the driver consists of: - -- 2 / 3 CSIPHY modules. They handle the Physical layer of the CSI2 receivers. - A separate camera sensor can be connected to each of the CSIPHY module; -- 2 / 4 CSID (CSI Decoder) modules. They handle the Protocol and Application - layer of the CSI2 receivers. A CSID can decode data stream from any of the - CSIPHY. Each CSID also contains a TG (Test Generator) block which can generate - artificial input data for test purposes; -- ISPIF (ISP Interface) module. Handles the routing of the data streams from - the CSIDs to the inputs of the VFE; -- 1 / 2 VFE (Video Front End) module(s). Contain a pipeline of image processing - hardware blocks. The VFE has different input interfaces. The PIX (Pixel) input - interface feeds the input data to the image processing pipeline. The image - processing pipeline contains also a scale and crop module at the end. Three - RDI (Raw Dump Interface) input interfaces bypass the image processing - pipeline. The VFE also contains the AXI bus interface which writes the output - data to memory. - - -Supported functionality ------------------------ - -The current version of the driver supports: - -- Input from camera sensor via CSIPHY; -- Generation of test input data by the TG in CSID; -- RDI interface of VFE - - - Raw dump of the input data to memory. - - Supported formats: - - - YUYV/UYVY/YVYU/VYUY (packed YUV 4:2:2 - V4L2_PIX_FMT_YUYV / - V4L2_PIX_FMT_UYVY / V4L2_PIX_FMT_YVYU / V4L2_PIX_FMT_VYUY); - - MIPI RAW8 (8bit Bayer RAW - V4L2_PIX_FMT_SRGGB8 / - V4L2_PIX_FMT_SGRBG8 / V4L2_PIX_FMT_SGBRG8 / V4L2_PIX_FMT_SBGGR8); - - MIPI RAW10 (10bit packed Bayer RAW - V4L2_PIX_FMT_SBGGR10P / - V4L2_PIX_FMT_SGBRG10P / V4L2_PIX_FMT_SGRBG10P / V4L2_PIX_FMT_SRGGB10P / - V4L2_PIX_FMT_Y10P); - - MIPI RAW12 (12bit packed Bayer RAW - V4L2_PIX_FMT_SRGGB12P / - V4L2_PIX_FMT_SGBRG12P / V4L2_PIX_FMT_SGRBG12P / V4L2_PIX_FMT_SRGGB12P). - - (8x96 only) MIPI RAW14 (14bit packed Bayer RAW - V4L2_PIX_FMT_SRGGB14P / - V4L2_PIX_FMT_SGBRG14P / V4L2_PIX_FMT_SGRBG14P / V4L2_PIX_FMT_SRGGB14P). - - - (8x96 only) Format conversion of the input data. - - Supported input formats: - - - MIPI RAW10 (10bit packed Bayer RAW - V4L2_PIX_FMT_SBGGR10P / V4L2_PIX_FMT_Y10P). - - Supported output formats: - - - Plain16 RAW10 (10bit unpacked Bayer RAW - V4L2_PIX_FMT_SBGGR10 / V4L2_PIX_FMT_Y10). - -- PIX interface of VFE - - - Format conversion of the input data. - - Supported input formats: - - - YUYV/UYVY/YVYU/VYUY (packed YUV 4:2:2 - V4L2_PIX_FMT_YUYV / - V4L2_PIX_FMT_UYVY / V4L2_PIX_FMT_YVYU / V4L2_PIX_FMT_VYUY). - - Supported output formats: - - - NV12/NV21 (two plane YUV 4:2:0 - V4L2_PIX_FMT_NV12 / V4L2_PIX_FMT_NV21); - - NV16/NV61 (two plane YUV 4:2:2 - V4L2_PIX_FMT_NV16 / V4L2_PIX_FMT_NV61). - - (8x96 only) YUYV/UYVY/YVYU/VYUY (packed YUV 4:2:2 - V4L2_PIX_FMT_YUYV / - V4L2_PIX_FMT_UYVY / V4L2_PIX_FMT_YVYU / V4L2_PIX_FMT_VYUY). - - - Scaling support. Configuration of the VFE Encoder Scale module - for downscalling with ratio up to 16x. - - - Cropping support. Configuration of the VFE Encoder Crop module. - -- Concurrent and independent usage of two (8x96: three) data inputs - - could be camera sensors and/or TG. - - -Driver Architecture and Design ------------------------------- - -The driver implements the V4L2 subdev interface. With the goal to model the -hardware links between the modules and to expose a clean, logical and usable -interface, the driver is split into V4L2 sub-devices as follows (8x16 / 8x96): - -- 2 / 3 CSIPHY sub-devices - each CSIPHY is represented by a single sub-device; -- 2 / 4 CSID sub-devices - each CSID is represented by a single sub-device; -- 2 / 4 ISPIF sub-devices - ISPIF is represented by a number of sub-devices - equal to the number of CSID sub-devices; -- 4 / 8 VFE sub-devices - VFE is represented by a number of sub-devices equal to - the number of the input interfaces (3 RDI and 1 PIX for each VFE). - -The considerations to split the driver in this particular way are as follows: - -- representing CSIPHY and CSID modules by a separate sub-device for each module - allows to model the hardware links between these modules; -- representing VFE by a separate sub-devices for each input interface allows - to use the input interfaces concurrently and independently as this is - supported by the hardware; -- representing ISPIF by a number of sub-devices equal to the number of CSID - sub-devices allows to create linear media controller pipelines when using two - cameras simultaneously. This avoids branches in the pipelines which otherwise - will require a) userspace and b) media framework (e.g. power on/off - operations) to make assumptions about the data flow from a sink pad to a - source pad on a single media entity. - -Each VFE sub-device is linked to a separate video device node. - -The media controller pipeline graph is as follows (with connected two / three -OV5645 camera sensors): - -.. _qcom_camss_graph: - -.. kernel-figure:: qcom_camss_graph.dot - :alt: qcom_camss_graph.dot - :align: center - - Media pipeline graph 8x16 - -.. kernel-figure:: qcom_camss_8x96_graph.dot - :alt: qcom_camss_8x96_graph.dot - :align: center - - Media pipeline graph 8x96 - - -Implementation --------------- - -Runtime configuration of the hardware (updating settings while streaming) is -not required to implement the currently supported functionality. The complete -configuration on each hardware module is applied on STREAMON ioctl based on -the current active media links, formats and controls set. - -The output size of the scaler module in the VFE is configured with the actual -compose selection rectangle on the sink pad of the 'msm_vfe0_pix' entity. - -The crop output area of the crop module in the VFE is configured with the actual -crop selection rectangle on the source pad of the 'msm_vfe0_pix' entity. - - -Documentation -------------- - -APQ8016 Specification: -https://developer.qualcomm.com/download/sd410/snapdragon-410-processor-device-specification.pdf -Referenced 2016-11-24. - -APQ8096 Specification: -https://developer.qualcomm.com/download/sd820e/qualcomm-snapdragon-820e-processor-apq8096sge-device-specification.pdf -Referenced 2018-06-22. - -References ----------- - -.. [#f1] https://source.codeaurora.org/quic/la/kernel/msm-3.10/ -.. [#f2] https://source.codeaurora.org/quic/la/kernel/msm-3.18/ diff --git a/Documentation/media/v4l-drivers/qcom_camss_8x96_graph.dot b/Documentation/media/v4l-drivers/qcom_camss_8x96_graph.dot deleted file mode 100644 index 7ed243b41b67..000000000000 --- a/Documentation/media/v4l-drivers/qcom_camss_8x96_graph.dot +++ /dev/null @@ -1,106 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 - -digraph board { - rankdir=TB - n00000001 [label="{{<port0> 0} | msm_csiphy0\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000001:port1 -> n0000000a:port0 [style=dashed] - n00000001:port1 -> n0000000d:port0 [style=dashed] - n00000001:port1 -> n00000010:port0 [style=dashed] - n00000001:port1 -> n00000013:port0 [style=dashed] - n00000004 [label="{{<port0> 0} | msm_csiphy1\n/dev/v4l-subdev1 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000004:port1 -> n0000000a:port0 [style=dashed] - n00000004:port1 -> n0000000d:port0 [style=dashed] - n00000004:port1 -> n00000010:port0 [style=dashed] - n00000004:port1 -> n00000013:port0 [style=dashed] - n00000007 [label="{{<port0> 0} | msm_csiphy2\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000007:port1 -> n0000000a:port0 [style=dashed] - n00000007:port1 -> n0000000d:port0 [style=dashed] - n00000007:port1 -> n00000010:port0 [style=dashed] - n00000007:port1 -> n00000013:port0 [style=dashed] - n0000000a [label="{{<port0> 0} | msm_csid0\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000000a:port1 -> n00000016:port0 [style=dashed] - n0000000a:port1 -> n00000019:port0 [style=dashed] - n0000000a:port1 -> n0000001c:port0 [style=dashed] - n0000000a:port1 -> n0000001f:port0 [style=dashed] - n0000000d [label="{{<port0> 0} | msm_csid1\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000000d:port1 -> n00000016:port0 [style=dashed] - n0000000d:port1 -> n00000019:port0 [style=dashed] - n0000000d:port1 -> n0000001c:port0 [style=dashed] - n0000000d:port1 -> n0000001f:port0 [style=dashed] - n00000010 [label="{{<port0> 0} | msm_csid2\n/dev/v4l-subdev5 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000010:port1 -> n00000016:port0 [style=dashed] - n00000010:port1 -> n00000019:port0 [style=dashed] - n00000010:port1 -> n0000001c:port0 [style=dashed] - n00000010:port1 -> n0000001f:port0 [style=dashed] - n00000013 [label="{{<port0> 0} | msm_csid3\n/dev/v4l-subdev6 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000013:port1 -> n00000016:port0 [style=dashed] - n00000013:port1 -> n00000019:port0 [style=dashed] - n00000013:port1 -> n0000001c:port0 [style=dashed] - n00000013:port1 -> n0000001f:port0 [style=dashed] - n00000016 [label="{{<port0> 0} | msm_ispif0\n/dev/v4l-subdev7 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000016:port1 -> n00000022:port0 [style=dashed] - n00000016:port1 -> n0000002b:port0 [style=dashed] - n00000016:port1 -> n00000034:port0 [style=dashed] - n00000016:port1 -> n0000003d:port0 [style=dashed] - n00000016:port1 -> n00000046:port0 [style=dashed] - n00000016:port1 -> n0000004f:port0 [style=dashed] - n00000016:port1 -> n00000058:port0 [style=dashed] - n00000016:port1 -> n00000061:port0 [style=dashed] - n00000019 [label="{{<port0> 0} | msm_ispif1\n/dev/v4l-subdev8 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000019:port1 -> n00000022:port0 [style=dashed] - n00000019:port1 -> n0000002b:port0 [style=dashed] - n00000019:port1 -> n00000034:port0 [style=dashed] - n00000019:port1 -> n0000003d:port0 [style=dashed] - n00000019:port1 -> n00000046:port0 [style=dashed] - n00000019:port1 -> n0000004f:port0 [style=dashed] - n00000019:port1 -> n00000058:port0 [style=dashed] - n00000019:port1 -> n00000061:port0 [style=dashed] - n0000001c [label="{{<port0> 0} | msm_ispif2\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000001c:port1 -> n00000022:port0 [style=dashed] - n0000001c:port1 -> n0000002b:port0 [style=dashed] - n0000001c:port1 -> n00000034:port0 [style=dashed] - n0000001c:port1 -> n0000003d:port0 [style=dashed] - n0000001c:port1 -> n00000046:port0 [style=dashed] - n0000001c:port1 -> n0000004f:port0 [style=dashed] - n0000001c:port1 -> n00000058:port0 [style=dashed] - n0000001c:port1 -> n00000061:port0 [style=dashed] - n0000001f [label="{{<port0> 0} | msm_ispif3\n/dev/v4l-subdev10 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000001f:port1 -> n00000022:port0 [style=dashed] - n0000001f:port1 -> n0000002b:port0 [style=dashed] - n0000001f:port1 -> n00000034:port0 [style=dashed] - n0000001f:port1 -> n0000003d:port0 [style=dashed] - n0000001f:port1 -> n00000046:port0 [style=dashed] - n0000001f:port1 -> n0000004f:port0 [style=dashed] - n0000001f:port1 -> n00000058:port0 [style=dashed] - n0000001f:port1 -> n00000061:port0 [style=dashed] - n00000022 [label="{{<port0> 0} | msm_vfe0_rdi0\n/dev/v4l-subdev11 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000022:port1 -> n00000025 [style=bold] - n00000025 [label="msm_vfe0_video0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] - n0000002b [label="{{<port0> 0} | msm_vfe0_rdi1\n/dev/v4l-subdev12 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000002b:port1 -> n0000002e [style=bold] - n0000002e [label="msm_vfe0_video1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] - n00000034 [label="{{<port0> 0} | msm_vfe0_rdi2\n/dev/v4l-subdev13 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000034:port1 -> n00000037 [style=bold] - n00000037 [label="msm_vfe0_video2\n/dev/video2", shape=box, style=filled, fillcolor=yellow] - n0000003d [label="{{<port0> 0} | msm_vfe0_pix\n/dev/v4l-subdev14 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000003d:port1 -> n00000040 [style=bold] - n00000040 [label="msm_vfe0_video3\n/dev/video3", shape=box, style=filled, fillcolor=yellow] - n00000046 [label="{{<port0> 0} | msm_vfe1_rdi0\n/dev/v4l-subdev15 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000046:port1 -> n00000049 [style=bold] - n00000049 [label="msm_vfe1_video0\n/dev/video4", shape=box, style=filled, fillcolor=yellow] - n0000004f [label="{{<port0> 0} | msm_vfe1_rdi1\n/dev/v4l-subdev16 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000004f:port1 -> n00000052 [style=bold] - n00000052 [label="msm_vfe1_video1\n/dev/video5", shape=box, style=filled, fillcolor=yellow] - n00000058 [label="{{<port0> 0} | msm_vfe1_rdi2\n/dev/v4l-subdev17 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000058:port1 -> n0000005b [style=bold] - n0000005b [label="msm_vfe1_video2\n/dev/video6", shape=box, style=filled, fillcolor=yellow] - n00000061 [label="{{<port0> 0} | msm_vfe1_pix\n/dev/v4l-subdev18 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000061:port1 -> n00000064 [style=bold] - n00000064 [label="msm_vfe1_video3\n/dev/video7", shape=box, style=filled, fillcolor=yellow] - n000000e2 [label="{{} | ov5645 3-0039\n/dev/v4l-subdev19 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n000000e2:port0 -> n00000004:port0 [style=bold] - n000000e4 [label="{{} | ov5645 3-003a\n/dev/v4l-subdev20 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n000000e4:port0 -> n00000007:port0 [style=bold] - n000000e6 [label="{{} | ov5645 3-003b\n/dev/v4l-subdev21 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n000000e6:port0 -> n00000001:port0 [style=bold] -} diff --git a/Documentation/media/v4l-drivers/qcom_camss_graph.dot b/Documentation/media/v4l-drivers/qcom_camss_graph.dot deleted file mode 100644 index ef7dca92fd0b..000000000000 --- a/Documentation/media/v4l-drivers/qcom_camss_graph.dot +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 - -digraph board { - rankdir=TB - n00000001 [label="{{<port0> 0} | msm_csiphy0\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000001:port1 -> n00000007:port0 [style=dashed] - n00000001:port1 -> n0000000a:port0 [style=dashed] - n00000004 [label="{{<port0> 0} | msm_csiphy1\n/dev/v4l-subdev1 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000004:port1 -> n00000007:port0 [style=dashed] - n00000004:port1 -> n0000000a:port0 [style=dashed] - n00000007 [label="{{<port0> 0} | msm_csid0\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000007:port1 -> n0000000d:port0 [style=dashed] - n00000007:port1 -> n00000010:port0 [style=dashed] - n0000000a [label="{{<port0> 0} | msm_csid1\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000000a:port1 -> n0000000d:port0 [style=dashed] - n0000000a:port1 -> n00000010:port0 [style=dashed] - n0000000d [label="{{<port0> 0} | msm_ispif0\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000000d:port1 -> n00000013:port0 [style=dashed] - n0000000d:port1 -> n0000001c:port0 [style=dashed] - n0000000d:port1 -> n00000025:port0 [style=dashed] - n0000000d:port1 -> n0000002e:port0 [style=dashed] - n00000010 [label="{{<port0> 0} | msm_ispif1\n/dev/v4l-subdev5 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000010:port1 -> n00000013:port0 [style=dashed] - n00000010:port1 -> n0000001c:port0 [style=dashed] - n00000010:port1 -> n00000025:port0 [style=dashed] - n00000010:port1 -> n0000002e:port0 [style=dashed] - n00000013 [label="{{<port0> 0} | msm_vfe0_rdi0\n/dev/v4l-subdev6 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000013:port1 -> n00000016 [style=bold] - n00000016 [label="msm_vfe0_video0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] - n0000001c [label="{{<port0> 0} | msm_vfe0_rdi1\n/dev/v4l-subdev7 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000001c:port1 -> n0000001f [style=bold] - n0000001f [label="msm_vfe0_video1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] - n00000025 [label="{{<port0> 0} | msm_vfe0_rdi2\n/dev/v4l-subdev8 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000025:port1 -> n00000028 [style=bold] - n00000028 [label="msm_vfe0_video2\n/dev/video2", shape=box, style=filled, fillcolor=yellow] - n0000002e [label="{{<port0> 0} | msm_vfe0_pix\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n0000002e:port1 -> n00000031 [style=bold] - n00000031 [label="msm_vfe0_video3\n/dev/video3", shape=box, style=filled, fillcolor=yellow] - n00000057 [label="{{} | ov5645 1-0076\n/dev/v4l-subdev10 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000057:port0 -> n00000001:port0 [style=bold] - n00000059 [label="{{} | ov5645 1-0074\n/dev/v4l-subdev11 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000059:port0 -> n00000004:port0 [style=bold] -} diff --git a/Documentation/media/v4l-drivers/rcar-fdp1.rst b/Documentation/media/v4l-drivers/rcar-fdp1.rst deleted file mode 100644 index 88b0edcf9046..000000000000 --- a/Documentation/media/v4l-drivers/rcar-fdp1.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -Renesas R-Car Fine Display Processor (FDP1) Driver -================================================== - -The R-Car FDP1 driver implements driver-specific controls as follows. - -``V4L2_CID_DEINTERLACING_MODE (menu)`` - The video deinterlacing mode (such as Bob, Weave, ...). The R-Car FDP1 - driver implements the following modes. - -.. flat-table:: - :header-rows: 0 - :stub-columns: 0 - :widths: 1 4 - - * - ``"Progressive" (0)`` - - The input image video stream is progressive (not interlaced). No - deinterlacing is performed. Apart from (optional) format and encoding - conversion output frames are identical to the input frames. - * - ``"Adaptive 2D/3D" (1)`` - - Motion adaptive version of 2D and 3D deinterlacing. Use 3D deinterlacing - in the presence of fast motion and 2D deinterlacing with diagonal - interpolation otherwise. - * - ``"Fixed 2D" (2)`` - - The current field is scaled vertically by averaging adjacent lines to - recover missing lines. This method is also known as blending or Line - Averaging (LAV). - * - ``"Fixed 3D" (3)`` - - The previous and next fields are averaged to recover lines missing from - the current field. This method is also known as Field Averaging (FAV). - * - ``"Previous field" (4)`` - - The current field is weaved with the previous field, i.e. the previous - field is used to fill missing lines from the current field. This method - is also known as weave deinterlacing. - * - ``"Next field" (5)`` - - The current field is weaved with the next field, i.e. the next field is - used to fill missing lines from the current field. This method is also - known as weave deinterlacing. diff --git a/Documentation/media/v4l-drivers/saa7134-cardlist.rst b/Documentation/media/v4l-drivers/saa7134-cardlist.rst deleted file mode 100644 index afb0e2fb52b0..000000000000 --- a/Documentation/media/v4l-drivers/saa7134-cardlist.rst +++ /dev/null @@ -1,803 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -SAA7134 cards list -================== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 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/saa7134.rst b/Documentation/media/v4l-drivers/saa7134.rst deleted file mode 100644 index c84246dd81c0..000000000000 --- a/Documentation/media/v4l-drivers/saa7134.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The saa7134 driver -================== - -Author Gerd Hoffmann - - -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 -description. - - -Status ------- - -Almost everything is working. video, sound, tuner, radio, mpeg ts, ... - -As with bttv, card-specific tweaks are needed. Check CARDLIST for a -list of known TV cards and saa7134-cards.c for the drivers card -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 - -Type "make" to build the driver now. "make install" installs the -driver. "modprobe saa7134" should load it. Depending on the card you -might have to pass card=<nr> as insmod option, check CARDLIST for -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 -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. - -Credits -------- - -andrew.stevens@philips.com + werner.leeb@philips.com for providing -saa7134 hardware specs and sample board. diff --git a/Documentation/media/v4l-drivers/saa7164-cardlist.rst b/Documentation/media/v4l-drivers/saa7164-cardlist.rst deleted file mode 100644 index e8f36e084537..000000000000 --- a/Documentation/media/v4l-drivers/saa7164-cardlist.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -SAA7164 cards list -================== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - PCI IDs - - * - 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) - - 0070:f111 - - * - 12 - - Hauppauge WinTV-HVR2255 - - 0070:f111 - - * - 13 - - Hauppauge WinTV-HVR2205 - - 0070:f123, 0070:f120 diff --git a/Documentation/media/v4l-drivers/si470x.rst b/Documentation/media/v4l-drivers/si470x.rst deleted file mode 100644 index d53bf5f95200..000000000000 --- a/Documentation/media/v4l-drivers/si470x.rst +++ /dev/null @@ -1,167 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -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, -together with a small microcontroller C8051F321, to form a USB radio. -Part of this reference design is also a radio application in binary and source -code. The software also contains an automatic firmware upgrade to the most -current version. Information on these can be downloaded here: -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 -- Si4703: FM radio receiver, RDS Support -- Si4704: FM radio receiver, no external antenna required -- Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O -- Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS - Support -- 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) -- 10c5:819a: Sanei Electric, Inc. FM USB Radio (sold as DealExtreme.com PCear) - - -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 -- kradio - Comfortable Radio Application for KDE -- 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: - -.. 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 -or by implementing a function as we currently have in every of the mentioned -programs. Somewhen the radio programs should make use of libv4l. - -For processing RDS information, there is a project ongoing at: -http://rdsd.berlios.de/ - -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): - -.. code-block:: none - - cat /dev/dsp1 > /dev/dsp - -If you use sox + OSS try: - -.. code-block:: none - - sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp - -or using sox + alsa: - -.. 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: - -.. code-block:: none - - arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - - -If you use mplayer try: - -.. 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 -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. - -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. - -There is an USB interface for downloading/uploading new firmware images. Support -for it can be implemented using the request_firmware interface. - -There is a RDS interrupt mode. The driver is already using the same interface -for polling RDS information, but is currently not using the interrupt mode. - -There is a LED interface, which can be used to override the LED control -programmed in the firmware. This can be made available using the LED support -functions in the kernel. - - -Other useful information and links ----------------------------------- - -http://www.silabs.com/usbradio diff --git a/Documentation/media/v4l-drivers/si4713.rst b/Documentation/media/v4l-drivers/si4713.rst deleted file mode 100644 index be8e6b49b7b4..000000000000 --- a/Documentation/media/v4l-drivers/si4713.rst +++ /dev/null @@ -1,192 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. include:: <isonum.txt> - -The Silicon Labs Si4713 FM Radio Transmitter Driver -=================================================== - -Copyright |copy| 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. - -The Si4713 integrates transmit functions for FM broadcast stereo transmission. -The chip also allows integrated receive power scanning to identify low signal -power FM channels. - -The chip is programmed using commands and responses. There are also several -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. - -The I2C device driver exports a v4l2-subdev interface to the kernel. -All properties can also be accessed by v4l2 extended controls interface, by -using the v4l2-subdev calls (g_ext_ctrls, s_ext_ctrls). - -The platform device driver exports a v4l2 radio device interface to user land. -So, it uses the I2C device driver as a sub device in order to send the user -commands to the actual device. Basically it is a wrapper to the I2C device driver. - -Applications can use v4l2 radio API to specify frequency of operation, mute state, -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: - -.. code-block:: none - - / # 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 - - 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. - -* 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. - -* 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. - -- 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. - -* 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. - -* Region related - -- 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: - -.. code-block:: none - - int main (int argc, char *argv[]) - { - struct si4713_rnl rnl; - int fd = open("/dev/radio0", O_RDWR); - int rval; - - if (argc < 2) - return -EINVAL; - - if (fd < 0) - return fd; - - sscanf(argv[1], "%d", &rnl.frequency); - - rval = ioctl(fd, SI4713_IOC_MEASURE_RNL, &rnl); - if (rval < 0) - return rval; - - 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: - -.. code-block:: none - - # v4l2-ctl -d /dev/radio0 --set-ctrl=rds_ps_name="Dummy" - diff --git a/Documentation/media/v4l-drivers/si476x.rst b/Documentation/media/v4l-drivers/si476x.rst deleted file mode 100644 index 87062301d6a1..000000000000 --- a/Documentation/media/v4l-drivers/si476x.rst +++ /dev/null @@ -1,160 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -.. 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 - most recent version. Unfortunately I couldn't find any mentioning of - the said firmware update for the old chips that I tested the driver - against, so for chips like that the driver only exposes the old - functionality. - - -Parameters exposed over debugfs -------------------------------- -SI476x allow user to get multiple characteristics that can be very -useful for EoL testing/RF performance estimation, parameters that have -very little to do with V4L2 subsystem. Such parameters are exposed via -debugfs and can be accessed via regular file I/O operations. - -The drivers exposes following files: - -* /sys/kernel/debug/<device-name>/acf - This file contains ACF(Automatically Controlled Features) status - information. The contents of the file is binary data of the - following layout: - - .. tabularcolumns:: |p{7ex}|p{12ex}|L| - - ============= ============== ==================================== - 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: - - .. tabularcolumns:: |p{7ex}|p{12ex}|L| - - ============= ============== ==================================== - 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: - - .. tabularcolumns:: |p{7ex}|p{12ex}|L| - - ============= ============== ==================================== - 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: - - .. tabularcolumns:: |p{7ex}|p{12ex}|p{60ex}| - - ============= ============== ==================================== - 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 - RSQ(Received Signal Quality) for primary tuner only. Layout is as - the one above. diff --git a/Documentation/media/v4l-drivers/tm6000-cardlist.rst b/Documentation/media/v4l-drivers/tm6000-cardlist.rst deleted file mode 100644 index 6d2769c0f4d8..000000000000 --- a/Documentation/media/v4l-drivers/tm6000-cardlist.rst +++ /dev/null @@ -1,83 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -TM6000 cards list -================= - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - USB IDs - - * - 0 - - Unknown tm6000 video grabber - - - - * - 1 - - Generic tm5600 board - - 6000:0001 - - * - 2 - - Generic tm6000 board - - - - * - 3 - - Generic tm6010 board - - 6000:0002 - - * - 4 - - 10Moons UT 821 - - - - * - 5 - - 10Moons UT 330 - - - - * - 6 - - ADSTECH Dual TV USB - - 06e1:f332 - - * - 7 - - Freecom Hybrid Stick / Moka DVB-T Receiver Dual - - 14aa:0620 - - * - 8 - - ADSTECH Mini Dual TV USB - - 06e1:b339 - - * - 9 - - Hauppauge WinTV HVR-900H / WinTV USB2-Stick - - 2040:6600, 2040:6601, 2040:6610, 2040:6611 - - * - 10 - - Beholder Wander DVB-T/TV/FM USB2.0 - - 6000:dec0 - - * - 11 - - Beholder Voyager TV/FM USB2.0 - - 6000:dec1 - - * - 12 - - Terratec Cinergy Hybrid XE / Cinergy Hybrid-Stick - - 0ccd:0086, 0ccd:00A5 - - * - 13 - - Twinhan TU501(704D1) - - 13d3:3240, 13d3:3241, 13d3:3243, 13d3:3264 - - * - 14 - - Beholder Wander Lite DVB-T/TV/FM USB2.0 - - 6000:dec2 - - * - 15 - - Beholder Voyager Lite TV/FM USB2.0 - - 6000:dec3 - - * - 16 - - Terratec Grabster AV 150/250 MX - - 0ccd:0079 diff --git a/Documentation/media/v4l-drivers/tuner-cardlist.rst b/Documentation/media/v4l-drivers/tuner-cardlist.rst deleted file mode 100644 index 362617c59c5d..000000000000 --- a/Documentation/media/v4l-drivers/tuner-cardlist.rst +++ /dev/null @@ -1,100 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -Tuner cards list -================ - -============ ===================================================== -Tuner number Card name -============ ===================================================== -0 Temic PAL (4002 FH5) -1 Philips PAL_I (FI1246 and compatibles) -2 Philips NTSC (FI1236,FM1236 and compatibles) -3 Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF) -4 NoTuner -5 Philips PAL_BG (FI1216 and compatibles) -6 Temic NTSC (4032 FY5) -7 Temic PAL_I (4062 FY5) -8 Temic NTSC (4036 FY5) -9 Alps HSBH1 -10 Alps TSBE1 -11 Alps TSBB5 -12 Alps TSBE5 -13 Alps TSBC5 -14 Temic PAL_BG (4006FH5) -15 Alps TSCH6 -16 Temic PAL_DK (4016 FY5) -17 Philips NTSC_M (MK2) -18 Temic PAL_I (4066 FY5) -19 Temic PAL* auto (4006 FN5) -20 Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5) -21 Temic NTSC (4039 FR5) -22 Temic PAL/SECAM multi (4046 FM5) -23 Philips PAL_DK (FI1256 and compatibles) -24 Philips PAL/SECAM multi (FQ1216ME) -25 LG PAL_I+FM (TAPC-I001D) -26 LG PAL_I (TAPC-I701D) -27 LG NTSC+FM (TPI8NSR01F) -28 LG PAL_BG+FM (TPI8PSB01D) -29 LG PAL_BG (TPI8PSB11D) -30 Temic PAL* auto + FM (4009 FN5) -31 SHARP NTSC_JP (2U5JF5540) -32 Samsung PAL TCPM9091PD27 -33 MT20xx universal -34 Temic PAL_BG (4106 FH5) -35 Temic PAL_DK/SECAM_L (4012 FY5) -36 Temic NTSC (4136 FY5) -37 LG PAL (newer TAPC series) -38 Philips PAL/SECAM multi (FM1216ME MK3) -39 LG NTSC (newer TAPC series) -40 HITACHI V7-J180AT -41 Philips PAL_MK (FI1216 MK) -42 Philips FCV1236D ATSC/NTSC dual in -43 Philips NTSC MK3 (FM1236MK3 or FM1236/F) -44 Philips 4 in 1 (ATI TV Wonder Pro/Conexant) -45 Microtune 4049 FM5 -46 Panasonic VP27s/ENGE4324D -47 LG NTSC (TAPE series) -48 Tenna TNF 8831 BGFF) -49 Microtune 4042 FI5 ATSC/NTSC dual in -50 TCL 2002N -51 Philips PAL/SECAM_D (FM 1256 I-H3) -52 Thomson DTT 7610 (ATSC/NTSC) -53 Philips FQ1286 -54 Philips/NXP TDA 8290/8295 + 8275/8275A/18271 -55 TCL 2002MB -56 Philips PAL/SECAM multi (FQ1216AME MK4) -57 Philips FQ1236A MK4 -58 Ymec TVision TVF-8531MF/8831MF/8731MF -59 Ymec TVision TVF-5533MF -60 Thomson DTT 761X (ATSC/NTSC) -61 Tena TNF9533-D/IF/TNF9533-B/DF -62 Philips TEA5767HN FM Radio -63 Philips FMD1216ME MK3 Hybrid Tuner -64 LG TDVS-H06xF -65 Ymec TVF66T5-B/DFF -66 LG TALN series -67 Philips TD1316 Hybrid Tuner -68 Philips TUV1236D ATSC/NTSC dual in -69 Tena TNF 5335 and similar models -70 Samsung TCPN 2121P30A -71 Xceive xc2028/xc3028 tuner -72 Thomson FE6600 -73 Samsung TCPG 6121P30A -75 Philips TEA5761 FM Radio -76 Xceive 5000 tuner -77 TCL tuner MF02GIP-5N-E -78 Philips FMD1216MEX MK3 Hybrid Tuner -79 Philips PAL/SECAM multi (FM1216 MK5) -80 Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough -81 Partsnic (Daewoo) PTI-5NF05 -82 Philips CU1216L -83 NXP TDA18271 -84 Sony BTF-Pxn01Z -85 Philips FQ1236 MK5 -86 Tena TNF5337 MFD -87 Xceive 4000 tuner -88 Xceive 5000C tuner -89 Sony BTF-PG472Z PAL/SECAM -90 Sony BTF-PK467Z NTSC-M-JP -91 Sony BTF-PB463Z NTSC-M -============ ===================================================== diff --git a/Documentation/media/v4l-drivers/usbvision-cardlist.rst b/Documentation/media/v4l-drivers/usbvision-cardlist.rst deleted file mode 100644 index 6aee115ee6e2..000000000000 --- a/Documentation/media/v4l-drivers/usbvision-cardlist.rst +++ /dev/null @@ -1,283 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -USBvision cards list -==================== - -.. tabularcolumns:: |p{1.4cm}|p{11.1cm}|p{4.2cm}| - -.. flat-table:: - :header-rows: 1 - :widths: 2 19 18 - :stub-columns: 0 - - * - Card number - - Card name - - USB IDs - - * - 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/media/v4l-drivers/v4l-with-ir.rst b/Documentation/media/v4l-drivers/v4l-with-ir.rst deleted file mode 100644 index ce23c8a7bc93..000000000000 --- a/Documentation/media/v4l-drivers/v4l-with-ir.rst +++ /dev/null @@ -1,75 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -Infrared remote control support in video4linux drivers -====================================================== - -Authors: Gerd Hoffmann, Mauro Carvalho Chehab - -Basics ------- - -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"). - -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. - -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-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 ------------- - -The modules register the remote as keyboard within the linux input -layer, i.e. you'll see the keys of the remote as normal key strokes -(if CONFIG_INPUT_KEYBOARD is enabled). - -Using the event devices (CONFIG_INPUT_EVDEV) it is possible for -applications to access the remote via /dev/input/event<n> devices. -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 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 any other input utility that changes -the keymaps, like the input kbd utility. - - -Using with lircd -================ - -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 -=================== - -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. diff --git a/Documentation/media/v4l-drivers/vimc.dot b/Documentation/media/v4l-drivers/vimc.dot deleted file mode 100644 index 57863a13fa39..000000000000 --- a/Documentation/media/v4l-drivers/vimc.dot +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 - -digraph board { - rankdir=TB - n00000001 [label="{{} | Sensor A\n/dev/v4l-subdev0 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000001:port0 -> n00000005:port0 [style=bold] - n00000001:port0 -> n0000000b [style=bold] - n00000003 [label="{{} | Sensor B\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000003:port0 -> n00000008:port0 [style=bold] - n00000003:port0 -> n0000000f [style=bold] - n00000005 [label="{{<port0> 0} | Debayer A\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000005:port1 -> n00000017:port0 - n00000008 [label="{{<port0> 0} | Debayer B\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000008:port1 -> n00000017:port0 [style=dashed] - n0000000b [label="Raw Capture 0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] - n0000000f [label="Raw Capture 1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] - n00000013 [label="RGB/YUV Input\n/dev/video2", shape=box, style=filled, fillcolor=yellow] - n00000013 -> n00000017:port0 [style=dashed] - n00000017 [label="{{<port0> 0} | Scaler\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000017:port1 -> n0000001a [style=bold] - n0000001a [label="RGB/YUV Capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow] -} diff --git a/Documentation/media/v4l-drivers/vimc.rst b/Documentation/media/v4l-drivers/vimc.rst deleted file mode 100644 index 211cc8972410..000000000000 --- a/Documentation/media/v4l-drivers/vimc.rst +++ /dev/null @@ -1,90 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The Virtual Media Controller Driver (vimc) -========================================== - -The vimc driver emulates complex video hardware using the V4L2 API and the Media -API. It has a capture device and three subdevices: sensor, debayer and scaler. - -Topology --------- - -The topology is hardcoded, although you could modify it in vimc-core and -recompile the driver to achieve your own topology. This is the default topology: - -.. _vimc_topology_graph: - -.. kernel-figure:: vimc.dot - :alt: Diagram of the default media pipeline topology - :align: center - - Media pipeline graph on vimc - -Configuring the topology -~~~~~~~~~~~~~~~~~~~~~~~~ - -Each subdevice will come with its default configuration (pixelformat, height, -width, ...). One needs to configure the topology in order to match the -configuration on each linked subdevice to stream frames through the pipeline. -If the configuration doesn't match, the stream will fail. The ``v4l-utils`` -package is a bundle of user-space applications, that comes with ``media-ctl`` and -``v4l2-ctl`` that can be used to configure the vimc configuration. This sequence -of commands fits for the default topology: - -.. code-block:: bash - - media-ctl -d platform:vimc -V '"Sensor A":0[fmt:SBGGR8_1X8/640x480]' - media-ctl -d platform:vimc -V '"Debayer A":0[fmt:SBGGR8_1X8/640x480]' - media-ctl -d platform:vimc -V '"Sensor B":0[fmt:SBGGR8_1X8/640x480]' - media-ctl -d platform:vimc -V '"Debayer B":0[fmt:SBGGR8_1X8/640x480]' - v4l2-ctl -z platform:vimc -d "RGB/YUV Capture" -v width=1920,height=1440 - v4l2-ctl -z platform:vimc -d "Raw Capture 0" -v pixelformat=BA81 - v4l2-ctl -z platform:vimc -d "Raw Capture 1" -v pixelformat=BA81 - -Subdevices ----------- - -Subdevices define the behavior of an entity in the topology. Depending on the -subdevice, the entity can have multiple pads of type source or sink. - -vimc-sensor: - Generates images in several formats using video test pattern generator. - Exposes: - - * 1 Pad source - -vimc-debayer: - Transforms images in bayer format into a non-bayer format. - Exposes: - - * 1 Pad sink - * 1 Pad source - -vimc-scaler: - Scale up the image by a factor of 3. E.g.: a 640x480 image becomes a - 1920x1440 image. (this value can be configured, see at - `Module options`_). - Exposes: - - * 1 Pad sink - * 1 Pad source - -vimc-capture: - Exposes node /dev/videoX to allow userspace to capture the stream. - Exposes: - - * 1 Pad sink - * 1 Pad source - - -Module options --------------- - -Vimc has a module parameter to configure the driver. - -* ``sca_mult=<unsigned int>`` - - Image size multiplier factor to be used to multiply both width and - height, so the image size will be ``sca_mult^2`` bigger than the - original one. Currently, only supports scaling up (the default value - is 3). diff --git a/Documentation/media/v4l-drivers/vivid.rst b/Documentation/media/v4l-drivers/vivid.rst deleted file mode 100644 index 52e57b773f07..000000000000 --- a/Documentation/media/v4l-drivers/vivid.rst +++ /dev/null @@ -1,1393 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -The Virtual Video Test Driver (vivid) -===================================== - -This driver emulates video4linux hardware of various types: video capture, video -output, vbi capture and output, metadata capture and output, radio receivers and -transmitters, touch capture and a software defined radio receiver. In addition a -simple framebuffer device is available for testing capture and output overlays. - -Up to 64 vivid instances can be created, each with up to 16 inputs and 16 outputs. - -Each input can be a webcam, TV capture device, S-Video capture device or an HDMI -capture device. Each output can be an S-Video output device or an HDMI output -device. - -These inputs and outputs act exactly as a real hardware device would behave. This -allows you to use this driver as a test input for application development, since -you can test the various features without requiring special hardware. - -This document describes the features implemented by this driver: - -- Support for read()/write(), MMAP, USERPTR and DMABUF streaming I/O. -- A large list of test patterns and variations thereof -- Working brightness, contrast, saturation and hue controls -- Support for the alpha color component -- Full colorspace support, including limited/full RGB range -- All possible control types are present -- Support for various pixel aspect ratios and video aspect ratios -- Error injection to test what happens if errors occur -- Supports crop/compose/scale in any combination for both input and output -- Can emulate up to 4K resolutions -- All Field settings are supported for testing interlaced capturing -- Supports all standard YUV and RGB formats, including two multiplanar YUV formats -- Raw and Sliced VBI capture and output support -- Radio receiver and transmitter support, including RDS support -- Software defined radio (SDR) support -- Capture and output overlay support -- Metadata capture and output support -- Touch capture support - -These features will be described in more detail below. - -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 -S-Video and HDMI outputs, one vbi capture device, one vbi output device, one -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 - instances can be created. - -- 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 17: Metadata Capture node - - bit 18: Metadata Output node - - bit 19: Touch Capture node - - 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 - 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 - 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 - - 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 - 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 - 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 - - 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. - 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 - the first vivid instance, video4 for the next up to video8 for the last - 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. - -- 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. - -- 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. - -- meta_cap_nr: - - give the desired videoX start number for each metadata capture device. - The default is -1 which will just take the first free number. - -- meta_out_nr: - - give the desired videoX start number for each metadata output device. - The default is -1 which will just take the first free number. - -- touch_cap_nr: - - give the desired v4l-touchX start number for each touch 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 - select this through controls. - - 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. - - 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 - 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 - select this through controls. - - 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, - 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. - -- vivid_debug: - - 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 - all tests that v4l2-compliance is doing will fail afterwards. - - There may be other situations as well where you want to disable the - error injection support of vivid. When this option is set, then the - controls that select crop, compose and scale behavior are also - removed. Unless overridden by ccs_cap_mode and/or ccs_out_mode the - will default to enabling crop, compose and scaling. - -- allocators: - - memory allocator selection, default is 0. It specifies the way buffers - will be allocated. - - - 0: vmalloc - - 1: dma-contig - -Taken together, all these module options allow you to precisely customize -the driver behavior and test your application with all sorts of permutations. -It is also very suitable to emulate hardware that is not yet available, e.g. -when developing software for a new upcoming device. - - -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 -ccs_cap_mode (see section 1 for more detailed information), but by default -four inputs are configured: a webcam, a TV tuner, an S-Video and an HDMI -input, one input for each input type. Those are described in more detail -below. - -Special attention has been given to the rate at which new frames become -available. The jitter will be around 1 jiffie (that depends on the HZ -configuration of your kernel, so usually 1/100, 1/250 or 1/1000 of a second), -but the long-term behavior is exactly following the framerate. So a -framerate of 59.94 Hz is really different from 60 Hz. If the framerate -exceeds your kernel's HZ value, then you will get dropped frames, but the -frame/field sequence counting will keep track of that so the sequence -count will skip whenever frames are dropped. - - -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 -are available depends on the chosen framesize: the larger the framesize, the -lower the maximum frames per second. - -The initially selected colorspace when you switch to the webcam input will be -sRGB. - - -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. - -These inputs support audio inputs as well: one TV and one Line-In. They -both support all TV standards. If the standard is queried, then the Vivid -controls 'Standard Signal Mode' and 'Standard' determine what -the result will be. - -These inputs support all combinations of the field setting. Special care has -been taken to faithfully reproduce how fields are handled for the different -TV standards. This is particularly noticeable when generating a horizontally -moving image so the temporal effect of using interlaced formats becomes clearly -visible. For 50 Hz standards the top field is the oldest and the bottom field -is the newest in time. For 60 Hz standards that is reversed: the bottom field -is the oldest and the top field is the newest in time. - -When you start capturing in V4L2_FIELD_ALTERNATE mode the first buffer will -contain the top field for 50 Hz standards and the bottom field for 60 Hz -standards. This is what capture hardware does as well. - -Finally, for PAL/SECAM standards the first half of the top line contains noise. -This simulates the Wide Screen Signal that is commonly placed there. - -The initially selected colorspace when you switch to the TV or S-Video input -will be SMPTE-170M. - -The pixel aspect ratio will depend on the TV standard. The video aspect ratio -can be selected through the 'Standard Aspect Ratio' Vivid control. -Choices are '4x3', '16x9' which will give letterboxed widescreen video and -'16x9 Anamorphic' which will give full screen squashed anamorphic widescreen -video that will need to be scaled accordingly. - -The TV 'tuner' supports a frequency range of 44-958 MHz. Channels are available -every 6 MHz, starting from 49.25 MHz. For each channel the generated image -will be in color for the +/- 0.25 MHz around it, and in grayscale for -+/- 1 MHz around the channel. Beyond that it is just noise. The VIDIOC_G_TUNER -ioctl will return 100% signal strength for +/- 0.25 MHz and 50% for +/- 1 MHz. -It will also return correct afc values to show whether the frequency is too -low or too high. - -The audio subchannels that are returned are MONO for the +/- 1 MHz range around -a valid channel frequency. When the frequency is within +/- 0.25 MHz of the -channel it will return either MONO, STEREO, either MONO | SAP (for NTSC) or -LANG1 | LANG2 (for others), or STEREO | SAP. - -Which one is returned depends on the chosen channel, each next valid channel -will cycle through the possible audio subchannel combinations. This allows -you to test the various combinations by just switching channels.. - -Finally, for these inputs the v4l2_timecode struct is filled in in the -dequeued v4l2_buffer struct. - - -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 -mode for interlaced formats is always V4L2_FIELD_ALTERNATE. For HDMI the -field order is always top field first, and when you start capturing an -interlaced format you will receive the top field first. - -The initially selected colorspace when you switch to the HDMI input or -select an HDMI timing is based on the format resolution: for resolutions -less than or equal to 720x576 the colorspace is set to SMPTE-170M, for -others it is set to REC-709 (CEA-861 timings) or sRGB (VESA DMT timings). - -The pixel aspect ratio will depend on the HDMI timing: for 720x480 is it -set as for the NTSC TV standard, for 720x576 it is set as for the PAL TV -standard, and for all others a 1:1 pixel aspect ratio is returned. - -The video aspect ratio can be selected through the 'DV Timings Aspect Ratio' -Vivid control. Choices are 'Source Width x Height' (just use the -same ratio as the chosen format), '4x3' or '16x9', either of which can -result in pillarboxed or letterboxed video. - -For HDMI inputs it is possible to set the EDID. By default a simple EDID -is provided. You can only set the EDID for HDMI inputs. Internally, however, -the EDID is shared between all HDMI inputs. - -No interpretation is done of the EDID data with the exception of the -physical address. See the CEC section for more details. - -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. - - -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 -information), but by default two outputs are configured: an S-Video and an -HDMI input, one output for each output type. Those are described in more detail -below. - -Like with video capture the framerate is also exact in the long term. - - -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. - -This output supports all combinations of the field setting. - -The initially selected colorspace when you switch to the TV or S-Video input -will be SMPTE-170M. - - -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 -mode for interlaced formats is always V4L2_FIELD_ALTERNATE. - -The initially selected colorspace when you switch to the HDMI output or -select an HDMI timing is based on the format resolution: for resolutions -less than or equal to 720x576 the colorspace is set to SMPTE-170M, for -others it is set to REC-709 (CEA-861 timings) or sRGB (VESA DMT timings). - -The pixel aspect ratio will depend on the HDMI timing: for 720x480 is it -set as for the NTSC TV standard, for 720x576 it is set as for the PAL TV -standard, and for all others a 1:1 pixel aspect ratio is returned. - -An HDMI output has a valid EDID which can be obtained through VIDIOC_G_EDID. - -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. - -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 -support both. This is determined by the node_types module option. In all -cases the driver will generate valid VBI data: for 60 Hz standards it will -generate Closed Caption and XDS data. The closed caption stream will -alternate between "Hello world!" and "Closed captions test" every second. -The XDS stream will give the current time once a minute. For 50 Hz standards -it will generate the Wide Screen Signal which is based on the actual Video -Aspect Ratio control setting and teletext pages 100-159, one page per frame. - -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. - - -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 -support both. This is determined by the node_types module option. - -The sliced VBI output supports the Wide Screen Signal and the teletext signal -for 50 Hz standards and Closed Captioning + XDS for 60 Hz standards. - -The VBI device will only work for the S-Video output, it will give -back an error if the current output is HDMI. - - -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 - -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 -frequency until it becomes 0% at +/- 50 kHz (FM) or 5 kHz (AM/SW) from the -ideal frequency. The initial frequency when the driver is loaded is set to -95 MHz. - -The FM receiver supports RDS as well, both using 'Block I/O' and 'Controls' -modes. In the 'Controls' mode the RDS information is stored in read-only -controls. These controls are updated every time the frequency is changed, -or when the tuner status is requested. The Block I/O method uses the read() -interface to pass the RDS blocks on to the application for decoding. - -The RDS signal is 'detected' for +/- 12.5 kHz around the channel frequency, -and the further the frequency is away from the valid frequency the more RDS -errors are randomly introduced into the block I/O stream, up to 50% of all -blocks if you are +/- 12.5 kHz from the channel frequency. All four errors -can occur in equal proportions: blocks marked 'CORRECTED', blocks marked -'ERROR', blocks marked 'INVALID' and dropped blocks. - -The generated RDS stream contains all the standard fields contained in a -0B group, and also radio text and the current time. - -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. - - -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 - -The initial frequency when the driver is loaded is 95.5 MHz. - -The FM transmitter supports RDS as well, both using 'Block I/O' and 'Controls' -modes. In the 'Controls' mode the transmitted RDS information is configured -using controls, and in 'Block I/O' mode the blocks are passed to the driver -using write(). - - -Software Defined Radio Receiver -------------------------------- - -The SDR receiver has three frequency bands for the ADC tuner: - - - 300 kHz - - 900 kHz - 2800 kHz - - 3200 kHz - -The RF tuner supports 50 MHz - 2000 MHz. - -The generated data contains the In-phase and Quadrature components of a -1 kHz tone that has an amplitude of sqrt(2). - - -Metadata Capture ----------------- - -The Metadata capture generates UVC format metadata. The PTS and SCR are -transmitted based on the values set in vivid contols. - -The Metadata device will only work for the Webcam input, it will give -back an error for all other inputs. - - -Metadata Output ---------------- - -The Metadata output can be used to set brightness, contrast, saturation and hue. - -The Metadata device will only work for the Webcam output, it will give -back an error for all other outputs. - - -Touch Capture -------------- - -The Touch capture generates touch patterns simulating single tap, double tap, -triple tap, move from left to right, zoom in, zoom out, palm press (simulating -a large area being pressed on a touchpad), and simulating 16 simultaneous -touch points. - -Controls --------- - -Different devices support different controls. The sections below will describe -each control and which devices support them. - - -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 -control and the Integer Menu control both have 'holes' in their menu list, -meaning that one or more menu items return EINVAL when VIDIOC_QUERYMENU is called. -Both menu controls also have a non-zero minimum control value. These features -allow you to check if your application can handle such things correctly. -These controls are supported for every device type. - - -User Controls - Video Capture -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following controls are specific to video capture. - -The Brightness, Contrast, Saturation and Hue controls actually work and are -standard. There is one special feature with the Brightness control: each -video input has its own brightness value, so changing input will restore -the brightness for that input. In addition, each video input uses a different -brightness range (minimum and maximum control values). Switching inputs will -cause a control event to be sent with the V4L2_EVENT_CTRL_CH_RANGE flag set. -This allows you to test controls that can change their range. - -The 'Gain, Automatic' and Gain controls can be used to test volatile controls: -if 'Gain, Automatic' is set, then the Gain control is volatile and changes -constantly. If 'Gain, Automatic' is cleared, then the Gain control is a normal -control. - -The 'Horizontal Flip' and 'Vertical Flip' controls can be used to flip the -image. These combine with the 'Sensor Flipped Horizontally/Vertically' Vivid -controls. - -The 'Alpha Component' control can be used to set the alpha component for -formats containing an alpha channel. - - -User Controls - Audio -~~~~~~~~~~~~~~~~~~~~~ - -The following controls are specific to video capture and output and radio -receivers and transmitters. - -The 'Volume' and 'Mute' audio controls are typical for such devices to -control the volume and mute the audio. They don't actually do anything in -the vivid driver. - - -Vivid Controls -~~~~~~~~~~~~~~ - -These vivid custom controls control the image generation, error injection, etc. - - -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 - 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 - 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 - move to the left or right and at what speed. - -- Vertical Movement: - - 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 - 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. - 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. - - -Capture Feature Selection Controls -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -These controls are all specific to video capture. - -- 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 - V4L2_IN_ST_VFLIP input status flag is set. This emulates the case where - a sensor is for example mounted upside down. - -- 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 - 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. - -- 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 - should really have 75% signal intensity and should not be affected - by colorspace conversions. - - 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 - 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. - - 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 - 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 - 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 - 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' - user control to the red color of the test pattern only. - -- 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 - 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 - 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. - 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 - 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. - - -Output Feature Selection Controls -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -These controls are all specific to video output. - -- 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 - 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 - 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). - - -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? - - 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 - previous control is set to "Selected Standard". - - Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE - to be sent since it emulates a changed input standard. - - -The following two controls are only valid for video capture. - -- 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 - if the previous control is set to "Selected DV Timings". - - Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE - to be sent since it emulates changed input timings. - - -The following controls are only present if the no_error_inj module option -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 - struct v4l2_buffer around. - -- 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 - are never returned by the driver (i.e., they are dropped). - -- 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 - 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 - 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 - 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 - 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 - 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. - - -VBI Raw Capture Controls -^^^^^^^^^^^^^^^^^^^^^^^^ - -- Interlaced VBI Format: - - if set, then the raw VBI data will be interlaced instead - of providing it grouped by field. - - -Digital Video Controls -~~~~~~~~~~~~~~~~~~~~~~ - -- 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 - by selecting an HDMI input, setting this control to Full or Limited - range and selecting the opposite in the 'Limited RGB Range (16-235)' - 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 - 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 - affects the reported colorspace since DVI_D outputs will always use - sRGB. - -- Display Present: - - sets the presence of a "display" on the HDMI output. This affects - the tx_edid_present, tx_hotplug and tx_rxsense controls. - - -FM Radio Receiver Controls -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- RDS Reception: - - 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:: - 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 - 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 - 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 - 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() - by the application, or "Controls" where the RDS data is provided by - the RDS controls mentioned above. - - -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. - -Metadata Capture Controls -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- Generate PTS - - if set, then the generated metadata stream contains Presentation timestamp. - -- Generate SCR - - if set, then the generated metadata stream contains Source Clock information. - -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 -as if a cable was hooked up between the output and input connector. So video -and VBI looping is only supported between S-Video and HDMI inputs and outputs. -VBI is only valid for S-Video as it makes no sense for HDMI. - -Since radio is wireless this looping always happens if the radio receiver -frequency is close to the radio transmitter frequency. In that case the radio -transmitter will 'override' the emulated radio stations. - -Looping is currently supported only between devices created by the same -vivid driver instance. - - -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 -capture and VBI capture devices. When checked the video looping will be enabled. -Once enabled any video S-Video or HDMI input will show a static test pattern -until the video output has started. At that time the video output will be -looped to the video input provided that: - -- the input type matches the output type. So the HDMI input cannot receive - video from the S-Video output. - -- the video resolution of the video input must match that of the video output. - So it is not possible to loop a 50 Hz (720x576) S-Video output to a 60 Hz - (720x480) S-Video input, or a 720p60 HDMI output to a 1080p30 input. - -- the pixel formats must be identical on both sides. Otherwise the driver would - have to do pixel format conversion as well, and that's taking things too far. - -- the field settings must be identical on both sides. Same reason as above: - requiring the driver to convert from one field format to another complicated - matters too much. This also prohibits capturing with 'Field Top' or 'Field - Bottom' when the output video is set to 'Field Alternate'. This combination, - while legal, became too complicated to support. Both sides have to be 'Field - Alternate' for this to work. Also note that for this specific case the - sequence and field counting in struct v4l2_buffer on the capture side may not - be 100% accurate. - -- field settings V4L2_FIELD_SEQ_TB/BT are not supported. While it is possible to - implement this, it would mean a lot of work to get this right. Since these - field values are rarely used the decision was made not to implement this for - now. - -- on the input side the "Standard Signal Mode" for the S-Video input or the - "DV Timings Signal Mode" for the HDMI input should be configured so that a - valid signal is passed to the video input. - -The framerates do not have to match, although this might change in the future. - -By default you will see the OSD text superimposed on top of the looped video. -This can be turned off by changing the "OSD Text Mode" control of the video -capture device. - -For VBI looping to work all of the above must be valid and in addition the vbi -output must be configured for sliced VBI. The VBI capture side can be configured -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. - - -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 -signal strength value is calculated (this is returned by VIDIOC_G_TUNER). -However, it will also look at the frequency set by the radio transmitter and -if that results in a higher signal strength than the settings of the radio -transmitter will be used as if it was a valid station. This also includes -the RDS data (if any) that the transmitter 'transmits'. This is received -faithfully on the receiver side. Note that when the driver is loaded the -frequencies of the radio receiver and transmitter are not identical, so -initially no looping takes place. - - -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, -but it is also possible to hardcode it when the module is loaded through the -ccs_cap_mode and ccs_out_mode module options. See section 1 on the details of -these module options. - -This allows you to test your application for all these variations. - -Note that the webcam input never supports cropping, composing or scaling. That -only applies to the TV/S-Video/HDMI inputs and outputs. The reason is that -webcams, including this virtual implementation, normally use -VIDIOC_ENUM_FRAMESIZES to list a set of discrete framesizes that it supports. -And that does not combine with cropping, composing or scaling. This is -primarily a limitation of the V4L2 API which is carefully reproduced here. - -The minimum and maximum resolutions that the scaler can achieve are 16x16 and -(4096 * 4) x (2160 x 4), but it can only scale up or down by a factor of 4 or -less. So for a source resolution of 1280x720 the minimum the scaler can do is -320x180 and the maximum is 5120x2880. You can play around with this using the -qv4l2 test tool and you will see these dependencies. - -This driver also supports larger 'bytesperline' settings, something that -VIDIOC_S_FMT allows but that few drivers implement. - -The scaler is a simple scaler that uses the Coarse Bresenham algorithm. It's -designed for speed and simplicity, not quality. - -If the combination of crop, compose and scaling allows it, then it is possible -to change crop and compose rectangles on the fly. - - -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 -formats. - -The alpha component can be set through the 'Alpha Component' User control -for those formats that support it. If the 'Apply Alpha To Red Only' control -is set, then the alpha component is only used for the color red and set to -0 otherwise. - -The driver has to be configured to support the multiplanar formats. By default -the driver instances are single-planar. This can be changed by setting the -multiplanar module option, see section 1 for more details on that option. - -If the driver instance is using the multiplanar formats/API, then the first -single planar format (YUYV) and the multiplanar NV16M and NV61M formats the -will have a plane that has a non-zero data_offset of 128 bytes. It is rare for -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. - - -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 -anymore, and neither are they generally needed anymore since modern hardware -is so much more capable. By setting flag 0x10000 in the node_types module -option the vivid driver will create a simple framebuffer device that can be -used for testing this API. Whether this API should be used for new drivers is -questionable. - -This driver has support for a destructive capture overlay with bitmap clipping -and list clipping (up to 16 rectangles) capabilities. Overlays are not -supported for multiplanar formats. It also honors the struct v4l2_window field -setting: if it is set to FIELD_TOP or FIELD_BOTTOM and the capture setting is -FIELD_ALTERNATE, then only the top or bottom fields will be copied to the overlay. - -The overlay only works if you are also capturing at that same time. This is a -vivid limitation since it copies from a buffer to the overlay instead of -filling the overlay directly. And if you are not capturing, then no buffers -are available to fill. - -In addition, the pixelformat of the capture format and that of the framebuffer -must be the same for the overlay to work. Otherwise VIDIOC_OVERLAY will return -an error. - -In order to really see what it going on you will need to create two vivid -instances: the first with a framebuffer enabled. You configure the capture -overlay of the second instance to use the framebuffer of the first, then -you start capturing in the second instance. For the first instance you setup -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 - $ sudo v4l2-ctl -d2 --set-fbuf fb=1 - $ v4l2-ctl -d1 --set-fbuf fb=1 - $ v4l2-ctl -d0 --set-fmt-video=pixelformat='AR15' - $ v4l2-ctl -d1 --set-fmt-video-out=pixelformat='AR15' - $ v4l2-ctl -d2 --set-fmt-video=pixelformat='AR15' - $ v4l2-ctl -d0 -i2 - $ v4l2-ctl -d2 -i2 - $ v4l2-ctl -d2 -c horizontal_movement=4 - $ v4l2-ctl -d1 --overlay=1 - $ v4l2-ctl -d1 -c loop_video=1 - $ v4l2-ctl -d2 --stream-mmap --overlay=1 - -And from another console: - -.. code-block:: none - - $ v4l2-ctl -d1 --stream-out-mmap - -And yet another console: - -.. code-block:: none - - $ qv4l2 - -and start streaming. - -As you can see, this is not for the faint of heart... - - -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 -questionable. - -This driver has support for an output overlay and is capable of: - - - bitmap clipping, - - list clipping (up to 16 rectangles) - - chromakey - - source chromakey - - global alpha - - local alpha - - local inverse alpha - -Output overlays are not supported for multiplanar formats. In addition, the -pixelformat of the capture format and that of the framebuffer must be the -same for the overlay to work. Otherwise VIDIOC_OVERLAY will return an error. - -Output overlays only work if the driver has been configured to create a -framebuffer by setting flag 0x10000 in the node_types module option. The -created framebuffer has a size of 720x576 and supports ARGB 1:5:5:5 and -RGB 5:6:5. - -In order to see the effects of the various clipping, chromakeying or alpha -processing capabilities you need to turn on video looping and see the results -on the capture side. The use of the clipping, chromakeying or alpha processing -capabilities will slow down the video loop considerably as a lot of checks have -to be done per pixel. - - -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 -has that number of inputs. Each HDMI output will also create a -CEC adapter that is hooked up to the corresponding input port, or (if there -are more outputs than inputs) is not hooked up at all. In other words, -this is the equivalent of hooking up each output device to an input port of -the TV. Any remaining output devices remain unconnected. - -The EDID that each output reads reports a unique CEC physical address that is -based on the physical address of the EDID of the input. So if the EDID of the -receiver has physical address A.B.0.0, then each output will see an EDID -containing physical address A.B.C.0 where C is 1 to the number of inputs. If -there are more outputs than inputs then the remaining outputs have a CEC adapter -that is disabled and reports an invalid physical address. - - -Some Future Improvements ------------------------- - -Just as a reminder and in no particular order: - -- Add a virtual alsa driver to test audio -- Add virtual sub-devices and media controller support -- Some support for testing compressed video -- Add support to loop raw VBI output to raw VBI input -- Add support to loop teletext sliced VBI output to VBI input -- Fix sequence/field numbering when looping of video with alternate fields -- Add support for V4L2_CID_BG_COLOR for video outputs -- Add ARGB888 overlay support: better testing of the alpha channel -- Improve pixel aspect support in the tpg code by passing a real v4l2_fract -- Use per-queue locks and/or per-device locks to improve throughput -- Add support to loop from a specific output to a specific input across - vivid instances -- The SDR radio should use the same 'frequencies' for stations as the normal - radio receiver, and give back noise if the frequency doesn't match up with - a station frequency -- Make a thread for the RDS generation, that would help in particular for the - "Controls" RDS Rx I/O Mode as the read-only RDS controls could be updated - in real-time. -- Changing the EDID should cause hotplug detect emulation to happen. diff --git a/Documentation/media/v4l-drivers/zr364xx.rst b/Documentation/media/v4l-drivers/zr364xx.rst deleted file mode 100644 index ec8acb3e98fc..000000000000 --- a/Documentation/media/v4l-drivers/zr364xx.rst +++ /dev/null @@ -1,110 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -Zoran 364xx based USB webcam module -=================================== - -site: http://royale.zerezo.com/zr364xx/ - -mail: royale@zerezo.com - -.. 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 /sys/kernel/debug/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 ------ - -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 ------ - -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 ------------------ - -====== ======= ============== ==================== -Vendor Product Distributor Model -====== ======= ============== ==================== -0x08ca 0x0109 Aiptek PocketDV 3300 -0x08ca 0x0109 Maxell Maxcam PRO DV3 -0x041e 0x4024 Creative PC-CAM 880 -0x0d64 0x0108 Aiptek Fidelity 3200 -0x0d64 0x0108 Praktica DCZ 1.3 S -0x0d64 0x0108 Genius Digital Camera (?) -0x0d64 0x0108 DXG Technology Fashion Cam -0x0546 0x3187 Polaroid iON 230 -0x0d64 0x3108 Praktica Exakta DC 2200 -0x0d64 0x3108 Genius G-Shot D211 -0x0595 0x4343 Concord Eye-Q Duo 1300 -0x0595 0x4343 Concord Eye-Q Duo 2000 -0x0595 0x4343 Fujifilm EX-10 -0x0595 0x4343 Ricoh RDC-6000 -0x0595 0x4343 Digitrex DSC 1300 -0x0595 0x4343 Firstline FDC 2000 -0x0bb0 0x500d Concord EyeQ Go Wireless -0x0feb 0x2004 CRS Electronic 3.3 Digital Camera -0x0feb 0x2004 Packard Bell DSC-300 -0x055f 0xb500 Mustek MDC 3000 -0x08ca 0x2062 Aiptek PocketDV 5700 -0x052b 0x1a18 Chiphead Megapix V12 -0x04c8 0x0729 Konica Revio 2 -0x04f2 0xa208 Creative PC-CAM 850 -0x0784 0x0040 Traveler Slimline X5 -0x06d6 0x0034 Trust Powerc@m 750 -0x0a17 0x0062 Pentax Optio 50L -0x06d6 0x003b Trust Powerc@m 970Z -0x0a17 0x004e Pentax Optio 50 -0x041e 0x405d Creative DiVi CAM 516 -0x08ca 0x2102 Aiptek DV T300 -0x06d6 0x003d Trust Powerc@m 910Z -====== ======= ============== ==================== |