diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:01:08 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:01:08 -0500 |
commit | f0481730c827421cf1548bfd73c073c0f47f2907 (patch) | |
tree | 0d25ab7377afd270995f8c31d2953ffa32c8aa40 /Documentation | |
parent | c4a1745aa09fc110afdefea0e5d025043e348bae (diff) | |
parent | ecb73774e5f5b5f635a70073086c3f57b4ca4ae6 (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.txt | 10 | ||||
-rw-r--r-- | Documentation/dvb/bt8xx.txt | 140 | ||||
-rw-r--r-- | Documentation/dvb/get_dvb_firmware | 23 | ||||
-rw-r--r-- | Documentation/dvb/readme.txt | 32 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 2 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.em28xx | 1 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 9 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.tuner | 6 | ||||
-rw-r--r-- | Documentation/video4linux/README.cpia2 | 130 | ||||
-rw-r--r-- | Documentation/video4linux/cpia2_overview.txt | 38 |
10 files changed, 279 insertions, 112 deletions
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt index 068070ff13cd..8bab8461a4af 100644 --- a/Documentation/dvb/avermedia.txt +++ b/Documentation/dvb/avermedia.txt | |||
@@ -1,4 +1,3 @@ | |||
1 | |||
2 | HOWTO: Get An Avermedia DVB-T working under Linux | 1 | HOWTO: 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 52ed462061df..4e7614e606c5 100644 --- a/Documentation/dvb/bt8xx.txt +++ b/Documentation/dvb/bt8xx.txt | |||
@@ -1,118 +1,78 @@ | |||
1 | How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working | 1 | How to get the bt8xx cards working |
2 | ========================================================================== | 2 | ================================== |
3 | 3 | ||
4 | This class of cards has a bt878a as the PCI interface, and | 4 | 1) General information |
5 | require the bttv driver. | 5 | ====================== |
6 | 6 | ||
7 | Please pay close attention to the warning about the bttv module | 7 | This class of cards has a bt878a as the PCI interface, and require the bttv driver |
8 | options below for the DST card. | 8 | for accessing the i2c bus and the gpio pins of the bt8xx chipset. |
9 | Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge: | ||
9 | 10 | ||
10 | 1) General informations | 11 | Compiling kernel please enable: |
11 | ======================= | 12 | a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux" |
12 | 13 | b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | |
13 | These drivers require the bttv driver to provide the means to access | 14 | => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards" |
14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
15 | |||
16 | Because of this, you need to enable | ||
17 | "Device drivers" => "Multimedia devices" | ||
18 | => "Video For Linux" => "BT848 Video For Linux" | ||
19 | |||
20 | Furthermore 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 | ||
24 | 2) Loading Modules | 16 | 2) Loading Modules |
25 | ================== | 17 | ================== |
26 | 18 | ||
27 | In general you need to load the bttv driver, which will handle the gpio and | 19 | In default cases bttv is loaded automatically. |
28 | i2c communication for us, plus the common dvb-bt8xx device driver. | 20 | To load the backend either place dvb-bt8xx in etc/modules, or apply manually: |
29 | The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst), | ||
30 | FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded | ||
31 | automatically by the dvb-bt8xx device driver. | ||
32 | |||
33 | 3a) 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 | |||
42 | 3b) TwinHan and Clones | ||
43 | -------------------------- | ||
44 | 21 | ||
45 | $ modprobe bttv card=0x71 | 22 | $ modprobe dvb-bt8xx |
46 | $ modprobe dvb-bt8xx | ||
47 | $ modprobe dst | ||
48 | 23 | ||
49 | The value 0x71 will override the PCI type detection for dvb-bt8xx, | 24 | All frontends will be loaded automatically. |
50 | which is necessary for TwinHan cards. Omission of this parameter might result | 25 | People running udev please see Documentation/dvb/udev.txt. |
51 | in a system lockup. | ||
52 | 26 | ||
53 | If you're having an older card (blue color PCB) and card=0x71 locks up | 27 | In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary: |
54 | your machine, try using 0x68, too. If that does not work, ask on the | ||
55 | mailing list. | ||
56 | 28 | ||
57 | The DST module takes a couple of useful parameters. | 29 | 2a) Running TwinHan and Clones |
30 | ------------------------------ | ||
58 | 31 | ||
59 | verbose takes values 0 to 4. These values control the verbosity level, | 32 | $ modprobe bttv card=113 |
60 | and can be used to debug also. | 33 | $ modprobe dvb-bt8xx |
34 | $ modprobe dst | ||
61 | 35 | ||
62 | verbose=0 means complete disabling of messages | 36 | Useful 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 | ||
68 | dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. | 38 | verbose=0: messages are disabled |
69 | 0x20 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 | ||
43 | dst_addons=0: card is a free to air (FTA) card only | ||
44 | 0x20: card has a conditional access slot for scrambled channels | ||
70 | 45 | ||
71 | The autodetected values are determined by the cards 'response string' | 46 | The autodetected values are determined by the cards' "response string". |
72 | which you can see in your logs e.g. | 47 | In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. |
48 | For bug reports please send in a complete log with verbose=4 activated. | ||
49 | Please also see Documentation/dvb/ci.txt. | ||
73 | 50 | ||
74 | dst_get_device_id: Recognise [DSTMCI] | 51 | 2b) Running multiple cards |
75 | |||
76 | If you need to sent in bug reports on the dst, please do send in a complete | ||
77 | log with the verbose=4 module parameter. For general usage, the default setting | ||
78 | of verbose=1 is ideal. | ||
79 | |||
80 | |||
81 | 4) Multiple cards | ||
82 | -------------------------- | 52 | -------------------------- |
83 | 53 | ||
84 | If you happen to be running multiple cards, it would be advisable to load | 54 | Examples of card ID's: |
85 | the bttv module with the card id. This would help to solve any module loading | ||
86 | problems that you might face. | ||
87 | |||
88 | For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite | ||
89 | 55 | ||
90 | $ modprobe bttv card=0x71 card=0x87 | 56 | Pinnacle PCTV Sat: 94 |
91 | 57 | Nebula Electronics Digi TV: 104 | |
92 | Here the order of the card id is important and should be the same as that of the | 58 | pcHDTV HD-2000 TV: 112 |
93 | physical order of the cards. Here card=0x71 represents the Twinhan and clones | 59 | Twinhan DST and clones: 113 |
94 | and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be | 60 | Avermedia AverTV DVB-T 771: 123 |
95 | specified in decimal, rather than hex: | 61 | Avermedia AverTV DVB-T 761: 124 |
62 | DViCO FusionHDTV DVB-T Lite: 128 | ||
63 | DViCO FusionHDTV 5 Lite: 135 | ||
96 | 64 | ||
65 | Notice: The order of the card ID should be uprising: | ||
66 | Example: | ||
97 | $ modprobe bttv card=113 card=135 | 67 | $ modprobe bttv card=113 card=135 |
68 | $ modprobe dvb-bt8xx | ||
98 | 69 | ||
99 | Some examples of card-id's | 70 | For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv. |
100 | 71 | In case of further problems send questions to the mailing list: www.linuxdvb.org. | |
101 | Pinnacle Sat 0x5e (94) | ||
102 | Nebula Digi TV 0x68 (104) | ||
103 | PC HDTV 0x70 (112) | ||
104 | Twinhan 0x71 (113) | ||
105 | FusionHDTV DVB-T Lite 0x80 (128) | ||
106 | FusionHDTV5 Lite 0x87 (135) | ||
107 | |||
108 | For a full list of card-id's, see the V4L Documentation within the kernel | ||
109 | source: linux/Documentation/video4linux/CARDLIST.bttv | ||
110 | |||
111 | If you have problems with this please do ask on the mailing list. | ||
112 | 72 | ||
113 | -- | ||
114 | Authors: Richard Walker, | 73 | Authors: 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 75c28a174092..bb55f49f2745 100644 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -21,8 +21,9 @@ | |||
21 | use File::Temp qw/ tempdir /; | 21 | use File::Temp qw/ tempdir /; |
22 | use IO::Handle; | 22 | use 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 | ||
130 | sub 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 | |||
129 | sub av7110 { | 148 | sub 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 f5c50b22de3b..0b0380c91990 100644 --- a/Documentation/dvb/readme.txt +++ b/Documentation/dvb/readme.txt | |||
@@ -20,11 +20,23 @@ http://linuxtv.org/downloads/ | |||
20 | 20 | ||
21 | What's inside this directory: | 21 | What's inside this directory: |
22 | 22 | ||
23 | "avermedia.txt" | ||
24 | contains detailed information about the | ||
25 | Avermedia DVB-T cards. See also "bt8xx.txt". | ||
26 | |||
27 | "bt8xx.txt" | ||
28 | contains detailed information about the | ||
29 | various bt8xx based "budget" DVB cards. | ||
30 | |||
23 | "cards.txt" | 31 | "cards.txt" |
24 | contains a list of supported hardware. | 32 | contains a list of supported hardware. |
25 | 33 | ||
34 | "ci.txt" | ||
35 | contains detailed information about the | ||
36 | CI module as part from TwinHan cards and Clones. | ||
37 | |||
26 | "contributors.txt" | 38 | "contributors.txt" |
27 | is the who-is-who of DVB development | 39 | is the who-is-who of DVB development. |
28 | 40 | ||
29 | "faq.txt" | 41 | "faq.txt" |
30 | contains frequently asked questions and their answers. | 42 | contains frequently asked questions and their answers. |
@@ -34,19 +46,17 @@ script to download and extract firmware for those devices | |||
34 | that require it. | 46 | that require it. |
35 | 47 | ||
36 | "ttusb-dec.txt" | 48 | "ttusb-dec.txt" |
37 | contains detailed informations about the | 49 | contains detailed information about the |
38 | TT DEC2000/DEC3000 USB DVB hardware. | 50 | TT DEC2000/DEC3000 USB DVB hardware. |
39 | 51 | ||
40 | "bt8xx.txt" | ||
41 | contains detailed installation instructions for the | ||
42 | various bt8xx based "budget" DVB cards | ||
43 | (Nebula, Pinnacle PCTV, Twinhan DST) | ||
44 | |||
45 | "README.dibusb" | ||
46 | contains detailed information about adapters | ||
47 | based on DiBcom reference design. | ||
48 | |||
49 | "udev.txt" | 52 | "udev.txt" |
50 | how to get DVB and udev up and running. | 53 | how to get DVB and udev up and running. |
51 | 54 | ||
55 | "README.dvb-usb" | ||
56 | contains detailed information about the DVB USB cards. | ||
57 | |||
58 | "README.flexcop" | ||
59 | contains detailed information about the | ||
60 | Technisat- and Flexcop B2C2 drivers. | ||
61 | |||
52 | Good luck and have fun! | 62 | Good luck and have fun! |
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 8bea3fbd0548..3b39a91b24bd 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 a0c7cad20971..a3026689bbe6 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 da4fb890165f..8c7195455963 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 f6d0cf7b7922..1bcdac67dd8c 100644 --- a/Documentation/video4linux/CARDLIST.tuner +++ b/Documentation/video4linux/CARDLIST.tuner | |||
@@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio | |||
64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner | 64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner |
65 | tuner=64 - LG TDVS-H062F/TUA6034 | 65 | tuner=64 - LG TDVS-H062F/TUA6034 |
66 | tuner=65 - Ymec TVF66T5-B/DFF | 66 | tuner=65 - Ymec TVF66T5-B/DFF |
67 | tuner=66 - LG NTSC (TALN mini series) | 67 | tuner=66 - LG TALN series |
68 | tuner=67 - Philips TD1316 Hybrid Tuner | 68 | tuner=67 - Philips TD1316 Hybrid Tuner |
69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in | 69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in |
70 | tuner=69 - Tena TNF 5335 MF | 70 | tuner=69 - Tena TNF 5335 and similar models |
71 | tuner=70 - Samsung TCPN 2121P30A | 71 | tuner=70 - Samsung TCPN 2121P30A |
72 | tuner=71 - Xceive xc3028 | ||
73 | tuner=72 - Thomson FE6600 | ||
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2 new file mode 100644 index 000000000000..ce8213d28b67 --- /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 | |||
3 | 1. Introduction | ||
4 | |||
5 | This is a driver for STMicroelectronics's CPiA2 (second generation | ||
6 | Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG | ||
7 | stream at up to vga size. It implements the Video4Linux interface as much as | ||
8 | possible. Since the V4L interface does not support compressed formats, only | ||
9 | an mjpeg enabled application can be used with the camera. We have modified the | ||
10 | gqcam application to view this stream. | ||
11 | |||
12 | The driver is implemented as two kernel modules. The cpia2 module | ||
13 | contains the camera functions and the V4L interface. The cpia2_usb module | ||
14 | contains usb specific functions. The main reason for this was the size of the | ||
15 | module was getting out of hand, so I separted them. It is not likely that | ||
16 | there will be a parallel port version. | ||
17 | |||
18 | FEATURES: | ||
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 | |||
30 | 2. 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 | ||
35 | only been tested on 2.6. Video4Linux must be either compiled into the kernel or | ||
36 | available as a module. Video4Linux2 is automatically detected and made | ||
37 | available at compile time. | ||
38 | |||
39 | Compiling: | ||
40 | ---------- | ||
41 | As root, do a make install. This will compile and install the modules | ||
42 | into the media/video directory in the module tree. For 2.4 kernels, use | ||
43 | Makefile_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 | ||
48 | may be done automatically by your distribution. | ||
49 | |||
50 | 3. 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 | ||
68 | line 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 | ||
72 | like 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 | ||
78 | frame rate achieved by the camera. If the compression engine is able to | ||
79 | keep up with the frame rate, the maximum image size is given by the table | ||
80 | below. | ||
81 | The compression engine starts out at maximum compression, and will | ||
82 | increase image quality until it is close to the size in the table. As long | ||
83 | as the compression engine can keep up with the frame rate, after a short time | ||
84 | the 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 | ||
86 | compress the image enough and will reduce the frame rate by producing larger | ||
87 | images. | ||
88 | The default of 68k should be good for most users. This will handle | ||
89 | any alternate at frame rates down to 15fps. For lower frame rates, it may | ||
90 | be necessary to increase the buffer size to avoid having frames dropped due | ||
91 | to 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, | ||
105 | it is possible for the camera to finish sending one image just after a | ||
106 | program has started reading the other. If this happens, the driver must drop | ||
107 | a frame. The exception to this is if you have a heavily loaded machine. In | ||
108 | this case use 2 buffers. You are probably not reading at the full frame rate. | ||
109 | If the camera can send multiple images before a read finishes, it could | ||
110 | overwrite the third buffer before the read finishes, leading to a corrupt | ||
111 | image. Single and double buffering have extra checks to avoid overwriting. | ||
112 | |||
113 | 4. Using the camera | ||
114 | |||
115 | We are providing a modified gqcam application to view the output. In | ||
116 | order to avoid confusion, here it is called mview. There is also the qx5view | ||
117 | program 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 | |||
120 | 5. 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 | |||
125 | 6. 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 000000000000..a6e53665216b --- /dev/null +++ b/Documentation/video4linux/cpia2_overview.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Programmer's View of Cpia2 | ||
2 | |||
3 | Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a | ||
4 | division of ST Microelectronics). There are two versions. The first is the | ||
5 | STV0672, which is capable of up to 30 frames per second (fps) in frame sizes | ||
6 | up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version, | ||
7 | which can handle up to 30 fps VGA. Both coprocessors can be attached to two | ||
8 | CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will | ||
9 | be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors. | ||
10 | |||
11 | The two chipsets operate almost identically. The core is an 8051 processor, | ||
12 | running two different versions of firmware. The 672 runs the VP4 video | ||
13 | processor code, the 676 runs VP5. There are a few differences in register | ||
14 | mappings for the two chips. In these cases, the symbols defined in the | ||
15 | header files are marked with VP4 or VP5 as part of the symbol name. | ||
16 | |||
17 | The cameras appear externally as three sets of registers. Setting register | ||
18 | values is the only way to control the camera. Some settings are | ||
19 | interdependant, such as the sequence required to power up the camera. I will | ||
20 | try to make note of all of these cases. | ||
21 | |||
22 | The register sets are called blocks. Block 0 is the system block. This | ||
23 | section is always powered on when the camera is plugged in. It contains | ||
24 | registers that control housekeeping functions such as powering up the video | ||
25 | processor. The video processor is the VP block. These registers control | ||
26 | how the video from the sensor is processed. Examples are timing registers, | ||
27 | user mode (vga, qvga), scaling, cropping, framerates, and so on. The last | ||
28 | block is the video compressor (VC). The video stream sent from the camera is | ||
29 | compressed as Motion JPEG (JPEGA). The VC controls all of the compression | ||
30 | parameters. Looking at the file cpia2_registers.h, you can get a full view | ||
31 | of these registers and the possible values for most of them. | ||
32 | |||
33 | One or more registers can be set or read by sending a usb control message to | ||
34 | the camera. There are three modes for this. Block mode requests a number | ||
35 | of contiguous registers. Random mode reads or writes random registers with | ||
36 | a tuple structure containing address/value pairs. The repeat mode is only | ||
37 | used by VP4 to load a firmware patch. It contains a starting address and | ||
38 | a sequence of bytes to be written into a gpio port. \ No newline at end of file | ||