aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-03-21 12:01:08 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-21 12:01:08 -0500
commitf0481730c827421cf1548bfd73c073c0f47f2907 (patch)
tree0d25ab7377afd270995f8c31d2953ffa32c8aa40 /Documentation
parentc4a1745aa09fc110afdefea0e5d025043e348bae (diff)
parentecb73774e5f5b5f635a70073086c3f57b4ca4ae6 (diff)
Merge kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git with fixups
This merges the DVB tree, but fixes up the history that had gotten screwed up by a broken commit. The history is fixed up by re-doing the commit properly (taking the resolve from the final result of the original), and then cherry-picking the commits that followed the broken merge. * dvb: (190 commits) V4L/DVB (3545): Fixed no_overlay option and quirks on saa7134 driver V4L/DVB (3543): Fix Makefile to adapt to bt8xx/ conversion V4L/DVB (3538): Bt8xx documentation update V4L/DVB (3537a): Whitespace cleanup V4L/DVB (3533): Add WSS (wide screen signalling) module parameters V4L/DVB (3532): Moved duplicated code of ALPS BSRU6 tuner to a standalone file. V4L/DVB (3530): Kconfig: remove VIDEO_AUDIO_DECODER V4L/DVB (3529): Kconfig: add menu items for cs53l32a and wm8775 A/D converters V4L/DVB (3528): Kconfig: fix ATSC frontend menu item names by manufacturer V4L/DVB (3527): VIDEO_CPIA2 must depend on USB V4L/DVB (3525): Kconfig: remove VIDEO_DECODER V4L/DVB (3524): Kconfig: add menu items for saa7115 and saa7127 V4L/DVB (3494): Kconfig: select VIDEO_MSP3400 to build msp3400.ko V4L/DVB (3522): Fixed a trouble with other PAL standards V4L/DVB (3521): Avoid warnings at video-buf.c V4L/DVB (3514): SAA7113 doesn't have auto std chroma detection mode V4L/DVB (3513): Remove saa711x driver V4L/DVB (3509): Make a needlessly global function static. V4L/DVB (3506): Cinergy T2 dmx cleanup on disconnect V4L/DVB (3504): Medion 7134: Autodetect second bridge chip ... Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/dvb/avermedia.txt10
-rw-r--r--Documentation/dvb/bt8xx.txt140
-rw-r--r--Documentation/dvb/get_dvb_firmware23
-rw-r--r--Documentation/dvb/readme.txt32
-rw-r--r--Documentation/video4linux/CARDLIST.cx882
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--Documentation/video4linux/CARDLIST.saa71349
-rw-r--r--Documentation/video4linux/CARDLIST.tuner6
-rw-r--r--Documentation/video4linux/README.cpia2130
-rw-r--r--Documentation/video4linux/cpia2_overview.txt38
10 files changed, 279 insertions, 112 deletions
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt
index 068070ff13c..8bab8461a4a 100644
--- a/Documentation/dvb/avermedia.txt
+++ b/Documentation/dvb/avermedia.txt
@@ -1,4 +1,3 @@
1
2HOWTO: Get An Avermedia DVB-T working under Linux 1HOWTO: Get An Avermedia DVB-T working under Linux
3 ______________________________________________ 2 ______________________________________________
4 3
@@ -137,11 +136,8 @@ Getting the card going
137 To power up the card, load the following modules in the 136 To power up the card, load the following modules in the
138 following order: 137 following order:
139 138
140 * insmod dvb-core.o 139 * modprobe bttv (normally loaded automatically)
141 * modprobe bttv.o 140 * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
142 * insmod bt878.o
143 * insmod dvb-bt8xx.o
144 * insmod sp887x.o
145 141
146 Insertion of these modules into the running kernel will 142 Insertion of these modules into the running kernel will
147 activate the appropriate DVB device nodes. It is then possible 143 activate the appropriate DVB device nodes. It is then possible
@@ -302,4 +298,4 @@ Further Update
302 Many thanks to Nigel Pearson for the updates to this document 298 Many thanks to Nigel Pearson for the updates to this document
303 since the recent revision of the driver. 299 since the recent revision of the driver.
304 300
305 January 29th 2004 301 February 14th 2006
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt
index 52ed462061d..4e7614e606c 100644
--- a/Documentation/dvb/bt8xx.txt
+++ b/Documentation/dvb/bt8xx.txt
@@ -1,118 +1,78 @@
1How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working 1How to get the bt8xx cards working
2========================================================================== 2==================================
3 3
4This class of cards has a bt878a as the PCI interface, and 41) General information
5require the bttv driver. 5======================
6 6
7Please pay close attention to the warning about the bttv module 7This class of cards has a bt878a as the PCI interface, and require the bttv driver
8options below for the DST card. 8for accessing the i2c bus and the gpio pins of the bt8xx chipset.
9Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge:
9 10
101) General informations 11Compiling kernel please enable:
11======================= 12a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux"
12 13b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
13These drivers require the bttv driver to provide the means to access 14 => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards"
14the i2c bus and the gpio pins of the bt8xx chipset.
15
16Because of this, you need to enable
17"Device drivers" => "Multimedia devices"
18 => "Video For Linux" => "BT848 Video For Linux"
19
20Furthermore you need to enable
21"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
22 => "DVB for Linux" "DVB Core Support" "BT8xx based PCI cards"
23 15
242) Loading Modules 162) Loading Modules
25================== 17==================
26 18
27In general you need to load the bttv driver, which will handle the gpio and 19In default cases bttv is loaded automatically.
28i2c communication for us, plus the common dvb-bt8xx device driver. 20To load the backend either place dvb-bt8xx in etc/modules, or apply manually:
29The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst),
30FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded
31automatically by the dvb-bt8xx device driver.
32
333a) Nebula / Pinnacle PCTV / FusionHDTV Lite
34---------------------------------------------
35
36 $ modprobe bttv (normally bttv is being loaded automatically by kmod)
37 $ modprobe dvb-bt8xx
38
39(or just place dvb-bt8xx in /etc/modules for automatic loading)
40
41
423b) TwinHan and Clones
43--------------------------
44 21
45 $ modprobe bttv card=0x71 22 $ modprobe dvb-bt8xx
46 $ modprobe dvb-bt8xx
47 $ modprobe dst
48 23
49The value 0x71 will override the PCI type detection for dvb-bt8xx, 24All frontends will be loaded automatically.
50which is necessary for TwinHan cards. Omission of this parameter might result 25People running udev please see Documentation/dvb/udev.txt.
51in a system lockup.
52 26
53If you're having an older card (blue color PCB) and card=0x71 locks up 27In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary:
54your machine, try using 0x68, too. If that does not work, ask on the
55mailing list.
56 28
57The DST module takes a couple of useful parameters. 292a) Running TwinHan and Clones
30------------------------------
58 31
59verbose takes values 0 to 4. These values control the verbosity level, 32 $ modprobe bttv card=113
60and can be used to debug also. 33 $ modprobe dvb-bt8xx
34 $ modprobe dst
61 35
62verbose=0 means complete disabling of messages 36Useful parameters for verbosity level and debugging the dst module:
63 1 only error messages are displayed
64 2 notifications are also displayed
65 3 informational messages are also displayed
66 4 debug setting
67 37
68dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. 38verbose=0: messages are disabled
690x20 means it has a Conditional Access slot. 39 1: only error messages are displayed
40 2: notifications are displayed
41 3: other useful messages are displayed
42 4: debug setting
43dst_addons=0: card is a free to air (FTA) card only
44 0x20: card has a conditional access slot for scrambled channels
70 45
71The autodetected values are determined by the cards 'response string' 46The autodetected values are determined by the cards' "response string".
72which you can see in your logs e.g. 47In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
48For bug reports please send in a complete log with verbose=4 activated.
49Please also see Documentation/dvb/ci.txt.
73 50
74dst_get_device_id: Recognise [DSTMCI] 512b) Running multiple cards
75
76If you need to sent in bug reports on the dst, please do send in a complete
77log with the verbose=4 module parameter. For general usage, the default setting
78of verbose=1 is ideal.
79
80
814) Multiple cards
82-------------------------- 52--------------------------
83 53
84If you happen to be running multiple cards, it would be advisable to load 54Examples of card ID's:
85the bttv module with the card id. This would help to solve any module loading
86problems that you might face.
87
88For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite
89 55
90 $ modprobe bttv card=0x71 card=0x87 56Pinnacle PCTV Sat: 94
91 57Nebula Electronics Digi TV: 104
92Here the order of the card id is important and should be the same as that of the 58pcHDTV HD-2000 TV: 112
93physical order of the cards. Here card=0x71 represents the Twinhan and clones 59Twinhan DST and clones: 113
94and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be 60Avermedia AverTV DVB-T 771: 123
95specified in decimal, rather than hex: 61Avermedia AverTV DVB-T 761: 124
62DViCO FusionHDTV DVB-T Lite: 128
63DViCO FusionHDTV 5 Lite: 135
96 64
65Notice: The order of the card ID should be uprising:
66Example:
97 $ modprobe bttv card=113 card=135 67 $ modprobe bttv card=113 card=135
68 $ modprobe dvb-bt8xx
98 69
99Some examples of card-id's 70For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv.
100 71In case of further problems send questions to the mailing list: www.linuxdvb.org.
101Pinnacle Sat 0x5e (94)
102Nebula Digi TV 0x68 (104)
103PC HDTV 0x70 (112)
104Twinhan 0x71 (113)
105FusionHDTV DVB-T Lite 0x80 (128)
106FusionHDTV5 Lite 0x87 (135)
107
108For a full list of card-id's, see the V4L Documentation within the kernel
109source: linux/Documentation/video4linux/CARDLIST.bttv
110
111If you have problems with this please do ask on the mailing list.
112 72
113--
114Authors: Richard Walker, 73Authors: Richard Walker,
115 Jamie Honan, 74 Jamie Honan,
116 Michael Hunold, 75 Michael Hunold,
117 Manu Abraham, 76 Manu Abraham,
77 Uwe Bugla,
118 Michael Krufky 78 Michael Krufky
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware
index 75c28a17409..bb55f49f274 100644
--- a/Documentation/dvb/get_dvb_firmware
+++ b/Documentation/dvb/get_dvb_firmware
@@ -21,8 +21,9 @@
21use File::Temp qw/ tempdir /; 21use File::Temp qw/ tempdir /;
22use IO::Handle; 22use IO::Handle;
23 23
24@components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", 24@components = ( "sp8870", "sp887x", "tda10045", "tda10046",
25 "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", 25 "tda10046lifeview", "av7110", "dec2000t", "dec2540t",
26 "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
26 "or51211", "or51132_qam", "or51132_vsb", "bluebird"); 27 "or51211", "or51132_qam", "or51132_vsb", "bluebird");
27 28
28# Check args 29# Check args
@@ -126,6 +127,24 @@ sub tda10046 {
126 $outfile; 127 $outfile;
127} 128}
128 129
130sub tda10046lifeview {
131 my $sourcefile = "Drv_2.11.02.zip";
132 my $url = "http://www.lifeview.com.tw/drivers/pci_card/FlyDVB-T/$sourcefile";
133 my $hash = "1ea24dee4eea8fe971686981f34fd2e0";
134 my $outfile = "dvb-fe-tda10046.fw";
135 my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
136
137 checkstandard();
138
139 wgetfile($sourcefile, $url);
140 unzip($sourcefile, $tmpdir);
141 extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp");
142 verify("$tmpdir/fwtmp", $hash);
143 copy("$tmpdir/fwtmp", $outfile);
144
145 $outfile;
146}
147
129sub av7110 { 148sub av7110 {
130 my $sourcefile = "dvb-ttpci-01.fw-261d"; 149 my $sourcefile = "dvb-ttpci-01.fw-261d";
131 my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; 150 my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile";
diff --git a/Documentation/dvb/readme.txt b/Documentation/dvb/readme.txt
index f5c50b22de3..0b0380c9199 100644
--- a/Documentation/dvb/readme.txt
+++ b/Documentation/dvb/readme.txt
@@ -20,11 +20,23 @@ http://linuxtv.org/downloads/
20 20
21What's inside this directory: 21What's inside this directory:
22 22
23"avermedia.txt"
24contains detailed information about the
25Avermedia DVB-T cards. See also "bt8xx.txt".
26
27"bt8xx.txt"
28contains detailed information about the
29various bt8xx based "budget" DVB cards.
30
23"cards.txt" 31"cards.txt"
24contains a list of supported hardware. 32contains a list of supported hardware.
25 33
34"ci.txt"
35contains detailed information about the
36CI module as part from TwinHan cards and Clones.
37
26"contributors.txt" 38"contributors.txt"
27is the who-is-who of DVB development 39is the who-is-who of DVB development.
28 40
29"faq.txt" 41"faq.txt"
30contains frequently asked questions and their answers. 42contains frequently asked questions and their answers.
@@ -34,19 +46,17 @@ script to download and extract firmware for those devices
34that require it. 46that require it.
35 47
36"ttusb-dec.txt" 48"ttusb-dec.txt"
37contains detailed informations about the 49contains detailed information about the
38TT DEC2000/DEC3000 USB DVB hardware. 50TT DEC2000/DEC3000 USB DVB hardware.
39 51
40"bt8xx.txt"
41contains detailed installation instructions for the
42various bt8xx based "budget" DVB cards
43(Nebula, Pinnacle PCTV, Twinhan DST)
44
45"README.dibusb"
46contains detailed information about adapters
47based on DiBcom reference design.
48
49"udev.txt" 52"udev.txt"
50how to get DVB and udev up and running. 53how to get DVB and udev up and running.
51 54
55"README.dvb-usb"
56contains detailed information about the DVB USB cards.
57
58"README.flexcop"
59contains detailed information about the
60Technisat- and Flexcop B2C2 drivers.
61
52Good luck and have fun! 62Good luck and have fun!
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 8bea3fbd054..3b39a91b24b 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -43,3 +43,5 @@
43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] 43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025]
44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] 44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1]
45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54]
46 45 -> KWorld HardwareMpegTV XPert [17de:0840]
47 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index a0c7cad2097..a3026689bbe 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -8,3 +8,4 @@
8 7 -> Leadtek Winfast USB II (em2800) 8 7 -> Leadtek Winfast USB II (em2800)
9 8 -> Kworld USB2800 (em2800) 9 8 -> Kworld USB2800 (em2800)
10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] 10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207]
11 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index da4fb890165..8c719545596 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -83,3 +83,12 @@
83 82 -> MSI TV@Anywhere plus [1462:6231] 83 82 -> MSI TV@Anywhere plus [1462:6231]
84 83 -> Terratec Cinergy 250 PCI TV [153b:1160] 84 83 -> Terratec Cinergy 250 PCI TV [153b:1160]
85 84 -> LifeView FlyDVB Trio [5168:0319] 85 84 -> LifeView FlyDVB Trio [5168:0319]
86 85 -> AverTV DVB-T 777 [1461:2c05]
87 86 -> LifeView FlyDVB-T [5168:0301]
88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]
89 88 -> Tevion/KWorld DVB-T 220RF [17de:7201]
90 89 -> ELSA EX-VISION 700TV [1048:226c]
91 90 -> Kworld ATSC110 [17de:7350]
92 91 -> AVerMedia A169 B [1461:7360]
93 92 -> AVerMedia A169 B1 [1461:6360]
94 93 -> Medion 7134 Bridge #2 [16be:0005]
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index f6d0cf7b792..1bcdac67dd8 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio
64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner 64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
65tuner=64 - LG TDVS-H062F/TUA6034 65tuner=64 - LG TDVS-H062F/TUA6034
66tuner=65 - Ymec TVF66T5-B/DFF 66tuner=65 - Ymec TVF66T5-B/DFF
67tuner=66 - LG NTSC (TALN mini series) 67tuner=66 - LG TALN series
68tuner=67 - Philips TD1316 Hybrid Tuner 68tuner=67 - Philips TD1316 Hybrid Tuner
69tuner=68 - Philips TUV1236D ATSC/NTSC dual in 69tuner=68 - Philips TUV1236D ATSC/NTSC dual in
70tuner=69 - Tena TNF 5335 MF 70tuner=69 - Tena TNF 5335 and similar models
71tuner=70 - Samsung TCPN 2121P30A 71tuner=70 - Samsung TCPN 2121P30A
72tuner=71 - Xceive xc3028
73tuner=72 - Thomson FE6600
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2
new file mode 100644
index 00000000000..ce8213d28b6
--- /dev/null
+++ b/Documentation/video4linux/README.cpia2
@@ -0,0 +1,130 @@
1$Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $
2
31. Introduction
4
5 This is a driver for STMicroelectronics's CPiA2 (second generation
6Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG
7stream at up to vga size. It implements the Video4Linux interface as much as
8possible. Since the V4L interface does not support compressed formats, only
9an mjpeg enabled application can be used with the camera. We have modified the
10gqcam application to view this stream.
11
12 The driver is implemented as two kernel modules. The cpia2 module
13contains the camera functions and the V4L interface. The cpia2_usb module
14contains usb specific functions. The main reason for this was the size of the
15module was getting out of hand, so I separted them. It is not likely that
16there will be a parallel port version.
17
18FEATURES:
19 - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
20 sensors. I only have the vga sensor, so can't test the other.
21 - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
22 VGA and QVGA are the native image sizes for the VGA camera. CIF is done
23 in the coprocessor by scaling QVGA. All other sizes are done by clipping.
24 - Palette: YCrCb, compressed with MJPEG.
25 - Some compression parameters are settable.
26 - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
27 - Adjust brightness, color, contrast while streaming.
28 - Flicker control settable for 50 or 60 Hz mains frequency.
29
302. Making and installing the stv672 driver modules:
31
32 Requirements:
33 -------------
34 This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has
35only been tested on 2.6. Video4Linux must be either compiled into the kernel or
36available as a module. Video4Linux2 is automatically detected and made
37available at compile time.
38
39 Compiling:
40 ----------
41 As root, do a make install. This will compile and install the modules
42into the media/video directory in the module tree. For 2.4 kernels, use
43Makefile_2.4 (aka do make -f Makefile_2.4 install).
44
45 Setup:
46 ------
47 Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
48may be done automatically by your distribution.
49
503. Driver options
51
52 Option Description
53 ------ -----------
54 video_nr video device to register (0=/dev/video0, etc)
55 range -1 to 64. default is -1 (first available)
56 If you have more than 1 camera, this MUST be -1.
57 buffer_size Size for each frame buffer in bytes (default 68k)
58 num_buffers Number of frame buffers (1-32, default 3)
59 alternate USB Alternate (2-7, default 7)
60 flicker_freq Frequency for flicker reduction(50 or 60, default 60)
61 flicker_mode 0 to disable, or 1 to enable flicker reduction.
62 (default 0). This is only effective if the camera
63 uses a stv0672 coprocessor.
64
65 Setting the options:
66 --------------------
67 If you are using modules, edit /etc/modules.conf and add an options
68line like this:
69 options cpia2 num_buffers=3 buffer_size=65535
70
71 If the driver is compiled into the kernel, at boot time specify them
72like this:
73 cpia2.num_buffers=3 cpia2.buffer_size=65535
74
75 What buffer size should I use?
76 ------------------------------
77 The maximum image size depends on the alternate you choose, and the
78frame rate achieved by the camera. If the compression engine is able to
79keep up with the frame rate, the maximum image size is given by the table
80below.
81 The compression engine starts out at maximum compression, and will
82increase image quality until it is close to the size in the table. As long
83as the compression engine can keep up with the frame rate, after a short time
84the images will all be about the size in the table, regardless of resolution.
85 At low alternate settings, the compression engine may not be able to
86compress the image enough and will reduce the frame rate by producing larger
87images.
88 The default of 68k should be good for most users. This will handle
89any alternate at frame rates down to 15fps. For lower frame rates, it may
90be necessary to increase the buffer size to avoid having frames dropped due
91to insufficient space.
92
93 Image size(bytes)
94 Alternate bytes/ms 15fps 30fps
95 2 128 8533 4267
96 3 384 25600 12800
97 4 640 42667 21333
98 5 768 51200 25600
99 6 896 59733 29867
100 7 1023 68200 34100
101
102 How many buffers should I use?
103 ------------------------------
104 For normal streaming, 3 should give the best results. With only 2,
105it is possible for the camera to finish sending one image just after a
106program has started reading the other. If this happens, the driver must drop
107a frame. The exception to this is if you have a heavily loaded machine. In
108this case use 2 buffers. You are probably not reading at the full frame rate.
109If the camera can send multiple images before a read finishes, it could
110overwrite the third buffer before the read finishes, leading to a corrupt
111image. Single and double buffering have extra checks to avoid overwriting.
112
1134. Using the camera
114
115 We are providing a modified gqcam application to view the output. In
116order to avoid confusion, here it is called mview. There is also the qx5view
117program which can also control the lights on the qx5 microscope. MJPEG Tools
118(http://mjpeg.sourceforge.net) can also be used to record from the camera.
119
1205. Notes to developers:
121
122 - This is a driver version stripped of the 2.4 back compatibility
123 and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support.
124
1256. Thanks:
126
127 - Peter Pregler <Peter_Pregler@email.com>,
128 Scott J. Bertin <scottbertin@yahoo.com>, and
129 Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
130 this one was modelled from.
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt
new file mode 100644
index 00000000000..a6e53665216
--- /dev/null
+++ b/Documentation/video4linux/cpia2_overview.txt
@@ -0,0 +1,38 @@
1 Programmer's View of Cpia2
2
3Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a
4division of ST Microelectronics). There are two versions. The first is the
5STV0672, which is capable of up to 30 frames per second (fps) in frame sizes
6up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version,
7which can handle up to 30 fps VGA. Both coprocessors can be attached to two
8CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will
9be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors.
10
11The two chipsets operate almost identically. The core is an 8051 processor,
12running two different versions of firmware. The 672 runs the VP4 video
13processor code, the 676 runs VP5. There are a few differences in register
14mappings for the two chips. In these cases, the symbols defined in the
15header files are marked with VP4 or VP5 as part of the symbol name.
16
17The cameras appear externally as three sets of registers. Setting register
18values is the only way to control the camera. Some settings are
19interdependant, such as the sequence required to power up the camera. I will
20try to make note of all of these cases.
21
22The register sets are called blocks. Block 0 is the system block. This
23section is always powered on when the camera is plugged in. It contains
24registers that control housekeeping functions such as powering up the video
25processor. The video processor is the VP block. These registers control
26how the video from the sensor is processed. Examples are timing registers,
27user mode (vga, qvga), scaling, cropping, framerates, and so on. The last
28block is the video compressor (VC). The video stream sent from the camera is
29compressed as Motion JPEG (JPEGA). The VC controls all of the compression
30parameters. Looking at the file cpia2_registers.h, you can get a full view
31of these registers and the possible values for most of them.
32
33One or more registers can be set or read by sending a usb control message to
34the camera. There are three modes for this. Block mode requests a number
35of contiguous registers. Random mode reads or writes random registers with
36a tuple structure containing address/value pairs. The repeat mode is only
37used by VP4 to load a firmware patch. It contains a starting address and
38a sequence of bytes to be written into a gpio port. \ No newline at end of file