diff options
Diffstat (limited to 'drivers/media/video/bttv-cards.c')
-rw-r--r-- | drivers/media/video/bttv-cards.c | 5307 |
1 files changed, 2846 insertions, 2461 deletions
diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c index 0881a17d5226..3413bace443a 100644 --- a/drivers/media/video/bttv-cards.c +++ b/drivers/media/video/bttv-cards.c | |||
@@ -6,7 +6,7 @@ | |||
6 | like the big tvcards array for the most part | 6 | like the big tvcards array for the most part |
7 | 7 | ||
8 | Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) | 8 | Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) |
9 | & Marcus Metzler (mocm@thp.uni-koeln.de) | 9 | & Marcus Metzler (mocm@thp.uni-koeln.de) |
10 | (c) 1999-2001 Gerd Knorr <kraxel@goldbach.in-berlin.de> | 10 | (c) 1999-2001 Gerd Knorr <kraxel@goldbach.in-berlin.de> |
11 | 11 | ||
12 | This program is free software; you can redistribute it and/or modify | 12 | This program is free software; you can redistribute it and/or modify |
@@ -145,162 +145,163 @@ static struct CARD { | |||
145 | int cardnr; | 145 | int cardnr; |
146 | char *name; | 146 | char *name; |
147 | } cards[] __devinitdata = { | 147 | } cards[] __devinitdata = { |
148 | { 0x13eb0070, BTTV_HAUPPAUGE878, "Hauppauge WinTV" }, | 148 | { 0x13eb0070, BTTV_BOARD_HAUPPAUGE878, "Hauppauge WinTV" }, |
149 | { 0x39000070, BTTV_HAUPPAUGE878, "Hauppauge WinTV-D" }, | 149 | { 0x39000070, BTTV_BOARD_HAUPPAUGE878, "Hauppauge WinTV-D" }, |
150 | { 0x45000070, BTTV_HAUPPAUGEPVR, "Hauppauge WinTV/PVR" }, | 150 | { 0x45000070, BTTV_BOARD_HAUPPAUGEPVR, "Hauppauge WinTV/PVR" }, |
151 | { 0xff000070, BTTV_OSPREY1x0, "Osprey-100" }, | 151 | { 0xff000070, BTTV_BOARD_OSPREY1x0, "Osprey-100" }, |
152 | { 0xff010070, BTTV_OSPREY2x0_SVID,"Osprey-200" }, | 152 | { 0xff010070, BTTV_BOARD_OSPREY2x0_SVID,"Osprey-200" }, |
153 | { 0xff020070, BTTV_OSPREY500, "Osprey-500" }, | 153 | { 0xff020070, BTTV_BOARD_OSPREY500, "Osprey-500" }, |
154 | { 0xff030070, BTTV_OSPREY2000, "Osprey-2000" }, | 154 | { 0xff030070, BTTV_BOARD_OSPREY2000, "Osprey-2000" }, |
155 | { 0xff040070, BTTV_OSPREY540, "Osprey-540" }, | 155 | { 0xff040070, BTTV_BOARD_OSPREY540, "Osprey-540" }, |
156 | 156 | { 0xff070070, BTTV_BOARD_OSPREY440, "Osprey-440" }, | |
157 | { 0x00011002, BTTV_ATI_TVWONDER, "ATI TV Wonder" }, | 157 | |
158 | { 0x00031002, BTTV_ATI_TVWONDERVE,"ATI TV Wonder/VE" }, | 158 | { 0x00011002, BTTV_BOARD_ATI_TVWONDER, "ATI TV Wonder" }, |
159 | 159 | { 0x00031002, BTTV_BOARD_ATI_TVWONDERVE,"ATI TV Wonder/VE" }, | |
160 | { 0x6606107d, BTTV_WINFAST2000, "Leadtek WinFast TV 2000" }, | 160 | |
161 | { 0x6607107d, BTTV_WINFASTVC100, "Leadtek WinFast VC 100" }, | 161 | { 0x6606107d, BTTV_BOARD_WINFAST2000, "Leadtek WinFast TV 2000" }, |
162 | { 0x6609107d, BTTV_WINFAST2000, "Leadtek TV 2000 XP" }, | 162 | { 0x6607107d, BTTV_BOARD_WINFASTVC100, "Leadtek WinFast VC 100" }, |
163 | { 0x263610b4, BTTV_STB2, "STB TV PCI FM, Gateway P/N 6000704" }, | 163 | { 0x6609107d, BTTV_BOARD_WINFAST2000, "Leadtek TV 2000 XP" }, |
164 | { 0x264510b4, BTTV_STB2, "STB TV PCI FM, Gateway P/N 6000704" }, | 164 | { 0x263610b4, BTTV_BOARD_STB2, "STB TV PCI FM, Gateway P/N 6000704" }, |
165 | { 0x402010fc, BTTV_GVBCTV3PCI, "I-O Data Co. GV-BCTV3/PCI" }, | 165 | { 0x264510b4, BTTV_BOARD_STB2, "STB TV PCI FM, Gateway P/N 6000704" }, |
166 | { 0x405010fc, BTTV_GVBCTV4PCI, "I-O Data Co. GV-BCTV4/PCI" }, | 166 | { 0x402010fc, BTTV_BOARD_GVBCTV3PCI, "I-O Data Co. GV-BCTV3/PCI" }, |
167 | { 0x407010fc, BTTV_GVBCTV5PCI, "I-O Data Co. GV-BCTV5/PCI" }, | 167 | { 0x405010fc, BTTV_BOARD_GVBCTV4PCI, "I-O Data Co. GV-BCTV4/PCI" }, |
168 | { 0xd01810fc, BTTV_GVBCTV5PCI, "I-O Data Co. GV-BCTV5/PCI" }, | 168 | { 0x407010fc, BTTV_BOARD_GVBCTV5PCI, "I-O Data Co. GV-BCTV5/PCI" }, |
169 | 169 | { 0xd01810fc, BTTV_BOARD_GVBCTV5PCI, "I-O Data Co. GV-BCTV5/PCI" }, | |
170 | { 0x001211bd, BTTV_PINNACLE, "Pinnacle PCTV" }, | 170 | |
171 | { 0x001211bd, BTTV_BOARD_PINNACLE, "Pinnacle PCTV" }, | ||
171 | /* some cards ship with byteswapped IDs ... */ | 172 | /* some cards ship with byteswapped IDs ... */ |
172 | { 0x1200bd11, BTTV_PINNACLE, "Pinnacle PCTV [bswap]" }, | 173 | { 0x1200bd11, BTTV_BOARD_PINNACLE, "Pinnacle PCTV [bswap]" }, |
173 | { 0xff00bd11, BTTV_PINNACLE, "Pinnacle PCTV [bswap]" }, | 174 | { 0xff00bd11, BTTV_BOARD_PINNACLE, "Pinnacle PCTV [bswap]" }, |
174 | /* this seems to happen as well ... */ | 175 | /* this seems to happen as well ... */ |
175 | { 0xff1211bd, BTTV_PINNACLE, "Pinnacle PCTV" }, | 176 | { 0xff1211bd, BTTV_BOARD_PINNACLE, "Pinnacle PCTV" }, |
176 | 177 | ||
177 | { 0x3000121a, BTTV_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, | 178 | { 0x3000121a, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, |
178 | { 0x263710b4, BTTV_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, | 179 | { 0x263710b4, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, |
179 | { 0x3060121a, BTTV_STB2, "3Dfx VoodooTV 100/ STB OEM" }, | 180 | { 0x3060121a, BTTV_BOARD_STB2, "3Dfx VoodooTV 100/ STB OEM" }, |
180 | 181 | ||
181 | { 0x3000144f, BTTV_MAGICTVIEW063, "(Askey Magic/others) TView99 CPH06x" }, | 182 | { 0x3000144f, BTTV_BOARD_MAGICTVIEW063, "(Askey Magic/others) TView99 CPH06x" }, |
182 | { 0xa005144f, BTTV_MAGICTVIEW063, "CPH06X TView99-Card" }, | 183 | { 0xa005144f, BTTV_BOARD_MAGICTVIEW063, "CPH06X TView99-Card" }, |
183 | { 0x3002144f, BTTV_MAGICTVIEW061, "(Askey Magic/others) TView99 CPH05x" }, | 184 | { 0x3002144f, BTTV_BOARD_MAGICTVIEW061, "(Askey Magic/others) TView99 CPH05x" }, |
184 | { 0x3005144f, BTTV_MAGICTVIEW061, "(Askey Magic/others) TView99 CPH061/06L (T1/LC)" }, | 185 | { 0x3005144f, BTTV_BOARD_MAGICTVIEW061, "(Askey Magic/others) TView99 CPH061/06L (T1/LC)" }, |
185 | { 0x5000144f, BTTV_MAGICTVIEW061, "Askey CPH050" }, | 186 | { 0x5000144f, BTTV_BOARD_MAGICTVIEW061, "Askey CPH050" }, |
186 | { 0x300014ff, BTTV_MAGICTVIEW061, "TView 99 (CPH061)" }, | 187 | { 0x300014ff, BTTV_BOARD_MAGICTVIEW061, "TView 99 (CPH061)" }, |
187 | { 0x300214ff, BTTV_PHOEBE_TVMAS, "Phoebe TV Master (CPH060)" }, | 188 | { 0x300214ff, BTTV_BOARD_PHOEBE_TVMAS, "Phoebe TV Master (CPH060)" }, |
188 | 189 | ||
189 | { 0x00011461, BTTV_AVPHONE98, "AVerMedia TVPhone98" }, | 190 | { 0x00011461, BTTV_BOARD_AVPHONE98, "AVerMedia TVPhone98" }, |
190 | { 0x00021461, BTTV_AVERMEDIA98, "AVermedia TVCapture 98" }, | 191 | { 0x00021461, BTTV_BOARD_AVERMEDIA98, "AVermedia TVCapture 98" }, |
191 | { 0x00031461, BTTV_AVPHONE98, "AVerMedia TVPhone98" }, | 192 | { 0x00031461, BTTV_BOARD_AVPHONE98, "AVerMedia TVPhone98" }, |
192 | { 0x00041461, BTTV_AVERMEDIA98, "AVerMedia TVCapture 98" }, | 193 | { 0x00041461, BTTV_BOARD_AVERMEDIA98, "AVerMedia TVCapture 98" }, |
193 | { 0x03001461, BTTV_AVERMEDIA98, "VDOMATE TV TUNER CARD" }, | 194 | { 0x03001461, BTTV_BOARD_AVERMEDIA98, "VDOMATE TV TUNER CARD" }, |
194 | 195 | ||
195 | { 0x1117153b, BTTV_TERRATVALUE, "Terratec TValue (Philips PAL B/G)" }, | 196 | { 0x1117153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue (Philips PAL B/G)" }, |
196 | { 0x1118153b, BTTV_TERRATVALUE, "Terratec TValue (Temic PAL B/G)" }, | 197 | { 0x1118153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue (Temic PAL B/G)" }, |
197 | { 0x1119153b, BTTV_TERRATVALUE, "Terratec TValue (Philips PAL I)" }, | 198 | { 0x1119153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue (Philips PAL I)" }, |
198 | { 0x111a153b, BTTV_TERRATVALUE, "Terratec TValue (Temic PAL I)" }, | 199 | { 0x111a153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue (Temic PAL I)" }, |
199 | 200 | ||
200 | { 0x1123153b, BTTV_TERRATVRADIO, "Terratec TV Radio+" }, | 201 | { 0x1123153b, BTTV_BOARD_TERRATVRADIO, "Terratec TV Radio+" }, |
201 | { 0x1127153b, BTTV_TERRATV, "Terratec TV+ (V1.05)" }, | 202 | { 0x1127153b, BTTV_BOARD_TERRATV, "Terratec TV+ (V1.05)" }, |
202 | /* clashes with FlyVideo | 203 | /* clashes with FlyVideo |
203 | *{ 0x18521852, BTTV_TERRATV, "Terratec TV+ (V1.10)" }, */ | 204 | *{ 0x18521852, BTTV_BOARD_TERRATV, "Terratec TV+ (V1.10)" }, */ |
204 | { 0x1134153b, BTTV_TERRATVALUE, "Terratec TValue (LR102)" }, | 205 | { 0x1134153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue (LR102)" }, |
205 | { 0x1135153b, BTTV_TERRATVALUER, "Terratec TValue Radio" }, /* LR102 */ | 206 | { 0x1135153b, BTTV_BOARD_TERRATVALUER, "Terratec TValue Radio" }, /* LR102 */ |
206 | { 0x5018153b, BTTV_TERRATVALUE, "Terratec TValue" }, /* ?? */ | 207 | { 0x5018153b, BTTV_BOARD_TERRATVALUE, "Terratec TValue" }, /* ?? */ |
207 | { 0xff3b153b, BTTV_TERRATVALUER, "Terratec TValue Radio" }, /* ?? */ | 208 | { 0xff3b153b, BTTV_BOARD_TERRATVALUER, "Terratec TValue Radio" }, /* ?? */ |
208 | 209 | ||
209 | { 0x400015b0, BTTV_ZOLTRIX_GENIE, "Zoltrix Genie TV" }, | 210 | { 0x400015b0, BTTV_BOARD_ZOLTRIX_GENIE, "Zoltrix Genie TV" }, |
210 | { 0x400a15b0, BTTV_ZOLTRIX_GENIE, "Zoltrix Genie TV" }, | 211 | { 0x400a15b0, BTTV_BOARD_ZOLTRIX_GENIE, "Zoltrix Genie TV" }, |
211 | { 0x400d15b0, BTTV_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, | 212 | { 0x400d15b0, BTTV_BOARD_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, |
212 | { 0x401015b0, BTTV_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, | 213 | { 0x401015b0, BTTV_BOARD_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, |
213 | { 0x401615b0, BTTV_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, | 214 | { 0x401615b0, BTTV_BOARD_ZOLTRIX_GENIE, "Zoltrix Genie TV / Radio" }, |
214 | 215 | ||
215 | { 0x1430aa00, BTTV_PV143, "Provideo PV143A" }, | 216 | { 0x1430aa00, BTTV_BOARD_PV143, "Provideo PV143A" }, |
216 | { 0x1431aa00, BTTV_PV143, "Provideo PV143B" }, | 217 | { 0x1431aa00, BTTV_BOARD_PV143, "Provideo PV143B" }, |
217 | { 0x1432aa00, BTTV_PV143, "Provideo PV143C" }, | 218 | { 0x1432aa00, BTTV_BOARD_PV143, "Provideo PV143C" }, |
218 | { 0x1433aa00, BTTV_PV143, "Provideo PV143D" }, | 219 | { 0x1433aa00, BTTV_BOARD_PV143, "Provideo PV143D" }, |
219 | { 0x1433aa03, BTTV_PV143, "Security Eyes" }, | 220 | { 0x1433aa03, BTTV_BOARD_PV143, "Security Eyes" }, |
220 | 221 | ||
221 | { 0x1460aa00, BTTV_PV150, "Provideo PV150A-1" }, | 222 | { 0x1460aa00, BTTV_BOARD_PV150, "Provideo PV150A-1" }, |
222 | { 0x1461aa01, BTTV_PV150, "Provideo PV150A-2" }, | 223 | { 0x1461aa01, BTTV_BOARD_PV150, "Provideo PV150A-2" }, |
223 | { 0x1462aa02, BTTV_PV150, "Provideo PV150A-3" }, | 224 | { 0x1462aa02, BTTV_BOARD_PV150, "Provideo PV150A-3" }, |
224 | { 0x1463aa03, BTTV_PV150, "Provideo PV150A-4" }, | 225 | { 0x1463aa03, BTTV_BOARD_PV150, "Provideo PV150A-4" }, |
225 | 226 | ||
226 | { 0x1464aa04, BTTV_PV150, "Provideo PV150B-1" }, | 227 | { 0x1464aa04, BTTV_BOARD_PV150, "Provideo PV150B-1" }, |
227 | { 0x1465aa05, BTTV_PV150, "Provideo PV150B-2" }, | 228 | { 0x1465aa05, BTTV_BOARD_PV150, "Provideo PV150B-2" }, |
228 | { 0x1466aa06, BTTV_PV150, "Provideo PV150B-3" }, | 229 | { 0x1466aa06, BTTV_BOARD_PV150, "Provideo PV150B-3" }, |
229 | { 0x1467aa07, BTTV_PV150, "Provideo PV150B-4" }, | 230 | { 0x1467aa07, BTTV_BOARD_PV150, "Provideo PV150B-4" }, |
230 | 231 | ||
231 | { 0xa132ff00, BTTV_IVC100, "IVC-100" }, | 232 | { 0xa132ff00, BTTV_BOARD_IVC100, "IVC-100" }, |
232 | { 0xa1550000, BTTV_IVC200, "IVC-200" }, | 233 | { 0xa1550000, BTTV_BOARD_IVC200, "IVC-200" }, |
233 | { 0xa1550001, BTTV_IVC200, "IVC-200" }, | 234 | { 0xa1550001, BTTV_BOARD_IVC200, "IVC-200" }, |
234 | { 0xa1550002, BTTV_IVC200, "IVC-200" }, | 235 | { 0xa1550002, BTTV_BOARD_IVC200, "IVC-200" }, |
235 | { 0xa1550003, BTTV_IVC200, "IVC-200" }, | 236 | { 0xa1550003, BTTV_BOARD_IVC200, "IVC-200" }, |
236 | { 0xa1550100, BTTV_IVC200, "IVC-200G" }, | 237 | { 0xa1550100, BTTV_BOARD_IVC200, "IVC-200G" }, |
237 | { 0xa1550101, BTTV_IVC200, "IVC-200G" }, | 238 | { 0xa1550101, BTTV_BOARD_IVC200, "IVC-200G" }, |
238 | { 0xa1550102, BTTV_IVC200, "IVC-200G" }, | 239 | { 0xa1550102, BTTV_BOARD_IVC200, "IVC-200G" }, |
239 | { 0xa1550103, BTTV_IVC200, "IVC-200G" }, | 240 | { 0xa1550103, BTTV_BOARD_IVC200, "IVC-200G" }, |
240 | { 0xa182ff00, BTTV_IVC120, "IVC-120G" }, | 241 | { 0xa182ff00, BTTV_BOARD_IVC120, "IVC-120G" }, |
241 | { 0xa182ff01, BTTV_IVC120, "IVC-120G" }, | 242 | { 0xa182ff01, BTTV_BOARD_IVC120, "IVC-120G" }, |
242 | { 0xa182ff02, BTTV_IVC120, "IVC-120G" }, | 243 | { 0xa182ff02, BTTV_BOARD_IVC120, "IVC-120G" }, |
243 | { 0xa182ff03, BTTV_IVC120, "IVC-120G" }, | 244 | { 0xa182ff03, BTTV_BOARD_IVC120, "IVC-120G" }, |
244 | { 0xa182ff04, BTTV_IVC120, "IVC-120G" }, | 245 | { 0xa182ff04, BTTV_BOARD_IVC120, "IVC-120G" }, |
245 | { 0xa182ff05, BTTV_IVC120, "IVC-120G" }, | 246 | { 0xa182ff05, BTTV_BOARD_IVC120, "IVC-120G" }, |
246 | { 0xa182ff06, BTTV_IVC120, "IVC-120G" }, | 247 | { 0xa182ff06, BTTV_BOARD_IVC120, "IVC-120G" }, |
247 | { 0xa182ff07, BTTV_IVC120, "IVC-120G" }, | 248 | { 0xa182ff07, BTTV_BOARD_IVC120, "IVC-120G" }, |
248 | { 0xa182ff08, BTTV_IVC120, "IVC-120G" }, | 249 | { 0xa182ff08, BTTV_BOARD_IVC120, "IVC-120G" }, |
249 | { 0xa182ff09, BTTV_IVC120, "IVC-120G" }, | 250 | { 0xa182ff09, BTTV_BOARD_IVC120, "IVC-120G" }, |
250 | { 0xa182ff0a, BTTV_IVC120, "IVC-120G" }, | 251 | { 0xa182ff0a, BTTV_BOARD_IVC120, "IVC-120G" }, |
251 | { 0xa182ff0b, BTTV_IVC120, "IVC-120G" }, | 252 | { 0xa182ff0b, BTTV_BOARD_IVC120, "IVC-120G" }, |
252 | { 0xa182ff0c, BTTV_IVC120, "IVC-120G" }, | 253 | { 0xa182ff0c, BTTV_BOARD_IVC120, "IVC-120G" }, |
253 | { 0xa182ff0d, BTTV_IVC120, "IVC-120G" }, | 254 | { 0xa182ff0d, BTTV_BOARD_IVC120, "IVC-120G" }, |
254 | { 0xa182ff0e, BTTV_IVC120, "IVC-120G" }, | 255 | { 0xa182ff0e, BTTV_BOARD_IVC120, "IVC-120G" }, |
255 | { 0xa182ff0f, BTTV_IVC120, "IVC-120G" }, | 256 | { 0xa182ff0f, BTTV_BOARD_IVC120, "IVC-120G" }, |
256 | 257 | ||
257 | { 0x41424344, BTTV_GRANDTEC, "GrandTec Multi Capture" }, | 258 | { 0x41424344, BTTV_BOARD_GRANDTEC, "GrandTec Multi Capture" }, |
258 | { 0x01020304, BTTV_XGUARD, "Grandtec Grand X-Guard" }, | 259 | { 0x01020304, BTTV_BOARD_XGUARD, "Grandtec Grand X-Guard" }, |
259 | 260 | ||
260 | { 0x18501851, BTTV_CHRONOS_VS2, "FlyVideo 98 (LR50)/ Chronos Video Shuttle II" }, | 261 | { 0x18501851, BTTV_BOARD_CHRONOS_VS2, "FlyVideo 98 (LR50)/ Chronos Video Shuttle II" }, |
261 | { 0xa0501851, BTTV_CHRONOS_VS2, "FlyVideo 98 (LR50)/ Chronos Video Shuttle II" }, | 262 | { 0xa0501851, BTTV_BOARD_CHRONOS_VS2, "FlyVideo 98 (LR50)/ Chronos Video Shuttle II" }, |
262 | { 0x18511851, BTTV_FLYVIDEO98EZ, "FlyVideo 98EZ (LR51)/ CyberMail AV" }, | 263 | { 0x18511851, BTTV_BOARD_FLYVIDEO98EZ, "FlyVideo 98EZ (LR51)/ CyberMail AV" }, |
263 | { 0x18521852, BTTV_TYPHOON_TVIEW, "FlyVideo 98FM (LR50)/ Typhoon TView TV/FM Tuner" }, | 264 | { 0x18521852, BTTV_BOARD_TYPHOON_TVIEW, "FlyVideo 98FM (LR50)/ Typhoon TView TV/FM Tuner" }, |
264 | { 0x41a0a051, BTTV_FLYVIDEO_98FM, "Lifeview FlyVideo 98 LR50 Rev Q" }, | 265 | { 0x41a0a051, BTTV_BOARD_FLYVIDEO_98FM, "Lifeview FlyVideo 98 LR50 Rev Q" }, |
265 | { 0x18501f7f, BTTV_FLYVIDEO_98, "Lifeview Flyvideo 98" }, | 266 | { 0x18501f7f, BTTV_BOARD_FLYVIDEO_98, "Lifeview Flyvideo 98" }, |
266 | 267 | ||
267 | { 0x010115cb, BTTV_GMV1, "AG GMV1" }, | 268 | { 0x010115cb, BTTV_BOARD_GMV1, "AG GMV1" }, |
268 | { 0x010114c7, BTTV_MODTEC_205, "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV" }, | 269 | { 0x010114c7, BTTV_BOARD_MODTEC_205, "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV" }, |
269 | 270 | ||
270 | { 0x10b42636, BTTV_HAUPPAUGE878, "STB ???" }, | 271 | { 0x10b42636, BTTV_BOARD_HAUPPAUGE878, "STB ???" }, |
271 | { 0x217d6606, BTTV_WINFAST2000, "Leadtek WinFast TV 2000" }, | 272 | { 0x217d6606, BTTV_BOARD_WINFAST2000, "Leadtek WinFast TV 2000" }, |
272 | { 0xfff6f6ff, BTTV_WINFAST2000, "Leadtek WinFast TV 2000" }, | 273 | { 0xfff6f6ff, BTTV_BOARD_WINFAST2000, "Leadtek WinFast TV 2000" }, |
273 | { 0x03116000, BTTV_SENSORAY311, "Sensoray 311" }, | 274 | { 0x03116000, BTTV_BOARD_SENSORAY311, "Sensoray 311" }, |
274 | { 0x00790e11, BTTV_WINDVR, "Canopus WinDVR PCI" }, | 275 | { 0x00790e11, BTTV_BOARD_WINDVR, "Canopus WinDVR PCI" }, |
275 | { 0xa0fca1a0, BTTV_ZOLTRIX, "Face to Face Tvmax" }, | 276 | { 0xa0fca1a0, BTTV_BOARD_ZOLTRIX, "Face to Face Tvmax" }, |
276 | { 0x20007063, BTTV_PC_HDTV, "pcHDTV HD-2000 TV"}, | 277 | { 0x20007063, BTTV_BOARD_PC_HDTV, "pcHDTV HD-2000 TV"}, |
277 | { 0x82b2aa6a, BTTV_SIMUS_GVC1100, "SIMUS GVC1100" }, | 278 | { 0x82b2aa6a, BTTV_BOARD_SIMUS_GVC1100, "SIMUS GVC1100" }, |
278 | { 0x146caa0c, BTTV_PV951, "ituner spectra8" }, | 279 | { 0x146caa0c, BTTV_BOARD_PV951, "ituner spectra8" }, |
279 | { 0x200a1295, BTTV_PXC200, "ImageNation PXC200A" }, | 280 | { 0x200a1295, BTTV_BOARD_PXC200, "ImageNation PXC200A" }, |
280 | 281 | ||
281 | { 0x40111554, BTTV_PV_BT878P_9B, "Prolink Pixelview PV-BT" }, | 282 | { 0x40111554, BTTV_BOARD_PV_BT878P_9B, "Prolink Pixelview PV-BT" }, |
282 | { 0x17de0a01, BTTV_KWORLD, "Mecer TV/FM/Video Tuner" }, | 283 | { 0x17de0a01, BTTV_BOARD_KWORLD, "Mecer TV/FM/Video Tuner" }, |
283 | 284 | ||
284 | { 0x01051805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #1" }, | 285 | { 0x01051805, BTTV_BOARD_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #1" }, |
285 | { 0x01061805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #2" }, | 286 | { 0x01061805, BTTV_BOARD_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #2" }, |
286 | { 0x01071805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #3" }, | 287 | { 0x01071805, BTTV_BOARD_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #3" }, |
287 | { 0x01081805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #4" }, | 288 | { 0x01081805, BTTV_BOARD_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #4" }, |
288 | 289 | ||
289 | { 0x15409511, BTTV_ACORP_Y878F, "Acorp Y878F" }, | 290 | { 0x15409511, BTTV_BOARD_ACORP_Y878F, "Acorp Y878F" }, |
290 | 291 | ||
291 | /* likely broken, vendor id doesn't match the other magic views ... | 292 | /* likely broken, vendor id doesn't match the other magic views ... |
292 | * { 0xa0fca04f, BTTV_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */ | 293 | * { 0xa0fca04f, BTTV_BOARD_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */ |
293 | 294 | ||
294 | /* DVB cards (using pci function .1 for mpeg data xfer) */ | 295 | /* DVB cards (using pci function .1 for mpeg data xfer) */ |
295 | { 0x01010071, BTTV_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, | 296 | { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, |
296 | { 0x07611461, BTTV_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, | 297 | { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, |
297 | { 0x001c11bd, BTTV_PINNACLESAT, "Pinnacle PCTV Sat" }, | 298 | { 0x001c11bd, BTTV_BOARD_PINNACLESAT, "Pinnacle PCTV Sat" }, |
298 | { 0x002611bd, BTTV_TWINHAN_DST, "Pinnacle PCTV SAT CI" }, | 299 | { 0x002611bd, BTTV_BOARD_TWINHAN_DST, "Pinnacle PCTV SAT CI" }, |
299 | { 0x00011822, BTTV_TWINHAN_DST, "Twinhan VisionPlus DVB" }, | 300 | { 0x00011822, BTTV_BOARD_TWINHAN_DST, "Twinhan VisionPlus DVB" }, |
300 | { 0xfc00270f, BTTV_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" }, | 301 | { 0xfc00270f, BTTV_BOARD_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" }, |
301 | { 0x07711461, BTTV_AVDVBT_771, "AVermedia AverTV DVB-T 771" }, | 302 | { 0x07711461, BTTV_BOARD_AVDVBT_771, "AVermedia AverTV DVB-T 771" }, |
302 | { 0xdb1018ac, BTTV_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" }, | 303 | { 0xdb1018ac, BTTV_BOARD_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" }, |
303 | { 0xd50018ac, BTTV_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, | 304 | { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, |
304 | 305 | ||
305 | { 0, -1, NULL } | 306 | { 0, -1, NULL } |
306 | }; | 307 | }; |
@@ -309,2116 +310,2494 @@ static struct CARD { | |||
309 | /* array with description for bt848 / bt878 tv/grabber cards */ | 310 | /* array with description for bt848 / bt878 tv/grabber cards */ |
310 | 311 | ||
311 | struct tvcard bttv_tvcards[] = { | 312 | struct tvcard bttv_tvcards[] = { |
312 | { | 313 | /* ---- card 0x00 ---------------------------------- */ |
313 | /* ---- card 0x00 ---------------------------------- */ | 314 | [BTTV_BOARD_UNKNOWN] = { |
314 | .name = " *** UNKNOWN/GENERIC *** ", | 315 | .name = " *** UNKNOWN/GENERIC *** ", |
315 | .video_inputs = 4, | 316 | .video_inputs = 4, |
316 | .audio_inputs = 1, | 317 | .audio_inputs = 1, |
317 | .tuner = 0, | 318 | .tuner = 0, |
318 | .svhs = 2, | 319 | .svhs = 2, |
319 | .muxsel = { 2, 3, 1, 0}, | 320 | .muxsel = { 2, 3, 1, 0}, |
320 | .tuner_type = -1, | 321 | .tuner_type = -1, |
321 | .tuner_addr = ADDR_UNSET, | 322 | .tuner_addr = ADDR_UNSET, |
322 | },{ | 323 | .radio_addr = ADDR_UNSET, |
323 | .name = "MIRO PCTV", | 324 | }, |
324 | .video_inputs = 4, | 325 | [BTTV_BOARD_MIRO] = { |
325 | .audio_inputs = 1, | 326 | .name = "MIRO PCTV", |
326 | .tuner = 0, | 327 | .video_inputs = 4, |
327 | .svhs = 2, | 328 | .audio_inputs = 1, |
328 | .gpiomask = 15, | 329 | .tuner = 0, |
329 | .muxsel = { 2, 3, 1, 1}, | 330 | .svhs = 2, |
330 | .audiomux = { 2, 0, 0, 0, 10}, | 331 | .gpiomask = 15, |
331 | .needs_tvaudio = 1, | 332 | .muxsel = { 2, 3, 1, 1}, |
332 | .tuner_type = -1, | 333 | .audiomux = { 2, 0, 0, 0, 10}, |
333 | .tuner_addr = ADDR_UNSET, | 334 | .needs_tvaudio = 1, |
334 | },{ | 335 | .tuner_type = -1, |
335 | .name = "Hauppauge (bt848)", | 336 | .tuner_addr = ADDR_UNSET, |
336 | .video_inputs = 4, | 337 | .radio_addr = ADDR_UNSET, |
337 | .audio_inputs = 1, | 338 | }, |
338 | .tuner = 0, | 339 | [BTTV_BOARD_HAUPPAUGE] = { |
339 | .svhs = 2, | 340 | .name = "Hauppauge (bt848)", |
340 | .gpiomask = 7, | 341 | .video_inputs = 4, |
341 | .muxsel = { 2, 3, 1, 1}, | 342 | .audio_inputs = 1, |
342 | .audiomux = { 0, 1, 2, 3, 4}, | 343 | .tuner = 0, |
343 | .needs_tvaudio = 1, | 344 | .svhs = 2, |
344 | .tuner_type = -1, | 345 | .gpiomask = 7, |
345 | .tuner_addr = ADDR_UNSET, | 346 | .muxsel = { 2, 3, 1, 1}, |
346 | },{ | 347 | .audiomux = { 0, 1, 2, 3, 4}, |
347 | .name = "STB, Gateway P/N 6000699 (bt848)", | 348 | .needs_tvaudio = 1, |
348 | .video_inputs = 3, | 349 | .tuner_type = -1, |
349 | .audio_inputs = 1, | 350 | .tuner_addr = ADDR_UNSET, |
350 | .tuner = 0, | 351 | .radio_addr = ADDR_UNSET, |
351 | .svhs = 2, | 352 | }, |
352 | .gpiomask = 7, | 353 | [BTTV_BOARD_STB] = { |
353 | .muxsel = { 2, 3, 1, 1}, | 354 | .name = "STB, Gateway P/N 6000699 (bt848)", |
354 | .audiomux = { 4, 0, 2, 3, 1}, | 355 | .video_inputs = 3, |
355 | .no_msp34xx = 1, | 356 | .audio_inputs = 1, |
356 | .needs_tvaudio = 1, | 357 | .tuner = 0, |
357 | .tuner_type = TUNER_PHILIPS_NTSC, | 358 | .svhs = 2, |
358 | .tuner_addr = ADDR_UNSET, | 359 | .gpiomask = 7, |
359 | .pll = PLL_28, | 360 | .muxsel = { 2, 3, 1, 1}, |
360 | .has_radio = 1, | 361 | .audiomux = { 4, 0, 2, 3, 1}, |
361 | },{ | 362 | .no_msp34xx = 1, |
362 | 363 | .needs_tvaudio = 1, | |
363 | /* ---- card 0x04 ---------------------------------- */ | 364 | .tuner_type = TUNER_PHILIPS_NTSC, |
364 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", | 365 | .tuner_addr = ADDR_UNSET, |
365 | .video_inputs = 4, | 366 | .radio_addr = ADDR_UNSET, |
366 | .audio_inputs = 0, | 367 | .pll = PLL_28, |
367 | .tuner = -1, | 368 | .has_radio = 1, |
368 | .svhs = 2, | 369 | }, |
369 | .gpiomask = 0, | 370 | |
370 | .muxsel = { 2, 3, 1, 1}, | 371 | /* ---- card 0x04 ---------------------------------- */ |
371 | .audiomux = { 0 }, | 372 | [BTTV_BOARD_INTEL] = { |
372 | .needs_tvaudio = 0, | 373 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", |
373 | .tuner_type = 4, | 374 | .video_inputs = 4, |
374 | .tuner_addr = ADDR_UNSET, | 375 | .audio_inputs = 0, |
375 | },{ | 376 | .tuner = -1, |
376 | .name = "Diamond DTV2000", | 377 | .svhs = 2, |
377 | .video_inputs = 4, | 378 | .gpiomask = 0, |
378 | .audio_inputs = 1, | 379 | .muxsel = { 2, 3, 1, 1}, |
379 | .tuner = 0, | 380 | .audiomux = { 0 }, |
380 | .svhs = 2, | 381 | .needs_tvaudio = 0, |
381 | .gpiomask = 3, | 382 | .tuner_type = 4, |
382 | .muxsel = { 2, 3, 1, 0}, | 383 | .tuner_addr = ADDR_UNSET, |
383 | .audiomux = { 0, 1, 0, 1, 3}, | 384 | .radio_addr = ADDR_UNSET, |
384 | .needs_tvaudio = 1, | 385 | }, |
385 | .tuner_type = -1, | 386 | [BTTV_BOARD_DIAMOND] = { |
386 | .tuner_addr = ADDR_UNSET, | 387 | .name = "Diamond DTV2000", |
387 | },{ | 388 | .video_inputs = 4, |
388 | .name = "AVerMedia TVPhone", | 389 | .audio_inputs = 1, |
389 | .video_inputs = 3, | 390 | .tuner = 0, |
390 | .audio_inputs = 1, | 391 | .svhs = 2, |
391 | .tuner = 0, | 392 | .gpiomask = 3, |
392 | .svhs = 3, | 393 | .muxsel = { 2, 3, 1, 0}, |
393 | .muxsel = { 2, 3, 1, 1}, | 394 | .audiomux = { 0, 1, 0, 1, 3}, |
394 | .gpiomask = 0x0f, | 395 | .needs_tvaudio = 1, |
395 | .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0}, | 396 | .tuner_type = -1, |
396 | /* 0x04 for some cards ?? */ | 397 | .tuner_addr = ADDR_UNSET, |
397 | .needs_tvaudio = 1, | 398 | .radio_addr = ADDR_UNSET, |
398 | .tuner_type = -1, | 399 | }, |
399 | .tuner_addr = ADDR_UNSET, | 400 | [BTTV_BOARD_AVERMEDIA] = { |
400 | .audio_hook = avermedia_tvphone_audio, | 401 | .name = "AVerMedia TVPhone", |
401 | .has_remote = 1, | 402 | .video_inputs = 3, |
402 | },{ | 403 | .audio_inputs = 1, |
403 | .name = "MATRIX-Vision MV-Delta", | 404 | .tuner = 0, |
404 | .video_inputs = 5, | 405 | .svhs = 3, |
405 | .audio_inputs = 1, | 406 | .muxsel = { 2, 3, 1, 1}, |
406 | .tuner = -1, | 407 | .gpiomask = 0x0f, |
407 | .svhs = 3, | 408 | .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0}, |
408 | .gpiomask = 0, | 409 | /* 0x04 for some cards ?? */ |
409 | .muxsel = { 2, 3, 1, 0, 0}, | 410 | .needs_tvaudio = 1, |
410 | .audiomux = {0 }, | 411 | .tuner_type = -1, |
411 | .needs_tvaudio = 1, | 412 | .tuner_addr = ADDR_UNSET, |
412 | .tuner_type = -1, | 413 | .radio_addr = ADDR_UNSET, |
413 | .tuner_addr = ADDR_UNSET, | 414 | .audio_hook = avermedia_tvphone_audio, |
414 | },{ | 415 | .has_remote = 1, |
415 | 416 | }, | |
416 | /* ---- card 0x08 ---------------------------------- */ | 417 | [BTTV_BOARD_MATRIX_VISION] = { |
417 | .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26", | 418 | .name = "MATRIX-Vision MV-Delta", |
418 | .video_inputs = 4, | 419 | .video_inputs = 5, |
419 | .audio_inputs = 1, | 420 | .audio_inputs = 1, |
420 | .tuner = 0, | 421 | .tuner = -1, |
421 | .svhs = 2, | 422 | .svhs = 3, |
422 | .gpiomask = 0xc00, | 423 | .gpiomask = 0, |
423 | .muxsel = { 2, 3, 1, 1}, | 424 | .muxsel = { 2, 3, 1, 0, 0}, |
424 | .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, | 425 | .audiomux = {0 }, |
425 | .needs_tvaudio = 1, | 426 | .needs_tvaudio = 1, |
426 | .pll = PLL_28, | 427 | .tuner_type = -1, |
427 | .tuner_type = -1, | 428 | .tuner_addr = ADDR_UNSET, |
428 | .tuner_addr = ADDR_UNSET, | 429 | .radio_addr = ADDR_UNSET, |
429 | },{ | 430 | }, |
430 | .name = "IMS/IXmicro TurboTV", | 431 | |
431 | .video_inputs = 3, | 432 | /* ---- card 0x08 ---------------------------------- */ |
432 | .audio_inputs = 1, | 433 | [BTTV_BOARD_FLYVIDEO] = { |
433 | .tuner = 0, | 434 | .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26", |
434 | .svhs = 2, | 435 | .video_inputs = 4, |
435 | .gpiomask = 3, | 436 | .audio_inputs = 1, |
436 | .muxsel = { 2, 3, 1, 1}, | 437 | .tuner = 0, |
437 | .audiomux = { 1, 1, 2, 3, 0}, | 438 | .svhs = 2, |
438 | .needs_tvaudio = 0, | 439 | .gpiomask = 0xc00, |
439 | .pll = PLL_28, | 440 | .muxsel = { 2, 3, 1, 1}, |
440 | .tuner_type = TUNER_TEMIC_PAL, | 441 | .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, |
441 | .tuner_addr = ADDR_UNSET, | 442 | .needs_tvaudio = 1, |
442 | },{ | 443 | .pll = PLL_28, |
443 | .name = "Hauppauge (bt878)", | 444 | .tuner_type = -1, |
444 | .video_inputs = 4, | 445 | .tuner_addr = ADDR_UNSET, |
445 | .audio_inputs = 1, | 446 | .radio_addr = ADDR_UNSET, |
446 | .tuner = 0, | 447 | }, |
447 | .svhs = 2, | 448 | [BTTV_BOARD_TURBOTV] = { |
448 | .gpiomask = 0x0f, /* old: 7 */ | 449 | .name = "IMS/IXmicro TurboTV", |
449 | .muxsel = { 2, 0, 1, 1}, | 450 | .video_inputs = 3, |
450 | .audiomux = { 0, 1, 2, 3, 4}, | 451 | .audio_inputs = 1, |
451 | .needs_tvaudio = 1, | 452 | .tuner = 0, |
452 | .pll = PLL_28, | 453 | .svhs = 2, |
453 | .tuner_type = -1, | 454 | .gpiomask = 3, |
454 | .tuner_addr = ADDR_UNSET, | 455 | .muxsel = { 2, 3, 1, 1}, |
455 | },{ | 456 | .audiomux = { 1, 1, 2, 3, 0}, |
456 | .name = "MIRO PCTV pro", | 457 | .needs_tvaudio = 0, |
457 | .video_inputs = 3, | 458 | .pll = PLL_28, |
458 | .audio_inputs = 1, | 459 | .tuner_type = TUNER_TEMIC_PAL, |
459 | .tuner = 0, | 460 | .tuner_addr = ADDR_UNSET, |
460 | .svhs = 2, | 461 | .radio_addr = ADDR_UNSET, |
461 | .gpiomask = 0x3014f, | 462 | }, |
462 | .muxsel = { 2, 3, 1, 1}, | 463 | [BTTV_BOARD_HAUPPAUGE878] = { |
463 | .audiomux = { 0x20001,0x10001, 0, 0,10}, | 464 | .name = "Hauppauge (bt878)", |
464 | .needs_tvaudio = 1, | 465 | .video_inputs = 4, |
465 | .tuner_type = -1, | 466 | .audio_inputs = 1, |
466 | .tuner_addr = ADDR_UNSET, | 467 | .tuner = 0, |
467 | },{ | 468 | .svhs = 2, |
468 | 469 | .gpiomask = 0x0f, /* old: 7 */ | |
469 | /* ---- card 0x0c ---------------------------------- */ | 470 | .muxsel = { 2, 0, 1, 1}, |
470 | .name = "ADS Technologies Channel Surfer TV (bt848)", | 471 | .audiomux = { 0, 1, 2, 3, 4}, |
471 | .video_inputs = 3, | 472 | .needs_tvaudio = 1, |
472 | .audio_inputs = 1, | 473 | .pll = PLL_28, |
473 | .tuner = 0, | 474 | .tuner_type = -1, |
474 | .svhs = 2, | 475 | .tuner_addr = ADDR_UNSET, |
475 | .gpiomask = 15, | 476 | .radio_addr = ADDR_UNSET, |
476 | .muxsel = { 2, 3, 1, 1}, | 477 | }, |
477 | .audiomux = { 13, 14, 11, 7, 0, 0}, | 478 | [BTTV_BOARD_MIROPRO] = { |
478 | .needs_tvaudio = 1, | 479 | .name = "MIRO PCTV pro", |
479 | .tuner_type = -1, | 480 | .video_inputs = 3, |
480 | .tuner_addr = ADDR_UNSET, | 481 | .audio_inputs = 1, |
481 | },{ | 482 | .tuner = 0, |
482 | .name = "AVerMedia TVCapture 98", | 483 | .svhs = 2, |
483 | .video_inputs = 3, | 484 | .gpiomask = 0x3014f, |
484 | .audio_inputs = 4, | 485 | .muxsel = { 2, 3, 1, 1}, |
485 | .tuner = 0, | 486 | .audiomux = { 0x20001,0x10001, 0, 0,10}, |
486 | .svhs = 2, | 487 | .needs_tvaudio = 1, |
487 | .gpiomask = 15, | 488 | .tuner_type = -1, |
488 | .muxsel = { 2, 3, 1, 1}, | 489 | .tuner_addr = ADDR_UNSET, |
489 | .audiomux = { 13, 14, 11, 7, 0, 0}, | 490 | .radio_addr = ADDR_UNSET, |
490 | .needs_tvaudio = 1, | 491 | }, |
491 | .msp34xx_alt = 1, | 492 | |
492 | .pll = PLL_28, | 493 | /* ---- card 0x0c ---------------------------------- */ |
493 | .tuner_type = TUNER_PHILIPS_PAL, | 494 | [BTTV_BOARD_ADSTECH_TV] = { |
494 | .tuner_addr = ADDR_UNSET, | 495 | .name = "ADS Technologies Channel Surfer TV (bt848)", |
495 | .audio_hook = avermedia_tv_stereo_audio, | 496 | .video_inputs = 3, |
496 | },{ | 497 | .audio_inputs = 1, |
497 | .name = "Aimslab Video Highway Xtreme (VHX)", | 498 | .tuner = 0, |
498 | .video_inputs = 3, | 499 | .svhs = 2, |
499 | .audio_inputs = 1, | 500 | .gpiomask = 15, |
500 | .tuner = 0, | 501 | .muxsel = { 2, 3, 1, 1}, |
501 | .svhs = 2, | 502 | .audiomux = { 13, 14, 11, 7, 0, 0}, |
502 | .gpiomask = 7, | 503 | .needs_tvaudio = 1, |
503 | .muxsel = { 2, 3, 1, 1}, | 504 | .tuner_type = -1, |
504 | .audiomux = { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ | 505 | .tuner_addr = ADDR_UNSET, |
505 | .needs_tvaudio = 1, | 506 | .radio_addr = ADDR_UNSET, |
506 | .pll = PLL_28, | 507 | }, |
507 | .tuner_type = -1, | 508 | [BTTV_BOARD_AVERMEDIA98] = { |
508 | .tuner_addr = ADDR_UNSET, | 509 | .name = "AVerMedia TVCapture 98", |
509 | },{ | 510 | .video_inputs = 3, |
510 | .name = "Zoltrix TV-Max", | 511 | .audio_inputs = 4, |
511 | .video_inputs = 3, | 512 | .tuner = 0, |
512 | .audio_inputs = 1, | 513 | .svhs = 2, |
513 | .tuner = 0, | 514 | .gpiomask = 15, |
514 | .svhs = 2, | 515 | .muxsel = { 2, 3, 1, 1}, |
515 | .gpiomask = 15, | 516 | .audiomux = { 13, 14, 11, 7, 0, 0}, |
516 | .muxsel = { 2, 3, 1, 1}, | 517 | .needs_tvaudio = 1, |
517 | .audiomux = {0 , 0, 1 , 0, 10}, | 518 | .msp34xx_alt = 1, |
518 | .needs_tvaudio = 1, | 519 | .pll = PLL_28, |
519 | .tuner_type = -1, | 520 | .tuner_type = TUNER_PHILIPS_PAL, |
520 | .tuner_addr = ADDR_UNSET, | 521 | .tuner_addr = ADDR_UNSET, |
521 | },{ | 522 | .radio_addr = ADDR_UNSET, |
522 | 523 | .audio_hook = avermedia_tv_stereo_audio, | |
523 | /* ---- card 0x10 ---------------------------------- */ | 524 | .no_gpioirq = 1, |
524 | .name = "Prolink Pixelview PlayTV (bt878)", | 525 | }, |
525 | .video_inputs = 3, | 526 | [BTTV_BOARD_VHX] = { |
526 | .audio_inputs = 1, | 527 | .name = "Aimslab Video Highway Xtreme (VHX)", |
527 | .tuner = 0, | 528 | .video_inputs = 3, |
528 | .svhs = 2, | 529 | .audio_inputs = 1, |
529 | .gpiomask = 0x01fe00, | 530 | .tuner = 0, |
530 | .muxsel = { 2, 3, 1, 1}, | 531 | .svhs = 2, |
531 | /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */ | 532 | .gpiomask = 7, |
532 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | 533 | .muxsel = { 2, 3, 1, 1}, |
533 | .needs_tvaudio = 1, | 534 | .audiomux = { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ |
534 | .pll = PLL_28, | 535 | .needs_tvaudio = 1, |
535 | .tuner_type = -1, | 536 | .pll = PLL_28, |
536 | },{ | 537 | .tuner_type = -1, |
537 | .name = "Leadtek WinView 601", | 538 | .tuner_addr = ADDR_UNSET, |
538 | .video_inputs = 3, | 539 | .radio_addr = ADDR_UNSET, |
539 | .audio_inputs = 1, | 540 | }, |
540 | .tuner = 0, | 541 | [BTTV_BOARD_ZOLTRIX] = { |
541 | .svhs = 2, | 542 | .name = "Zoltrix TV-Max", |
542 | .gpiomask = 0x8300f8, | 543 | .video_inputs = 3, |
543 | .muxsel = { 2, 3, 1, 1,0}, | 544 | .audio_inputs = 1, |
544 | .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, | 545 | .tuner = 0, |
545 | .needs_tvaudio = 1, | 546 | .svhs = 2, |
546 | .tuner_type = -1, | 547 | .gpiomask = 15, |
547 | .tuner_addr = ADDR_UNSET, | 548 | .muxsel = { 2, 3, 1, 1}, |
548 | .audio_hook = winview_audio, | 549 | .audiomux = {0 , 0, 1 , 0, 10}, |
549 | .has_radio = 1, | 550 | .needs_tvaudio = 1, |
550 | },{ | 551 | .tuner_type = -1, |
551 | .name = "AVEC Intercapture", | 552 | .tuner_addr = ADDR_UNSET, |
552 | .video_inputs = 3, | 553 | .radio_addr = ADDR_UNSET, |
553 | .audio_inputs = 2, | 554 | }, |
554 | .tuner = 0, | 555 | |
555 | .svhs = 2, | 556 | /* ---- card 0x10 ---------------------------------- */ |
556 | .gpiomask = 0, | 557 | [BTTV_BOARD_PIXVIEWPLAYTV] = { |
557 | .muxsel = {2, 3, 1, 1}, | 558 | .name = "Prolink Pixelview PlayTV (bt878)", |
558 | .audiomux = {1, 0, 0, 0, 0}, | 559 | .video_inputs = 3, |
559 | .needs_tvaudio = 1, | 560 | .audio_inputs = 1, |
560 | .tuner_type = -1, | 561 | .tuner = 0, |
561 | .tuner_addr = ADDR_UNSET, | 562 | .svhs = 2, |
562 | },{ | 563 | .gpiomask = 0x01fe00, |
563 | .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", | 564 | .muxsel = { 2, 3, 1, 1}, |
564 | .video_inputs = 4, | 565 | #if 0 |
565 | .audio_inputs = 1, | 566 | /* old */ |
566 | .tuner = -1, | 567 | .audiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000, 0 }, |
567 | .svhs = -1, | 568 | #else |
568 | .gpiomask = 0x8dff00, | 569 | /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */ |
569 | .muxsel = { 2, 3, 1, 1}, | 570 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, |
570 | .audiomux = { 0 }, | 571 | #endif |
571 | .no_msp34xx = 1, | 572 | .needs_tvaudio = 1, |
572 | .tuner_type = -1, | 573 | .pll = PLL_28, |
573 | .tuner_addr = ADDR_UNSET, | 574 | .tuner_type = -1, |
574 | },{ | 575 | }, |
575 | 576 | [BTTV_BOARD_WINVIEW_601] = { | |
576 | /* ---- card 0x14 ---------------------------------- */ | 577 | .name = "Leadtek WinView 601", |
577 | .name = "CEI Raffles Card", | 578 | .video_inputs = 3, |
578 | .video_inputs = 3, | 579 | .audio_inputs = 1, |
579 | .audio_inputs = 3, | 580 | .tuner = 0, |
580 | .tuner = 0, | 581 | .svhs = 2, |
581 | .svhs = 2, | 582 | .gpiomask = 0x8300f8, |
582 | .muxsel = {2, 3, 1, 1}, | 583 | .muxsel = { 2, 3, 1, 1,0}, |
583 | .tuner_type = -1, | 584 | .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, |
584 | .tuner_addr = ADDR_UNSET, | 585 | .needs_tvaudio = 1, |
585 | },{ | 586 | .tuner_type = -1, |
586 | .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", | 587 | .tuner_addr = ADDR_UNSET, |
587 | .video_inputs = 4, | 588 | .radio_addr = ADDR_UNSET, |
588 | .audio_inputs = 2, /* tuner, line in */ | 589 | .audio_hook = winview_audio, |
589 | .tuner = 0, | 590 | .has_radio = 1, |
590 | .svhs = 2, | 591 | }, |
591 | .gpiomask = 0x1800, | 592 | [BTTV_BOARD_AVEC_INTERCAP] = { |
592 | .muxsel = { 2, 3, 1, 1}, | 593 | .name = "AVEC Intercapture", |
593 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | 594 | .video_inputs = 3, |
594 | .pll = PLL_28, | 595 | .audio_inputs = 2, |
595 | .tuner_type = TUNER_PHILIPS_PAL_I, | 596 | .tuner = 0, |
596 | .tuner_addr = ADDR_UNSET, | 597 | .svhs = 2, |
597 | },{ | 598 | .gpiomask = 0, |
598 | .name = "Askey CPH050/ Phoebe Tv Master + FM", | 599 | .muxsel = {2, 3, 1, 1}, |
599 | .video_inputs = 3, | 600 | .audiomux = {1, 0, 0, 0, 0}, |
600 | .audio_inputs = 1, | 601 | .needs_tvaudio = 1, |
601 | .tuner = 0, | 602 | .tuner_type = -1, |
602 | .svhs = 2, | 603 | .tuner_addr = ADDR_UNSET, |
603 | .gpiomask = 0xc00, | 604 | .radio_addr = ADDR_UNSET, |
604 | .muxsel = { 2, 3, 1, 1}, | 605 | }, |
605 | .audiomux = {0, 1, 0x800, 0x400, 0xc00, 0}, | 606 | [BTTV_BOARD_LIFE_FLYKIT] = { |
606 | .needs_tvaudio = 1, | 607 | .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", |
607 | .pll = PLL_28, | 608 | .video_inputs = 4, |
608 | .tuner_type = -1, | 609 | .audio_inputs = 1, |
609 | .tuner_addr = ADDR_UNSET, | 610 | .tuner = -1, |
610 | },{ | 611 | .svhs = -1, |
611 | .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878", | 612 | .gpiomask = 0x8dff00, |
612 | .video_inputs = 3, | 613 | .muxsel = { 2, 3, 1, 1}, |
613 | .audio_inputs = 1, | 614 | .audiomux = { 0 }, |
614 | .tuner = 0, | 615 | .no_msp34xx = 1, |
615 | .svhs = -1, | 616 | .tuner_type = -1, |
616 | .gpiomask = 7, | 617 | .tuner_addr = ADDR_UNSET, |
617 | .muxsel = { 2, 3, -1 }, | 618 | .radio_addr = ADDR_UNSET, |
618 | .digital_mode = DIGITAL_MODE_CAMERA, | 619 | }, |
619 | .audiomux = { 0, 0, 0, 0, 0 }, | 620 | |
620 | .no_msp34xx = 1, | 621 | /* ---- card 0x14 ---------------------------------- */ |
621 | .pll = PLL_28, | 622 | [BTTV_BOARD_CEI_RAFFLES] = { |
622 | .tuner_type = TUNER_ALPS_TSBB5_PAL_I, | 623 | .name = "CEI Raffles Card", |
623 | .tuner_addr = ADDR_UNSET, | 624 | .video_inputs = 3, |
624 | },{ | 625 | .audio_inputs = 3, |
625 | 626 | .tuner = 0, | |
626 | /* ---- card 0x18 ---------------------------------- */ | 627 | .svhs = 2, |
627 | .name = "Askey CPH05X/06X (bt878) [many vendors]", | 628 | .muxsel = {2, 3, 1, 1}, |
628 | .video_inputs = 3, | 629 | .tuner_type = -1, |
629 | .audio_inputs = 1, | 630 | .tuner_addr = ADDR_UNSET, |
630 | .tuner = 0, | 631 | .radio_addr = ADDR_UNSET, |
631 | .svhs = 2, | 632 | }, |
632 | .gpiomask = 0xe00, | 633 | [BTTV_BOARD_CONFERENCETV] = { |
633 | .muxsel = { 2, 3, 1, 1}, | 634 | .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", |
634 | .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00}, | 635 | .video_inputs = 4, |
635 | .needs_tvaudio = 1, | 636 | .audio_inputs = 2, /* tuner, line in */ |
636 | .pll = PLL_28, | 637 | .tuner = 0, |
637 | .tuner_type = -1, | 638 | .svhs = 2, |
638 | .tuner_addr = ADDR_UNSET, | 639 | .gpiomask = 0x1800, |
639 | .has_remote = 1, | 640 | .muxsel = { 2, 3, 1, 1}, |
640 | },{ | 641 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, |
641 | .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", | 642 | .pll = PLL_28, |
642 | .video_inputs = 3, | 643 | .tuner_type = TUNER_PHILIPS_PAL_I, |
643 | .audio_inputs = 1, | 644 | .tuner_addr = ADDR_UNSET, |
644 | .tuner = 0, | 645 | .radio_addr = ADDR_UNSET, |
645 | .svhs = 2, | 646 | }, |
646 | .gpiomask = 0x1f0fff, | 647 | [BTTV_BOARD_PHOEBE_TVMAS] = { |
647 | .muxsel = { 2, 3, 1, 1}, | 648 | .name = "Askey CPH050/ Phoebe Tv Master + FM", |
648 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000}, | 649 | .video_inputs = 3, |
649 | .needs_tvaudio = 0, | 650 | .audio_inputs = 1, |
650 | .tuner_type = TUNER_PHILIPS_PAL, | 651 | .tuner = 0, |
651 | .tuner_addr = ADDR_UNSET, | 652 | .svhs = 2, |
652 | .audio_hook = terratv_audio, | 653 | .gpiomask = 0xc00, |
653 | },{ | 654 | .muxsel = { 2, 3, 1, 1}, |
654 | .name = "Hauppauge WinCam newer (bt878)", | 655 | .audiomux = {0, 1, 0x800, 0x400, 0xc00, 0}, |
655 | .video_inputs = 4, | 656 | .needs_tvaudio = 1, |
656 | .audio_inputs = 1, | 657 | .pll = PLL_28, |
657 | .tuner = 0, | 658 | .tuner_type = -1, |
658 | .svhs = 3, | 659 | .tuner_addr = ADDR_UNSET, |
659 | .gpiomask = 7, | 660 | .radio_addr = ADDR_UNSET, |
660 | .muxsel = { 2, 0, 1, 1}, | 661 | }, |
661 | .audiomux = { 0, 1, 2, 3, 4}, | 662 | [BTTV_BOARD_MODTEC_205] = { |
662 | .needs_tvaudio = 1, | 663 | .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878", |
663 | .tuner_type = -1, | 664 | .video_inputs = 3, |
664 | .tuner_addr = ADDR_UNSET, | 665 | .audio_inputs = 1, |
665 | },{ | 666 | .tuner = 0, |
666 | .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", | 667 | .svhs = -1, |
667 | .video_inputs = 4, | 668 | .gpiomask = 7, |
668 | .audio_inputs = 2, | 669 | .muxsel = { 2, 3, -1 }, |
669 | .tuner = 0, | 670 | .digital_mode = DIGITAL_MODE_CAMERA, |
670 | .svhs = 2, | 671 | .audiomux = { 0, 0, 0, 0, 0 }, |
671 | .gpiomask = 0x1800, | 672 | .no_msp34xx = 1, |
672 | .muxsel = { 2, 3, 1, 1}, | 673 | .pll = PLL_28, |
673 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | 674 | .tuner_type = TUNER_ALPS_TSBB5_PAL_I, |
674 | .pll = PLL_28, | 675 | .tuner_addr = ADDR_UNSET, |
675 | .tuner_type = TUNER_PHILIPS_SECAM, | 676 | .radio_addr = ADDR_UNSET, |
676 | .tuner_addr = ADDR_UNSET, | 677 | }, |
677 | },{ | 678 | |
678 | 679 | /* ---- card 0x18 ---------------------------------- */ | |
679 | /* ---- card 0x1c ---------------------------------- */ | 680 | [BTTV_BOARD_MAGICTVIEW061] = { |
680 | .name = "Terratec TerraTV+ Version 1.1 (bt878)", | 681 | .name = "Askey CPH05X/06X (bt878) [many vendors]", |
681 | .video_inputs = 3, | 682 | .video_inputs = 3, |
682 | .audio_inputs = 1, | 683 | .audio_inputs = 1, |
683 | .tuner = 0, | 684 | .tuner = 0, |
684 | .svhs = 2, | 685 | .svhs = 2, |
685 | .gpiomask = 0x1f0fff, | 686 | .gpiomask = 0xe00, |
686 | .muxsel = { 2, 3, 1, 1}, | 687 | .muxsel = { 2, 3, 1, 1}, |
687 | .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, | 688 | .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00}, |
688 | .needs_tvaudio = 0, | 689 | .needs_tvaudio = 1, |
689 | .tuner_type = TUNER_PHILIPS_PAL, | 690 | .pll = PLL_28, |
690 | .tuner_addr = ADDR_UNSET, | 691 | .tuner_type = -1, |
691 | .audio_hook = terratv_audio, | 692 | .tuner_addr = ADDR_UNSET, |
692 | /* GPIO wiring: | 693 | .radio_addr = ADDR_UNSET, |
693 | External 20 pin connector (for Active Radio Upgrade board) | 694 | .has_remote = 1, |
694 | gpio00: i2c-sda | 695 | }, |
695 | gpio01: i2c-scl | 696 | [BTTV_BOARD_VOBIS_BOOSTAR] = { |
696 | gpio02: om5610-data | 697 | .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", |
697 | gpio03: om5610-clk | 698 | .video_inputs = 3, |
698 | gpio04: om5610-wre | 699 | .audio_inputs = 1, |
699 | gpio05: om5610-stereo | 700 | .tuner = 0, |
700 | gpio06: rds6588-davn | 701 | .svhs = 2, |
701 | gpio07: Pin 7 n.c. | 702 | .gpiomask = 0x1f0fff, |
702 | gpio08: nIOW | 703 | .muxsel = { 2, 3, 1, 1}, |
703 | gpio09+10: nIOR, nSEL ?? (bt878) | 704 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000}, |
704 | gpio09: nIOR (bt848) | 705 | .needs_tvaudio = 0, |
705 | gpio10: nSEL (bt848) | 706 | .tuner_type = TUNER_PHILIPS_PAL, |
706 | Sound Routing: | 707 | .tuner_addr = ADDR_UNSET, |
707 | gpio16: u2-A0 (1st 4052bt) | 708 | .radio_addr = ADDR_UNSET, |
708 | gpio17: u2-A1 | 709 | .audio_hook = terratv_audio, |
709 | gpio18: u2-nEN | 710 | }, |
710 | gpio19: u4-A0 (2nd 4052) | 711 | [BTTV_BOARD_HAUPPAUG_WCAM] = { |
711 | gpio20: u4-A1 | 712 | .name = "Hauppauge WinCam newer (bt878)", |
712 | u4-nEN - GND | 713 | .video_inputs = 4, |
713 | Btspy: | 714 | .audio_inputs = 1, |
714 | 00000 : Cdrom (internal audio input) | 715 | .tuner = 0, |
715 | 10000 : ext. Video audio input | 716 | .svhs = 3, |
716 | 20000 : TV Mono | 717 | .gpiomask = 7, |
717 | a0000 : TV Mono/2 | 718 | .muxsel = { 2, 0, 1, 1}, |
718 | 1a0000 : TV Stereo | 719 | .audiomux = { 0, 1, 2, 3, 4}, |
719 | 30000 : Radio | 720 | .needs_tvaudio = 1, |
720 | 40000 : Mute | 721 | .tuner_type = -1, |
721 | */ | 722 | .tuner_addr = ADDR_UNSET, |
722 | 723 | .radio_addr = ADDR_UNSET, | |
723 | },{ | 724 | }, |
724 | /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ | 725 | [BTTV_BOARD_MAXI] = { |
725 | .name = "Imagenation PXC200", | 726 | .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", |
726 | .video_inputs = 5, | 727 | .video_inputs = 4, |
727 | .audio_inputs = 1, | 728 | .audio_inputs = 2, |
728 | .tuner = -1, | 729 | .tuner = 0, |
729 | .svhs = 1, /* was: 4 */ | 730 | .svhs = 2, |
730 | .gpiomask = 0, | 731 | .gpiomask = 0x1800, |
731 | .muxsel = { 2, 3, 1, 0, 0}, | 732 | .muxsel = { 2, 3, 1, 1}, |
732 | .audiomux = { 0 }, | 733 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, |
733 | .needs_tvaudio = 1, | 734 | .pll = PLL_28, |
734 | .tuner_type = -1, | 735 | .tuner_type = TUNER_PHILIPS_SECAM, |
735 | .tuner_addr = ADDR_UNSET, | 736 | .tuner_addr = ADDR_UNSET, |
736 | .muxsel_hook = PXC200_muxsel, | 737 | .radio_addr = ADDR_UNSET, |
737 | 738 | }, | |
738 | },{ | 739 | |
739 | .name = "Lifeview FlyVideo 98 LR50", | 740 | /* ---- card 0x1c ---------------------------------- */ |
740 | .video_inputs = 4, | 741 | [BTTV_BOARD_TERRATV] = { |
741 | .audio_inputs = 1, | 742 | .name = "Terratec TerraTV+ Version 1.1 (bt878)", |
742 | .tuner = 0, | 743 | .video_inputs = 3, |
743 | .svhs = 2, | 744 | .audio_inputs = 1, |
744 | .gpiomask = 0x1800, /* 0x8dfe00 */ | 745 | .tuner = 0, |
745 | .muxsel = { 2, 3, 1, 1}, | 746 | .svhs = 2, |
746 | .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, | 747 | .gpiomask = 0x1f0fff, |
747 | .pll = PLL_28, | 748 | .muxsel = { 2, 3, 1, 1}, |
748 | .tuner_type = -1, | 749 | .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, |
749 | .tuner_addr = ADDR_UNSET, | 750 | .needs_tvaudio = 0, |
750 | },{ | 751 | .tuner_type = TUNER_PHILIPS_PAL, |
751 | .name = "Formac iProTV, Formac ProTV I (bt848)", | 752 | .tuner_addr = ADDR_UNSET, |
752 | .video_inputs = 4, | 753 | .radio_addr = ADDR_UNSET, |
753 | .audio_inputs = 1, | 754 | .audio_hook = terratv_audio, |
754 | .tuner = 0, | 755 | /* GPIO wiring: |
755 | .svhs = 3, | 756 | External 20 pin connector (for Active Radio Upgrade board) |
756 | .gpiomask = 1, | 757 | gpio00: i2c-sda |
757 | .muxsel = { 2, 3, 1, 1}, | 758 | gpio01: i2c-scl |
758 | .audiomux = { 1, 0, 0, 0, 0 }, | 759 | gpio02: om5610-data |
759 | .pll = PLL_28, | 760 | gpio03: om5610-clk |
760 | .tuner_type = TUNER_PHILIPS_PAL, | 761 | gpio04: om5610-wre |
761 | .tuner_addr = ADDR_UNSET, | 762 | gpio05: om5610-stereo |
762 | },{ | 763 | gpio06: rds6588-davn |
763 | 764 | gpio07: Pin 7 n.c. | |
764 | /* ---- card 0x20 ---------------------------------- */ | 765 | gpio08: nIOW |
765 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", | 766 | gpio09+10: nIOR, nSEL ?? (bt878) |
766 | .video_inputs = 4, | 767 | gpio09: nIOR (bt848) |
767 | .audio_inputs = 0, | 768 | gpio10: nSEL (bt848) |
768 | .tuner = -1, | 769 | Sound Routing: |
769 | .svhs = 2, | 770 | gpio16: u2-A0 (1st 4052bt) |
770 | .gpiomask = 0, | 771 | gpio17: u2-A1 |
771 | .muxsel = { 2, 3, 1, 1}, | 772 | gpio18: u2-nEN |
772 | .audiomux = { 0 }, | 773 | gpio19: u4-A0 (2nd 4052) |
773 | .needs_tvaudio = 0, | 774 | gpio20: u4-A1 |
774 | .tuner_type = 4, | 775 | u4-nEN - GND |
775 | .tuner_addr = ADDR_UNSET, | 776 | Btspy: |
776 | },{ | 777 | 00000 : Cdrom (internal audio input) |
777 | .name = "Terratec TerraTValue Version Bt878", | 778 | 10000 : ext. Video audio input |
778 | .video_inputs = 3, | 779 | 20000 : TV Mono |
779 | .audio_inputs = 1, | 780 | a0000 : TV Mono/2 |
780 | .tuner = 0, | 781 | 1a0000 : TV Stereo |
781 | .svhs = 2, | 782 | 30000 : Radio |
782 | .gpiomask = 0xffff00, | 783 | 40000 : Mute |
783 | .muxsel = { 2, 3, 1, 1}, | ||
784 | .audiomux = { 0x500, 0, 0x300, 0x900, 0x900}, | ||
785 | .needs_tvaudio = 1, | ||
786 | .pll = PLL_28, | ||
787 | .tuner_type = TUNER_PHILIPS_PAL, | ||
788 | .tuner_addr = ADDR_UNSET, | ||
789 | },{ | ||
790 | .name = "Leadtek WinFast 2000/ WinFast 2000 XP", | ||
791 | .video_inputs = 4, | ||
792 | .audio_inputs = 1, | ||
793 | .tuner = 0, | ||
794 | .svhs = 2, | ||
795 | .muxsel = { 2, 3, 1, 1, 0}, /* TV, CVid, SVid, CVid over SVid connector */ | ||
796 | /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ | ||
797 | .gpiomask = 0xb33000, | ||
798 | .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 }, | ||
799 | /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) | ||
800 | gpio23 -- hef4052:nEnable (0x800000) | ||
801 | gpio12 -- hef4052:A1 | ||
802 | gpio13 -- hef4052:A0 | ||
803 | 0x0000: external audio | ||
804 | 0x1000: FM | ||
805 | 0x2000: TV | ||
806 | 0x3000: n.c. | ||
807 | Note: There exists another variant "Winfast 2000" with tv stereo !? | ||
808 | Note: eeprom only contains FF and pci subsystem id 107d:6606 | ||
809 | */ | ||
810 | .needs_tvaudio = 0, | ||
811 | .pll = PLL_28, | ||
812 | .has_radio = 1, | ||
813 | .tuner_type = 5, /* default for now, gpio reads BFFF06 for Pal bg+dk */ | ||
814 | .tuner_addr = ADDR_UNSET, | ||
815 | .audio_hook = winfast2000_audio, | ||
816 | .has_remote = 1, | ||
817 | },{ | ||
818 | .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", | ||
819 | .video_inputs = 4, | ||
820 | .audio_inputs = 3, | ||
821 | .tuner = 0, | ||
822 | .svhs = 2, | ||
823 | .gpiomask = 0x1800, | ||
824 | .muxsel = { 2, 3, 1, 1}, | ||
825 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | ||
826 | .pll = PLL_28, | ||
827 | .tuner_type = -1, | ||
828 | .tuner_addr = ADDR_UNSET, | ||
829 | },{ | ||
830 | |||
831 | /* ---- card 0x24 ---------------------------------- */ | ||
832 | .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", | ||
833 | .video_inputs = 4, | ||
834 | .audio_inputs = 3, | ||
835 | .tuner = 0, | ||
836 | .svhs = 2, | ||
837 | .gpiomask = 0x1800, | ||
838 | .muxsel = { 2, 3, 1, 1}, | ||
839 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
840 | .pll = PLL_28, | ||
841 | .tuner_type = -1, | ||
842 | .tuner_addr = ADDR_UNSET, | ||
843 | .has_radio = 1, | ||
844 | },{ | ||
845 | .name = "Prolink PixelView PlayTV pro", | ||
846 | .video_inputs = 3, | ||
847 | .audio_inputs = 1, | ||
848 | .tuner = 0, | ||
849 | .svhs = 2, | ||
850 | .gpiomask = 0xff, | ||
851 | .muxsel = { 2, 3, 1, 1 }, | ||
852 | .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, | ||
853 | .no_msp34xx = 1, | ||
854 | .pll = PLL_28, | ||
855 | .tuner_type = -1, | ||
856 | .tuner_addr = ADDR_UNSET, | ||
857 | },{ | ||
858 | .name = "Askey CPH06X TView99", | ||
859 | .video_inputs = 4, | ||
860 | .audio_inputs = 1, | ||
861 | .tuner = 0, | ||
862 | .svhs = 2, | ||
863 | .gpiomask = 0x551e00, | ||
864 | .muxsel = { 2, 3, 1, 0}, | ||
865 | .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, | ||
866 | .needs_tvaudio = 1, | ||
867 | .pll = PLL_28, | ||
868 | .tuner_type = 1, | ||
869 | .tuner_addr = ADDR_UNSET, | ||
870 | .has_remote = 1, | ||
871 | },{ | ||
872 | .name = "Pinnacle PCTV Studio/Rave", | ||
873 | .video_inputs = 3, | ||
874 | .audio_inputs = 1, | ||
875 | .tuner = 0, | ||
876 | .svhs = 2, | ||
877 | .gpiomask = 0x03000F, | ||
878 | .muxsel = { 2, 3, 1, 1}, | ||
879 | .audiomux = { 2, 0xd0001, 0, 0, 1}, | ||
880 | .needs_tvaudio = 0, | ||
881 | .pll = PLL_28, | ||
882 | .tuner_type = -1, | ||
883 | .tuner_addr = ADDR_UNSET, | ||
884 | },{ | ||
885 | |||
886 | /* ---- card 0x28 ---------------------------------- */ | ||
887 | .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", | ||
888 | .video_inputs = 3, | ||
889 | .audio_inputs = 1, | ||
890 | .tuner = 0, | ||
891 | .svhs = 2, | ||
892 | .gpiomask = 7, | ||
893 | .muxsel = { 2, 3, 1, 1}, | ||
894 | .audiomux = { 4, 0, 2, 3, 1}, | ||
895 | .no_msp34xx = 1, | ||
896 | .needs_tvaudio = 1, | ||
897 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
898 | .tuner_addr = ADDR_UNSET, | ||
899 | .pll = PLL_28, | ||
900 | .has_radio = 1, | ||
901 | },{ | ||
902 | .name = "AVerMedia TVPhone 98", | ||
903 | .video_inputs = 3, | ||
904 | .audio_inputs = 4, | ||
905 | .tuner = 0, | ||
906 | .svhs = 2, | ||
907 | .gpiomask = 15, | ||
908 | .muxsel = { 2, 3, 1, 1}, | ||
909 | .audiomux = { 13, 4, 11, 7, 0, 0}, | ||
910 | .needs_tvaudio = 1, | ||
911 | .pll = PLL_28, | ||
912 | .tuner_type = -1, | ||
913 | .tuner_addr = ADDR_UNSET, | ||
914 | .has_radio = 1, | ||
915 | .audio_hook = avermedia_tvphone_audio, | ||
916 | },{ | ||
917 | .name = "ProVideo PV951", /* pic16c54 */ | ||
918 | .video_inputs = 3, | ||
919 | .audio_inputs = 1, | ||
920 | .tuner = 0, | ||
921 | .svhs = 2, | ||
922 | .gpiomask = 0, | ||
923 | .muxsel = { 2, 3, 1, 1}, | ||
924 | .audiomux = { 0, 0, 0, 0, 0}, | ||
925 | .needs_tvaudio = 1, | ||
926 | .no_msp34xx = 1, | ||
927 | .pll = PLL_28, | ||
928 | .tuner_type = 1, | ||
929 | .tuner_addr = ADDR_UNSET, | ||
930 | },{ | ||
931 | .name = "Little OnAir TV", | ||
932 | .video_inputs = 3, | ||
933 | .audio_inputs = 1, | ||
934 | .tuner = 0, | ||
935 | .svhs = 2, | ||
936 | .gpiomask = 0xe00b, | ||
937 | .muxsel = {2, 3, 1, 1}, | ||
938 | .audiomux = {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, | ||
939 | .no_msp34xx = 1, | ||
940 | .tuner_type = -1, | ||
941 | .tuner_addr = ADDR_UNSET, | ||
942 | },{ | ||
943 | |||
944 | /* ---- card 0x2c ---------------------------------- */ | ||
945 | .name = "Sigma TVII-FM", | ||
946 | .video_inputs = 2, | ||
947 | .audio_inputs = 1, | ||
948 | .tuner = 0, | ||
949 | .svhs = -1, | ||
950 | .gpiomask = 3, | ||
951 | .muxsel = {2, 3, 1, 1}, | ||
952 | .audiomux = {1, 1, 0, 2, 3}, | ||
953 | .no_msp34xx = 1, | ||
954 | .pll = PLL_NONE, | ||
955 | .tuner_type = -1, | ||
956 | .tuner_addr = ADDR_UNSET, | ||
957 | },{ | ||
958 | .name = "MATRIX-Vision MV-Delta 2", | ||
959 | .video_inputs = 5, | ||
960 | .audio_inputs = 1, | ||
961 | .tuner = -1, | ||
962 | .svhs = 3, | ||
963 | .gpiomask = 0, | ||
964 | .muxsel = { 2, 3, 1, 0, 0}, | ||
965 | .audiomux = {0 }, | ||
966 | .no_msp34xx = 1, | ||
967 | .pll = PLL_28, | ||
968 | .tuner_type = -1, | ||
969 | .tuner_addr = ADDR_UNSET, | ||
970 | },{ | ||
971 | .name = "Zoltrix Genie TV/FM", | ||
972 | .video_inputs = 3, | ||
973 | .audio_inputs = 1, | ||
974 | .tuner = 0, | ||
975 | .svhs = 2, | ||
976 | .gpiomask = 0xbcf03f, | ||
977 | .muxsel = { 2, 3, 1, 1}, | ||
978 | .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, | ||
979 | .no_msp34xx = 1, | ||
980 | .pll = PLL_28, | ||
981 | .tuner_type = 21, | ||
982 | .tuner_addr = ADDR_UNSET, | ||
983 | },{ | ||
984 | .name = "Terratec TV/Radio+", | ||
985 | .video_inputs = 3, | ||
986 | .audio_inputs = 1, | ||
987 | .tuner = 0, | ||
988 | .svhs = 2, | ||
989 | .gpiomask = 0x70000, | ||
990 | .muxsel = { 2, 3, 1, 1}, | ||
991 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, | ||
992 | .needs_tvaudio = 1, | ||
993 | .no_msp34xx = 1, | ||
994 | .pll = PLL_35, | ||
995 | .tuner_type = 1, | ||
996 | .tuner_addr = ADDR_UNSET, | ||
997 | .has_radio = 1, | ||
998 | },{ | ||
999 | |||
1000 | /* ---- card 0x30 ---------------------------------- */ | ||
1001 | .name = "Askey CPH03x/ Dynalink Magic TView", | ||
1002 | .video_inputs = 3, | ||
1003 | .audio_inputs = 1, | ||
1004 | .tuner = 0, | ||
1005 | .svhs = 2, | ||
1006 | .gpiomask = 15, | ||
1007 | .muxsel = { 2, 3, 1, 1}, | ||
1008 | .audiomux = {2,0,0,0,1}, | ||
1009 | .needs_tvaudio = 1, | ||
1010 | .pll = PLL_28, | ||
1011 | .tuner_type = -1, | ||
1012 | .tuner_addr = ADDR_UNSET, | ||
1013 | },{ | ||
1014 | .name = "IODATA GV-BCTV3/PCI", | ||
1015 | .video_inputs = 3, | ||
1016 | .audio_inputs = 1, | ||
1017 | .tuner = 0, | ||
1018 | .svhs = 2, | ||
1019 | .gpiomask = 0x010f00, | ||
1020 | .muxsel = {2, 3, 0, 0}, | ||
1021 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1022 | .no_msp34xx = 1, | ||
1023 | .pll = PLL_28, | ||
1024 | .tuner_type = TUNER_ALPS_TSHC6_NTSC, | ||
1025 | .tuner_addr = ADDR_UNSET, | ||
1026 | .audio_hook = gvbctv3pci_audio, | ||
1027 | },{ | ||
1028 | .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", | ||
1029 | .video_inputs = 5, | ||
1030 | .audio_inputs = 1, | ||
1031 | .tuner = 0, | ||
1032 | .svhs = 3, | ||
1033 | .gpiomask = 0xAA0000, | ||
1034 | .muxsel = { 2,3,1,1,-1 }, | ||
1035 | .digital_mode = DIGITAL_MODE_CAMERA, | ||
1036 | .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, | ||
1037 | .no_msp34xx = 1, | ||
1038 | .pll = PLL_28, | ||
1039 | .tuner_type = TUNER_PHILIPS_PAL_I, | ||
1040 | .tuner_addr = ADDR_UNSET, | ||
1041 | .has_remote = 1, | ||
1042 | /* GPIO wiring: (different from Rev.4C !) | ||
1043 | GPIO17: U4.A0 (first hef4052bt) | ||
1044 | GPIO19: U4.A1 | ||
1045 | GPIO20: U5.A1 (second hef4052bt) | ||
1046 | GPIO21: U4.nEN | ||
1047 | GPIO22: BT832 Reset Line | ||
1048 | GPIO23: A5,A0, U5,nEN | ||
1049 | Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22 | ||
1050 | */ | ||
1051 | },{ | ||
1052 | .name = "Eagle Wireless Capricorn2 (bt878A)", | ||
1053 | .video_inputs = 4, | ||
1054 | .audio_inputs = 1, | ||
1055 | .tuner = 0, | ||
1056 | .svhs = 2, | ||
1057 | .gpiomask = 7, | ||
1058 | .muxsel = { 2, 0, 1, 1}, | ||
1059 | .audiomux = { 0, 1, 2, 3, 4}, | ||
1060 | .pll = PLL_28, | ||
1061 | .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, | ||
1062 | .tuner_addr = ADDR_UNSET, | ||
1063 | },{ | ||
1064 | |||
1065 | /* ---- card 0x34 ---------------------------------- */ | ||
1066 | /* David Härdeman <david@2gen.com> */ | ||
1067 | .name = "Pinnacle PCTV Studio Pro", | ||
1068 | .video_inputs = 4, | ||
1069 | .audio_inputs = 1, | ||
1070 | .tuner = 0, | ||
1071 | .svhs = 3, | ||
1072 | .gpiomask = 0x03000F, | ||
1073 | .muxsel = { 2, 3, 1, 1}, | ||
1074 | .audiomux = { 1, 0xd0001, 0, 0, 10}, | ||
1075 | /* sound path (5 sources): | ||
1076 | MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) | ||
1077 | 0= ext. Audio IN | ||
1078 | 1= from MUX2 | ||
1079 | 2= Mono TV sound from Tuner | ||
1080 | 3= not connected | ||
1081 | MUX2 (mask 0x30000): | ||
1082 | 0,2,3= from MSP34xx | ||
1083 | 1= FM stereo Radio from Tuner */ | ||
1084 | .needs_tvaudio = 0, | ||
1085 | .pll = PLL_28, | ||
1086 | .tuner_type = -1, | ||
1087 | .tuner_addr = ADDR_UNSET, | ||
1088 | },{ | ||
1089 | /* Claas Langbehn <claas@bigfoot.com>, | ||
1090 | Sven Grothklags <sven@upb.de> */ | ||
1091 | .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", | ||
1092 | .video_inputs = 4, | ||
1093 | .audio_inputs = 3, | ||
1094 | .tuner = 0, | ||
1095 | .svhs = 2, | ||
1096 | .gpiomask = 0x1c, | ||
1097 | .muxsel = { 2, 3, 1, 1}, | ||
1098 | .audiomux = { 0, 0, 0x10, 8, 4 }, | ||
1099 | .needs_tvaudio = 1, | ||
1100 | .pll = PLL_28, | ||
1101 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1102 | .tuner_addr = ADDR_UNSET, | ||
1103 | .has_radio = 1, | ||
1104 | },{ | ||
1105 | /* Tim Röstermundt <rosterm@uni-muenster.de> | ||
1106 | in de.comp.os.unix.linux.hardware: | ||
1107 | options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 | ||
1108 | audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff | ||
1109 | options tuner type=5 */ | ||
1110 | .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", | ||
1111 | .video_inputs = 4, | ||
1112 | .audio_inputs = 1, | ||
1113 | .tuner = 0, | ||
1114 | .svhs = 2, | ||
1115 | .gpiomask = 0x18e0, | ||
1116 | .muxsel = { 2, 3, 1, 1}, | ||
1117 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, | ||
1118 | /* For cards with tda9820/tda9821: | ||
1119 | 0x0000: Tuner normal stereo | ||
1120 | 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) | ||
1121 | 0x0880: Tuner A2 stereo */ | ||
1122 | .pll = PLL_28, | ||
1123 | .tuner_type = -1, | ||
1124 | .tuner_addr = ADDR_UNSET, | ||
1125 | },{ | ||
1126 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1127 | old Easy TV BT848 version (model CPH031) */ | ||
1128 | .name = "Askey CPH031/ BESTBUY Easy TV", | ||
1129 | .video_inputs = 4, | ||
1130 | .audio_inputs = 1, | ||
1131 | .tuner = 0, | ||
1132 | .svhs = 2, | ||
1133 | .gpiomask = 0xF, | ||
1134 | .muxsel = { 2, 3, 1, 0}, | ||
1135 | .audiomux = { 2, 0, 0, 0, 10}, | ||
1136 | .needs_tvaudio = 0, | ||
1137 | .pll = PLL_28, | ||
1138 | .tuner_type = TUNER_TEMIC_PAL, | ||
1139 | .tuner_addr = ADDR_UNSET, | ||
1140 | },{ | ||
1141 | |||
1142 | /* ---- card 0x38 ---------------------------------- */ | ||
1143 | /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ | ||
1144 | .name = "Lifeview FlyVideo 98FM LR50", | ||
1145 | .video_inputs = 4, | ||
1146 | .audio_inputs = 3, | ||
1147 | .tuner = 0, | ||
1148 | .svhs = 2, | ||
1149 | .gpiomask = 0x1800, | ||
1150 | .muxsel = { 2, 3, 1, 1}, | ||
1151 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
1152 | .pll = PLL_28, | ||
1153 | .tuner_type = 5, | ||
1154 | .tuner_addr = ADDR_UNSET, | ||
1155 | },{ | ||
1156 | /* This is the ultimate cheapo capture card | ||
1157 | * just a BT848A on a small PCB! | ||
1158 | * Steve Hosgood <steve@equiinet.com> */ | ||
1159 | .name = "GrandTec 'Grand Video Capture' (Bt848)", | ||
1160 | .video_inputs = 2, | ||
1161 | .audio_inputs = 0, | ||
1162 | .tuner = -1, | ||
1163 | .svhs = 1, | ||
1164 | .gpiomask = 0, | ||
1165 | .muxsel = { 3, 1 }, | ||
1166 | .audiomux = { 0 }, | ||
1167 | .needs_tvaudio = 0, | ||
1168 | .no_msp34xx = 1, | ||
1169 | .pll = PLL_35, | ||
1170 | .tuner_type = -1, | ||
1171 | .tuner_addr = ADDR_UNSET, | ||
1172 | },{ | ||
1173 | /* Daniel Herrington <daniel.herrington@home.com> */ | ||
1174 | .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", | ||
1175 | .video_inputs = 3, | ||
1176 | .audio_inputs = 1, | ||
1177 | .tuner = 0, | ||
1178 | .svhs = 2, | ||
1179 | .gpiomask = 0xe00, | ||
1180 | .muxsel = { 2, 3, 1, 1}, | ||
1181 | .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, | ||
1182 | .needs_tvaudio = 1, | ||
1183 | .pll = PLL_28, | ||
1184 | .tuner_type = TUNER_TEMIC_4036FY5_NTSC, | ||
1185 | .tuner_addr = ADDR_UNSET, | ||
1186 | },{ | ||
1187 | /* Matti Mottus <mottus@physic.ut.ee> */ | ||
1188 | .name = "Askey CPH03x TV Capturer", | ||
1189 | .video_inputs = 4, | ||
1190 | .audio_inputs = 1, | ||
1191 | .tuner = 0, | ||
1192 | .svhs = 2, | ||
1193 | .gpiomask = 0x03000F, | ||
1194 | .muxsel = { 2, 3, 1, 0}, | ||
1195 | .audiomux = { 2,0,0,0,1 }, | ||
1196 | .pll = PLL_28, | ||
1197 | .tuner_type = 0, | ||
1198 | .tuner_addr = ADDR_UNSET, | ||
1199 | },{ | ||
1200 | |||
1201 | /* ---- card 0x3c ---------------------------------- */ | ||
1202 | /* Philip Blundell <philb@gnu.org> */ | ||
1203 | .name = "Modular Technology MM100PCTV", | ||
1204 | .video_inputs = 2, | ||
1205 | .audio_inputs = 2, | ||
1206 | .tuner = 0, | ||
1207 | .svhs = -1, | ||
1208 | .gpiomask = 11, | ||
1209 | .muxsel = { 2, 3, 1, 1}, | ||
1210 | .audiomux = { 2, 0, 0, 1, 8}, | ||
1211 | .pll = PLL_35, | ||
1212 | .tuner_type = TUNER_TEMIC_PAL, | ||
1213 | .tuner_addr = ADDR_UNSET, | ||
1214 | },{ | ||
1215 | /* Adrian Cox <adrian@humboldt.co.uk */ | ||
1216 | .name = "AG Electronics GMV1", | ||
1217 | .video_inputs = 2, | ||
1218 | .audio_inputs = 0, | ||
1219 | .tuner = -1, | ||
1220 | .svhs = 1, | ||
1221 | .gpiomask = 0xF, | ||
1222 | .muxsel = { 2, 2}, | ||
1223 | .audiomux = { }, | ||
1224 | .no_msp34xx = 1, | ||
1225 | .needs_tvaudio = 0, | ||
1226 | .pll = PLL_28, | ||
1227 | .tuner_type = -1, | ||
1228 | .tuner_addr = ADDR_UNSET, | ||
1229 | },{ | ||
1230 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1231 | new Easy TV BT878 version (model CPH061) | ||
1232 | special thanks to Informatica Mieres for providing the card */ | ||
1233 | .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", | ||
1234 | .video_inputs = 3, | ||
1235 | .audio_inputs = 2, | ||
1236 | .tuner = 0, | ||
1237 | .svhs = 2, | ||
1238 | .gpiomask = 0xFF, | ||
1239 | .muxsel = { 2, 3, 1, 0}, | ||
1240 | .audiomux = { 1, 0, 4, 4, 9}, | ||
1241 | .needs_tvaudio = 0, | ||
1242 | .pll = PLL_28, | ||
1243 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1244 | .tuner_addr = ADDR_UNSET, | ||
1245 | },{ | ||
1246 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1247 | .name = "ATI TV-Wonder", | ||
1248 | .video_inputs = 3, | ||
1249 | .audio_inputs = 1, | ||
1250 | .tuner = 0, | ||
1251 | .svhs = 2, | ||
1252 | .gpiomask = 0xf03f, | ||
1253 | .muxsel = { 2, 3, 1, 0 }, | ||
1254 | .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe}, | ||
1255 | .pll = PLL_28, | ||
1256 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1257 | .tuner_addr = ADDR_UNSET, | ||
1258 | },{ | ||
1259 | |||
1260 | /* ---- card 0x40 ---------------------------------- */ | ||
1261 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1262 | .name = "ATI TV-Wonder VE", | ||
1263 | .video_inputs = 2, | ||
1264 | .audio_inputs = 1, | ||
1265 | .tuner = 0, | ||
1266 | .svhs = -1, | ||
1267 | .gpiomask = 1, | ||
1268 | .muxsel = { 2, 3, 0, 1}, | ||
1269 | .audiomux = { 0, 0, 1, 0, 0}, | ||
1270 | .no_msp34xx = 1, | ||
1271 | .pll = PLL_28, | ||
1272 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1273 | .tuner_addr = ADDR_UNSET, | ||
1274 | },{ | ||
1275 | /* DeeJay <deejay@westel900.net (2000S) */ | ||
1276 | .name = "Lifeview FlyVideo 2000S LR90", | ||
1277 | .video_inputs = 3, | ||
1278 | .audio_inputs = 3, | ||
1279 | .tuner = 0, | ||
1280 | .svhs = 2, | ||
1281 | .gpiomask = 0x18e0, | ||
1282 | .muxsel = { 2, 3, 0, 1}, | ||
1283 | /* Radio changed from 1e80 to 0x800 to make | ||
1284 | FlyVideo2000S in .hu happy (gm)*/ | ||
1285 | /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ | ||
1286 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, | ||
1287 | .audio_hook = fv2000s_audio, | ||
1288 | .no_msp34xx = 1, | ||
1289 | .no_tda9875 = 1, | ||
1290 | .needs_tvaudio = 1, | ||
1291 | .pll = PLL_28, | ||
1292 | .tuner_type = 5, | ||
1293 | .tuner_addr = ADDR_UNSET, | ||
1294 | },{ | ||
1295 | .name = "Terratec TValueRadio", | ||
1296 | .video_inputs = 3, | ||
1297 | .audio_inputs = 1, | ||
1298 | .tuner = 0, | ||
1299 | .svhs = 2, | ||
1300 | .gpiomask = 0xffff00, | ||
1301 | .muxsel = { 2, 3, 1, 1}, | ||
1302 | .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900}, | ||
1303 | .needs_tvaudio = 1, | ||
1304 | .pll = PLL_28, | ||
1305 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1306 | .tuner_addr = ADDR_UNSET, | ||
1307 | .has_radio = 1, | ||
1308 | },{ | ||
1309 | /* TANAKA Kei <peg00625@nifty.com> */ | ||
1310 | .name = "IODATA GV-BCTV4/PCI", | ||
1311 | .video_inputs = 3, | ||
1312 | .audio_inputs = 1, | ||
1313 | .tuner = 0, | ||
1314 | .svhs = 2, | ||
1315 | .gpiomask = 0x010f00, | ||
1316 | .muxsel = {2, 3, 0, 0}, | ||
1317 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1318 | .no_msp34xx = 1, | ||
1319 | .pll = PLL_28, | ||
1320 | .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, | ||
1321 | .tuner_addr = ADDR_UNSET, | ||
1322 | .audio_hook = gvbctv3pci_audio, | ||
1323 | },{ | ||
1324 | |||
1325 | /* ---- card 0x44 ---------------------------------- */ | ||
1326 | .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", | ||
1327 | /* try "insmod msp3400 simple=0" if you have | ||
1328 | * sound problems with this card. */ | ||
1329 | .video_inputs = 4, | ||
1330 | .audio_inputs = 1, | ||
1331 | .tuner = 0, | ||
1332 | .svhs = -1, | ||
1333 | .gpiomask = 0x4f8a00, | ||
1334 | /* 0x100000: 1=MSP enabled (0=disable again) | ||
1335 | * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ | ||
1336 | .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, | ||
1337 | /* tvtuner, radio, external,internal, mute, stereo | ||
1338 | * tuner, Composit, SVid, Composit-on-Svid-adapter */ | ||
1339 | .muxsel = { 2, 3 ,0 ,1}, | ||
1340 | .tuner_type = TUNER_MT2032, | ||
1341 | .tuner_addr = ADDR_UNSET, | ||
1342 | .pll = PLL_28, | ||
1343 | .has_radio = 1, | ||
1344 | },{ | ||
1345 | /* Philip Blundell <pb@nexus.co.uk> */ | ||
1346 | .name = "Active Imaging AIMMS", | ||
1347 | .video_inputs = 1, | ||
1348 | .audio_inputs = 0, | ||
1349 | .tuner = -1, | ||
1350 | .tuner_type = -1, | ||
1351 | .tuner_addr = ADDR_UNSET, | ||
1352 | .pll = PLL_28, | ||
1353 | .muxsel = { 2 }, | ||
1354 | .gpiomask = 0 | ||
1355 | },{ | ||
1356 | /* Tomasz Pyra <hellfire@sedez.iq.pl> */ | ||
1357 | .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)", | ||
1358 | .video_inputs = 3, | ||
1359 | .audio_inputs = 4, | ||
1360 | .tuner = 0, | ||
1361 | .svhs = 2, | ||
1362 | .gpiomask = 15, | ||
1363 | .muxsel = { 2, 3, 1, 1}, | ||
1364 | .audiomux = { 0, 0, 11, 7, 13, 0}, /* TV and Radio with same GPIO ! */ | ||
1365 | .needs_tvaudio = 1, | ||
1366 | .pll = PLL_28, | ||
1367 | .tuner_type = 25, | ||
1368 | .tuner_addr = ADDR_UNSET, | ||
1369 | .has_remote = 1, | ||
1370 | /* GPIO wiring: | ||
1371 | GPIO0: U4.A0 (hef4052bt) | ||
1372 | GPIO1: U4.A1 | ||
1373 | GPIO2: U4.A1 (second hef4052bt) | ||
1374 | GPIO3: U4.nEN, U5.A0, A5.nEN | ||
1375 | GPIO8-15: vrd866b ? | ||
1376 | */ | 784 | */ |
1377 | },{ | 785 | |
1378 | .name = "Lifeview FlyVideo 98EZ (capture only) LR51", | 786 | }, |
1379 | .video_inputs = 4, | 787 | [BTTV_BOARD_PXC200] = { |
1380 | .audio_inputs = 0, | 788 | /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ |
1381 | .tuner = -1, | 789 | .name = "Imagenation PXC200", |
1382 | .svhs = 2, | 790 | .video_inputs = 5, |
1383 | .muxsel = { 2, 3, 1, 1}, /* AV1, AV2, SVHS, CVid adapter on SVHS */ | 791 | .audio_inputs = 1, |
1384 | .pll = PLL_28, | 792 | .tuner = -1, |
1385 | .no_msp34xx = 1, | 793 | .svhs = 1, /* was: 4 */ |
1386 | .tuner_type = UNSET, | 794 | .gpiomask = 0, |
1387 | .tuner_addr = ADDR_UNSET, | 795 | .muxsel = { 2, 3, 1, 0, 0}, |
1388 | },{ | 796 | .audiomux = { 0 }, |
1389 | 797 | .needs_tvaudio = 1, | |
1390 | /* ---- card 0x48 ---------------------------------- */ | 798 | .tuner_type = -1, |
1391 | /* Dariusz Kowalewski <darekk@automex.pl> */ | 799 | .tuner_addr = ADDR_UNSET, |
1392 | .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", | 800 | .radio_addr = ADDR_UNSET, |
1393 | .video_inputs = 4, | 801 | .muxsel_hook = PXC200_muxsel, |
1394 | .audio_inputs = 1, | 802 | |
1395 | .tuner = 0, | 803 | }, |
1396 | .svhs = 2, | 804 | [BTTV_BOARD_FLYVIDEO_98] = { |
1397 | .gpiomask = 0x3f, | 805 | .name = "Lifeview FlyVideo 98 LR50", |
1398 | .muxsel = { 2, 3, 1, 1 }, | 806 | .video_inputs = 4, |
1399 | .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, | 807 | .audio_inputs = 1, |
1400 | .needs_tvaudio = 1, | 808 | .tuner = 0, |
1401 | .no_msp34xx = 1, | 809 | .svhs = 2, |
1402 | .no_tda9875 = 1, | 810 | .gpiomask = 0x1800, /* 0x8dfe00 */ |
1403 | .pll = PLL_28, | 811 | .muxsel = { 2, 3, 1, 1}, |
1404 | .tuner_type = 5, | 812 | .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, |
1405 | .tuner_addr = ADDR_UNSET, | 813 | .pll = PLL_28, |
1406 | .audio_hook = pvbt878p9b_audio, /* Note: not all cards have stereo */ | 814 | .tuner_type = -1, |
1407 | .has_radio = 1, /* Note: not all cards have radio */ | 815 | .tuner_addr = ADDR_UNSET, |
1408 | .has_remote = 1, | 816 | .radio_addr = ADDR_UNSET, |
1409 | /* GPIO wiring: | 817 | }, |
1410 | GPIO0: A0 hef4052 | 818 | [BTTV_BOARD_IPROTV] = { |
1411 | GPIO1: A1 hef4052 | 819 | .name = "Formac iProTV, Formac ProTV I (bt848)", |
1412 | GPIO3: nEN hef4052 | 820 | .video_inputs = 4, |
1413 | GPIO8-15: vrd866b | 821 | .audio_inputs = 1, |
1414 | GPIO20,22,23: R30,R29,R28 | 822 | .tuner = 0, |
1415 | */ | 823 | .svhs = 3, |
1416 | },{ | 824 | .gpiomask = 1, |
1417 | /* Clay Kunz <ckunz@mail.arc.nasa.gov> */ | 825 | .muxsel = { 2, 3, 1, 1}, |
1418 | /* you must jumper JP5 for the card to work */ | 826 | .audiomux = { 1, 0, 0, 0, 0 }, |
1419 | .name = "Sensoray 311", | 827 | .pll = PLL_28, |
1420 | .video_inputs = 5, | 828 | .tuner_type = TUNER_PHILIPS_PAL, |
1421 | .audio_inputs = 0, | 829 | .tuner_addr = ADDR_UNSET, |
1422 | .tuner = -1, | 830 | .radio_addr = ADDR_UNSET, |
1423 | .svhs = 4, | 831 | }, |
1424 | .gpiomask = 0, | 832 | |
1425 | .muxsel = { 2, 3, 1, 0, 0}, | 833 | /* ---- card 0x20 ---------------------------------- */ |
1426 | .audiomux = { 0 }, | 834 | [BTTV_BOARD_INTEL_C_S_PCI] = { |
1427 | .needs_tvaudio = 0, | 835 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", |
1428 | .tuner_type = -1, | 836 | .video_inputs = 4, |
1429 | .tuner_addr = ADDR_UNSET, | 837 | .audio_inputs = 0, |
1430 | },{ | 838 | .tuner = -1, |
1431 | /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ | 839 | .svhs = 2, |
1432 | .name = "RemoteVision MX (RV605)", | 840 | .gpiomask = 0, |
1433 | .video_inputs = 16, | 841 | .muxsel = { 2, 3, 1, 1}, |
1434 | .audio_inputs = 0, | 842 | .audiomux = { 0 }, |
1435 | .tuner = -1, | 843 | .needs_tvaudio = 0, |
1436 | .svhs = -1, | 844 | .tuner_type = 4, |
1437 | .gpiomask = 0x00, | 845 | .tuner_addr = ADDR_UNSET, |
1438 | .gpiomask2 = 0x07ff, | 846 | .radio_addr = ADDR_UNSET, |
1439 | .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, | 847 | }, |
1440 | 0xd3, 0xb3, 0xc3, 0x63, 0x93, 0x53, 0x83, 0xa3 }, | 848 | [BTTV_BOARD_TERRATVALUE] = { |
1441 | .no_msp34xx = 1, | 849 | .name = "Terratec TerraTValue Version Bt878", |
1442 | .no_tda9875 = 1, | 850 | .video_inputs = 3, |
1443 | .tuner_type = -1, | 851 | .audio_inputs = 1, |
1444 | .tuner_addr = ADDR_UNSET, | 852 | .tuner = 0, |
1445 | .muxsel_hook = rv605_muxsel, | 853 | .svhs = 2, |
1446 | },{ | 854 | .gpiomask = 0xffff00, |
1447 | .name = "Powercolor MTV878/ MTV878R/ MTV878F", | 855 | .muxsel = { 2, 3, 1, 1}, |
1448 | .video_inputs = 3, | 856 | .audiomux = { 0x500, 0, 0x300, 0x900, 0x900}, |
1449 | .audio_inputs = 2, | 857 | .needs_tvaudio = 1, |
1450 | .tuner = 0, | 858 | .pll = PLL_28, |
1451 | .svhs = 2, | 859 | .tuner_type = TUNER_PHILIPS_PAL, |
1452 | .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ | 860 | .tuner_addr = ADDR_UNSET, |
1453 | .muxsel = { 2, 1, 1, }, | 861 | .radio_addr = ADDR_UNSET, |
1454 | .audiomux = { 0, 1, 2, 2, 4 }, | 862 | }, |
1455 | .needs_tvaudio = 0, | 863 | [BTTV_BOARD_WINFAST2000] = { |
1456 | .tuner_type = TUNER_PHILIPS_PAL, | 864 | .name = "Leadtek WinFast 2000/ WinFast 2000 XP", |
1457 | .tuner_addr = ADDR_UNSET, | 865 | .video_inputs = 4, |
1458 | .pll = PLL_28, | 866 | .audio_inputs = 1, |
1459 | .has_radio = 1, | 867 | .tuner = 0, |
1460 | },{ | 868 | .svhs = 2, |
1461 | 869 | .muxsel = { 2, 3, 1, 1, 0}, /* TV, CVid, SVid, CVid over SVid connector */ | |
1462 | /* ---- card 0x4c ---------------------------------- */ | 870 | #if 0 |
1463 | /* Masaki Suzuki <masaki@btree.org> */ | 871 | .gpiomask = 0xc33000, |
1464 | .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", | 872 | .audiomux = { 0x422000,0x1000,0x0000,0x620000,0x800000 }, |
1465 | .video_inputs = 3, | 873 | #else |
1466 | .audio_inputs = 1, | 874 | /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ |
1467 | .tuner = 0, | 875 | .gpiomask = 0xb33000, |
1468 | .svhs = 2, | 876 | .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 }, |
1469 | .gpiomask = 0x140007, | 877 | #endif |
1470 | .muxsel = { 2, 3, 1, 1 }, | 878 | /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) |
1471 | .audiomux = { 0, 1, 2, 3, 4, 0 }, | 879 | gpio23 -- hef4052:nEnable (0x800000) |
1472 | .tuner_type = TUNER_PHILIPS_NTSC, | 880 | gpio12 -- hef4052:A1 |
1473 | .tuner_addr = ADDR_UNSET, | 881 | gpio13 -- hef4052:A0 |
1474 | .audio_hook = windvr_audio, | 882 | 0x0000: external audio |
1475 | },{ | 883 | 0x1000: FM |
1476 | .name = "GrandTec Multi Capture Card (Bt878)", | 884 | 0x2000: TV |
1477 | .video_inputs = 4, | 885 | 0x3000: n.c. |
1478 | .audio_inputs = 0, | 886 | Note: There exists another variant "Winfast 2000" with tv stereo !? |
1479 | .tuner = -1, | 887 | Note: eeprom only contains FF and pci subsystem id 107d:6606 |
1480 | .svhs = -1, | 888 | */ |
1481 | .gpiomask = 0, | 889 | .needs_tvaudio = 0, |
1482 | .muxsel = { 2, 3, 1, 0 }, | 890 | .pll = PLL_28, |
1483 | .audiomux = { 0 }, | 891 | .has_radio = 1, |
1484 | .needs_tvaudio = 0, | 892 | .tuner_type = 5, /* default for now, gpio reads BFFF06 for Pal bg+dk */ |
1485 | .no_msp34xx = 1, | 893 | .tuner_addr = ADDR_UNSET, |
1486 | .pll = PLL_28, | 894 | .radio_addr = ADDR_UNSET, |
1487 | .tuner_type = -1, | 895 | .audio_hook = winfast2000_audio, |
1488 | .tuner_addr = ADDR_UNSET, | 896 | .has_remote = 1, |
1489 | },{ | 897 | }, |
1490 | .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", | 898 | [BTTV_BOARD_CHRONOS_VS2] = { |
1491 | .video_inputs = 4, | 899 | .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", |
1492 | .audio_inputs = 3, | 900 | .video_inputs = 4, |
1493 | .tuner = 0, | 901 | .audio_inputs = 3, |
1494 | .svhs = 2, | 902 | .tuner = 0, |
1495 | .gpiomask = 7, | 903 | .svhs = 2, |
1496 | .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ | 904 | .gpiomask = 0x1800, |
1497 | .audiomux = { 0 ,0 ,4, 4,4,4},/* Yes, this tuner uses the same audio output for TV and FM radio! | 905 | .muxsel = { 2, 3, 1, 1}, |
1498 | * This card lacks external Audio In, so we mute it on Ext. & Int. | 906 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, |
1499 | * The PCB can take a sbx1637/sbx1673, wiring unknown. | 907 | .pll = PLL_28, |
1500 | * This card lacks PCI subsystem ID, sigh. | 908 | .tuner_type = -1, |
1501 | * audiomux=1: lower volume, 2+3: mute | 909 | .tuner_addr = ADDR_UNSET, |
1502 | * btwincap uses 0x80000/0x80003 | 910 | .radio_addr = ADDR_UNSET, |
1503 | */ | 911 | }, |
1504 | .needs_tvaudio = 0, | 912 | |
1505 | .no_msp34xx = 1, | 913 | /* ---- card 0x24 ---------------------------------- */ |
1506 | .pll = PLL_28, | 914 | [BTTV_BOARD_TYPHOON_TVIEW] = { |
1507 | .tuner_type = 5, | 915 | .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", |
1508 | .tuner_addr = ADDR_UNSET, | 916 | .video_inputs = 4, |
1509 | /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and | 917 | .audio_inputs = 3, |
1510 | radio signal strength indicators work fine. */ | 918 | .tuner = 0, |
1511 | .has_radio = 1, | 919 | .svhs = 2, |
1512 | /* GPIO Info: | 920 | .gpiomask = 0x1800, |
1513 | GPIO0,1: HEF4052 A0,A1 | 921 | .muxsel = { 2, 3, 1, 1}, |
1514 | GPIO2: HEF4052 nENABLE | 922 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, |
1515 | GPIO3-7: n.c. | 923 | .pll = PLL_28, |
1516 | GPIO8-13: IRDC357 data0-5 (data6 n.c. ?) [chip not present on my card] | 924 | .tuner_type = -1, |
1517 | GPIO14,15: ?? | 925 | .tuner_addr = ADDR_UNSET, |
1518 | GPIO16-21: n.c. | 926 | .radio_addr = ADDR_UNSET, |
1519 | GPIO22,23: ?? | 927 | .has_radio = 1, |
1520 | ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/ | 928 | }, |
1521 | },{ | 929 | [BTTV_BOARD_PXELVWPLTVPRO] = { |
1522 | /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ | 930 | .name = "Prolink PixelView PlayTV pro", |
1523 | .name = "DSP Design TCVIDEO", | 931 | .video_inputs = 3, |
1524 | .video_inputs = 4, | 932 | .audio_inputs = 1, |
1525 | .svhs = -1, | 933 | .tuner = 0, |
1526 | .muxsel = { 2, 3, 1, 0}, | 934 | .svhs = 2, |
1527 | .pll = PLL_28, | 935 | .gpiomask = 0xff, |
1528 | .tuner_type = -1, | 936 | .muxsel = { 2, 3, 1, 1 }, |
1529 | .tuner_addr = ADDR_UNSET, | 937 | .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, |
1530 | },{ | 938 | .no_msp34xx = 1, |
1531 | 939 | .pll = PLL_28, | |
1532 | /* ---- card 0x50 ---------------------------------- */ | 940 | .tuner_type = -1, |
1533 | .name = "Hauppauge WinTV PVR", | 941 | .tuner_addr = ADDR_UNSET, |
1534 | .video_inputs = 4, | 942 | .radio_addr = ADDR_UNSET, |
1535 | .audio_inputs = 1, | 943 | }, |
1536 | .tuner = 0, | 944 | [BTTV_BOARD_MAGICTVIEW063] = { |
1537 | .svhs = 2, | 945 | .name = "Askey CPH06X TView99", |
1538 | .muxsel = { 2, 0, 1, 1}, | 946 | .video_inputs = 4, |
1539 | .needs_tvaudio = 1, | 947 | .audio_inputs = 1, |
1540 | .pll = PLL_28, | 948 | .tuner = 0, |
1541 | .tuner_type = -1, | 949 | .svhs = 2, |
1542 | .tuner_addr = ADDR_UNSET, | 950 | .gpiomask = 0x551e00, |
1543 | 951 | .muxsel = { 2, 3, 1, 0}, | |
1544 | .gpiomask = 7, | 952 | .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, |
1545 | .audiomux = {7}, | 953 | .needs_tvaudio = 1, |
1546 | },{ | 954 | .pll = PLL_28, |
1547 | .name = "IODATA GV-BCTV5/PCI", | 955 | .tuner_type = 1, |
1548 | .video_inputs = 3, | 956 | .tuner_addr = ADDR_UNSET, |
1549 | .audio_inputs = 1, | 957 | .radio_addr = ADDR_UNSET, |
1550 | .tuner = 0, | 958 | .has_remote = 1, |
1551 | .svhs = 2, | 959 | }, |
1552 | .gpiomask = 0x0f0f80, | 960 | [BTTV_BOARD_PINNACLE] = { |
1553 | .muxsel = {2, 3, 1, 0}, | 961 | .name = "Pinnacle PCTV Studio/Rave", |
1554 | .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0}, | 962 | .video_inputs = 3, |
1555 | .no_msp34xx = 1, | 963 | .audio_inputs = 1, |
1556 | .pll = PLL_28, | 964 | .tuner = 0, |
1557 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 965 | .svhs = 2, |
1558 | .tuner_addr = ADDR_UNSET, | 966 | .gpiomask = 0x03000F, |
1559 | .audio_hook = gvbctv5pci_audio, | 967 | .muxsel = { 2, 3, 1, 1}, |
1560 | .has_radio = 1, | 968 | .audiomux = { 2, 0xd0001, 0, 0, 1}, |
1561 | },{ | 969 | .needs_tvaudio = 0, |
1562 | .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ | 970 | .pll = PLL_28, |
1563 | .video_inputs = 4, /* id-inputs-clock */ | 971 | .tuner_type = -1, |
1564 | .audio_inputs = 0, | 972 | .tuner_addr = ADDR_UNSET, |
1565 | .tuner = -1, | 973 | .radio_addr = ADDR_UNSET, |
1566 | .svhs = 3, | 974 | }, |
1567 | .muxsel = { 3, 2, 0, 1 }, | 975 | |
1568 | .pll = PLL_28, | 976 | /* ---- card 0x28 ---------------------------------- */ |
1569 | .tuner_type = -1, | 977 | [BTTV_BOARD_STB2] = { |
1570 | .tuner_addr = ADDR_UNSET, | 978 | .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", |
1571 | .no_msp34xx = 1, | 979 | .video_inputs = 3, |
1572 | .no_tda9875 = 1, | 980 | .audio_inputs = 1, |
1573 | .no_tda7432 = 1, | 981 | .tuner = 0, |
1574 | },{ | 982 | .svhs = 2, |
1575 | .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ | 983 | .gpiomask = 7, |
1576 | .video_inputs = 3, | 984 | .muxsel = { 2, 3, 1, 1}, |
1577 | .audio_inputs = 0, | 985 | .audiomux = { 4, 0, 2, 3, 1}, |
1578 | .tuner = -1, | 986 | .no_msp34xx = 1, |
1579 | .svhs = 2, | 987 | .needs_tvaudio = 1, |
1580 | .muxsel = { 2, 3, 1 }, | 988 | .tuner_type = TUNER_PHILIPS_NTSC, |
1581 | .pll = PLL_28, | 989 | .tuner_addr = ADDR_UNSET, |
1582 | .tuner_type = -1, | 990 | .radio_addr = ADDR_UNSET, |
1583 | .tuner_addr = ADDR_UNSET, | 991 | .pll = PLL_28, |
1584 | .no_msp34xx = 1, | 992 | .has_radio = 1, |
1585 | .no_tda9875 = 1, | 993 | }, |
1586 | .no_tda7432 = 1, | 994 | [BTTV_BOARD_AVPHONE98] = { |
1587 | },{ | 995 | .name = "AVerMedia TVPhone 98", |
1588 | 996 | .video_inputs = 3, | |
1589 | /* ---- card 0x54 ---------------------------------- */ | 997 | .audio_inputs = 4, |
1590 | .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ | 998 | .tuner = 0, |
1591 | .video_inputs = 2, | 999 | .svhs = 2, |
1592 | .audio_inputs = 0, | 1000 | .gpiomask = 15, |
1593 | .tuner = -1, | 1001 | .muxsel = { 2, 3, 1, 1}, |
1594 | .svhs = 1, | 1002 | .audiomux = { 13, 4, 11, 7, 0, 0}, |
1595 | .muxsel = { 3, 1 }, | 1003 | .needs_tvaudio = 1, |
1596 | .pll = PLL_28, | 1004 | .pll = PLL_28, |
1597 | .tuner_type = -1, | 1005 | .tuner_type = -1, |
1598 | .tuner_addr = ADDR_UNSET, | 1006 | .tuner_addr = ADDR_UNSET, |
1599 | .no_msp34xx = 1, | 1007 | .radio_addr = ADDR_UNSET, |
1600 | .no_tda9875 = 1, | 1008 | .has_radio = 1, |
1601 | .no_tda7432 = 1, | 1009 | .audio_hook = avermedia_tvphone_audio, |
1602 | },{ | 1010 | }, |
1603 | .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ | 1011 | [BTTV_BOARD_PV951] = { |
1604 | .video_inputs = 1, | 1012 | .name = "ProVideo PV951", /* pic16c54 */ |
1605 | .audio_inputs = 0, | 1013 | .video_inputs = 3, |
1606 | .tuner = -1, | 1014 | .audio_inputs = 1, |
1607 | .svhs = -1, | 1015 | .tuner = 0, |
1608 | .muxsel = { 0 }, | 1016 | .svhs = 2, |
1609 | .pll = PLL_28, | 1017 | .gpiomask = 0, |
1610 | .tuner_type = -1, | 1018 | .muxsel = { 2, 3, 1, 1}, |
1611 | .tuner_addr = ADDR_UNSET, | 1019 | .audiomux = { 0, 0, 0, 0, 0}, |
1612 | .no_msp34xx = 1, | 1020 | .needs_tvaudio = 1, |
1613 | .no_tda9875 = 1, | 1021 | .no_msp34xx = 1, |
1614 | .no_tda7432 = 1, | 1022 | .pll = PLL_28, |
1615 | },{ | 1023 | .tuner_type = 1, |
1616 | .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ | 1024 | .tuner_addr = ADDR_UNSET, |
1617 | .video_inputs = 2, | 1025 | .radio_addr = ADDR_UNSET, |
1618 | .audio_inputs = 0, | 1026 | }, |
1619 | .tuner = -1, | 1027 | [BTTV_BOARD_ONAIR_TV] = { |
1620 | .svhs = 1, | 1028 | .name = "Little OnAir TV", |
1621 | .muxsel = { 0, 1 }, | 1029 | .video_inputs = 3, |
1622 | .pll = PLL_28, | 1030 | .audio_inputs = 1, |
1623 | .tuner_type = -1, | 1031 | .tuner = 0, |
1624 | .tuner_addr = ADDR_UNSET, | 1032 | .svhs = 2, |
1625 | .no_msp34xx = 1, | 1033 | .gpiomask = 0xe00b, |
1626 | .no_tda9875 = 1, | 1034 | .muxsel = {2, 3, 1, 1}, |
1627 | .no_tda7432 = 1, | 1035 | .audiomux = {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, |
1628 | },{ | 1036 | .no_msp34xx = 1, |
1629 | .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ | 1037 | .tuner_type = -1, |
1630 | .video_inputs = 1, | 1038 | .tuner_addr = ADDR_UNSET, |
1631 | .audio_inputs = 1, | 1039 | .radio_addr = ADDR_UNSET, |
1632 | .tuner = -1, | 1040 | }, |
1633 | .svhs = -1, | 1041 | |
1634 | .muxsel = { 0 }, | 1042 | /* ---- card 0x2c ---------------------------------- */ |
1635 | .pll = PLL_28, | 1043 | [BTTV_BOARD_SIGMA_TVII_FM] = { |
1636 | .tuner_type = UNSET, | 1044 | .name = "Sigma TVII-FM", |
1637 | .tuner_addr = ADDR_UNSET, | 1045 | .video_inputs = 2, |
1638 | .no_msp34xx = 1, | 1046 | .audio_inputs = 1, |
1639 | .no_tda9875 = 1, | 1047 | .tuner = 0, |
1640 | .no_tda7432 = 1, | 1048 | .svhs = -1, |
1641 | },{ | 1049 | .gpiomask = 3, |
1642 | 1050 | .muxsel = {2, 3, 1, 1}, | |
1643 | /* ---- card 0x58 ---------------------------------- */ | 1051 | .audiomux = {1, 1, 0, 2, 3}, |
1644 | .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ | 1052 | .no_msp34xx = 1, |
1645 | .video_inputs = 2, | 1053 | .pll = PLL_NONE, |
1646 | .audio_inputs = 1, | 1054 | .tuner_type = -1, |
1647 | .tuner = -1, | 1055 | .tuner_addr = ADDR_UNSET, |
1648 | .svhs = 1, | 1056 | .radio_addr = ADDR_UNSET, |
1649 | .muxsel = { 0, 1 }, | 1057 | }, |
1650 | .pll = PLL_28, | 1058 | [BTTV_BOARD_MATRIX_VISION2] = { |
1651 | .tuner_type = UNSET, | 1059 | .name = "MATRIX-Vision MV-Delta 2", |
1652 | .tuner_addr = ADDR_UNSET, | 1060 | .video_inputs = 5, |
1653 | .no_msp34xx = 1, | 1061 | .audio_inputs = 1, |
1654 | .no_tda9875 = 1, | 1062 | .tuner = -1, |
1655 | .no_tda7432 = 1, | 1063 | .svhs = 3, |
1656 | },{ | 1064 | .gpiomask = 0, |
1657 | .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ | 1065 | .muxsel = { 2, 3, 1, 0, 0}, |
1658 | .video_inputs = 2, | 1066 | .audiomux = {0 }, |
1659 | .audio_inputs = 1, | 1067 | .no_msp34xx = 1, |
1660 | .tuner = -1, | 1068 | .pll = PLL_28, |
1661 | .svhs = 1, | 1069 | .tuner_type = -1, |
1662 | .muxsel = { 2, 3 }, | 1070 | .tuner_addr = ADDR_UNSET, |
1663 | .pll = PLL_28, | 1071 | .radio_addr = ADDR_UNSET, |
1664 | .tuner_type = UNSET, | 1072 | }, |
1665 | .tuner_addr = ADDR_UNSET, | 1073 | [BTTV_BOARD_ZOLTRIX_GENIE] = { |
1666 | .no_msp34xx = 1, | 1074 | .name = "Zoltrix Genie TV/FM", |
1667 | .no_tda9875 = 1, | 1075 | .video_inputs = 3, |
1668 | .no_tda7432 = 1, | 1076 | .audio_inputs = 1, |
1669 | },{ | 1077 | .tuner = 0, |
1670 | .name = "Osprey 500", /* 500 */ | 1078 | .svhs = 2, |
1671 | .video_inputs = 2, | 1079 | .gpiomask = 0xbcf03f, |
1672 | .audio_inputs = 1, | 1080 | .muxsel = { 2, 3, 1, 1}, |
1673 | .tuner = -1, | 1081 | .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, |
1674 | .svhs = 1, | 1082 | .no_msp34xx = 1, |
1675 | .muxsel = { 2, 3 }, | 1083 | .pll = PLL_28, |
1676 | .pll = PLL_28, | 1084 | .tuner_type = 21, |
1677 | .tuner_type = -1, | 1085 | .tuner_addr = ADDR_UNSET, |
1678 | .tuner_addr = ADDR_UNSET, | 1086 | .radio_addr = ADDR_UNSET, |
1679 | .no_msp34xx = 1, | 1087 | }, |
1680 | .no_tda9875 = 1, | 1088 | [BTTV_BOARD_TERRATVRADIO] = { |
1681 | .no_tda7432 = 1, | 1089 | .name = "Terratec TV/Radio+", |
1682 | },{ | 1090 | .video_inputs = 3, |
1683 | .name = "Osprey 540", /* 540 */ | 1091 | .audio_inputs = 1, |
1684 | .video_inputs = 4, | 1092 | .tuner = 0, |
1685 | .audio_inputs = 1, | 1093 | .svhs = 2, |
1686 | .tuner = -1, | 1094 | .gpiomask = 0x70000, |
1687 | .pll = PLL_28, | 1095 | .muxsel = { 2, 3, 1, 1}, |
1688 | .tuner_type = -1, | 1096 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, |
1689 | .tuner_addr = ADDR_UNSET, | 1097 | .needs_tvaudio = 1, |
1690 | .no_msp34xx = 1, | 1098 | .no_msp34xx = 1, |
1691 | .no_tda9875 = 1, | 1099 | .pll = PLL_35, |
1692 | .no_tda7432 = 1, | 1100 | .tuner_type = 1, |
1693 | },{ | 1101 | .tuner_addr = ADDR_UNSET, |
1694 | 1102 | .radio_addr = ADDR_UNSET, | |
1695 | /* ---- card 0x5C ---------------------------------- */ | 1103 | .has_radio = 1, |
1696 | .name = "Osprey 2000", /* 2000 */ | 1104 | }, |
1697 | .video_inputs = 2, | 1105 | |
1698 | .audio_inputs = 1, | 1106 | /* ---- card 0x30 ---------------------------------- */ |
1699 | .tuner = -1, | 1107 | [BTTV_BOARD_DYNALINK] = { |
1700 | .svhs = 1, | 1108 | .name = "Askey CPH03x/ Dynalink Magic TView", |
1701 | .muxsel = { 2, 3 }, | 1109 | .video_inputs = 3, |
1702 | .pll = PLL_28, | 1110 | .audio_inputs = 1, |
1703 | .tuner_type = UNSET, | 1111 | .tuner = 0, |
1704 | .tuner_addr = ADDR_UNSET, | 1112 | .svhs = 2, |
1705 | .no_msp34xx = 1, | 1113 | .gpiomask = 15, |
1706 | .no_tda9875 = 1, | 1114 | .muxsel = { 2, 3, 1, 1}, |
1707 | .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ | 1115 | .audiomux = {2,0,0,0,1}, |
1708 | },{ | 1116 | .needs_tvaudio = 1, |
1709 | /* M G Berberich <berberic@forwiss.uni-passau.de> */ | 1117 | .pll = PLL_28, |
1710 | .name = "IDS Eagle", | 1118 | .tuner_type = -1, |
1711 | .video_inputs = 4, | 1119 | .tuner_addr = ADDR_UNSET, |
1712 | .audio_inputs = 0, | 1120 | .radio_addr = ADDR_UNSET, |
1713 | .tuner = -1, | 1121 | }, |
1714 | .tuner_type = -1, | 1122 | [BTTV_BOARD_GVBCTV3PCI] = { |
1715 | .tuner_addr = ADDR_UNSET, | 1123 | .name = "IODATA GV-BCTV3/PCI", |
1716 | .svhs = -1, | 1124 | .video_inputs = 3, |
1717 | .gpiomask = 0, | 1125 | .audio_inputs = 1, |
1718 | .muxsel = { 0, 1, 2, 3 }, | 1126 | .tuner = 0, |
1719 | .muxsel_hook = eagle_muxsel, | 1127 | .svhs = 2, |
1720 | .no_msp34xx = 1, | 1128 | .gpiomask = 0x010f00, |
1721 | .no_tda9875 = 1, | 1129 | .muxsel = {2, 3, 0, 0}, |
1722 | .pll = PLL_28, | 1130 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, |
1723 | },{ | 1131 | .no_msp34xx = 1, |
1724 | .name = "Pinnacle PCTV Sat", | 1132 | .pll = PLL_28, |
1725 | .video_inputs = 2, | 1133 | .tuner_type = TUNER_ALPS_TSHC6_NTSC, |
1726 | .audio_inputs = 0, | 1134 | .tuner_addr = ADDR_UNSET, |
1727 | .svhs = 1, | 1135 | .radio_addr = ADDR_UNSET, |
1728 | .tuner = -1, | 1136 | .audio_hook = gvbctv3pci_audio, |
1729 | .tuner_type = -1, | 1137 | }, |
1730 | .tuner_addr = ADDR_UNSET, | 1138 | [BTTV_BOARD_PXELVWPLTVPAK] = { |
1731 | .no_msp34xx = 1, | 1139 | .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", |
1732 | .no_tda9875 = 1, | 1140 | .video_inputs = 5, |
1733 | .no_tda7432 = 1, | 1141 | .audio_inputs = 1, |
1734 | .gpiomask = 0x01, | 1142 | .tuner = 0, |
1735 | .audiomux = { 0, 0, 0, 0, 1 }, | 1143 | .svhs = 3, |
1736 | .muxsel = { 3, 0, 1, 2}, | 1144 | .gpiomask = 0xAA0000, |
1737 | .needs_tvaudio = 0, | 1145 | .muxsel = { 2,3,1,1,-1 }, |
1738 | .pll = PLL_28, | 1146 | .digital_mode = DIGITAL_MODE_CAMERA, |
1739 | .no_gpioirq = 1, | 1147 | .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, |
1740 | .has_dvb = 1, | 1148 | .no_msp34xx = 1, |
1741 | },{ | 1149 | .pll = PLL_28, |
1742 | .name = "Formac ProTV II (bt878)", | 1150 | .tuner_type = TUNER_PHILIPS_PAL_I, |
1743 | .video_inputs = 4, | 1151 | .tuner_addr = ADDR_UNSET, |
1744 | .audio_inputs = 1, | 1152 | .radio_addr = ADDR_UNSET, |
1745 | .tuner = 0, | 1153 | .has_remote = 1, |
1746 | .svhs = 3, | 1154 | /* GPIO wiring: (different from Rev.4C !) |
1747 | .gpiomask = 2, | 1155 | GPIO17: U4.A0 (first hef4052bt) |
1748 | /* TV, Comp1, Composite over SVID con, SVID */ | 1156 | GPIO19: U4.A1 |
1749 | .muxsel = { 2, 3, 1, 1}, | 1157 | GPIO20: U5.A1 (second hef4052bt) |
1750 | .audiomux = { 2, 2, 0, 0, 0 }, | 1158 | GPIO21: U4.nEN |
1751 | .pll = PLL_28, | 1159 | GPIO22: BT832 Reset Line |
1752 | .has_radio = 1, | 1160 | GPIO23: A5,A0, U5,nEN |
1753 | .tuner_type = TUNER_PHILIPS_PAL, | 1161 | Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22 |
1754 | .tuner_addr = ADDR_UNSET, | 1162 | */ |
1755 | /* sound routing: | 1163 | }, |
1756 | GPIO=0x00,0x01,0x03: mute (?) | 1164 | [BTTV_BOARD_EAGLE] = { |
1757 | 0x02: both TV and radio (tuner: FM1216/I) | 1165 | .name = "Eagle Wireless Capricorn2 (bt878A)", |
1758 | The card has onboard audio connectors labeled "cdrom" and "board", | 1166 | .video_inputs = 4, |
1759 | not soldered here, though unknown wiring. | 1167 | .audio_inputs = 1, |
1760 | Card lacks: external audio in, pci subsystem id. | 1168 | .tuner = 0, |
1761 | */ | 1169 | .svhs = 2, |
1762 | },{ | 1170 | .gpiomask = 7, |
1763 | 1171 | .muxsel = { 2, 0, 1, 1}, | |
1764 | /* ---- card 0x60 ---------------------------------- */ | 1172 | .audiomux = { 0, 1, 2, 3, 4}, |
1765 | .name = "MachTV", | 1173 | .pll = PLL_28, |
1766 | .video_inputs = 3, | 1174 | .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, |
1767 | .audio_inputs = 1, | 1175 | .tuner_addr = ADDR_UNSET, |
1768 | .tuner = 0, | 1176 | .radio_addr = ADDR_UNSET, |
1769 | .svhs = -1, | 1177 | }, |
1770 | .gpiomask = 7, | 1178 | |
1771 | .muxsel = { 2, 3, 1, 1}, | 1179 | /* ---- card 0x34 ---------------------------------- */ |
1772 | .audiomux = { 0, 1, 2, 3, 4}, | 1180 | [BTTV_BOARD_PINNACLEPRO] = { |
1773 | .needs_tvaudio = 1, | 1181 | /* David Härdeman <david@2gen.com> */ |
1774 | .tuner_type = 5, | 1182 | .name = "Pinnacle PCTV Studio Pro", |
1775 | .tuner_addr = ADDR_UNSET, | 1183 | .video_inputs = 4, |
1776 | .pll = 1, | 1184 | .audio_inputs = 1, |
1777 | },{ | 1185 | .tuner = 0, |
1778 | .name = "Euresys Picolo", | 1186 | .svhs = 3, |
1779 | .video_inputs = 3, | 1187 | .gpiomask = 0x03000F, |
1780 | .audio_inputs = 0, | 1188 | .muxsel = { 2, 3, 1, 1}, |
1781 | .tuner = -1, | 1189 | .audiomux = { 1, 0xd0001, 0, 0, 10}, |
1782 | .svhs = 2, | 1190 | /* sound path (5 sources): |
1783 | .gpiomask = 0, | 1191 | MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) |
1784 | .no_msp34xx = 1, | 1192 | 0= ext. Audio IN |
1785 | .no_tda9875 = 1, | 1193 | 1= from MUX2 |
1786 | .no_tda7432 = 1, | 1194 | 2= Mono TV sound from Tuner |
1787 | .muxsel = { 2, 0, 1}, | 1195 | 3= not connected |
1788 | .pll = PLL_28, | 1196 | MUX2 (mask 0x30000): |
1789 | .tuner_type = UNSET, | 1197 | 0,2,3= from MSP34xx |
1790 | .tuner_addr = ADDR_UNSET, | 1198 | 1= FM stereo Radio from Tuner */ |
1791 | },{ | 1199 | .needs_tvaudio = 0, |
1792 | /* Luc Van Hoeylandt <luc@e-magic.be> */ | 1200 | .pll = PLL_28, |
1793 | .name = "ProVideo PV150", /* 0x4f */ | 1201 | .tuner_type = -1, |
1794 | .video_inputs = 2, | 1202 | .tuner_addr = ADDR_UNSET, |
1795 | .audio_inputs = 0, | 1203 | .radio_addr = ADDR_UNSET, |
1796 | .tuner = -1, | 1204 | }, |
1797 | .svhs = -1, | 1205 | [BTTV_BOARD_TVIEW_RDS_FM] = { |
1798 | .gpiomask = 0, | 1206 | /* Claas Langbehn <claas@bigfoot.com>, |
1799 | .muxsel = { 2, 3 }, | 1207 | Sven Grothklags <sven@upb.de> */ |
1800 | .audiomux = { 0 }, | 1208 | .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", |
1801 | .needs_tvaudio = 0, | 1209 | .video_inputs = 4, |
1802 | .no_msp34xx = 1, | 1210 | .audio_inputs = 3, |
1803 | .pll = PLL_28, | 1211 | .tuner = 0, |
1804 | .tuner_type = UNSET, | 1212 | .svhs = 2, |
1805 | .tuner_addr = ADDR_UNSET, | 1213 | .gpiomask = 0x1c, |
1806 | },{ | 1214 | .muxsel = { 2, 3, 1, 1}, |
1807 | /* Hiroshi Takekawa <sian@big.or.jp> */ | 1215 | .audiomux = { 0, 0, 0x10, 8, 4 }, |
1808 | /* This card lacks subsystem ID */ | 1216 | .needs_tvaudio = 1, |
1809 | .name = "AD-TVK503", /* 0x63 */ | 1217 | .pll = PLL_28, |
1810 | .video_inputs = 4, | 1218 | .tuner_type = TUNER_PHILIPS_PAL, |
1811 | .audio_inputs = 1, | 1219 | .tuner_addr = ADDR_UNSET, |
1812 | .tuner = 0, | 1220 | .radio_addr = ADDR_UNSET, |
1813 | .svhs = 2, | 1221 | .has_radio = 1, |
1814 | .gpiomask = 0x001e8007, | 1222 | }, |
1815 | .muxsel = { 2, 3, 1, 0 }, | 1223 | [BTTV_BOARD_LIFETEC_9415] = { |
1816 | /* Tuner, Radio, external, internal, off, on */ | 1224 | /* Tim Röstermundt <rosterm@uni-muenster.de> |
1817 | .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, | 1225 | in de.comp.os.unix.linux.hardware: |
1818 | .needs_tvaudio = 0, | 1226 | options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 |
1819 | .no_msp34xx = 1, | 1227 | audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff |
1820 | .pll = PLL_28, | 1228 | options tuner type=5 */ |
1821 | .tuner_type = 2, | 1229 | .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", |
1822 | .tuner_addr = ADDR_UNSET, | 1230 | .video_inputs = 4, |
1823 | .audio_hook = adtvk503_audio, | 1231 | .audio_inputs = 1, |
1824 | },{ | 1232 | .tuner = 0, |
1825 | 1233 | .svhs = 2, | |
1826 | /* ---- card 0x64 ---------------------------------- */ | 1234 | .gpiomask = 0x18e0, |
1827 | .name = "Hercules Smart TV Stereo", | 1235 | .muxsel = { 2, 3, 1, 1}, |
1828 | .video_inputs = 4, | 1236 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, |
1829 | .audio_inputs = 1, | 1237 | /* For cards with tda9820/tda9821: |
1830 | .tuner = 0, | 1238 | 0x0000: Tuner normal stereo |
1831 | .svhs = 2, | 1239 | 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) |
1832 | .gpiomask = 0x00, | 1240 | 0x0880: Tuner A2 stereo */ |
1833 | .muxsel = { 2, 3, 1, 1 }, | 1241 | .pll = PLL_28, |
1834 | .needs_tvaudio = 1, | 1242 | .tuner_type = -1, |
1835 | .no_msp34xx = 1, | 1243 | .tuner_addr = ADDR_UNSET, |
1836 | .pll = PLL_28, | 1244 | .radio_addr = ADDR_UNSET, |
1837 | .tuner_type = 5, | 1245 | }, |
1838 | .tuner_addr = ADDR_UNSET, | 1246 | [BTTV_BOARD_BESTBUY_EASYTV] = { |
1839 | /* Notes: | 1247 | /* Miguel Angel Alvarez <maacruz@navegalia.com> |
1840 | - card lacks subsystem ID | 1248 | old Easy TV BT848 version (model CPH031) */ |
1841 | - stereo variant w/ daughter board with tda9874a @0xb0 | 1249 | .name = "Askey CPH031/ BESTBUY Easy TV", |
1842 | - Audio Routing: | 1250 | .video_inputs = 4, |
1843 | always from tda9874 independent of GPIO (?) | 1251 | .audio_inputs = 1, |
1844 | external line in: unknown | 1252 | .tuner = 0, |
1845 | - Other chips: em78p156elp @ 0x96 (probably IR remote control) | 1253 | .svhs = 2, |
1846 | hef4053 (instead 4052) for unknown function | 1254 | .gpiomask = 0xF, |
1847 | */ | 1255 | .muxsel = { 2, 3, 1, 0}, |
1848 | },{ | 1256 | .audiomux = { 2, 0, 0, 0, 10}, |
1849 | .name = "Pace TV & Radio Card", | 1257 | .needs_tvaudio = 0, |
1850 | .video_inputs = 4, | 1258 | .pll = PLL_28, |
1851 | .audio_inputs = 1, | 1259 | .tuner_type = TUNER_TEMIC_PAL, |
1852 | .tuner = 0, | 1260 | .tuner_addr = ADDR_UNSET, |
1853 | .svhs = 2, | 1261 | .radio_addr = ADDR_UNSET, |
1854 | .muxsel = { 2, 3, 1, 1}, /* Tuner, CVid, SVid, CVid over SVid connector */ | 1262 | }, |
1855 | .gpiomask = 0, | 1263 | |
1856 | .no_tda9875 = 1, | 1264 | /* ---- card 0x38 ---------------------------------- */ |
1857 | .no_tda7432 = 1, | 1265 | [BTTV_BOARD_FLYVIDEO_98FM] = { |
1858 | .tuner_type = 1, | 1266 | /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ |
1859 | .tuner_addr = ADDR_UNSET, | 1267 | .name = "Lifeview FlyVideo 98FM LR50", |
1860 | .has_radio = 1, | 1268 | .video_inputs = 4, |
1861 | .pll = PLL_28, | 1269 | .audio_inputs = 3, |
1862 | /* Bt878, Bt832, FI1246 tuner; no pci subsystem id | 1270 | .tuner = 0, |
1863 | only internal line out: (4pin header) RGGL | 1271 | .svhs = 2, |
1864 | Radio must be decoded by msp3410d (not routed through)*/ | 1272 | .gpiomask = 0x1800, |
1865 | /* | 1273 | .muxsel = { 2, 3, 1, 1}, |
1866 | .digital_mode = DIGITAL_MODE_CAMERA, todo! | 1274 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, |
1867 | */ | 1275 | .pll = PLL_28, |
1868 | },{ | 1276 | .tuner_type = 5, |
1869 | /* Chris Willing <chris@vislab.usyd.edu.au> */ | 1277 | .tuner_addr = ADDR_UNSET, |
1870 | .name = "IVC-200", | 1278 | .radio_addr = ADDR_UNSET, |
1871 | .video_inputs = 1, | 1279 | }, |
1872 | .audio_inputs = 0, | 1280 | /* This is the ultimate cheapo capture card |
1873 | .tuner = -1, | 1281 | * just a BT848A on a small PCB! |
1874 | .tuner_type = -1, | 1282 | * Steve Hosgood <steve@equiinet.com> */ |
1875 | .tuner_addr = ADDR_UNSET, | 1283 | [BTTV_BOARD_GRANDTEC] = { |
1876 | .svhs = -1, | 1284 | .name = "GrandTec 'Grand Video Capture' (Bt848)", |
1877 | .gpiomask = 0xdf, | 1285 | .video_inputs = 2, |
1878 | .muxsel = { 2 }, | 1286 | .audio_inputs = 0, |
1879 | .pll = PLL_28, | 1287 | .tuner = -1, |
1880 | },{ | 1288 | .svhs = 1, |
1881 | .name = "Grand X-Guard / Trust 814PCI", | 1289 | .gpiomask = 0, |
1882 | .video_inputs = 16, | 1290 | .muxsel = { 3, 1 }, |
1883 | .audio_inputs = 0, | 1291 | .audiomux = { 0 }, |
1884 | .tuner = -1, | 1292 | .needs_tvaudio = 0, |
1885 | .svhs = -1, | 1293 | .no_msp34xx = 1, |
1886 | .tuner_type = 4, | 1294 | .pll = PLL_35, |
1887 | .tuner_addr = ADDR_UNSET, | 1295 | .tuner_type = -1, |
1888 | .gpiomask2 = 0xff, | 1296 | .tuner_addr = ADDR_UNSET, |
1889 | .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, | 1297 | .radio_addr = ADDR_UNSET, |
1890 | .muxsel_hook = xguard_muxsel, | 1298 | }, |
1891 | .no_msp34xx = 1, | 1299 | [BTTV_BOARD_ASKEY_CPH060] = { |
1892 | .no_tda9875 = 1, | 1300 | /* Daniel Herrington <daniel.herrington@home.com> */ |
1893 | .no_tda7432 = 1, | 1301 | .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", |
1894 | .pll = PLL_28, | 1302 | .video_inputs = 3, |
1895 | },{ | 1303 | .audio_inputs = 1, |
1896 | 1304 | .tuner = 0, | |
1897 | /* ---- card 0x68 ---------------------------------- */ | 1305 | .svhs = 2, |
1898 | .name = "Nebula Electronics DigiTV", | 1306 | .gpiomask = 0xe00, |
1899 | .video_inputs = 1, | 1307 | .muxsel = { 2, 3, 1, 1}, |
1900 | .tuner = -1, | 1308 | .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, |
1901 | .svhs = -1, | 1309 | .needs_tvaudio = 1, |
1902 | .muxsel = { 2, 3, 1, 0}, | 1310 | .pll = PLL_28, |
1903 | .no_msp34xx = 1, | 1311 | .tuner_type = TUNER_TEMIC_4036FY5_NTSC, |
1904 | .no_tda9875 = 1, | 1312 | .tuner_addr = ADDR_UNSET, |
1905 | .no_tda7432 = 1, | 1313 | .radio_addr = ADDR_UNSET, |
1906 | .pll = PLL_28, | 1314 | }, |
1907 | .tuner_type = -1, | 1315 | [BTTV_BOARD_ASKEY_CPH03X] = { |
1908 | .tuner_addr = ADDR_UNSET, | 1316 | /* Matti Mottus <mottus@physic.ut.ee> */ |
1909 | .has_dvb = 1, | 1317 | .name = "Askey CPH03x TV Capturer", |
1910 | .no_gpioirq = 1, | 1318 | .video_inputs = 4, |
1911 | },{ | 1319 | .audio_inputs = 1, |
1912 | /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ | 1320 | .tuner = 0, |
1913 | .name = "ProVideo PV143", | 1321 | .svhs = 2, |
1914 | .video_inputs = 4, | 1322 | .gpiomask = 0x03000F, |
1915 | .audio_inputs = 0, | 1323 | .muxsel = { 2, 3, 1, 0}, |
1916 | .tuner = -1, | 1324 | .audiomux = { 2,0,0,0,1 }, |
1917 | .svhs = -1, | 1325 | .pll = PLL_28, |
1918 | .gpiomask = 0, | 1326 | .tuner_type = 0, |
1919 | .muxsel = { 2, 3, 1, 0 }, | 1327 | .tuner_addr = ADDR_UNSET, |
1920 | .audiomux = { 0 }, | 1328 | .radio_addr = ADDR_UNSET, |
1921 | .needs_tvaudio = 0, | 1329 | }, |
1922 | .no_msp34xx = 1, | 1330 | |
1923 | .pll = PLL_28, | 1331 | /* ---- card 0x3c ---------------------------------- */ |
1924 | .tuner_type = -1, | 1332 | [BTTV_BOARD_MM100PCTV] = { |
1925 | .tuner_addr = ADDR_UNSET, | 1333 | /* Philip Blundell <philb@gnu.org> */ |
1926 | },{ | 1334 | .name = "Modular Technology MM100PCTV", |
1927 | /* M.Klahr@phytec.de */ | 1335 | .video_inputs = 2, |
1928 | .name = "PHYTEC VD-009-X1 MiniDIN (bt878)", | 1336 | .audio_inputs = 2, |
1929 | .video_inputs = 4, | 1337 | .tuner = 0, |
1930 | .audio_inputs = 0, | 1338 | .svhs = -1, |
1931 | .tuner = -1, /* card has no tuner */ | 1339 | .gpiomask = 11, |
1932 | .svhs = 3, | 1340 | .muxsel = { 2, 3, 1, 1}, |
1933 | .gpiomask = 0x00, | 1341 | .audiomux = { 2, 0, 0, 1, 8}, |
1934 | .muxsel = { 2, 3, 1, 0}, | 1342 | .pll = PLL_35, |
1935 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | 1343 | .tuner_type = TUNER_TEMIC_PAL, |
1936 | .needs_tvaudio = 1, | 1344 | .tuner_addr = ADDR_UNSET, |
1937 | .pll = PLL_28, | 1345 | .radio_addr = ADDR_UNSET, |
1938 | .tuner_type = -1, | 1346 | }, |
1939 | .tuner_addr = ADDR_UNSET, | 1347 | [BTTV_BOARD_GMV1] = { |
1940 | },{ | 1348 | /* Adrian Cox <adrian@humboldt.co.uk */ |
1941 | .name = "PHYTEC VD-009-X1 Combi (bt878)", | 1349 | .name = "AG Electronics GMV1", |
1942 | .video_inputs = 4, | 1350 | .video_inputs = 2, |
1943 | .audio_inputs = 0, | 1351 | .audio_inputs = 0, |
1944 | .tuner = -1, /* card has no tuner */ | 1352 | .tuner = -1, |
1945 | .svhs = 3, | 1353 | .svhs = 1, |
1946 | .gpiomask = 0x00, | 1354 | .gpiomask = 0xF, |
1947 | .muxsel = { 2, 3, 1, 1}, | 1355 | .muxsel = { 2, 2}, |
1948 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | 1356 | .audiomux = { }, |
1949 | .needs_tvaudio = 1, | 1357 | .no_msp34xx = 1, |
1950 | .pll = PLL_28, | 1358 | .needs_tvaudio = 0, |
1951 | .tuner_type = -1, | 1359 | .pll = PLL_28, |
1952 | .tuner_addr = ADDR_UNSET, | 1360 | .tuner_type = -1, |
1953 | },{ | 1361 | .tuner_addr = ADDR_UNSET, |
1954 | 1362 | .radio_addr = ADDR_UNSET, | |
1955 | /* ---- card 0x6c ---------------------------------- */ | 1363 | }, |
1956 | .name = "PHYTEC VD-009 MiniDIN (bt878)", | 1364 | [BTTV_BOARD_BESTBUY_EASYTV2] = { |
1957 | .video_inputs = 10, | 1365 | /* Miguel Angel Alvarez <maacruz@navegalia.com> |
1958 | .audio_inputs = 0, | 1366 | new Easy TV BT878 version (model CPH061) |
1959 | .tuner = -1, /* card has no tuner */ | 1367 | special thanks to Informatica Mieres for providing the card */ |
1960 | .svhs = 9, | 1368 | .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", |
1961 | .gpiomask = 0x00, | 1369 | .video_inputs = 3, |
1962 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | 1370 | .audio_inputs = 2, |
1963 | via the upper nibble of muxsel. here: used for | 1371 | .tuner = 0, |
1964 | xternal video-mux */ | 1372 | .svhs = 2, |
1965 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, | 1373 | .gpiomask = 0xFF, |
1966 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | 1374 | .muxsel = { 2, 3, 1, 0}, |
1967 | .needs_tvaudio = 1, | 1375 | .audiomux = { 1, 0, 4, 4, 9}, |
1968 | .pll = PLL_28, | 1376 | .needs_tvaudio = 0, |
1969 | .tuner_type = -1, | 1377 | .pll = PLL_28, |
1970 | .tuner_addr = ADDR_UNSET, | 1378 | .tuner_type = TUNER_PHILIPS_PAL, |
1971 | },{ | 1379 | .tuner_addr = ADDR_UNSET, |
1972 | .name = "PHYTEC VD-009 Combi (bt878)", | 1380 | .radio_addr = ADDR_UNSET, |
1973 | .video_inputs = 10, | 1381 | }, |
1974 | .audio_inputs = 0, | 1382 | [BTTV_BOARD_ATI_TVWONDER] = { |
1975 | .tuner = -1, /* card has no tuner */ | 1383 | /* Lukas Gebauer <geby@volny.cz> */ |
1976 | .svhs = 9, | 1384 | .name = "ATI TV-Wonder", |
1977 | .gpiomask = 0x00, | 1385 | .video_inputs = 3, |
1978 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | 1386 | .audio_inputs = 1, |
1979 | via the upper nibble of muxsel. here: used for | 1387 | .tuner = 0, |
1980 | xternal video-mux */ | 1388 | .svhs = 2, |
1981 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, | 1389 | .gpiomask = 0xf03f, |
1982 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | 1390 | .muxsel = { 2, 3, 1, 0 }, |
1983 | .needs_tvaudio = 1, | 1391 | .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe}, |
1984 | .pll = PLL_28, | 1392 | .pll = PLL_28, |
1985 | .tuner_type = -1, | 1393 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, |
1986 | .tuner_addr = ADDR_UNSET, | 1394 | .tuner_addr = ADDR_UNSET, |
1987 | },{ | 1395 | .radio_addr = ADDR_UNSET, |
1988 | .name = "IVC-100", | 1396 | }, |
1989 | .video_inputs = 4, | 1397 | |
1990 | .audio_inputs = 0, | 1398 | /* ---- card 0x40 ---------------------------------- */ |
1991 | .tuner = -1, | 1399 | [BTTV_BOARD_ATI_TVWONDERVE] = { |
1992 | .tuner_type = -1, | 1400 | /* Lukas Gebauer <geby@volny.cz> */ |
1993 | .tuner_addr = ADDR_UNSET, | 1401 | .name = "ATI TV-Wonder VE", |
1994 | .svhs = -1, | 1402 | .video_inputs = 2, |
1995 | .gpiomask = 0xdf, | 1403 | .audio_inputs = 1, |
1996 | .muxsel = { 2, 3, 1, 0 }, | 1404 | .tuner = 0, |
1997 | .pll = PLL_28, | 1405 | .svhs = -1, |
1998 | },{ | 1406 | .gpiomask = 1, |
1999 | /* IVC-120G - Alan Garfield <alan@fromorbit.com> */ | 1407 | .muxsel = { 2, 3, 0, 1}, |
2000 | .name = "IVC-120G", | 1408 | .audiomux = { 0, 0, 1, 0, 0}, |
2001 | .video_inputs = 16, | 1409 | .no_msp34xx = 1, |
2002 | .audio_inputs = 0, /* card has no audio */ | 1410 | .pll = PLL_28, |
2003 | .tuner = -1, /* card has no tuner */ | 1411 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, |
2004 | .tuner_type = -1, | 1412 | .tuner_addr = ADDR_UNSET, |
2005 | .tuner_addr = ADDR_UNSET, | 1413 | .radio_addr = ADDR_UNSET, |
2006 | .svhs = -1, /* card has no svhs */ | 1414 | }, |
2007 | .needs_tvaudio = 0, | 1415 | [BTTV_BOARD_FLYVIDEO2000] = { |
2008 | .no_msp34xx = 1, | 1416 | /* DeeJay <deejay@westel900.net (2000S) */ |
2009 | .no_tda9875 = 1, | 1417 | .name = "Lifeview FlyVideo 2000S LR90", |
2010 | .no_tda7432 = 1, | 1418 | .video_inputs = 3, |
2011 | .gpiomask = 0x00, | 1419 | .audio_inputs = 3, |
2012 | .muxsel = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | 1420 | .tuner = 0, |
2013 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }, | 1421 | .svhs = 2, |
2014 | .muxsel_hook = ivc120_muxsel, | 1422 | .gpiomask = 0x18e0, |
2015 | .pll = PLL_28, | 1423 | .muxsel = { 2, 3, 0, 1}, |
2016 | },{ | 1424 | /* Radio changed from 1e80 to 0x800 to make |
2017 | 1425 | FlyVideo2000S in .hu happy (gm)*/ | |
2018 | /* ---- card 0x70 ---------------------------------- */ | 1426 | /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ |
2019 | .name = "pcHDTV HD-2000 TV", | 1427 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, |
2020 | .video_inputs = 4, | 1428 | .audio_hook = fv2000s_audio, |
2021 | .audio_inputs = 1, | 1429 | .no_msp34xx = 1, |
2022 | .tuner = 0, | 1430 | .no_tda9875 = 1, |
2023 | .svhs = 2, | 1431 | .needs_tvaudio = 1, |
2024 | .muxsel = { 2, 3, 1, 0}, | 1432 | .pll = PLL_28, |
2025 | .tuner_type = TUNER_PHILIPS_ATSC, | 1433 | .tuner_type = 5, |
2026 | .tuner_addr = ADDR_UNSET, | 1434 | .tuner_addr = ADDR_UNSET, |
2027 | .has_dvb = 1, | 1435 | .radio_addr = ADDR_UNSET, |
2028 | },{ | 1436 | }, |
2029 | .name = "Twinhan DST + clones", | 1437 | [BTTV_BOARD_TERRATVALUER] = { |
2030 | .no_msp34xx = 1, | 1438 | .name = "Terratec TValueRadio", |
2031 | .no_tda9875 = 1, | 1439 | .video_inputs = 3, |
2032 | .no_tda7432 = 1, | 1440 | .audio_inputs = 1, |
2033 | .tuner_type = TUNER_ABSENT, | 1441 | .tuner = 0, |
2034 | .tuner_addr = ADDR_UNSET, | 1442 | .svhs = 2, |
2035 | .no_video = 1, | 1443 | .gpiomask = 0xffff00, |
2036 | .has_dvb = 1, | 1444 | .muxsel = { 2, 3, 1, 1}, |
2037 | },{ | 1445 | .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900}, |
2038 | .name = "Winfast VC100", | 1446 | .needs_tvaudio = 1, |
2039 | .video_inputs = 3, | 1447 | .pll = PLL_28, |
2040 | .audio_inputs = 0, | 1448 | .tuner_type = TUNER_PHILIPS_PAL, |
2041 | .svhs = 1, | 1449 | .tuner_addr = ADDR_UNSET, |
2042 | .tuner = -1, | 1450 | .radio_addr = ADDR_UNSET, |
2043 | .muxsel = { 3, 1, 1, 3}, /* Vid In, SVid In, Vid over SVid in connector */ | 1451 | .has_radio = 1, |
2044 | .no_msp34xx = 1, | 1452 | }, |
2045 | .no_tda9875 = 1, | 1453 | [BTTV_BOARD_GVBCTV4PCI] = { |
2046 | .no_tda7432 = 1, | 1454 | /* TANAKA Kei <peg00625@nifty.com> */ |
2047 | .tuner_type = TUNER_ABSENT, | 1455 | .name = "IODATA GV-BCTV4/PCI", |
2048 | .tuner_addr = ADDR_UNSET, | 1456 | .video_inputs = 3, |
2049 | .pll = PLL_28, | 1457 | .audio_inputs = 1, |
2050 | },{ | 1458 | .tuner = 0, |
2051 | .name = "Teppro TEV-560/InterVision IV-560", | 1459 | .svhs = 2, |
2052 | .video_inputs = 3, | 1460 | .gpiomask = 0x010f00, |
2053 | .audio_inputs = 1, | 1461 | .muxsel = {2, 3, 0, 0}, |
2054 | .tuner = 0, | 1462 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, |
2055 | .svhs = 2, | 1463 | .no_msp34xx = 1, |
2056 | .gpiomask = 3, | 1464 | .pll = PLL_28, |
2057 | .muxsel = { 2, 3, 1, 1}, | 1465 | .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, |
2058 | .audiomux = { 1, 1, 1, 1, 0}, | 1466 | .tuner_addr = ADDR_UNSET, |
2059 | .needs_tvaudio = 1, | 1467 | .radio_addr = ADDR_UNSET, |
2060 | .tuner_type = TUNER_PHILIPS_PAL, | 1468 | .audio_hook = gvbctv3pci_audio, |
2061 | .tuner_addr = ADDR_UNSET, | 1469 | }, |
2062 | .pll = PLL_35, | 1470 | |
2063 | },{ | 1471 | /* ---- card 0x44 ---------------------------------- */ |
2064 | 1472 | [BTTV_BOARD_VOODOOTV_FM] = { | |
2065 | /* ---- card 0x74 ---------------------------------- */ | 1473 | .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", |
2066 | .name = "SIMUS GVC1100", | 1474 | /* try "insmod msp3400 simple=0" if you have |
2067 | .video_inputs = 4, | 1475 | * sound problems with this card. */ |
2068 | .audio_inputs = 0, | 1476 | .video_inputs = 4, |
2069 | .tuner = -1, | 1477 | .audio_inputs = 1, |
2070 | .svhs = -1, | 1478 | .tuner = 0, |
2071 | .tuner_type = -1, | 1479 | .svhs = -1, |
2072 | .tuner_addr = ADDR_UNSET, | 1480 | .gpiomask = 0x4f8a00, |
2073 | .pll = PLL_28, | 1481 | /* 0x100000: 1=MSP enabled (0=disable again) |
2074 | .muxsel = { 2, 2, 2, 2}, | 1482 | * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ |
2075 | .gpiomask = 0x3F, | 1483 | .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, |
2076 | .muxsel_hook = gvc1100_muxsel, | 1484 | /* tvtuner, radio, external,internal, mute, stereo |
2077 | },{ | 1485 | * tuner, Composit, SVid, Composit-on-Svid-adapter */ |
2078 | /* Carlos Silva r3pek@r3pek.homelinux.org || card 0x75 */ | 1486 | .muxsel = { 2, 3 ,0 ,1}, |
2079 | .name = "NGS NGSTV+", | 1487 | .tuner_type = TUNER_MT2032, |
2080 | .video_inputs = 3, | 1488 | .tuner_addr = ADDR_UNSET, |
2081 | .tuner = 0, | 1489 | .radio_addr = ADDR_UNSET, |
2082 | .svhs = 2, | 1490 | .pll = PLL_28, |
2083 | .gpiomask = 0x008007, | 1491 | .has_radio = 1, |
2084 | .muxsel = {2, 3, 0, 0}, | 1492 | }, |
2085 | .audiomux = {0, 0, 0, 0, 0x000003, 0}, | 1493 | [BTTV_BOARD_AIMMS] = { |
2086 | .pll = PLL_28, | 1494 | /* Philip Blundell <pb@nexus.co.uk> */ |
2087 | .tuner_type = TUNER_PHILIPS_PAL, | 1495 | .name = "Active Imaging AIMMS", |
2088 | .tuner_addr = ADDR_UNSET, | 1496 | .video_inputs = 1, |
2089 | .has_remote = 1, | 1497 | .audio_inputs = 0, |
2090 | },{ | 1498 | .tuner = -1, |
2091 | /* http://linuxmedialabs.com */ | 1499 | .tuner_type = -1, |
2092 | .name = "LMLBT4", | 1500 | .tuner_addr = ADDR_UNSET, |
2093 | .video_inputs = 4, /* IN1,IN2,IN3,IN4 */ | 1501 | .radio_addr = ADDR_UNSET, |
2094 | .audio_inputs = 0, | 1502 | .pll = PLL_28, |
2095 | .tuner = -1, | 1503 | .muxsel = { 2 }, |
2096 | .svhs = -1, | 1504 | .gpiomask = 0 |
2097 | .muxsel = { 2, 3, 1, 0 }, | 1505 | }, |
2098 | .no_msp34xx = 1, | 1506 | [BTTV_BOARD_PV_BT878P_PLUS] = { |
2099 | .no_tda9875 = 1, | 1507 | /* Tomasz Pyra <hellfire@sedez.iq.pl> */ |
2100 | .no_tda7432 = 1, | 1508 | .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)", |
2101 | .needs_tvaudio = 0, | 1509 | .video_inputs = 3, |
2102 | .tuner_type = -1, | 1510 | .audio_inputs = 4, |
2103 | .tuner_addr = ADDR_UNSET, | 1511 | .tuner = 0, |
2104 | },{ | 1512 | .svhs = 2, |
2105 | /* Helmroos Harri <harri.helmroos@pp.inet.fi> */ | 1513 | .gpiomask = 15, |
2106 | .name = "Tekram M205 PRO", | 1514 | .muxsel = { 2, 3, 1, 1}, |
2107 | .video_inputs = 3, | 1515 | .audiomux = { 0, 0, 11, 7, 13, 0}, /* TV and Radio with same GPIO ! */ |
2108 | .audio_inputs = 1, | 1516 | .needs_tvaudio = 1, |
2109 | .tuner = 0, | 1517 | .pll = PLL_28, |
2110 | .tuner_type = TUNER_PHILIPS_PAL, | 1518 | .tuner_type = 25, |
2111 | .tuner_addr = ADDR_UNSET, | 1519 | .tuner_addr = ADDR_UNSET, |
2112 | .svhs = 2, | 1520 | .radio_addr = ADDR_UNSET, |
2113 | .needs_tvaudio = 0, | 1521 | .has_remote = 1, |
2114 | .gpiomask = 0x68, | 1522 | /* GPIO wiring: |
2115 | .muxsel = { 2, 3, 1}, | 1523 | GPIO0: U4.A0 (hef4052bt) |
2116 | .audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00 }, | 1524 | GPIO1: U4.A1 |
2117 | .pll = PLL_28, | 1525 | GPIO2: U4.A1 (second hef4052bt) |
2118 | },{ | 1526 | GPIO3: U4.nEN, U5.A0, A5.nEN |
2119 | 1527 | GPIO8-15: vrd866b ? | |
2120 | /* ---- card 0x78 ---------------------------------- */ | 1528 | */ |
2121 | /* Javier Cendan Ares <jcendan@lycos.es> */ | 1529 | }, |
2122 | /* bt878 TV + FM without subsystem ID */ | 1530 | [BTTV_BOARD_FLYVIDEO98EZ] = { |
2123 | .name = "Conceptronic CONTVFMi", | 1531 | .name = "Lifeview FlyVideo 98EZ (capture only) LR51", |
2124 | .video_inputs = 3, | 1532 | .video_inputs = 4, |
2125 | .audio_inputs = 1, | 1533 | .audio_inputs = 0, |
2126 | .tuner = 0, | 1534 | .tuner = -1, |
2127 | .svhs = 2, | 1535 | .svhs = 2, |
2128 | .gpiomask = 0x008007, | 1536 | .muxsel = { 2, 3, 1, 1}, /* AV1, AV2, SVHS, CVid adapter on SVHS */ |
2129 | .muxsel = { 2, 3, 1, 1 }, | 1537 | .pll = PLL_28, |
2130 | .audiomux = { 0, 1, 2, 2, 3 }, | 1538 | .no_msp34xx = 1, |
2131 | .needs_tvaudio = 0, | 1539 | .tuner_type = UNSET, |
2132 | .pll = PLL_28, | 1540 | .tuner_addr = ADDR_UNSET, |
2133 | .tuner_type = TUNER_PHILIPS_PAL, | 1541 | .radio_addr = ADDR_UNSET, |
2134 | .tuner_addr = ADDR_UNSET, | 1542 | }, |
2135 | .has_remote = 1, | 1543 | |
2136 | .has_radio = 1, | 1544 | /* ---- card 0x48 ---------------------------------- */ |
2137 | },{ | 1545 | [BTTV_BOARD_PV_BT878P_9B] = { |
2138 | /*Eric DEBIEF <debief@telemsa.com>*/ | 1546 | /* Dariusz Kowalewski <darekk@automex.pl> */ |
2139 | /*EURESYS Picolo Tetra : 4 Conexant Fusion 878A, no audio, video input set with analog multiplexers GPIO controled*/ | 1547 | .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", |
2140 | /* adds picolo_tetra_muxsel(), picolo_tetra_init(), the folowing declaration strucure, and #define BTTV_PICOLO_TETRA_CHIP*/ | 1548 | .video_inputs = 4, |
2141 | /*0x79 in bttv.h*/ | 1549 | .audio_inputs = 1, |
2142 | .name = "Euresys Picolo Tetra", | 1550 | .tuner = 0, |
2143 | .video_inputs = 4, | 1551 | .svhs = 2, |
2144 | .audio_inputs = 0, | 1552 | .gpiomask = 0x3f, |
2145 | .tuner = -1, | 1553 | .muxsel = { 2, 3, 1, 1 }, |
2146 | .svhs = -1, | 1554 | .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, |
2147 | .gpiomask = 0, | 1555 | .needs_tvaudio = 1, |
2148 | .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/ | 1556 | .no_msp34xx = 1, |
2149 | .no_msp34xx = 1, | 1557 | .no_tda9875 = 1, |
2150 | .no_tda9875 = 1, | 1558 | .pll = PLL_28, |
2151 | .no_tda7432 = 1, | 1559 | .tuner_type = 5, |
2152 | .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/ | 1560 | .tuner_addr = ADDR_UNSET, |
2153 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | 1561 | .radio_addr = ADDR_UNSET, |
2154 | .pll = PLL_28, | 1562 | .audio_hook = pvbt878p9b_audio, /* Note: not all cards have stereo */ |
2155 | .needs_tvaudio = 0, | 1563 | .has_radio = 1, /* Note: not all cards have radio */ |
2156 | .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ | 1564 | .has_remote = 1, |
2157 | .tuner_type = -1, | 1565 | /* GPIO wiring: |
2158 | .tuner_addr = ADDR_UNSET, | 1566 | GPIO0: A0 hef4052 |
2159 | },{ | 1567 | GPIO1: A1 hef4052 |
2160 | /* Spirit TV Tuner from http://spiritmodems.com.au */ | 1568 | GPIO3: nEN hef4052 |
2161 | /* Stafford Goodsell <surge@goliath.homeunix.org> */ | 1569 | GPIO8-15: vrd866b |
2162 | .name = "Spirit TV Tuner", | 1570 | GPIO20,22,23: R30,R29,R28 |
2163 | .video_inputs = 3, | 1571 | */ |
2164 | .audio_inputs = 1, | 1572 | }, |
2165 | .tuner = 0, | 1573 | [BTTV_BOARD_SENSORAY311] = { |
2166 | .svhs = 2, | 1574 | /* Clay Kunz <ckunz@mail.arc.nasa.gov> */ |
2167 | .gpiomask = 0x0000000f, | 1575 | /* you must jumper JP5 for the card to work */ |
2168 | .muxsel = { 2, 1, 1 }, | 1576 | .name = "Sensoray 311", |
2169 | .audiomux = { 0x02, 0x00, 0x00, 0x00, 0x00}, | 1577 | .video_inputs = 5, |
2170 | .tuner_type = TUNER_TEMIC_PAL, | 1578 | .audio_inputs = 0, |
2171 | .tuner_addr = ADDR_UNSET, | 1579 | .tuner = -1, |
2172 | .no_msp34xx = 1, | 1580 | .svhs = 4, |
2173 | .no_tda9875 = 1, | 1581 | .gpiomask = 0, |
2174 | },{ | 1582 | .muxsel = { 2, 3, 1, 0, 0}, |
2175 | /* Wolfram Joost <wojo@frokaschwei.de> */ | 1583 | .audiomux = { 0 }, |
2176 | .name = "AVerMedia AVerTV DVB-T 771", | 1584 | .needs_tvaudio = 0, |
2177 | .video_inputs = 2, | 1585 | .tuner_type = -1, |
2178 | .svhs = 1, | 1586 | .tuner_addr = ADDR_UNSET, |
2179 | .tuner = -1, | 1587 | .radio_addr = ADDR_UNSET, |
2180 | .tuner_type = TUNER_ABSENT, | 1588 | }, |
2181 | .tuner_addr = ADDR_UNSET, | 1589 | [BTTV_BOARD_RV605] = { |
2182 | .muxsel = { 3 , 3 }, | 1590 | /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ |
2183 | .no_msp34xx = 1, | 1591 | .name = "RemoteVision MX (RV605)", |
2184 | .no_tda9875 = 1, | 1592 | .video_inputs = 16, |
2185 | .no_tda7432 = 1, | 1593 | .audio_inputs = 0, |
2186 | .pll = PLL_28, | 1594 | .tuner = -1, |
2187 | .has_dvb = 1, | 1595 | .svhs = -1, |
2188 | .no_gpioirq = 1, | 1596 | .gpiomask = 0x00, |
2189 | .has_remote = 1, | 1597 | .gpiomask2 = 0x07ff, |
2190 | },{ | 1598 | .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, |
2191 | /* ---- card 0x7c ---------------------------------- */ | 1599 | 0xd3, 0xb3, 0xc3, 0x63, 0x93, 0x53, 0x83, 0xa3 }, |
2192 | /* Matt Jesson <dvb@jesson.eclipse.co.uk> */ | 1600 | .no_msp34xx = 1, |
2193 | /* Based on the Nebula card data - added remote and new card number - BTTV_AVDVBT_761, see also ir-kbd-gpio.c */ | 1601 | .no_tda9875 = 1, |
2194 | .name = "AverMedia AverTV DVB-T 761", | 1602 | .tuner_type = -1, |
2195 | .video_inputs = 2, | 1603 | .tuner_addr = ADDR_UNSET, |
2196 | .tuner = -1, | 1604 | .radio_addr = ADDR_UNSET, |
2197 | .svhs = 1, | 1605 | .muxsel_hook = rv605_muxsel, |
2198 | .muxsel = { 3, 1, 2, 0}, /* Comp0, S-Video, ?, ? */ | 1606 | }, |
2199 | .no_msp34xx = 1, | 1607 | [BTTV_BOARD_POWERCLR_MTV878] = { |
2200 | .no_tda9875 = 1, | 1608 | .name = "Powercolor MTV878/ MTV878R/ MTV878F", |
2201 | .no_tda7432 = 1, | 1609 | .video_inputs = 3, |
2202 | .pll = PLL_28, | 1610 | .audio_inputs = 2, |
2203 | .tuner_type = -1, | 1611 | .tuner = 0, |
2204 | .tuner_addr = ADDR_UNSET, | 1612 | .svhs = 2, |
2205 | .has_dvb = 1, | 1613 | .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ |
2206 | .no_gpioirq = 1, | 1614 | .muxsel = { 2, 1, 1, }, |
2207 | .has_remote = 1, | 1615 | .audiomux = { 0, 1, 2, 2, 4 }, |
2208 | },{ | 1616 | .needs_tvaudio = 0, |
2209 | /* andre.schwarz@matrix-vision.de */ | 1617 | .tuner_type = TUNER_PHILIPS_PAL, |
2210 | .name = "MATRIX Vision Sigma-SQ", | 1618 | .tuner_addr = ADDR_UNSET, |
2211 | .video_inputs = 16, | 1619 | .radio_addr = ADDR_UNSET, |
2212 | .audio_inputs = 0, | 1620 | .pll = PLL_28, |
2213 | .tuner = -1, | 1621 | .has_radio = 1, |
2214 | .svhs = -1, | 1622 | }, |
2215 | .gpiomask = 0x0, | 1623 | |
2216 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, | 1624 | /* ---- card 0x4c ---------------------------------- */ |
2217 | 3, 3, 3, 3, 3, 3, 3, 3 }, | 1625 | [BTTV_BOARD_WINDVR] = { |
2218 | .muxsel_hook = sigmaSQ_muxsel, | 1626 | /* Masaki Suzuki <masaki@btree.org> */ |
2219 | .audiomux = { 0 }, | 1627 | .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", |
2220 | .no_msp34xx = 1, | 1628 | .video_inputs = 3, |
2221 | .pll = PLL_28, | 1629 | .audio_inputs = 1, |
2222 | .tuner_type = -1, | 1630 | .tuner = 0, |
2223 | .tuner_addr = ADDR_UNSET, | 1631 | .svhs = 2, |
2224 | },{ | 1632 | .gpiomask = 0x140007, |
2225 | /* andre.schwarz@matrix-vision.de */ | 1633 | .muxsel = { 2, 3, 1, 1 }, |
2226 | .name = "MATRIX Vision Sigma-SLC", | 1634 | .audiomux = { 0, 1, 2, 3, 4, 0 }, |
2227 | .video_inputs = 4, | 1635 | .tuner_type = TUNER_PHILIPS_NTSC, |
2228 | .audio_inputs = 0, | 1636 | .tuner_addr = ADDR_UNSET, |
2229 | .tuner = -1, | 1637 | .radio_addr = ADDR_UNSET, |
2230 | .svhs = -1, | 1638 | .audio_hook = windvr_audio, |
2231 | .gpiomask = 0x0, | 1639 | }, |
2232 | .muxsel = { 2, 2, 2, 2 }, | 1640 | [BTTV_BOARD_GRANDTEC_MULTI] = { |
2233 | .muxsel_hook = sigmaSLC_muxsel, | 1641 | .name = "GrandTec Multi Capture Card (Bt878)", |
2234 | .audiomux = { 0 }, | 1642 | .video_inputs = 4, |
2235 | .no_msp34xx = 1, | 1643 | .audio_inputs = 0, |
2236 | .pll = PLL_28, | 1644 | .tuner = -1, |
2237 | .tuner_type = -1, | 1645 | .svhs = -1, |
2238 | .tuner_addr = ADDR_UNSET, | 1646 | .gpiomask = 0, |
2239 | },{ | 1647 | .muxsel = { 2, 3, 1, 0 }, |
2240 | /* BTTV_APAC_VIEWCOMP */ | 1648 | .audiomux = { 0 }, |
2241 | /* Attila Kondoros <attila.kondoros@chello.hu> */ | 1649 | .needs_tvaudio = 0, |
2242 | /* bt878 TV + FM 0x00000000 subsystem ID */ | 1650 | .no_msp34xx = 1, |
2243 | .name = "APAC Viewcomp 878(AMAX)", | 1651 | .pll = PLL_28, |
2244 | .video_inputs = 2, | 1652 | .tuner_type = -1, |
2245 | .audio_inputs = 1, | 1653 | .tuner_addr = ADDR_UNSET, |
2246 | .tuner = 0, | 1654 | .radio_addr = ADDR_UNSET, |
2247 | .svhs = -1, | 1655 | }, |
2248 | .gpiomask = 0xFF, | 1656 | [BTTV_BOARD_KWORLD] = { |
2249 | .muxsel = { 2, 3, 1, 1}, | 1657 | .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", |
2250 | .audiomux = { 2, 0, 0, 0, 10}, | 1658 | .video_inputs = 4, |
2251 | .needs_tvaudio = 0, | 1659 | .audio_inputs = 3, |
2252 | .pll = PLL_28, | 1660 | .tuner = 0, |
2253 | .tuner_type = TUNER_PHILIPS_PAL, | 1661 | .svhs = 2, |
2254 | .tuner_addr = ADDR_UNSET, | 1662 | .gpiomask = 7, |
2255 | .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */ | 1663 | .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ |
2256 | .has_radio = 1, /* not every card has radio */ | 1664 | .audiomux = { 0 ,0 ,4, 4,4,4},/* Yes, this tuner uses the same audio output for TV and FM radio! |
2257 | },{ | 1665 | * This card lacks external Audio In, so we mute it on Ext. & Int. |
2258 | 1666 | * The PCB can take a sbx1637/sbx1673, wiring unknown. | |
2259 | /* ---- card 0x80 ---------------------------------- */ | 1667 | * This card lacks PCI subsystem ID, sigh. |
2260 | /* Chris Pascoe <c.pascoe@itee.uq.edu.au> */ | 1668 | * audiomux=1: lower volume, 2+3: mute |
2261 | .name = "DViCO FusionHDTV DVB-T Lite", | 1669 | * btwincap uses 0x80000/0x80003 |
2262 | .tuner = -1, | 1670 | */ |
2263 | .no_msp34xx = 1, | 1671 | .needs_tvaudio = 0, |
2264 | .no_tda9875 = 1, | 1672 | .no_msp34xx = 1, |
2265 | .no_tda7432 = 1, | 1673 | .pll = PLL_28, |
2266 | .pll = PLL_28, | 1674 | .tuner_type = 5, |
2267 | .no_video = 1, | 1675 | .tuner_addr = ADDR_UNSET, |
2268 | .has_dvb = 1, | 1676 | .radio_addr = ADDR_UNSET, |
2269 | .tuner_type = -1, | 1677 | /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and |
2270 | .tuner_addr = ADDR_UNSET, | 1678 | radio signal strength indicators work fine. */ |
2271 | },{ | 1679 | .has_radio = 1, |
2272 | /* Steven <photon38@pchome.com.tw> */ | 1680 | /* GPIO Info: |
2273 | .name = "V-Gear MyVCD", | 1681 | GPIO0,1: HEF4052 A0,A1 |
2274 | .video_inputs = 3, | 1682 | GPIO2: HEF4052 nENABLE |
2275 | .audio_inputs = 1, | 1683 | GPIO3-7: n.c. |
2276 | .tuner = 0, | 1684 | GPIO8-13: IRDC357 data0-5 (data6 n.c. ?) [chip not present on my card] |
2277 | .svhs = 2, | 1685 | GPIO14,15: ?? |
2278 | .gpiomask = 0x3f, | 1686 | GPIO16-21: n.c. |
2279 | .muxsel = {2, 3, 1, 0}, | 1687 | GPIO22,23: ?? |
2280 | .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31}, | 1688 | ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/ |
2281 | .no_msp34xx = 1, | 1689 | }, |
2282 | .pll = PLL_28, | 1690 | [BTTV_BOARD_DSP_TCVIDEO] = { |
2283 | .tuner_type = TUNER_PHILIPS_NTSC_M, | 1691 | /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ |
2284 | .tuner_addr = ADDR_UNSET, | 1692 | .name = "DSP Design TCVIDEO", |
2285 | .has_radio = 0, | 1693 | .video_inputs = 4, |
2286 | },{ | 1694 | .svhs = -1, |
2287 | /* Rick C <cryptdragoon@gmail.com> */ | 1695 | .muxsel = { 2, 3, 1, 0}, |
2288 | .name = "Super TV Tuner", | 1696 | .pll = PLL_28, |
2289 | .video_inputs = 4, | 1697 | .tuner_type = -1, |
2290 | .audio_inputs = 1, | 1698 | .tuner_addr = ADDR_UNSET, |
2291 | .tuner = 0, | 1699 | .radio_addr = ADDR_UNSET, |
2292 | .svhs = 2, | 1700 | }, |
2293 | .muxsel = { 2, 3, 1, 0}, | 1701 | |
2294 | .tuner_type = TUNER_PHILIPS_NTSC, | 1702 | /* ---- card 0x50 ---------------------------------- */ |
2295 | .tuner_addr = ADDR_UNSET, | 1703 | [BTTV_BOARD_HAUPPAUGEPVR] = { |
2296 | .gpiomask = 0x008007, | 1704 | .name = "Hauppauge WinTV PVR", |
2297 | .audiomux = { 0, 0x000001,0,0, 0}, | 1705 | .video_inputs = 4, |
2298 | .needs_tvaudio = 1, | 1706 | .audio_inputs = 1, |
2299 | .has_radio = 1, | 1707 | .tuner = 0, |
2300 | },{ | 1708 | .svhs = 2, |
2301 | /* Chris Fanning <video4linux@haydon.net> */ | 1709 | .muxsel = { 2, 0, 1, 1}, |
2302 | .name = "Tibet Systems 'Progress DVR' CS16", | 1710 | .needs_tvaudio = 1, |
2303 | .video_inputs = 16, | 1711 | .pll = PLL_28, |
2304 | .audio_inputs = 0, | 1712 | .tuner_type = -1, |
2305 | .tuner = -1, | 1713 | .tuner_addr = ADDR_UNSET, |
2306 | .svhs = -1, | 1714 | .radio_addr = ADDR_UNSET, |
2307 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, | 1715 | |
2308 | .pll = PLL_28, | 1716 | .gpiomask = 7, |
2309 | .no_msp34xx = 1, | 1717 | .audiomux = {7}, |
2310 | .no_tda9875 = 1, | 1718 | }, |
2311 | .no_tda7432 = 1, | 1719 | [BTTV_BOARD_GVBCTV5PCI] = { |
2312 | .tuner_type = -1, | 1720 | .name = "IODATA GV-BCTV5/PCI", |
2313 | .tuner_addr = ADDR_UNSET, | 1721 | .video_inputs = 3, |
2314 | .muxsel_hook = tibetCS16_muxsel, | 1722 | .audio_inputs = 1, |
2315 | }, | 1723 | .tuner = 0, |
2316 | { | 1724 | .svhs = 2, |
2317 | /* Bill Brack <wbrack@mmm.com.hk> */ | 1725 | .gpiomask = 0x0f0f80, |
2318 | /* | 1726 | .muxsel = {2, 3, 1, 0}, |
2319 | * Note that, because of the card's wiring, the "master" | 1727 | .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0}, |
2320 | * BT878A chip (i.e. the one which controls the analog switch | 1728 | .no_msp34xx = 1, |
2321 | * and must use this card type) is the 2nd one detected. The | 1729 | .pll = PLL_28, |
2322 | * other 3 chips should use card type 0x85, whose description | 1730 | .tuner_type = TUNER_PHILIPS_NTSC_M, |
2323 | * follows this one. There is a EEPROM on the card (which is | 1731 | .tuner_addr = ADDR_UNSET, |
2324 | * connected to the I2C of one of those other chips), but is | 1732 | .radio_addr = ADDR_UNSET, |
2325 | * not currently handled. There is also a facility for a | 1733 | .audio_hook = gvbctv5pci_audio, |
2326 | * "monitor", which is also not currently implemented. | 1734 | .has_radio = 1, |
2327 | */ | 1735 | }, |
2328 | .name = "Kodicom 4400R (master)", | 1736 | [BTTV_BOARD_OSPREY1x0] = { |
2329 | .video_inputs = 16, | 1737 | .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ |
2330 | .audio_inputs = 0, | 1738 | .video_inputs = 4, /* id-inputs-clock */ |
2331 | .tuner = -1, | 1739 | .audio_inputs = 0, |
2332 | .tuner_type = -1, | 1740 | .tuner = -1, |
2333 | .tuner_addr = ADDR_UNSET, | 1741 | .svhs = 3, |
2334 | .svhs = -1, | 1742 | .muxsel = { 3, 2, 0, 1 }, |
2335 | /* GPIO bits 0-9 used for analog switch: | 1743 | .pll = PLL_28, |
2336 | * 00 - 03: camera selector | 1744 | .tuner_type = -1, |
2337 | * 04 - 06: channel (controller) selector | 1745 | .tuner_addr = ADDR_UNSET, |
2338 | * 07: data (1->on, 0->off) | 1746 | .radio_addr = ADDR_UNSET, |
2339 | * 08: strobe | 1747 | .no_msp34xx = 1, |
2340 | * 09: reset | 1748 | .no_tda9875 = 1, |
2341 | * bit 16 is input from sync separator for the channel | 1749 | .no_tda7432 = 1, |
2342 | */ | 1750 | }, |
2343 | .gpiomask = 0x0003ff, | 1751 | [BTTV_BOARD_OSPREY1x0_848] = { |
2344 | .no_gpioirq = 1, | 1752 | .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ |
2345 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | 1753 | .video_inputs = 3, |
2346 | .pll = PLL_28, | 1754 | .audio_inputs = 0, |
2347 | .no_msp34xx = 1, | 1755 | .tuner = -1, |
2348 | .no_tda7432 = 1, | 1756 | .svhs = 2, |
2349 | .no_tda9875 = 1, | 1757 | .muxsel = { 2, 3, 1 }, |
2350 | .muxsel_hook = kodicom4400r_muxsel, | 1758 | .pll = PLL_28, |
2351 | }, | 1759 | .tuner_type = -1, |
2352 | { | 1760 | .tuner_addr = ADDR_UNSET, |
2353 | /* Bill Brack <wbrack@mmm.com.hk> */ | 1761 | .radio_addr = ADDR_UNSET, |
2354 | /* Note that, for reasons unknown, the "master" BT878A chip (i.e. the | 1762 | .no_msp34xx = 1, |
2355 | * one which controls the analog switch, and must use the card type) | 1763 | .no_tda9875 = 1, |
2356 | * is the 2nd one detected. The other 3 chips should use this card | 1764 | .no_tda7432 = 1, |
2357 | * type | 1765 | }, |
1766 | |||
1767 | /* ---- card 0x54 ---------------------------------- */ | ||
1768 | [BTTV_BOARD_OSPREY101_848] = { | ||
1769 | .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ | ||
1770 | .video_inputs = 2, | ||
1771 | .audio_inputs = 0, | ||
1772 | .tuner = -1, | ||
1773 | .svhs = 1, | ||
1774 | .muxsel = { 3, 1 }, | ||
1775 | .pll = PLL_28, | ||
1776 | .tuner_type = -1, | ||
1777 | .tuner_addr = ADDR_UNSET, | ||
1778 | .radio_addr = ADDR_UNSET, | ||
1779 | .no_msp34xx = 1, | ||
1780 | .no_tda9875 = 1, | ||
1781 | .no_tda7432 = 1, | ||
1782 | }, | ||
1783 | [BTTV_BOARD_OSPREY1x1] = { | ||
1784 | .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ | ||
1785 | .video_inputs = 1, | ||
1786 | .audio_inputs = 0, | ||
1787 | .tuner = -1, | ||
1788 | .svhs = -1, | ||
1789 | .muxsel = { 0 }, | ||
1790 | .pll = PLL_28, | ||
1791 | .tuner_type = -1, | ||
1792 | .tuner_addr = ADDR_UNSET, | ||
1793 | .radio_addr = ADDR_UNSET, | ||
1794 | .no_msp34xx = 1, | ||
1795 | .no_tda9875 = 1, | ||
1796 | .no_tda7432 = 1, | ||
1797 | }, | ||
1798 | [BTTV_BOARD_OSPREY1x1_SVID] = { | ||
1799 | .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ | ||
1800 | .video_inputs = 2, | ||
1801 | .audio_inputs = 0, | ||
1802 | .tuner = -1, | ||
1803 | .svhs = 1, | ||
1804 | .muxsel = { 0, 1 }, | ||
1805 | .pll = PLL_28, | ||
1806 | .tuner_type = -1, | ||
1807 | .tuner_addr = ADDR_UNSET, | ||
1808 | .radio_addr = ADDR_UNSET, | ||
1809 | .no_msp34xx = 1, | ||
1810 | .no_tda9875 = 1, | ||
1811 | .no_tda7432 = 1, | ||
1812 | }, | ||
1813 | [BTTV_BOARD_OSPREY2xx] = { | ||
1814 | .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ | ||
1815 | .video_inputs = 1, | ||
1816 | .audio_inputs = 1, | ||
1817 | .tuner = -1, | ||
1818 | .svhs = -1, | ||
1819 | .muxsel = { 0 }, | ||
1820 | .pll = PLL_28, | ||
1821 | .tuner_type = UNSET, | ||
1822 | .tuner_addr = ADDR_UNSET, | ||
1823 | .radio_addr = ADDR_UNSET, | ||
1824 | .no_msp34xx = 1, | ||
1825 | .no_tda9875 = 1, | ||
1826 | .no_tda7432 = 1, | ||
1827 | }, | ||
1828 | |||
1829 | /* ---- card 0x58 ---------------------------------- */ | ||
1830 | [BTTV_BOARD_OSPREY2x0_SVID] = { | ||
1831 | .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ | ||
1832 | .video_inputs = 2, | ||
1833 | .audio_inputs = 1, | ||
1834 | .tuner = -1, | ||
1835 | .svhs = 1, | ||
1836 | .muxsel = { 0, 1 }, | ||
1837 | .pll = PLL_28, | ||
1838 | .tuner_type = UNSET, | ||
1839 | .tuner_addr = ADDR_UNSET, | ||
1840 | .radio_addr = ADDR_UNSET, | ||
1841 | .no_msp34xx = 1, | ||
1842 | .no_tda9875 = 1, | ||
1843 | .no_tda7432 = 1, | ||
1844 | }, | ||
1845 | [BTTV_BOARD_OSPREY2x0] = { | ||
1846 | .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ | ||
1847 | .video_inputs = 2, | ||
1848 | .audio_inputs = 1, | ||
1849 | .tuner = -1, | ||
1850 | .svhs = 1, | ||
1851 | .muxsel = { 2, 3 }, | ||
1852 | .pll = PLL_28, | ||
1853 | .tuner_type = UNSET, | ||
1854 | .tuner_addr = ADDR_UNSET, | ||
1855 | .radio_addr = ADDR_UNSET, | ||
1856 | .no_msp34xx = 1, | ||
1857 | .no_tda9875 = 1, | ||
1858 | .no_tda7432 = 1, | ||
1859 | }, | ||
1860 | [BTTV_BOARD_OSPREY500] = { | ||
1861 | .name = "Osprey 500", /* 500 */ | ||
1862 | .video_inputs = 2, | ||
1863 | .audio_inputs = 1, | ||
1864 | .tuner = -1, | ||
1865 | .svhs = 1, | ||
1866 | .muxsel = { 2, 3 }, | ||
1867 | .pll = PLL_28, | ||
1868 | .tuner_type = -1, | ||
1869 | .tuner_addr = ADDR_UNSET, | ||
1870 | .radio_addr = ADDR_UNSET, | ||
1871 | .no_msp34xx = 1, | ||
1872 | .no_tda9875 = 1, | ||
1873 | .no_tda7432 = 1, | ||
1874 | }, | ||
1875 | [BTTV_BOARD_OSPREY540] = { | ||
1876 | .name = "Osprey 540", /* 540 */ | ||
1877 | .video_inputs = 4, | ||
1878 | .audio_inputs = 1, | ||
1879 | .tuner = -1, | ||
1880 | #if 0 /* TODO ... */ | ||
1881 | .svhs = OSPREY540_SVID_ANALOG, | ||
1882 | .muxsel = { [OSPREY540_COMP_ANALOG] = 2, | ||
1883 | [OSPREY540_SVID_ANALOG] = 3, }, | ||
1884 | #endif | ||
1885 | .pll = PLL_28, | ||
1886 | .tuner_type = -1, | ||
1887 | .tuner_addr = ADDR_UNSET, | ||
1888 | .radio_addr = ADDR_UNSET, | ||
1889 | .no_msp34xx = 1, | ||
1890 | .no_tda9875 = 1, | ||
1891 | .no_tda7432 = 1, | ||
1892 | #if 0 /* TODO ... */ | ||
1893 | .muxsel_hook = osprey_540_muxsel, | ||
1894 | .picture_hook = osprey_540_set_picture, | ||
1895 | #endif | ||
1896 | }, | ||
1897 | |||
1898 | /* ---- card 0x5C ---------------------------------- */ | ||
1899 | [BTTV_BOARD_OSPREY2000] = { | ||
1900 | .name = "Osprey 2000", /* 2000 */ | ||
1901 | .video_inputs = 2, | ||
1902 | .audio_inputs = 1, | ||
1903 | .tuner = -1, | ||
1904 | .svhs = 1, | ||
1905 | .muxsel = { 2, 3 }, | ||
1906 | .pll = PLL_28, | ||
1907 | .tuner_type = UNSET, | ||
1908 | .tuner_addr = ADDR_UNSET, | ||
1909 | .radio_addr = ADDR_UNSET, | ||
1910 | .no_msp34xx = 1, | ||
1911 | .no_tda9875 = 1, | ||
1912 | .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ | ||
1913 | }, | ||
1914 | [BTTV_BOARD_IDS_EAGLE] = { | ||
1915 | /* M G Berberich <berberic@forwiss.uni-passau.de> */ | ||
1916 | .name = "IDS Eagle", | ||
1917 | .video_inputs = 4, | ||
1918 | .audio_inputs = 0, | ||
1919 | .tuner = -1, | ||
1920 | .tuner_type = -1, | ||
1921 | .tuner_addr = ADDR_UNSET, | ||
1922 | .radio_addr = ADDR_UNSET, | ||
1923 | .svhs = -1, | ||
1924 | .gpiomask = 0, | ||
1925 | .muxsel = { 0, 1, 2, 3 }, | ||
1926 | .muxsel_hook = eagle_muxsel, | ||
1927 | .no_msp34xx = 1, | ||
1928 | .no_tda9875 = 1, | ||
1929 | .pll = PLL_28, | ||
1930 | }, | ||
1931 | [BTTV_BOARD_PINNACLESAT] = { | ||
1932 | .name = "Pinnacle PCTV Sat", | ||
1933 | .video_inputs = 2, | ||
1934 | .audio_inputs = 0, | ||
1935 | .svhs = 1, | ||
1936 | .tuner = -1, | ||
1937 | .tuner_type = -1, | ||
1938 | .tuner_addr = ADDR_UNSET, | ||
1939 | .radio_addr = ADDR_UNSET, | ||
1940 | .no_msp34xx = 1, | ||
1941 | .no_tda9875 = 1, | ||
1942 | .no_tda7432 = 1, | ||
1943 | .muxsel = { 3, 0, 1, 2}, | ||
1944 | .pll = PLL_28, | ||
1945 | .no_gpioirq = 1, | ||
1946 | .has_dvb = 1, | ||
1947 | }, | ||
1948 | [BTTV_BOARD_FORMAC_PROTV] = { | ||
1949 | .name = "Formac ProTV II (bt878)", | ||
1950 | .video_inputs = 4, | ||
1951 | .audio_inputs = 1, | ||
1952 | .tuner = 0, | ||
1953 | .svhs = 3, | ||
1954 | .gpiomask = 2, | ||
1955 | /* TV, Comp1, Composite over SVID con, SVID */ | ||
1956 | .muxsel = { 2, 3, 1, 1}, | ||
1957 | .audiomux = { 2, 2, 0, 0, 0 }, | ||
1958 | .pll = PLL_28, | ||
1959 | .has_radio = 1, | ||
1960 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1961 | .tuner_addr = ADDR_UNSET, | ||
1962 | .radio_addr = ADDR_UNSET, | ||
1963 | /* sound routing: | ||
1964 | GPIO=0x00,0x01,0x03: mute (?) | ||
1965 | 0x02: both TV and radio (tuner: FM1216/I) | ||
1966 | The card has onboard audio connectors labeled "cdrom" and "board", | ||
1967 | not soldered here, though unknown wiring. | ||
1968 | Card lacks: external audio in, pci subsystem id. | ||
2358 | */ | 1969 | */ |
2359 | .name = "Kodicom 4400R (slave)", | 1970 | }, |
2360 | .video_inputs = 16, | 1971 | |
2361 | .audio_inputs = 0, | 1972 | /* ---- card 0x60 ---------------------------------- */ |
2362 | .tuner = -1, | 1973 | [BTTV_BOARD_MACHTV] = { |
2363 | .tuner_type = -1, | 1974 | .name = "MachTV", |
2364 | .tuner_addr = ADDR_UNSET, | 1975 | .video_inputs = 3, |
2365 | .svhs = -1, | 1976 | .audio_inputs = 1, |
2366 | .gpiomask = 0x010000, | 1977 | .tuner = 0, |
2367 | .no_gpioirq = 1, | 1978 | .svhs = -1, |
2368 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | 1979 | .gpiomask = 7, |
2369 | .pll = PLL_28, | 1980 | .muxsel = { 2, 3, 1, 1}, |
2370 | .no_msp34xx = 1, | 1981 | .audiomux = { 0, 1, 2, 3, 4}, |
2371 | .no_tda7432 = 1, | 1982 | .needs_tvaudio = 1, |
2372 | .no_tda9875 = 1, | 1983 | .tuner_type = 5, |
2373 | .muxsel_hook = kodicom4400r_muxsel, | 1984 | .tuner_addr = ADDR_UNSET, |
2374 | }, | 1985 | .radio_addr = ADDR_UNSET, |
2375 | { | 1986 | .pll = PLL_28, |
2376 | /* ---- card 0x86---------------------------------- */ | 1987 | }, |
2377 | /* Michael Henson <mhenson@clarityvi.com> */ | 1988 | [BTTV_BOARD_EURESYS_PICOLO] = { |
2378 | /* Adlink RTV24 with special unlock codes */ | 1989 | .name = "Euresys Picolo", |
2379 | .name = "Adlink RTV24", | 1990 | .video_inputs = 3, |
2380 | .video_inputs = 4, | 1991 | .audio_inputs = 0, |
2381 | .audio_inputs = 1, | 1992 | .tuner = -1, |
2382 | .tuner = 0, | 1993 | .svhs = 2, |
2383 | .svhs = 2, | 1994 | .gpiomask = 0, |
2384 | .muxsel = { 2, 3, 1, 0}, | 1995 | .no_msp34xx = 1, |
2385 | .tuner_type = -1, | 1996 | .no_tda9875 = 1, |
2386 | .tuner_addr = ADDR_UNSET, | 1997 | .no_tda7432 = 1, |
2387 | .pll = PLL_28, | 1998 | .muxsel = { 2, 0, 1}, |
2388 | }, | 1999 | .pll = PLL_28, |
2389 | { | 2000 | .tuner_type = UNSET, |
2390 | /* ---- card 0x87---------------------------------- */ | 2001 | .tuner_addr = ADDR_UNSET, |
2391 | /* Michael Krufky <mkrufky@m1k.net> */ | 2002 | .radio_addr = ADDR_UNSET, |
2392 | .name = "DViCO FusionHDTV 5 Lite", | 2003 | }, |
2393 | .tuner = 0, | 2004 | [BTTV_BOARD_PV150] = { |
2394 | .tuner_type = TUNER_LG_TDVS_H062F, | 2005 | /* Luc Van Hoeylandt <luc@e-magic.be> */ |
2395 | .tuner_addr = ADDR_UNSET, | 2006 | .name = "ProVideo PV150", /* 0x4f */ |
2396 | .video_inputs = 3, | 2007 | .video_inputs = 2, |
2397 | .audio_inputs = 1, | 2008 | .audio_inputs = 0, |
2398 | .svhs = 2, | 2009 | .tuner = -1, |
2399 | .muxsel = { 2, 3, 1 }, | 2010 | .svhs = -1, |
2400 | .gpiomask = 0x00e00007, | 2011 | .gpiomask = 0, |
2401 | .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 }, | 2012 | .muxsel = { 2, 3 }, |
2402 | .no_msp34xx = 1, | 2013 | .audiomux = { 0 }, |
2403 | .no_tda9875 = 1, | 2014 | .needs_tvaudio = 0, |
2404 | .no_tda7432 = 1, | 2015 | .no_msp34xx = 1, |
2405 | },{ | 2016 | .pll = PLL_28, |
2406 | /* ---- card 0x88---------------------------------- */ | 2017 | .tuner_type = UNSET, |
2407 | /* Mauro Carvalho Chehab <mchehab@brturbo.com.br> */ | 2018 | .tuner_addr = ADDR_UNSET, |
2408 | .name = "Acorp Y878F", | 2019 | .radio_addr = ADDR_UNSET, |
2409 | .video_inputs = 3, | 2020 | }, |
2410 | .audio_inputs = 1, | 2021 | [BTTV_BOARD_AD_TVK503] = { |
2411 | .tuner = 0, | 2022 | /* Hiroshi Takekawa <sian@big.or.jp> */ |
2412 | .svhs = 2, | 2023 | /* This card lacks subsystem ID */ |
2413 | .gpiomask = 0x01fe00, | 2024 | .name = "AD-TVK503", /* 0x63 */ |
2414 | .muxsel = { 2, 3, 1, 1}, | 2025 | .video_inputs = 4, |
2415 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | 2026 | .audio_inputs = 1, |
2416 | .needs_tvaudio = 1, | 2027 | .tuner = 0, |
2417 | .pll = PLL_28, | 2028 | .svhs = 2, |
2418 | .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, | 2029 | .gpiomask = 0x001e8007, |
2419 | .tuner_addr = 0xc1 >>1, | 2030 | .muxsel = { 2, 3, 1, 0 }, |
2420 | .has_radio = 1, | 2031 | /* Tuner, Radio, external, internal, off, on */ |
2421 | }}; | 2032 | .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, |
2033 | .needs_tvaudio = 0, | ||
2034 | .no_msp34xx = 1, | ||
2035 | .pll = PLL_28, | ||
2036 | .tuner_type = 2, | ||
2037 | .tuner_addr = ADDR_UNSET, | ||
2038 | .radio_addr = ADDR_UNSET, | ||
2039 | .audio_hook = adtvk503_audio, | ||
2040 | }, | ||
2041 | |||
2042 | /* ---- card 0x64 ---------------------------------- */ | ||
2043 | [BTTV_BOARD_HERCULES_SM_TV] = { | ||
2044 | .name = "Hercules Smart TV Stereo", | ||
2045 | .video_inputs = 4, | ||
2046 | .audio_inputs = 1, | ||
2047 | .tuner = 0, | ||
2048 | .svhs = 2, | ||
2049 | .gpiomask = 0x00, | ||
2050 | .muxsel = { 2, 3, 1, 1 }, | ||
2051 | .needs_tvaudio = 1, | ||
2052 | .no_msp34xx = 1, | ||
2053 | .pll = PLL_28, | ||
2054 | .tuner_type = 5, | ||
2055 | .tuner_addr = ADDR_UNSET, | ||
2056 | .radio_addr = ADDR_UNSET, | ||
2057 | /* Notes: | ||
2058 | - card lacks subsystem ID | ||
2059 | - stereo variant w/ daughter board with tda9874a @0xb0 | ||
2060 | - Audio Routing: | ||
2061 | always from tda9874 independent of GPIO (?) | ||
2062 | external line in: unknown | ||
2063 | - Other chips: em78p156elp @ 0x96 (probably IR remote control) | ||
2064 | hef4053 (instead 4052) for unknown function | ||
2065 | */ | ||
2066 | }, | ||
2067 | [BTTV_BOARD_PACETV] = { | ||
2068 | .name = "Pace TV & Radio Card", | ||
2069 | .video_inputs = 4, | ||
2070 | .audio_inputs = 1, | ||
2071 | .tuner = 0, | ||
2072 | .svhs = 2, | ||
2073 | .muxsel = { 2, 3, 1, 1}, /* Tuner, CVid, SVid, CVid over SVid connector */ | ||
2074 | .gpiomask = 0, | ||
2075 | .no_tda9875 = 1, | ||
2076 | .no_tda7432 = 1, | ||
2077 | .tuner_type = 1, | ||
2078 | .tuner_addr = ADDR_UNSET, | ||
2079 | .radio_addr = ADDR_UNSET, | ||
2080 | .has_radio = 1, | ||
2081 | .pll = PLL_28, | ||
2082 | /* Bt878, Bt832, FI1246 tuner; no pci subsystem id | ||
2083 | only internal line out: (4pin header) RGGL | ||
2084 | Radio must be decoded by msp3410d (not routed through)*/ | ||
2085 | /* | ||
2086 | .digital_mode = DIGITAL_MODE_CAMERA, todo! | ||
2087 | */ | ||
2088 | }, | ||
2089 | [BTTV_BOARD_IVC200] = { | ||
2090 | /* Chris Willing <chris@vislab.usyd.edu.au> */ | ||
2091 | .name = "IVC-200", | ||
2092 | .video_inputs = 1, | ||
2093 | .audio_inputs = 0, | ||
2094 | .tuner = -1, | ||
2095 | .tuner_type = -1, | ||
2096 | .tuner_addr = ADDR_UNSET, | ||
2097 | .radio_addr = ADDR_UNSET, | ||
2098 | .svhs = -1, | ||
2099 | .gpiomask = 0xdf, | ||
2100 | .muxsel = { 2 }, | ||
2101 | .pll = PLL_28, | ||
2102 | }, | ||
2103 | [BTTV_BOARD_XGUARD] = { | ||
2104 | .name = "Grand X-Guard / Trust 814PCI", | ||
2105 | .video_inputs = 16, | ||
2106 | .audio_inputs = 0, | ||
2107 | .tuner = -1, | ||
2108 | .svhs = -1, | ||
2109 | .tuner_type = 4, | ||
2110 | .tuner_addr = ADDR_UNSET, | ||
2111 | .radio_addr = ADDR_UNSET, | ||
2112 | .gpiomask2 = 0xff, | ||
2113 | .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, | ||
2114 | .muxsel_hook = xguard_muxsel, | ||
2115 | .no_msp34xx = 1, | ||
2116 | .no_tda9875 = 1, | ||
2117 | .no_tda7432 = 1, | ||
2118 | .pll = PLL_28, | ||
2119 | }, | ||
2120 | |||
2121 | /* ---- card 0x68 ---------------------------------- */ | ||
2122 | [BTTV_BOARD_NEBULA_DIGITV] = { | ||
2123 | .name = "Nebula Electronics DigiTV", | ||
2124 | .video_inputs = 1, | ||
2125 | .tuner = -1, | ||
2126 | .svhs = -1, | ||
2127 | .muxsel = { 2, 3, 1, 0}, | ||
2128 | .no_msp34xx = 1, | ||
2129 | .no_tda9875 = 1, | ||
2130 | .no_tda7432 = 1, | ||
2131 | .pll = PLL_28, | ||
2132 | .tuner_type = -1, | ||
2133 | .tuner_addr = ADDR_UNSET, | ||
2134 | .radio_addr = ADDR_UNSET, | ||
2135 | .has_dvb = 1, | ||
2136 | .no_gpioirq = 1, | ||
2137 | }, | ||
2138 | [BTTV_BOARD_PV143] = { | ||
2139 | /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ | ||
2140 | .name = "ProVideo PV143", | ||
2141 | .video_inputs = 4, | ||
2142 | .audio_inputs = 0, | ||
2143 | .tuner = -1, | ||
2144 | .svhs = -1, | ||
2145 | .gpiomask = 0, | ||
2146 | .muxsel = { 2, 3, 1, 0 }, | ||
2147 | .audiomux = { 0 }, | ||
2148 | .needs_tvaudio = 0, | ||
2149 | .no_msp34xx = 1, | ||
2150 | .pll = PLL_28, | ||
2151 | .tuner_type = -1, | ||
2152 | .tuner_addr = ADDR_UNSET, | ||
2153 | .radio_addr = ADDR_UNSET, | ||
2154 | }, | ||
2155 | [BTTV_BOARD_VD009X1_MINIDIN] = { | ||
2156 | /* M.Klahr@phytec.de */ | ||
2157 | .name = "PHYTEC VD-009-X1 MiniDIN (bt878)", | ||
2158 | .video_inputs = 4, | ||
2159 | .audio_inputs = 0, | ||
2160 | .tuner = -1, /* card has no tuner */ | ||
2161 | .svhs = 3, | ||
2162 | .gpiomask = 0x00, | ||
2163 | .muxsel = { 2, 3, 1, 0}, | ||
2164 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2165 | .needs_tvaudio = 1, | ||
2166 | .pll = PLL_28, | ||
2167 | .tuner_type = -1, | ||
2168 | .tuner_addr = ADDR_UNSET, | ||
2169 | .radio_addr = ADDR_UNSET, | ||
2170 | }, | ||
2171 | [BTTV_BOARD_VD009X1_COMBI] = { | ||
2172 | .name = "PHYTEC VD-009-X1 Combi (bt878)", | ||
2173 | .video_inputs = 4, | ||
2174 | .audio_inputs = 0, | ||
2175 | .tuner = -1, /* card has no tuner */ | ||
2176 | .svhs = 3, | ||
2177 | .gpiomask = 0x00, | ||
2178 | .muxsel = { 2, 3, 1, 1}, | ||
2179 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2180 | .needs_tvaudio = 1, | ||
2181 | .pll = PLL_28, | ||
2182 | .tuner_type = -1, | ||
2183 | .tuner_addr = ADDR_UNSET, | ||
2184 | .radio_addr = ADDR_UNSET, | ||
2185 | }, | ||
2186 | |||
2187 | /* ---- card 0x6c ---------------------------------- */ | ||
2188 | [BTTV_BOARD_VD009_MINIDIN] = { | ||
2189 | .name = "PHYTEC VD-009 MiniDIN (bt878)", | ||
2190 | .video_inputs = 10, | ||
2191 | .audio_inputs = 0, | ||
2192 | .tuner = -1, /* card has no tuner */ | ||
2193 | .svhs = 9, | ||
2194 | .gpiomask = 0x00, | ||
2195 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
2196 | via the upper nibble of muxsel. here: used for | ||
2197 | xternal video-mux */ | ||
2198 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, | ||
2199 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2200 | .needs_tvaudio = 1, | ||
2201 | .pll = PLL_28, | ||
2202 | .tuner_type = -1, | ||
2203 | .tuner_addr = ADDR_UNSET, | ||
2204 | .radio_addr = ADDR_UNSET, | ||
2205 | }, | ||
2206 | [BTTV_BOARD_VD009_COMBI] = { | ||
2207 | .name = "PHYTEC VD-009 Combi (bt878)", | ||
2208 | .video_inputs = 10, | ||
2209 | .audio_inputs = 0, | ||
2210 | .tuner = -1, /* card has no tuner */ | ||
2211 | .svhs = 9, | ||
2212 | .gpiomask = 0x00, | ||
2213 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
2214 | via the upper nibble of muxsel. here: used for | ||
2215 | xternal video-mux */ | ||
2216 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, | ||
2217 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2218 | .needs_tvaudio = 1, | ||
2219 | .pll = PLL_28, | ||
2220 | .tuner_type = -1, | ||
2221 | .tuner_addr = ADDR_UNSET, | ||
2222 | .radio_addr = ADDR_UNSET, | ||
2223 | }, | ||
2224 | [BTTV_BOARD_IVC100] = { | ||
2225 | .name = "IVC-100", | ||
2226 | .video_inputs = 4, | ||
2227 | .audio_inputs = 0, | ||
2228 | .tuner = -1, | ||
2229 | .tuner_type = -1, | ||
2230 | .tuner_addr = ADDR_UNSET, | ||
2231 | .radio_addr = ADDR_UNSET, | ||
2232 | .svhs = -1, | ||
2233 | .gpiomask = 0xdf, | ||
2234 | .muxsel = { 2, 3, 1, 0 }, | ||
2235 | .pll = PLL_28, | ||
2236 | }, | ||
2237 | [BTTV_BOARD_IVC120] = { | ||
2238 | /* IVC-120G - Alan Garfield <alan@fromorbit.com> */ | ||
2239 | .name = "IVC-120G", | ||
2240 | .video_inputs = 16, | ||
2241 | .audio_inputs = 0, /* card has no audio */ | ||
2242 | .tuner = -1, /* card has no tuner */ | ||
2243 | .tuner_type = -1, | ||
2244 | .tuner_addr = ADDR_UNSET, | ||
2245 | .radio_addr = ADDR_UNSET, | ||
2246 | .svhs = -1, /* card has no svhs */ | ||
2247 | .needs_tvaudio = 0, | ||
2248 | .no_msp34xx = 1, | ||
2249 | .no_tda9875 = 1, | ||
2250 | .no_tda7432 = 1, | ||
2251 | .gpiomask = 0x00, | ||
2252 | .muxsel = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
2253 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }, | ||
2254 | .muxsel_hook = ivc120_muxsel, | ||
2255 | .pll = PLL_28, | ||
2256 | }, | ||
2257 | |||
2258 | /* ---- card 0x70 ---------------------------------- */ | ||
2259 | [BTTV_BOARD_PC_HDTV] = { | ||
2260 | .name = "pcHDTV HD-2000 TV", | ||
2261 | .video_inputs = 4, | ||
2262 | .audio_inputs = 1, | ||
2263 | .tuner = 0, | ||
2264 | .svhs = 2, | ||
2265 | .muxsel = { 2, 3, 1, 0}, | ||
2266 | .tuner_type = TUNER_PHILIPS_ATSC, | ||
2267 | .tuner_addr = ADDR_UNSET, | ||
2268 | .radio_addr = ADDR_UNSET, | ||
2269 | .has_dvb = 1, | ||
2270 | }, | ||
2271 | [BTTV_BOARD_TWINHAN_DST] = { | ||
2272 | .name = "Twinhan DST + clones", | ||
2273 | .no_msp34xx = 1, | ||
2274 | .no_tda9875 = 1, | ||
2275 | .no_tda7432 = 1, | ||
2276 | .tuner_type = TUNER_ABSENT, | ||
2277 | .tuner_addr = ADDR_UNSET, | ||
2278 | .radio_addr = ADDR_UNSET, | ||
2279 | .no_video = 1, | ||
2280 | .has_dvb = 1, | ||
2281 | }, | ||
2282 | [BTTV_BOARD_WINFASTVC100] = { | ||
2283 | .name = "Winfast VC100", | ||
2284 | .video_inputs = 3, | ||
2285 | .audio_inputs = 0, | ||
2286 | .svhs = 1, | ||
2287 | .tuner = -1, | ||
2288 | .muxsel = { 3, 1, 1, 3}, /* Vid In, SVid In, Vid over SVid in connector */ | ||
2289 | .no_msp34xx = 1, | ||
2290 | .no_tda9875 = 1, | ||
2291 | .no_tda7432 = 1, | ||
2292 | .tuner_type = TUNER_ABSENT, | ||
2293 | .tuner_addr = ADDR_UNSET, | ||
2294 | .radio_addr = ADDR_UNSET, | ||
2295 | .pll = PLL_28, | ||
2296 | }, | ||
2297 | [BTTV_BOARD_TEV560] = { | ||
2298 | .name = "Teppro TEV-560/InterVision IV-560", | ||
2299 | .video_inputs = 3, | ||
2300 | .audio_inputs = 1, | ||
2301 | .tuner = 0, | ||
2302 | .svhs = 2, | ||
2303 | .gpiomask = 3, | ||
2304 | .muxsel = { 2, 3, 1, 1}, | ||
2305 | .audiomux = { 1, 1, 1, 1, 0}, | ||
2306 | .needs_tvaudio = 1, | ||
2307 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2308 | .tuner_addr = ADDR_UNSET, | ||
2309 | .radio_addr = ADDR_UNSET, | ||
2310 | .pll = PLL_35, | ||
2311 | }, | ||
2312 | |||
2313 | /* ---- card 0x74 ---------------------------------- */ | ||
2314 | [BTTV_BOARD_SIMUS_GVC1100] = { | ||
2315 | .name = "SIMUS GVC1100", | ||
2316 | .video_inputs = 4, | ||
2317 | .audio_inputs = 0, | ||
2318 | .tuner = -1, | ||
2319 | .svhs = -1, | ||
2320 | .tuner_type = -1, | ||
2321 | .tuner_addr = ADDR_UNSET, | ||
2322 | .radio_addr = ADDR_UNSET, | ||
2323 | .pll = PLL_28, | ||
2324 | .muxsel = { 2, 2, 2, 2}, | ||
2325 | .gpiomask = 0x3F, | ||
2326 | .muxsel_hook = gvc1100_muxsel, | ||
2327 | }, | ||
2328 | [BTTV_BOARD_NGSTV_PLUS] = { | ||
2329 | /* Carlos Silva r3pek@r3pek.homelinux.org || card 0x75 */ | ||
2330 | .name = "NGS NGSTV+", | ||
2331 | .video_inputs = 3, | ||
2332 | .tuner = 0, | ||
2333 | .svhs = 2, | ||
2334 | .gpiomask = 0x008007, | ||
2335 | .muxsel = {2, 3, 0, 0}, | ||
2336 | .audiomux = {0, 0, 0, 0, 0x000003, 0}, | ||
2337 | .pll = PLL_28, | ||
2338 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2339 | .tuner_addr = ADDR_UNSET, | ||
2340 | .radio_addr = ADDR_UNSET, | ||
2341 | .has_remote = 1, | ||
2342 | }, | ||
2343 | [BTTV_BOARD_LMLBT4] = { | ||
2344 | /* http://linuxmedialabs.com */ | ||
2345 | .name = "LMLBT4", | ||
2346 | .video_inputs = 4, /* IN1,IN2,IN3,IN4 */ | ||
2347 | .audio_inputs = 0, | ||
2348 | .tuner = -1, | ||
2349 | .svhs = -1, | ||
2350 | .muxsel = { 2, 3, 1, 0 }, | ||
2351 | .no_msp34xx = 1, | ||
2352 | .no_tda9875 = 1, | ||
2353 | .no_tda7432 = 1, | ||
2354 | .needs_tvaudio = 0, | ||
2355 | .tuner_type = -1, | ||
2356 | .tuner_addr = ADDR_UNSET, | ||
2357 | .radio_addr = ADDR_UNSET, | ||
2358 | }, | ||
2359 | [BTTV_BOARD_TEKRAM_M205] = { | ||
2360 | /* Helmroos Harri <harri.helmroos@pp.inet.fi> */ | ||
2361 | .name = "Tekram M205 PRO", | ||
2362 | .video_inputs = 3, | ||
2363 | .audio_inputs = 1, | ||
2364 | .tuner = 0, | ||
2365 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2366 | .tuner_addr = ADDR_UNSET, | ||
2367 | .radio_addr = ADDR_UNSET, | ||
2368 | .svhs = 2, | ||
2369 | .needs_tvaudio = 0, | ||
2370 | .gpiomask = 0x68, | ||
2371 | .muxsel = { 2, 3, 1}, | ||
2372 | .audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00 }, | ||
2373 | .pll = PLL_28, | ||
2374 | }, | ||
2375 | |||
2376 | /* ---- card 0x78 ---------------------------------- */ | ||
2377 | [BTTV_BOARD_CONTVFMI] = { | ||
2378 | /* Javier Cendan Ares <jcendan@lycos.es> */ | ||
2379 | /* bt878 TV + FM without subsystem ID */ | ||
2380 | .name = "Conceptronic CONTVFMi", | ||
2381 | .video_inputs = 3, | ||
2382 | .audio_inputs = 1, | ||
2383 | .tuner = 0, | ||
2384 | .svhs = 2, | ||
2385 | .gpiomask = 0x008007, | ||
2386 | .muxsel = { 2, 3, 1, 1 }, | ||
2387 | .audiomux = { 0, 1, 2, 2, 3 }, | ||
2388 | .needs_tvaudio = 0, | ||
2389 | .pll = PLL_28, | ||
2390 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2391 | .tuner_addr = ADDR_UNSET, | ||
2392 | .radio_addr = ADDR_UNSET, | ||
2393 | .has_remote = 1, | ||
2394 | .has_radio = 1, | ||
2395 | }, | ||
2396 | [BTTV_BOARD_PICOLO_TETRA_CHIP] = { | ||
2397 | /*Eric DEBIEF <debief@telemsa.com>*/ | ||
2398 | /*EURESYS Picolo Tetra : 4 Conexant Fusion 878A, no audio, video input set with analog multiplexers GPIO controled*/ | ||
2399 | /* adds picolo_tetra_muxsel(), picolo_tetra_init(), the folowing declaration strucure, and #define BTTV_BOARD_PICOLO_TETRA_CHIP*/ | ||
2400 | /*0x79 in bttv.h*/ | ||
2401 | .name = "Euresys Picolo Tetra", | ||
2402 | .video_inputs = 4, | ||
2403 | .audio_inputs = 0, | ||
2404 | .tuner = -1, | ||
2405 | .svhs = -1, | ||
2406 | .gpiomask = 0, | ||
2407 | .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/ | ||
2408 | .no_msp34xx = 1, | ||
2409 | .no_tda9875 = 1, | ||
2410 | .no_tda7432 = 1, | ||
2411 | .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/ | ||
2412 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2413 | .pll = PLL_28, | ||
2414 | .needs_tvaudio = 0, | ||
2415 | .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ | ||
2416 | .tuner_type = -1, | ||
2417 | .tuner_addr = ADDR_UNSET, | ||
2418 | .radio_addr = ADDR_UNSET, | ||
2419 | }, | ||
2420 | [BTTV_BOARD_SPIRIT_TV] = { | ||
2421 | /* Spirit TV Tuner from http://spiritmodems.com.au */ | ||
2422 | /* Stafford Goodsell <surge@goliath.homeunix.org> */ | ||
2423 | .name = "Spirit TV Tuner", | ||
2424 | .video_inputs = 3, | ||
2425 | .audio_inputs = 1, | ||
2426 | .tuner = 0, | ||
2427 | .svhs = 2, | ||
2428 | .gpiomask = 0x0000000f, | ||
2429 | .muxsel = { 2, 1, 1 }, | ||
2430 | .audiomux = { 0x02, 0x00, 0x00, 0x00, 0x00}, | ||
2431 | .tuner_type = TUNER_TEMIC_PAL, | ||
2432 | .tuner_addr = ADDR_UNSET, | ||
2433 | .radio_addr = ADDR_UNSET, | ||
2434 | .no_msp34xx = 1, | ||
2435 | .no_tda9875 = 1, | ||
2436 | }, | ||
2437 | [BTTV_BOARD_AVDVBT_771] = { | ||
2438 | /* Wolfram Joost <wojo@frokaschwei.de> */ | ||
2439 | .name = "AVerMedia AVerTV DVB-T 771", | ||
2440 | .video_inputs = 2, | ||
2441 | .svhs = 1, | ||
2442 | .tuner = -1, | ||
2443 | .tuner_type = TUNER_ABSENT, | ||
2444 | .tuner_addr = ADDR_UNSET, | ||
2445 | .radio_addr = ADDR_UNSET, | ||
2446 | .muxsel = { 3 , 3 }, | ||
2447 | .no_msp34xx = 1, | ||
2448 | .no_tda9875 = 1, | ||
2449 | .no_tda7432 = 1, | ||
2450 | .pll = PLL_28, | ||
2451 | .has_dvb = 1, | ||
2452 | .no_gpioirq = 1, | ||
2453 | .has_remote = 1, | ||
2454 | }, | ||
2455 | /* ---- card 0x7c ---------------------------------- */ | ||
2456 | [BTTV_BOARD_AVDVBT_761] = { | ||
2457 | /* Matt Jesson <dvb@jesson.eclipse.co.uk> */ | ||
2458 | /* Based on the Nebula card data - added remote and new card number - BTTV_BOARD_AVDVBT_761, see also ir-kbd-gpio.c */ | ||
2459 | .name = "AverMedia AverTV DVB-T 761", | ||
2460 | .video_inputs = 2, | ||
2461 | .tuner = -1, | ||
2462 | .svhs = 1, | ||
2463 | .muxsel = { 3, 1, 2, 0}, /* Comp0, S-Video, ?, ? */ | ||
2464 | .no_msp34xx = 1, | ||
2465 | .no_tda9875 = 1, | ||
2466 | .no_tda7432 = 1, | ||
2467 | .pll = PLL_28, | ||
2468 | .tuner_type = -1, | ||
2469 | .tuner_addr = ADDR_UNSET, | ||
2470 | .radio_addr = ADDR_UNSET, | ||
2471 | .has_dvb = 1, | ||
2472 | .no_gpioirq = 1, | ||
2473 | .has_remote = 1, | ||
2474 | }, | ||
2475 | [BTTV_BOARD_MATRIX_VISIONSQ] = { | ||
2476 | /* andre.schwarz@matrix-vision.de */ | ||
2477 | .name = "MATRIX Vision Sigma-SQ", | ||
2478 | .video_inputs = 16, | ||
2479 | .audio_inputs = 0, | ||
2480 | .tuner = -1, | ||
2481 | .svhs = -1, | ||
2482 | .gpiomask = 0x0, | ||
2483 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, | ||
2484 | 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2485 | .muxsel_hook = sigmaSQ_muxsel, | ||
2486 | .audiomux = { 0 }, | ||
2487 | .no_msp34xx = 1, | ||
2488 | .pll = PLL_28, | ||
2489 | .tuner_type = -1, | ||
2490 | .tuner_addr = ADDR_UNSET, | ||
2491 | .radio_addr = ADDR_UNSET, | ||
2492 | }, | ||
2493 | [BTTV_BOARD_MATRIX_VISIONSLC] = { | ||
2494 | /* andre.schwarz@matrix-vision.de */ | ||
2495 | .name = "MATRIX Vision Sigma-SLC", | ||
2496 | .video_inputs = 4, | ||
2497 | .audio_inputs = 0, | ||
2498 | .tuner = -1, | ||
2499 | .svhs = -1, | ||
2500 | .gpiomask = 0x0, | ||
2501 | .muxsel = { 2, 2, 2, 2 }, | ||
2502 | .muxsel_hook = sigmaSLC_muxsel, | ||
2503 | .audiomux = { 0 }, | ||
2504 | .no_msp34xx = 1, | ||
2505 | .pll = PLL_28, | ||
2506 | .tuner_type = -1, | ||
2507 | .tuner_addr = ADDR_UNSET, | ||
2508 | .radio_addr = ADDR_UNSET, | ||
2509 | }, | ||
2510 | /* BTTV_BOARD_APAC_VIEWCOMP */ | ||
2511 | [BTTV_BOARD_APAC_VIEWCOMP] = { | ||
2512 | /* Attila Kondoros <attila.kondoros@chello.hu> */ | ||
2513 | /* bt878 TV + FM 0x00000000 subsystem ID */ | ||
2514 | .name = "APAC Viewcomp 878(AMAX)", | ||
2515 | .video_inputs = 2, | ||
2516 | .audio_inputs = 1, | ||
2517 | .tuner = 0, | ||
2518 | .svhs = -1, | ||
2519 | .gpiomask = 0xFF, | ||
2520 | .muxsel = { 2, 3, 1, 1}, | ||
2521 | .audiomux = { 2, 0, 0, 0, 10}, | ||
2522 | .needs_tvaudio = 0, | ||
2523 | .pll = PLL_28, | ||
2524 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2525 | .tuner_addr = ADDR_UNSET, | ||
2526 | .radio_addr = ADDR_UNSET, | ||
2527 | .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */ | ||
2528 | .has_radio = 1, /* not every card has radio */ | ||
2529 | }, | ||
2530 | |||
2531 | /* ---- card 0x80 ---------------------------------- */ | ||
2532 | [BTTV_BOARD_DVICO_DVBT_LITE] = { | ||
2533 | /* Chris Pascoe <c.pascoe@itee.uq.edu.au> */ | ||
2534 | .name = "DViCO FusionHDTV DVB-T Lite", | ||
2535 | .tuner = -1, | ||
2536 | .no_msp34xx = 1, | ||
2537 | .no_tda9875 = 1, | ||
2538 | .no_tda7432 = 1, | ||
2539 | .pll = PLL_28, | ||
2540 | .no_video = 1, | ||
2541 | .has_dvb = 1, | ||
2542 | .tuner_type = -1, | ||
2543 | .tuner_addr = ADDR_UNSET, | ||
2544 | .radio_addr = ADDR_UNSET, | ||
2545 | }, | ||
2546 | [BTTV_BOARD_VGEAR_MYVCD] = { | ||
2547 | /* Steven <photon38@pchome.com.tw> */ | ||
2548 | .name = "V-Gear MyVCD", | ||
2549 | .video_inputs = 3, | ||
2550 | .audio_inputs = 1, | ||
2551 | .tuner = 0, | ||
2552 | .svhs = 2, | ||
2553 | .gpiomask = 0x3f, | ||
2554 | .muxsel = {2, 3, 1, 0}, | ||
2555 | .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31}, | ||
2556 | .no_msp34xx = 1, | ||
2557 | .pll = PLL_28, | ||
2558 | .tuner_type = TUNER_PHILIPS_NTSC_M, | ||
2559 | .tuner_addr = ADDR_UNSET, | ||
2560 | .radio_addr = ADDR_UNSET, | ||
2561 | .has_radio = 0, | ||
2562 | #if 0 | ||
2563 | .has_remote = 1, | ||
2564 | #endif | ||
2565 | }, | ||
2566 | [BTTV_BOARD_SUPER_TV] = { | ||
2567 | /* Rick C <cryptdragoon@gmail.com> */ | ||
2568 | .name = "Super TV Tuner", | ||
2569 | .video_inputs = 4, | ||
2570 | .audio_inputs = 1, | ||
2571 | .tuner = 0, | ||
2572 | .svhs = 2, | ||
2573 | .muxsel = { 2, 3, 1, 0}, | ||
2574 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
2575 | .tuner_addr = ADDR_UNSET, | ||
2576 | .radio_addr = ADDR_UNSET, | ||
2577 | .gpiomask = 0x008007, | ||
2578 | .audiomux = { 0, 0x000001,0,0, 0}, | ||
2579 | .needs_tvaudio = 1, | ||
2580 | .has_radio = 1, | ||
2581 | }, | ||
2582 | [BTTV_BOARD_TIBET_CS16] = { | ||
2583 | /* Chris Fanning <video4linux@haydon.net> */ | ||
2584 | .name = "Tibet Systems 'Progress DVR' CS16", | ||
2585 | .video_inputs = 16, | ||
2586 | .audio_inputs = 0, | ||
2587 | .tuner = -1, | ||
2588 | .svhs = -1, | ||
2589 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, | ||
2590 | .pll = PLL_28, | ||
2591 | .no_msp34xx = 1, | ||
2592 | .no_tda9875 = 1, | ||
2593 | .no_tda7432 = 1, | ||
2594 | .tuner_type = -1, | ||
2595 | .tuner_addr = ADDR_UNSET, | ||
2596 | .radio_addr = ADDR_UNSET, | ||
2597 | .muxsel_hook = tibetCS16_muxsel, | ||
2598 | }, | ||
2599 | [BTTV_BOARD_KODICOM_4400R] = { | ||
2600 | /* Bill Brack <wbrack@mmm.com.hk> */ | ||
2601 | /* | ||
2602 | * Note that, because of the card's wiring, the "master" | ||
2603 | * BT878A chip (i.e. the one which controls the analog switch | ||
2604 | * and must use this card type) is the 2nd one detected. The | ||
2605 | * other 3 chips should use card type 0x85, whose description | ||
2606 | * follows this one. There is a EEPROM on the card (which is | ||
2607 | * connected to the I2C of one of those other chips), but is | ||
2608 | * not currently handled. There is also a facility for a | ||
2609 | * "monitor", which is also not currently implemented. | ||
2610 | */ | ||
2611 | .name = "Kodicom 4400R (master)", | ||
2612 | .video_inputs = 16, | ||
2613 | .audio_inputs = 0, | ||
2614 | .tuner = -1, | ||
2615 | .tuner_type = -1, | ||
2616 | .tuner_addr = ADDR_UNSET, | ||
2617 | .radio_addr = ADDR_UNSET, | ||
2618 | .svhs = -1, | ||
2619 | /* GPIO bits 0-9 used for analog switch: | ||
2620 | * 00 - 03: camera selector | ||
2621 | * 04 - 06: channel (controller) selector | ||
2622 | * 07: data (1->on, 0->off) | ||
2623 | * 08: strobe | ||
2624 | * 09: reset | ||
2625 | * bit 16 is input from sync separator for the channel | ||
2626 | */ | ||
2627 | .gpiomask = 0x0003ff, | ||
2628 | .no_gpioirq = 1, | ||
2629 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2630 | .pll = PLL_28, | ||
2631 | .no_msp34xx = 1, | ||
2632 | .no_tda7432 = 1, | ||
2633 | .no_tda9875 = 1, | ||
2634 | .muxsel_hook = kodicom4400r_muxsel, | ||
2635 | }, | ||
2636 | [BTTV_BOARD_KODICOM_4400R_SL] = { | ||
2637 | /* Bill Brack <wbrack@mmm.com.hk> */ | ||
2638 | /* Note that, for reasons unknown, the "master" BT878A chip (i.e. the | ||
2639 | * one which controls the analog switch, and must use the card type) | ||
2640 | * is the 2nd one detected. The other 3 chips should use this card | ||
2641 | * type | ||
2642 | */ | ||
2643 | .name = "Kodicom 4400R (slave)", | ||
2644 | .video_inputs = 16, | ||
2645 | .audio_inputs = 0, | ||
2646 | .tuner = -1, | ||
2647 | .tuner_type = -1, | ||
2648 | .tuner_addr = ADDR_UNSET, | ||
2649 | .radio_addr = ADDR_UNSET, | ||
2650 | .svhs = -1, | ||
2651 | .gpiomask = 0x010000, | ||
2652 | .no_gpioirq = 1, | ||
2653 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2654 | .pll = PLL_28, | ||
2655 | .no_msp34xx = 1, | ||
2656 | .no_tda7432 = 1, | ||
2657 | .no_tda9875 = 1, | ||
2658 | .muxsel_hook = kodicom4400r_muxsel, | ||
2659 | }, | ||
2660 | /* ---- card 0x86---------------------------------- */ | ||
2661 | [BTTV_BOARD_ADLINK_RTV24] = { | ||
2662 | /* Michael Henson <mhenson@clarityvi.com> */ | ||
2663 | /* Adlink RTV24 with special unlock codes */ | ||
2664 | .name = "Adlink RTV24", | ||
2665 | .video_inputs = 4, | ||
2666 | .audio_inputs = 1, | ||
2667 | .tuner = 0, | ||
2668 | .svhs = 2, | ||
2669 | .muxsel = { 2, 3, 1, 0}, | ||
2670 | .tuner_type = -1, | ||
2671 | .tuner_addr = ADDR_UNSET, | ||
2672 | .radio_addr = ADDR_UNSET, | ||
2673 | .pll = PLL_28, | ||
2674 | }, | ||
2675 | /* ---- card 0x87---------------------------------- */ | ||
2676 | [BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE] = { | ||
2677 | /* Michael Krufky <mkrufky@m1k.net> */ | ||
2678 | .name = "DViCO FusionHDTV 5 Lite", | ||
2679 | .tuner = 0, | ||
2680 | .tuner_type = TUNER_LG_TDVS_H062F, | ||
2681 | .tuner_addr = ADDR_UNSET, | ||
2682 | .radio_addr = ADDR_UNSET, | ||
2683 | .video_inputs = 3, | ||
2684 | .audio_inputs = 1, | ||
2685 | .svhs = 2, | ||
2686 | .muxsel = { 2, 3, 1 }, | ||
2687 | .gpiomask = 0x00e00007, | ||
2688 | .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 }, | ||
2689 | .no_msp34xx = 1, | ||
2690 | .no_tda9875 = 1, | ||
2691 | .no_tda7432 = 1, | ||
2692 | .has_dvb = 1, | ||
2693 | }, | ||
2694 | /* ---- card 0x88---------------------------------- */ | ||
2695 | [BTTV_BOARD_ACORP_Y878F] = { | ||
2696 | /* Mauro Carvalho Chehab <mchehab@brturbo.com.br> */ | ||
2697 | .name = "Acorp Y878F", | ||
2698 | .video_inputs = 3, | ||
2699 | .audio_inputs = 1, | ||
2700 | .tuner = 0, | ||
2701 | .svhs = 2, | ||
2702 | .gpiomask = 0x01fe00, | ||
2703 | .muxsel = { 2, 3, 1, 1}, | ||
2704 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | ||
2705 | .needs_tvaudio = 1, | ||
2706 | .pll = PLL_28, | ||
2707 | .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, | ||
2708 | .tuner_addr = 0xc1 >>1, | ||
2709 | .radio_addr = 0xc1 >>1, | ||
2710 | .has_radio = 1, | ||
2711 | }, | ||
2712 | /* ---- card 0x89 ---------------------------------- */ | ||
2713 | [BTTV_BOARD_CONCEPTRONIC_CTVFMI2] = { | ||
2714 | .name = "Conceptronic CTVFMi v2", | ||
2715 | .video_inputs = 3, | ||
2716 | .audio_inputs = 1, | ||
2717 | .tuner = 0, | ||
2718 | .svhs = 2, | ||
2719 | .gpiomask = 0x001c0007, | ||
2720 | .muxsel = { 2, 3, 1, 1 }, | ||
2721 | .audiomux = { 0, 1, 2, 2, 3 }, | ||
2722 | .needs_tvaudio = 0, | ||
2723 | .pll = PLL_28, | ||
2724 | .tuner_type = TUNER_TENA_9533_DI, | ||
2725 | .tuner_addr = ADDR_UNSET, | ||
2726 | .radio_addr = ADDR_UNSET, | ||
2727 | .has_remote = 1, | ||
2728 | .has_radio = 1, | ||
2729 | }, | ||
2730 | /* ---- card 0x8a ---------------------------------- */ | ||
2731 | [BTTV_BOARD_PV_BT878P_2E] = { | ||
2732 | .name = "Prolink Pixelview PV-BT878P+ (Rev.2E)", | ||
2733 | .video_inputs = 5, | ||
2734 | .audio_inputs = 1, | ||
2735 | .tuner = 0, | ||
2736 | .svhs = 3, | ||
2737 | .gpiomask = 0x01fe00, | ||
2738 | .muxsel = { 2,3,1,1,-1 }, | ||
2739 | .digital_mode = DIGITAL_MODE_CAMERA, | ||
2740 | .audiomux = { 0x00400, 0x10400, 0x04400, 0x80000, 0x12400, 0x46000 }, | ||
2741 | .no_msp34xx = 1, | ||
2742 | .pll = PLL_28, | ||
2743 | .tuner_type = TUNER_LG_PAL_FM, | ||
2744 | .tuner_addr = ADDR_UNSET, | ||
2745 | .radio_addr = ADDR_UNSET, | ||
2746 | .has_remote = 1, | ||
2747 | }, | ||
2748 | /* ---- card 0x8b ---------------------------------- */ | ||
2749 | [BTTV_BOARD_PV_M4900] = { | ||
2750 | /* Sérgio Fortier <sergiofortier@yahoo.com.br> */ | ||
2751 | .name = "Prolink PixelView PlayTV MPEG2 PV-M4900", | ||
2752 | .video_inputs = 3, | ||
2753 | .audio_inputs = 1, | ||
2754 | .tuner = 0, | ||
2755 | .svhs = 2, | ||
2756 | .gpiomask = 0x3f, | ||
2757 | .muxsel = { 2, 3, 1, 1 }, | ||
2758 | .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, | ||
2759 | .no_msp34xx = 1, | ||
2760 | .pll = PLL_28, | ||
2761 | .tuner_type = TUNER_YMEC_TVF_5533MF, | ||
2762 | .tuner_addr = ADDR_UNSET, | ||
2763 | .radio_addr = ADDR_UNSET, | ||
2764 | .has_radio = 1, | ||
2765 | .has_remote = 1, | ||
2766 | }, | ||
2767 | /* ---- card 0x8c ---------------------------------- */ | ||
2768 | [BTTV_BOARD_OSPREY440] = { | ||
2769 | .name = "Osprey 440", | ||
2770 | .video_inputs = 1, | ||
2771 | .audio_inputs = 1, | ||
2772 | .tuner = -1, | ||
2773 | .svhs = 1, | ||
2774 | .muxsel = { 2 }, | ||
2775 | .pll = PLL_28, | ||
2776 | .tuner_type = UNSET, | ||
2777 | .tuner_addr = ADDR_UNSET, | ||
2778 | .radio_addr = ADDR_UNSET, | ||
2779 | .no_msp34xx = 1, | ||
2780 | .no_tda9875 = 1, | ||
2781 | .no_tda7432 = 1, | ||
2782 | }, | ||
2783 | /* ---- card 0x8d ---------------------------------- */ | ||
2784 | [BTTV_BOARD_ASOUND_SKYEYE] = { | ||
2785 | .name = "Asound Skyeye PCTV", | ||
2786 | .video_inputs = 3, | ||
2787 | .audio_inputs = 1, | ||
2788 | .tuner = 0, | ||
2789 | .svhs = 2, | ||
2790 | .gpiomask = 15, | ||
2791 | .muxsel = { 2, 3, 1, 1}, | ||
2792 | .audiomux = {2,0,0,0,1}, | ||
2793 | .needs_tvaudio = 1, | ||
2794 | .pll = PLL_28, | ||
2795 | .tuner_type = 2, | ||
2796 | .tuner_addr = ADDR_UNSET, | ||
2797 | .radio_addr = ADDR_UNSET, | ||
2798 | }, | ||
2799 | |||
2800 | }; | ||
2422 | 2801 | ||
2423 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 2802 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); |
2424 | 2803 | ||
@@ -2461,7 +2840,7 @@ void __devinit bttv_idcard(struct bttv *btv) | |||
2461 | btv->c.nr, btv->cardid & 0xffff, | 2840 | btv->c.nr, btv->cardid & 0xffff, |
2462 | (btv->cardid >> 16) & 0xffff); | 2841 | (btv->cardid >> 16) & 0xffff); |
2463 | printk(KERN_DEBUG "please mail id, board name and " | 2842 | printk(KERN_DEBUG "please mail id, board name and " |
2464 | "the correct card= insmod option to kraxel@bytesex.org\n"); | 2843 | "the correct card= insmod option to video4linux-list@redhat.com\n"); |
2465 | } | 2844 | } |
2466 | } | 2845 | } |
2467 | 2846 | ||
@@ -2510,11 +2889,11 @@ void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256]) | |||
2510 | int type = -1; | 2889 | int type = -1; |
2511 | 2890 | ||
2512 | if (0 == strncmp(eeprom_data,"GET MM20xPCTV",13)) | 2891 | if (0 == strncmp(eeprom_data,"GET MM20xPCTV",13)) |
2513 | type = BTTV_MODTEC_205; | 2892 | type = BTTV_BOARD_MODTEC_205; |
2514 | else if (0 == strncmp(eeprom_data+20,"Picolo",7)) | 2893 | else if (0 == strncmp(eeprom_data+20,"Picolo",7)) |
2515 | type = BTTV_EURESYS_PICOLO; | 2894 | type = BTTV_BOARD_EURESYS_PICOLO; |
2516 | else if (eeprom_data[0] == 0x84 && eeprom_data[2]== 0) | 2895 | else if (eeprom_data[0] == 0x84 && eeprom_data[2]== 0) |
2517 | type = BTTV_HAUPPAUGE; /* old bt848 */ | 2896 | type = BTTV_BOARD_HAUPPAUGE; /* old bt848 */ |
2518 | 2897 | ||
2519 | if (-1 != type) { | 2898 | if (-1 != type) { |
2520 | btv->c.type = type; | 2899 | btv->c.type = type; |
@@ -2548,7 +2927,7 @@ static void flyvideo_gpio(struct bttv *btv) | |||
2548 | switch(ttype) { | 2927 | switch(ttype) { |
2549 | case 0x0: tuner=2; /* NTSC, e.g. TPI8NSR11P */ | 2928 | case 0x0: tuner=2; /* NTSC, e.g. TPI8NSR11P */ |
2550 | break; | 2929 | break; |
2551 | case 0x2: tuner=39;/* LG NTSC (newer TAPC series) TAPC-H701P */ | 2930 | case 0x2: tuner=39;/* LG NTSC (newer TAPC series) TAPC-H701P */ |
2552 | break; | 2931 | break; |
2553 | case 0x4: tuner=5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */ | 2932 | case 0x4: tuner=5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */ |
2554 | break; | 2933 | break; |
@@ -2564,7 +2943,7 @@ static void flyvideo_gpio(struct bttv *btv) | |||
2564 | has_radio = gpio & 0x400000; | 2943 | has_radio = gpio & 0x400000; |
2565 | /* unknown 0x200000; | 2944 | /* unknown 0x200000; |
2566 | * unknown2 0x100000; */ | 2945 | * unknown2 0x100000; */ |
2567 | is_capture_only = !(gpio & 0x008000); /* GPIO15 */ | 2946 | is_capture_only = !(gpio & 0x008000); /* GPIO15 */ |
2568 | has_tda9820_tda9821 = !(gpio & 0x004000); | 2947 | has_tda9820_tda9821 = !(gpio & 0x004000); |
2569 | is_lr90 = !(gpio & 0x002000); /* else LR26/LR50 (LR38/LR51 f. capture only) */ | 2948 | is_lr90 = !(gpio & 0x002000); /* else LR26/LR50 (LR38/LR51 f. capture only) */ |
2570 | /* | 2949 | /* |
@@ -2601,7 +2980,7 @@ static void miro_pinnacle_gpio(struct bttv *btv) | |||
2601 | char *info; | 2980 | char *info; |
2602 | 2981 | ||
2603 | gpio_inout(0xffffff, 0); | 2982 | gpio_inout(0xffffff, 0); |
2604 | gpio = gpio_read(); | 2983 | gpio = gpio_read(); |
2605 | id = ((gpio>>10) & 63) -1; | 2984 | id = ((gpio>>10) & 63) -1; |
2606 | msp = bttv_I2CRead(btv, I2C_MSP3400, "MSP34xx"); | 2985 | msp = bttv_I2CRead(btv, I2C_MSP3400, "MSP34xx"); |
2607 | if (id < 32) { | 2986 | if (id < 32) { |
@@ -2620,10 +2999,10 @@ static void miro_pinnacle_gpio(struct bttv *btv) | |||
2620 | btv->has_radio = 0; | 2999 | btv->has_radio = 0; |
2621 | } | 3000 | } |
2622 | if (-1 != msp) { | 3001 | if (-1 != msp) { |
2623 | if (btv->c.type == BTTV_MIRO) | 3002 | if (btv->c.type == BTTV_BOARD_MIRO) |
2624 | btv->c.type = BTTV_MIROPRO; | 3003 | btv->c.type = BTTV_BOARD_MIROPRO; |
2625 | if (btv->c.type == BTTV_PINNACLE) | 3004 | if (btv->c.type == BTTV_BOARD_PINNACLE) |
2626 | btv->c.type = BTTV_PINNACLEPRO; | 3005 | btv->c.type = BTTV_BOARD_PINNACLEPRO; |
2627 | } | 3006 | } |
2628 | printk(KERN_INFO | 3007 | printk(KERN_INFO |
2629 | "bttv%d: miro: id=%d tuner=%d radio=%s stereo=%s\n", | 3008 | "bttv%d: miro: id=%d tuner=%d radio=%s stereo=%s\n", |
@@ -2664,7 +3043,7 @@ static void miro_pinnacle_gpio(struct bttv *btv) | |||
2664 | break; | 3043 | break; |
2665 | } | 3044 | } |
2666 | if (-1 != msp) | 3045 | if (-1 != msp) |
2667 | btv->c.type = BTTV_PINNACLEPRO; | 3046 | btv->c.type = BTTV_BOARD_PINNACLEPRO; |
2668 | printk(KERN_INFO | 3047 | printk(KERN_INFO |
2669 | "bttv%d: pinnacle/mt: id=%d info=\"%s\" radio=%s\n", | 3048 | "bttv%d: pinnacle/mt: id=%d info=\"%s\" radio=%s\n", |
2670 | btv->c.nr, id, info, btv->has_radio ? "yes" : "no"); | 3049 | btv->c.nr, id, info, btv->has_radio ? "yes" : "no"); |
@@ -2712,7 +3091,7 @@ static void eagle_muxsel(struct bttv *btv, unsigned int input) | |||
2712 | 3091 | ||
2713 | static void gvc1100_muxsel(struct bttv *btv, unsigned int input) | 3092 | static void gvc1100_muxsel(struct bttv *btv, unsigned int input) |
2714 | { | 3093 | { |
2715 | static const int masks[] = {0x30, 0x01, 0x12, 0x23}; | 3094 | static const int masks[] = {0x30, 0x01, 0x12, 0x23}; |
2716 | gpio_write(masks[input%4]); | 3095 | gpio_write(masks[input%4]); |
2717 | } | 3096 | } |
2718 | 3097 | ||
@@ -2778,26 +3157,27 @@ static void bttv_reset_audio(struct bttv *btv) | |||
2778 | void __devinit bttv_init_card1(struct bttv *btv) | 3157 | void __devinit bttv_init_card1(struct bttv *btv) |
2779 | { | 3158 | { |
2780 | switch (btv->c.type) { | 3159 | switch (btv->c.type) { |
2781 | case BTTV_HAUPPAUGE: | 3160 | case BTTV_BOARD_HAUPPAUGE: |
2782 | case BTTV_HAUPPAUGE878: | 3161 | case BTTV_BOARD_HAUPPAUGE878: |
2783 | boot_msp34xx(btv,5); | 3162 | boot_msp34xx(btv,5); |
2784 | break; | 3163 | break; |
2785 | case BTTV_VOODOOTV_FM: | 3164 | case BTTV_BOARD_VOODOOTV_FM: |
2786 | boot_msp34xx(btv,20); | 3165 | boot_msp34xx(btv,20); |
2787 | break; | 3166 | break; |
2788 | case BTTV_AVERMEDIA98: | 3167 | case BTTV_BOARD_AVERMEDIA98: |
2789 | boot_msp34xx(btv,11); | 3168 | boot_msp34xx(btv,11); |
2790 | break; | 3169 | break; |
2791 | case BTTV_HAUPPAUGEPVR: | 3170 | case BTTV_BOARD_HAUPPAUGEPVR: |
2792 | pvr_boot(btv); | 3171 | pvr_boot(btv); |
2793 | break; | 3172 | break; |
2794 | case BTTV_TWINHAN_DST: | 3173 | case BTTV_BOARD_TWINHAN_DST: |
2795 | case BTTV_AVDVBT_771: | 3174 | case BTTV_BOARD_AVDVBT_771: |
3175 | case BTTV_BOARD_PINNACLESAT: | ||
2796 | btv->use_i2c_hw = 1; | 3176 | btv->use_i2c_hw = 1; |
2797 | break; | 3177 | break; |
2798 | case BTTV_ADLINK_RTV24: | 3178 | case BTTV_BOARD_ADLINK_RTV24: |
2799 | init_RTV24( btv ); | 3179 | init_RTV24( btv ); |
2800 | break; | 3180 | break; |
2801 | 3181 | ||
2802 | } | 3182 | } |
2803 | if (!bttv_tvcards[btv->c.type].has_dvb) | 3183 | if (!bttv_tvcards[btv->c.type].has_dvb) |
@@ -2810,53 +3190,53 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
2810 | int tda9887; | 3190 | int tda9887; |
2811 | int addr=ADDR_UNSET; | 3191 | int addr=ADDR_UNSET; |
2812 | 3192 | ||
2813 | btv->tuner_type = -1; | 3193 | btv->tuner_type = -1; |
2814 | 3194 | ||
2815 | if (BTTV_UNKNOWN == btv->c.type) { | 3195 | if (BTTV_BOARD_UNKNOWN == btv->c.type) { |
2816 | bttv_readee(btv,eeprom_data,0xa0); | 3196 | bttv_readee(btv,eeprom_data,0xa0); |
2817 | identify_by_eeprom(btv,eeprom_data); | 3197 | identify_by_eeprom(btv,eeprom_data); |
2818 | } | 3198 | } |
2819 | 3199 | ||
2820 | switch (btv->c.type) { | 3200 | switch (btv->c.type) { |
2821 | case BTTV_MIRO: | 3201 | case BTTV_BOARD_MIRO: |
2822 | case BTTV_MIROPRO: | 3202 | case BTTV_BOARD_MIROPRO: |
2823 | case BTTV_PINNACLE: | 3203 | case BTTV_BOARD_PINNACLE: |
2824 | case BTTV_PINNACLEPRO: | 3204 | case BTTV_BOARD_PINNACLEPRO: |
2825 | /* miro/pinnacle */ | 3205 | /* miro/pinnacle */ |
2826 | miro_pinnacle_gpio(btv); | 3206 | miro_pinnacle_gpio(btv); |
2827 | break; | 3207 | break; |
2828 | case BTTV_FLYVIDEO_98: | 3208 | case BTTV_BOARD_FLYVIDEO_98: |
2829 | case BTTV_MAXI: | 3209 | case BTTV_BOARD_MAXI: |
2830 | case BTTV_LIFE_FLYKIT: | 3210 | case BTTV_BOARD_LIFE_FLYKIT: |
2831 | case BTTV_FLYVIDEO: | 3211 | case BTTV_BOARD_FLYVIDEO: |
2832 | case BTTV_TYPHOON_TVIEW: | 3212 | case BTTV_BOARD_TYPHOON_TVIEW: |
2833 | case BTTV_CHRONOS_VS2: | 3213 | case BTTV_BOARD_CHRONOS_VS2: |
2834 | case BTTV_FLYVIDEO_98FM: | 3214 | case BTTV_BOARD_FLYVIDEO_98FM: |
2835 | case BTTV_FLYVIDEO2000: | 3215 | case BTTV_BOARD_FLYVIDEO2000: |
2836 | case BTTV_FLYVIDEO98EZ: | 3216 | case BTTV_BOARD_FLYVIDEO98EZ: |
2837 | case BTTV_CONFERENCETV: | 3217 | case BTTV_BOARD_CONFERENCETV: |
2838 | case BTTV_LIFETEC_9415: | 3218 | case BTTV_BOARD_LIFETEC_9415: |
2839 | flyvideo_gpio(btv); | 3219 | flyvideo_gpio(btv); |
2840 | break; | 3220 | break; |
2841 | case BTTV_HAUPPAUGE: | 3221 | case BTTV_BOARD_HAUPPAUGE: |
2842 | case BTTV_HAUPPAUGE878: | 3222 | case BTTV_BOARD_HAUPPAUGE878: |
2843 | case BTTV_HAUPPAUGEPVR: | 3223 | case BTTV_BOARD_HAUPPAUGEPVR: |
2844 | /* pick up some config infos from the eeprom */ | 3224 | /* pick up some config infos from the eeprom */ |
2845 | bttv_readee(btv,eeprom_data,0xa0); | 3225 | bttv_readee(btv,eeprom_data,0xa0); |
2846 | hauppauge_eeprom(btv); | 3226 | hauppauge_eeprom(btv); |
2847 | break; | 3227 | break; |
2848 | case BTTV_AVERMEDIA98: | 3228 | case BTTV_BOARD_AVERMEDIA98: |
2849 | case BTTV_AVPHONE98: | 3229 | case BTTV_BOARD_AVPHONE98: |
2850 | bttv_readee(btv,eeprom_data,0xa0); | 3230 | bttv_readee(btv,eeprom_data,0xa0); |
2851 | avermedia_eeprom(btv); | 3231 | avermedia_eeprom(btv); |
2852 | break; | 3232 | break; |
2853 | case BTTV_PXC200: | 3233 | case BTTV_BOARD_PXC200: |
2854 | init_PXC200(btv); | 3234 | init_PXC200(btv); |
2855 | break; | 3235 | break; |
2856 | case BTTV_PICOLO_TETRA_CHIP: | 3236 | case BTTV_BOARD_PICOLO_TETRA_CHIP: |
2857 | picolo_tetra_init(btv); | 3237 | picolo_tetra_init(btv); |
2858 | break; | 3238 | break; |
2859 | case BTTV_VHX: | 3239 | case BTTV_BOARD_VHX: |
2860 | btv->has_radio = 1; | 3240 | btv->has_radio = 1; |
2861 | btv->has_matchbox = 1; | 3241 | btv->has_matchbox = 1; |
2862 | btv->mbox_we = 0x20; | 3242 | btv->mbox_we = 0x20; |
@@ -2865,58 +3245,58 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
2865 | btv->mbox_data = 0x10; | 3245 | btv->mbox_data = 0x10; |
2866 | btv->mbox_mask = 0x38; | 3246 | btv->mbox_mask = 0x38; |
2867 | break; | 3247 | break; |
2868 | case BTTV_VOBIS_BOOSTAR: | 3248 | case BTTV_BOARD_VOBIS_BOOSTAR: |
2869 | case BTTV_TERRATV: | 3249 | case BTTV_BOARD_TERRATV: |
2870 | terratec_active_radio_upgrade(btv); | 3250 | terratec_active_radio_upgrade(btv); |
2871 | break; | 3251 | break; |
2872 | case BTTV_MAGICTVIEW061: | 3252 | case BTTV_BOARD_MAGICTVIEW061: |
2873 | if (btv->cardid == 0x3002144f) { | 3253 | if (btv->cardid == 0x3002144f) { |
2874 | btv->has_radio=1; | 3254 | btv->has_radio=1; |
2875 | printk("bttv%d: radio detected by subsystem id (CPH05x)\n",btv->c.nr); | 3255 | printk("bttv%d: radio detected by subsystem id (CPH05x)\n",btv->c.nr); |
2876 | } | 3256 | } |
2877 | break; | 3257 | break; |
2878 | case BTTV_STB2: | 3258 | case BTTV_BOARD_STB2: |
2879 | if (btv->cardid == 0x3060121a) { | 3259 | if (btv->cardid == 0x3060121a) { |
2880 | /* Fix up entry for 3DFX VoodooTV 100, | 3260 | /* Fix up entry for 3DFX VoodooTV 100, |
2881 | which is an OEM STB card variant. */ | 3261 | which is an OEM STB card variant. */ |
2882 | btv->has_radio=0; | 3262 | btv->has_radio=0; |
2883 | btv->tuner_type=TUNER_TEMIC_NTSC; | 3263 | btv->tuner_type=TUNER_TEMIC_NTSC; |
2884 | } | 3264 | } |
2885 | break; | 3265 | break; |
2886 | case BTTV_OSPREY1x0: | 3266 | case BTTV_BOARD_OSPREY1x0: |
2887 | case BTTV_OSPREY1x0_848: | 3267 | case BTTV_BOARD_OSPREY1x0_848: |
2888 | case BTTV_OSPREY101_848: | 3268 | case BTTV_BOARD_OSPREY101_848: |
2889 | case BTTV_OSPREY1x1: | 3269 | case BTTV_BOARD_OSPREY1x1: |
2890 | case BTTV_OSPREY1x1_SVID: | 3270 | case BTTV_BOARD_OSPREY1x1_SVID: |
2891 | case BTTV_OSPREY2xx: | 3271 | case BTTV_BOARD_OSPREY2xx: |
2892 | case BTTV_OSPREY2x0_SVID: | 3272 | case BTTV_BOARD_OSPREY2x0_SVID: |
2893 | case BTTV_OSPREY2x0: | 3273 | case BTTV_BOARD_OSPREY2x0: |
2894 | case BTTV_OSPREY500: | 3274 | case BTTV_BOARD_OSPREY500: |
2895 | case BTTV_OSPREY540: | 3275 | case BTTV_BOARD_OSPREY540: |
2896 | case BTTV_OSPREY2000: | 3276 | case BTTV_BOARD_OSPREY2000: |
2897 | bttv_readee(btv,eeprom_data,0xa0); | 3277 | bttv_readee(btv,eeprom_data,0xa0); |
2898 | osprey_eeprom(btv); | 3278 | osprey_eeprom(btv); |
2899 | break; | 3279 | break; |
2900 | case BTTV_IDS_EAGLE: | 3280 | case BTTV_BOARD_IDS_EAGLE: |
2901 | init_ids_eagle(btv); | 3281 | init_ids_eagle(btv); |
2902 | break; | 3282 | break; |
2903 | case BTTV_MODTEC_205: | 3283 | case BTTV_BOARD_MODTEC_205: |
2904 | bttv_readee(btv,eeprom_data,0xa0); | 3284 | bttv_readee(btv,eeprom_data,0xa0); |
2905 | modtec_eeprom(btv); | 3285 | modtec_eeprom(btv); |
2906 | break; | 3286 | break; |
2907 | case BTTV_LMLBT4: | 3287 | case BTTV_BOARD_LMLBT4: |
2908 | init_lmlbt4x(btv); | 3288 | init_lmlbt4x(btv); |
2909 | break; | 3289 | break; |
2910 | case BTTV_TIBET_CS16: | 3290 | case BTTV_BOARD_TIBET_CS16: |
2911 | tibetCS16_init(btv); | 3291 | tibetCS16_init(btv); |
2912 | break; | 3292 | break; |
2913 | case BTTV_KODICOM_4400R: | 3293 | case BTTV_BOARD_KODICOM_4400R: |
2914 | kodicom4400r_init(btv); | 3294 | kodicom4400r_init(btv); |
2915 | break; | 3295 | break; |
2916 | } | 3296 | } |
2917 | 3297 | ||
2918 | /* pll configuration */ | 3298 | /* pll configuration */ |
2919 | if (!(btv->id==848 && btv->revision==0x11)) { | 3299 | if (!(btv->id==848 && btv->revision==0x11)) { |
2920 | /* defaults from card list */ | 3300 | /* defaults from card list */ |
2921 | if (PLL_28 == bttv_tvcards[btv->c.type].pll) { | 3301 | if (PLL_28 == bttv_tvcards[btv->c.type].pll) { |
2922 | btv->pll.pll_ifreq=28636363; | 3302 | btv->pll.pll_ifreq=28636363; |
@@ -2927,26 +3307,26 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
2927 | btv->pll.pll_crystal=BT848_IFORM_XT1; | 3307 | btv->pll.pll_crystal=BT848_IFORM_XT1; |
2928 | } | 3308 | } |
2929 | /* insmod options can override */ | 3309 | /* insmod options can override */ |
2930 | switch (pll[btv->c.nr]) { | 3310 | switch (pll[btv->c.nr]) { |
2931 | case 0: /* none */ | 3311 | case 0: /* none */ |
2932 | btv->pll.pll_crystal = 0; | 3312 | btv->pll.pll_crystal = 0; |
2933 | btv->pll.pll_ifreq = 0; | 3313 | btv->pll.pll_ifreq = 0; |
2934 | btv->pll.pll_ofreq = 0; | 3314 | btv->pll.pll_ofreq = 0; |
2935 | break; | 3315 | break; |
2936 | case 1: /* 28 MHz */ | 3316 | case 1: /* 28 MHz */ |
2937 | case 28: | 3317 | case 28: |
2938 | btv->pll.pll_ifreq = 28636363; | 3318 | btv->pll.pll_ifreq = 28636363; |
2939 | btv->pll.pll_ofreq = 0; | 3319 | btv->pll.pll_ofreq = 0; |
2940 | btv->pll.pll_crystal = BT848_IFORM_XT0; | 3320 | btv->pll.pll_crystal = BT848_IFORM_XT0; |
2941 | break; | 3321 | break; |
2942 | case 2: /* 35 MHz */ | 3322 | case 2: /* 35 MHz */ |
2943 | case 35: | 3323 | case 35: |
2944 | btv->pll.pll_ifreq = 35468950; | 3324 | btv->pll.pll_ifreq = 35468950; |
2945 | btv->pll.pll_ofreq = 0; | 3325 | btv->pll.pll_ofreq = 0; |
2946 | btv->pll.pll_crystal = BT848_IFORM_XT1; | 3326 | btv->pll.pll_crystal = BT848_IFORM_XT1; |
2947 | break; | 3327 | break; |
2948 | } | 3328 | } |
2949 | } | 3329 | } |
2950 | btv->pll.pll_current = -1; | 3330 | btv->pll.pll_current = -1; |
2951 | 3331 | ||
2952 | /* tuner configuration (from card list / autodetect / insmod option) */ | 3332 | /* tuner configuration (from card list / autodetect / insmod option) */ |
@@ -2955,23 +3335,26 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
2955 | 3335 | ||
2956 | if (UNSET != bttv_tvcards[btv->c.type].tuner_type) | 3336 | if (UNSET != bttv_tvcards[btv->c.type].tuner_type) |
2957 | if(UNSET == btv->tuner_type) | 3337 | if(UNSET == btv->tuner_type) |
2958 | btv->tuner_type = bttv_tvcards[btv->c.type].tuner_type; | 3338 | btv->tuner_type = bttv_tvcards[btv->c.type].tuner_type; |
2959 | if (UNSET != tuner[btv->c.nr]) | 3339 | if (UNSET != tuner[btv->c.nr]) |
2960 | btv->tuner_type = tuner[btv->c.nr]; | 3340 | btv->tuner_type = tuner[btv->c.nr]; |
2961 | printk("bttv%d: using tuner=%d\n",btv->c.nr,btv->tuner_type); | 3341 | printk("bttv%d: using tuner=%d\n",btv->c.nr,btv->tuner_type); |
2962 | if (btv->pinnacle_id != UNSET) | 3342 | |
2963 | bttv_call_i2c_clients(btv, AUDC_CONFIG_PINNACLE, | ||
2964 | &btv->pinnacle_id); | ||
2965 | if (btv->tuner_type != UNSET) { | 3343 | if (btv->tuner_type != UNSET) { |
2966 | struct tuner_setup tun_setup; | 3344 | struct tuner_setup tun_setup; |
2967 | 3345 | ||
2968 | tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; | 3346 | tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV; |
2969 | tun_setup.type = btv->tuner_type; | 3347 | tun_setup.type = btv->tuner_type; |
2970 | tun_setup.addr = addr; | 3348 | tun_setup.addr = addr; |
2971 | 3349 | ||
2972 | bttv_call_i2c_clients(btv, TUNER_SET_TYPE_ADDR, &tun_setup); | 3350 | bttv_call_i2c_clients(btv, TUNER_SET_TYPE_ADDR, &tun_setup); |
2973 | } | 3351 | } |
2974 | 3352 | ||
3353 | if (btv->pinnacle_id != UNSET) { | ||
3354 | bttv_call_i2c_clients(btv, AUDC_CONFIG_PINNACLE, | ||
3355 | &btv->pinnacle_id); | ||
3356 | } | ||
3357 | |||
2975 | btv->svhs = bttv_tvcards[btv->c.type].svhs; | 3358 | btv->svhs = bttv_tvcards[btv->c.type].svhs; |
2976 | if (svhs[btv->c.nr] != UNSET) | 3359 | if (svhs[btv->c.nr] != UNSET) |
2977 | btv->svhs = svhs[btv->c.nr]; | 3360 | btv->svhs = svhs[btv->c.nr]; |
@@ -2982,8 +3365,8 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
2982 | btv->has_radio=1; | 3365 | btv->has_radio=1; |
2983 | if (bttv_tvcards[btv->c.type].has_remote) | 3366 | if (bttv_tvcards[btv->c.type].has_remote) |
2984 | btv->has_remote=1; | 3367 | btv->has_remote=1; |
2985 | if (bttv_tvcards[btv->c.type].no_gpioirq) | 3368 | if (!bttv_tvcards[btv->c.type].no_gpioirq) |
2986 | btv->gpioirq=0; | 3369 | btv->gpioirq=1; |
2987 | if (bttv_tvcards[btv->c.type].audio_hook) | 3370 | if (bttv_tvcards[btv->c.type].audio_hook) |
2988 | btv->audio_hook=bttv_tvcards[btv->c.type].audio_hook; | 3371 | btv->audio_hook=bttv_tvcards[btv->c.type].audio_hook; |
2989 | 3372 | ||
@@ -3024,6 +3407,9 @@ void __devinit bttv_init_card2(struct bttv *btv) | |||
3024 | if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb && | 3407 | if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb && |
3025 | bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0) | 3408 | bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0) |
3026 | tda9887 = 1; | 3409 | tda9887 = 1; |
3410 | /* Hybrid DVB card, DOES have a tda9887 */ | ||
3411 | if (btv->c.type == BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE) | ||
3412 | tda9887 = 1; | ||
3027 | if((btv->tuner_type == TUNER_PHILIPS_FM1216ME_MK3) || | 3413 | if((btv->tuner_type == TUNER_PHILIPS_FM1216ME_MK3) || |
3028 | (btv->tuner_type == TUNER_PHILIPS_FM1236_MK3) || | 3414 | (btv->tuner_type == TUNER_PHILIPS_FM1236_MK3) || |
3029 | (btv->tuner_type == TUNER_PHILIPS_FM1256_IH3) || | 3415 | (btv->tuner_type == TUNER_PHILIPS_FM1256_IH3) || |
@@ -3045,11 +3431,11 @@ static void modtec_eeprom(struct bttv *btv) | |||
3045 | } else if (strncmp(&(eeprom_data[0x1e]),"Alps TSBB5",10) ==0) { | 3431 | } else if (strncmp(&(eeprom_data[0x1e]),"Alps TSBB5",10) ==0) { |
3046 | btv->tuner_type=TUNER_ALPS_TSBB5_PAL_I; | 3432 | btv->tuner_type=TUNER_ALPS_TSBB5_PAL_I; |
3047 | printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n", | 3433 | printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n", |
3048 | btv->c.nr,&eeprom_data[0x1e]); | 3434 | btv->c.nr,&eeprom_data[0x1e]); |
3049 | } else if (strncmp(&(eeprom_data[0x1e]),"Philips FM1246",14) ==0) { | 3435 | } else if (strncmp(&(eeprom_data[0x1e]),"Philips FM1246",14) ==0) { |
3050 | btv->tuner_type=TUNER_PHILIPS_NTSC; | 3436 | btv->tuner_type=TUNER_PHILIPS_NTSC; |
3051 | printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n", | 3437 | printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n", |
3052 | btv->c.nr,&eeprom_data[0x1e]); | 3438 | btv->c.nr,&eeprom_data[0x1e]); |
3053 | } else { | 3439 | } else { |
3054 | printk("bttv%d: Modtec: Unknown TunerString: %s\n", | 3440 | printk("bttv%d: Modtec: Unknown TunerString: %s\n", |
3055 | btv->c.nr,&eeprom_data[0x1e]); | 3441 | btv->c.nr,&eeprom_data[0x1e]); |
@@ -3114,7 +3500,7 @@ static int terratec_active_radio_upgrade(struct bttv *btv) | |||
3114 | static int __devinit pvr_altera_load(struct bttv *btv, u8 *micro, u32 microlen) | 3500 | static int __devinit pvr_altera_load(struct bttv *btv, u8 *micro, u32 microlen) |
3115 | { | 3501 | { |
3116 | u32 n; | 3502 | u32 n; |
3117 | u8 bits; | 3503 | u8 bits; |
3118 | int i; | 3504 | int i; |
3119 | 3505 | ||
3120 | gpio_inout(0xffffff,BTTV_ALT_DATA|BTTV_ALT_DCLK|BTTV_ALT_NCONFIG); | 3506 | gpio_inout(0xffffff,BTTV_ALT_DATA|BTTV_ALT_DCLK|BTTV_ALT_NCONFIG); |
@@ -3150,19 +3536,19 @@ static int __devinit pvr_altera_load(struct bttv *btv, u8 *micro, u32 microlen) | |||
3150 | 3536 | ||
3151 | static int __devinit pvr_boot(struct bttv *btv) | 3537 | static int __devinit pvr_boot(struct bttv *btv) |
3152 | { | 3538 | { |
3153 | const struct firmware *fw_entry; | 3539 | const struct firmware *fw_entry; |
3154 | int rc; | 3540 | int rc; |
3155 | 3541 | ||
3156 | rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev); | 3542 | rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev); |
3157 | if (rc != 0) { | 3543 | if (rc != 0) { |
3158 | printk(KERN_WARNING "bttv%d: no altera firmware [via hotplug]\n", | 3544 | printk(KERN_WARNING "bttv%d: no altera firmware [via hotplug]\n", |
3159 | btv->c.nr); | 3545 | btv->c.nr); |
3160 | return rc; | 3546 | return rc; |
3161 | } | 3547 | } |
3162 | rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size); | 3548 | rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size); |
3163 | printk(KERN_INFO "bttv%d: altera firmware upload %s\n", | 3549 | printk(KERN_INFO "bttv%d: altera firmware upload %s\n", |
3164 | btv->c.nr, (rc < 0) ? "failed" : "ok"); | 3550 | btv->c.nr, (rc < 0) ? "failed" : "ok"); |
3165 | release_firmware(fw_entry); | 3551 | release_firmware(fw_entry); |
3166 | return rc; | 3552 | return rc; |
3167 | } | 3553 | } |
3168 | 3554 | ||
@@ -3176,33 +3562,33 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3176 | unsigned long serial = 0; | 3562 | unsigned long serial = 0; |
3177 | 3563 | ||
3178 | if (btv->c.type == 0) { | 3564 | if (btv->c.type == 0) { |
3179 | /* this might be an antique... check for MMAC label in eeprom */ | 3565 | /* this might be an antique... check for MMAC label in eeprom */ |
3180 | if ((ee[0]=='M') && (ee[1]=='M') && (ee[2]=='A') && (ee[3]=='C')) { | 3566 | if ((ee[0]=='M') && (ee[1]=='M') && (ee[2]=='A') && (ee[3]=='C')) { |
3181 | unsigned char checksum = 0; | 3567 | unsigned char checksum = 0; |
3182 | for (i =0; i<21; i++) | 3568 | for (i =0; i<21; i++) |
3183 | checksum += ee[i]; | 3569 | checksum += ee[i]; |
3184 | if (checksum != ee[21]) | 3570 | if (checksum != ee[21]) |
3185 | return; | 3571 | return; |
3186 | btv->c.type = BTTV_OSPREY1x0_848; | 3572 | btv->c.type = BTTV_BOARD_OSPREY1x0_848; |
3187 | for (i = 12; i < 21; i++) | 3573 | for (i = 12; i < 21; i++) |
3188 | serial *= 10, serial += ee[i] - '0'; | 3574 | serial *= 10, serial += ee[i] - '0'; |
3189 | } | 3575 | } |
3190 | } else { | 3576 | } else { |
3191 | unsigned short type; | 3577 | unsigned short type; |
3192 | int offset = 4*16; | 3578 | int offset = 4*16; |
3193 | 3579 | ||
3194 | for(; offset < 8*16; offset += 16) { | 3580 | for(; offset < 8*16; offset += 16) { |
3195 | unsigned short checksum = 0; | 3581 | unsigned short checksum = 0; |
3196 | /* verify the checksum */ | 3582 | /* verify the checksum */ |
3197 | for(i = 0; i<14; i++) checksum += ee[i+offset]; | 3583 | for(i = 0; i<14; i++) checksum += ee[i+offset]; |
3198 | checksum = ~checksum; /* no idea why */ | 3584 | checksum = ~checksum; /* no idea why */ |
3199 | if ((((checksum>>8)&0x0FF) == ee[offset+14]) && | 3585 | if ((((checksum>>8)&0x0FF) == ee[offset+14]) && |
3200 | ((checksum & 0x0FF) == ee[offset+15])) { | 3586 | ((checksum & 0x0FF) == ee[offset+15])) { |
3201 | break; | 3587 | break; |
3202 | } | 3588 | } |
3203 | } | 3589 | } |
3204 | 3590 | ||
3205 | if (offset >= 8*16) | 3591 | if (offset >= 8*16) |
3206 | return; | 3592 | return; |
3207 | 3593 | ||
3208 | /* found a valid descriptor */ | 3594 | /* found a valid descriptor */ |
@@ -3212,47 +3598,47 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3212 | 3598 | ||
3213 | /* 848 based */ | 3599 | /* 848 based */ |
3214 | case 0x0004: | 3600 | case 0x0004: |
3215 | btv->c.type = BTTV_OSPREY1x0_848; | 3601 | btv->c.type = BTTV_BOARD_OSPREY1x0_848; |
3216 | break; | 3602 | break; |
3217 | case 0x0005: | 3603 | case 0x0005: |
3218 | btv->c.type = BTTV_OSPREY101_848; | 3604 | btv->c.type = BTTV_BOARD_OSPREY101_848; |
3219 | break; | 3605 | break; |
3220 | 3606 | ||
3221 | /* 878 based */ | 3607 | /* 878 based */ |
3222 | case 0x0012: | 3608 | case 0x0012: |
3223 | case 0x0013: | 3609 | case 0x0013: |
3224 | btv->c.type = BTTV_OSPREY1x0; | 3610 | btv->c.type = BTTV_BOARD_OSPREY1x0; |
3225 | break; | 3611 | break; |
3226 | case 0x0014: | 3612 | case 0x0014: |
3227 | case 0x0015: | 3613 | case 0x0015: |
3228 | btv->c.type = BTTV_OSPREY1x1; | 3614 | btv->c.type = BTTV_BOARD_OSPREY1x1; |
3229 | break; | 3615 | break; |
3230 | case 0x0016: | 3616 | case 0x0016: |
3231 | case 0x0017: | 3617 | case 0x0017: |
3232 | case 0x0020: | 3618 | case 0x0020: |
3233 | btv->c.type = BTTV_OSPREY1x1_SVID; | 3619 | btv->c.type = BTTV_BOARD_OSPREY1x1_SVID; |
3234 | break; | 3620 | break; |
3235 | case 0x0018: | 3621 | case 0x0018: |
3236 | case 0x0019: | 3622 | case 0x0019: |
3237 | case 0x001E: | 3623 | case 0x001E: |
3238 | case 0x001F: | 3624 | case 0x001F: |
3239 | btv->c.type = BTTV_OSPREY2xx; | 3625 | btv->c.type = BTTV_BOARD_OSPREY2xx; |
3240 | break; | 3626 | break; |
3241 | case 0x001A: | 3627 | case 0x001A: |
3242 | case 0x001B: | 3628 | case 0x001B: |
3243 | btv->c.type = BTTV_OSPREY2x0_SVID; | 3629 | btv->c.type = BTTV_BOARD_OSPREY2x0_SVID; |
3244 | break; | 3630 | break; |
3245 | case 0x0040: | 3631 | case 0x0040: |
3246 | btv->c.type = BTTV_OSPREY500; | 3632 | btv->c.type = BTTV_BOARD_OSPREY500; |
3247 | break; | 3633 | break; |
3248 | case 0x0050: | 3634 | case 0x0050: |
3249 | case 0x0056: | 3635 | case 0x0056: |
3250 | btv->c.type = BTTV_OSPREY540; | 3636 | btv->c.type = BTTV_BOARD_OSPREY540; |
3251 | /* bttv_osprey_540_init(btv); */ | 3637 | /* bttv_osprey_540_init(btv); */ |
3252 | break; | 3638 | break; |
3253 | case 0x0060: | 3639 | case 0x0060: |
3254 | case 0x0070: | 3640 | case 0x0070: |
3255 | btv->c.type = BTTV_OSPREY2x0; | 3641 | btv->c.type = BTTV_BOARD_OSPREY2x0; |
3256 | /* enable output on select control lines */ | 3642 | /* enable output on select control lines */ |
3257 | gpio_inout(0xffffff,0x000303); | 3643 | gpio_inout(0xffffff,0x000303); |
3258 | break; | 3644 | break; |
@@ -3274,27 +3660,27 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3274 | /* AVermedia specific stuff, from bktr_card.c */ | 3660 | /* AVermedia specific stuff, from bktr_card.c */ |
3275 | 3661 | ||
3276 | static int tuner_0_table[] = { | 3662 | static int tuner_0_table[] = { |
3277 | TUNER_PHILIPS_NTSC, TUNER_PHILIPS_PAL /* PAL-BG*/, | 3663 | TUNER_PHILIPS_NTSC, TUNER_PHILIPS_PAL /* PAL-BG*/, |
3278 | TUNER_PHILIPS_PAL, TUNER_PHILIPS_PAL /* PAL-I*/, | 3664 | TUNER_PHILIPS_PAL, TUNER_PHILIPS_PAL /* PAL-I*/, |
3279 | TUNER_PHILIPS_PAL, TUNER_PHILIPS_PAL, | 3665 | TUNER_PHILIPS_PAL, TUNER_PHILIPS_PAL, |
3280 | TUNER_PHILIPS_SECAM, TUNER_PHILIPS_SECAM, | 3666 | TUNER_PHILIPS_SECAM, TUNER_PHILIPS_SECAM, |
3281 | TUNER_PHILIPS_SECAM, TUNER_PHILIPS_PAL, | 3667 | TUNER_PHILIPS_SECAM, TUNER_PHILIPS_PAL, |
3282 | TUNER_PHILIPS_FM1216ME_MK3 }; | 3668 | TUNER_PHILIPS_FM1216ME_MK3 }; |
3283 | 3669 | ||
3284 | static int tuner_1_table[] = { | 3670 | static int tuner_1_table[] = { |
3285 | TUNER_TEMIC_NTSC, TUNER_TEMIC_PAL, | 3671 | TUNER_TEMIC_NTSC, TUNER_TEMIC_PAL, |
3286 | TUNER_TEMIC_PAL, TUNER_TEMIC_PAL, | 3672 | TUNER_TEMIC_PAL, TUNER_TEMIC_PAL, |
3287 | TUNER_TEMIC_PAL, TUNER_TEMIC_PAL, | 3673 | TUNER_TEMIC_PAL, TUNER_TEMIC_PAL, |
3288 | TUNER_TEMIC_4012FY5, TUNER_TEMIC_4012FY5, /* TUNER_TEMIC_SECAM */ | 3674 | TUNER_TEMIC_4012FY5, TUNER_TEMIC_4012FY5, /* TUNER_TEMIC_SECAM */ |
3289 | TUNER_TEMIC_4012FY5, TUNER_TEMIC_PAL}; | 3675 | TUNER_TEMIC_4012FY5, TUNER_TEMIC_PAL}; |
3290 | 3676 | ||
3291 | static void __devinit avermedia_eeprom(struct bttv *btv) | 3677 | static void __devinit avermedia_eeprom(struct bttv *btv) |
3292 | { | 3678 | { |
3293 | int tuner_make,tuner_tv_fm,tuner_format,tuner=0; | 3679 | int tuner_make,tuner_tv_fm,tuner_format,tuner=0; |
3294 | 3680 | ||
3295 | tuner_make = (eeprom_data[0x41] & 0x7); | 3681 | tuner_make = (eeprom_data[0x41] & 0x7); |
3296 | tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3; | 3682 | tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3; |
3297 | tuner_format = (eeprom_data[0x42] & 0xf0) >> 4; | 3683 | tuner_format = (eeprom_data[0x42] & 0xf0) >> 4; |
3298 | btv->has_remote = (eeprom_data[0x42] & 0x01); | 3684 | btv->has_remote = (eeprom_data[0x42] & 0x01); |
3299 | 3685 | ||
3300 | if (tuner_make == 0 || tuner_make == 2) | 3686 | if (tuner_make == 0 || tuner_make == 2) |
@@ -3325,13 +3711,13 @@ void bttv_tda9880_setnorm(struct bttv *btv, int norm) | |||
3325 | { | 3711 | { |
3326 | /* fix up our card entry */ | 3712 | /* fix up our card entry */ |
3327 | if(norm==VIDEO_MODE_NTSC) { | 3713 | if(norm==VIDEO_MODE_NTSC) { |
3328 | bttv_tvcards[BTTV_VOODOOTV_FM].audiomux[0]=0x957fff; | 3714 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[0]=0x957fff; |
3329 | bttv_tvcards[BTTV_VOODOOTV_FM].audiomux[4]=0x957fff; | 3715 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[4]=0x957fff; |
3330 | dprintk("bttv_tda9880_setnorm to NTSC\n"); | 3716 | dprintk("bttv_tda9880_setnorm to NTSC\n"); |
3331 | } | 3717 | } |
3332 | else { | 3718 | else { |
3333 | bttv_tvcards[BTTV_VOODOOTV_FM].audiomux[0]=0x947fff; | 3719 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[0]=0x947fff; |
3334 | bttv_tvcards[BTTV_VOODOOTV_FM].audiomux[4]=0x947fff; | 3720 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[4]=0x947fff; |
3335 | dprintk("bttv_tda9880_setnorm to PAL\n"); | 3721 | dprintk("bttv_tda9880_setnorm to PAL\n"); |
3336 | } | 3722 | } |
3337 | /* set GPIO according */ | 3723 | /* set GPIO according */ |
@@ -3342,7 +3728,7 @@ void bttv_tda9880_setnorm(struct bttv *btv, int norm) | |||
3342 | 3728 | ||
3343 | /* | 3729 | /* |
3344 | * reset/enable the MSP on some Hauppauge cards | 3730 | * reset/enable the MSP on some Hauppauge cards |
3345 | * Thanks to Kyösti Mälkki (kmalkki@cc.hut.fi)! | 3731 | * Thanks to Kyösti Mälkki (kmalkki@cc.hut.fi)! |
3346 | * | 3732 | * |
3347 | * Hauppauge: pin 5 | 3733 | * Hauppauge: pin 5 |
3348 | * Voodoo: pin 20 | 3734 | * Voodoo: pin 20 |
@@ -3353,7 +3739,7 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin) | |||
3353 | 3739 | ||
3354 | gpio_inout(mask,mask); | 3740 | gpio_inout(mask,mask); |
3355 | gpio_bits(mask,0); | 3741 | gpio_bits(mask,0); |
3356 | udelay(2500); | 3742 | udelay(2500); |
3357 | gpio_bits(mask,mask); | 3743 | gpio_bits(mask,mask); |
3358 | 3744 | ||
3359 | if (bttv_gpio) | 3745 | if (bttv_gpio) |
@@ -3429,7 +3815,7 @@ static void __devinit init_PXC200(struct bttv *btv) | |||
3429 | udelay(10); | 3815 | udelay(10); |
3430 | gpio_write(1<<2); | 3816 | gpio_write(1<<2); |
3431 | 3817 | ||
3432 | for (i = 0; i < ARRAY_SIZE(vals); i++) { | 3818 | for (i = 0; i < ARRAY_SIZE(vals); i++) { |
3433 | tmp=bttv_I2CWrite(btv,0x1E,0,vals[i],1); | 3819 | tmp=bttv_I2CWrite(btv,0x1E,0,vals[i],1); |
3434 | if (tmp != -1) { | 3820 | if (tmp != -1) { |
3435 | printk(KERN_INFO | 3821 | printk(KERN_INFO |
@@ -3872,30 +4258,30 @@ avermedia_tv_stereo_audio(struct bttv *btv, struct video_audio *v, int set) | |||
3872 | static void | 4258 | static void |
3873 | lt9415_audio(struct bttv *btv, struct video_audio *v, int set) | 4259 | lt9415_audio(struct bttv *btv, struct video_audio *v, int set) |
3874 | { | 4260 | { |
3875 | int val = 0; | 4261 | int val = 0; |
3876 | 4262 | ||
3877 | if (gpio_read() & 0x4000) { | 4263 | if (gpio_read() & 0x4000) { |
3878 | v->mode = VIDEO_SOUND_MONO; | 4264 | v->mode = VIDEO_SOUND_MONO; |
3879 | return; | 4265 | return; |
3880 | } | 4266 | } |
3881 | 4267 | ||
3882 | if (set) { | 4268 | if (set) { |
3883 | if (v->mode & VIDEO_SOUND_LANG2) /* A2 SAP */ | 4269 | if (v->mode & VIDEO_SOUND_LANG2) /* A2 SAP */ |
3884 | val = 0x0080; | 4270 | val = 0x0080; |
3885 | if (v->mode & VIDEO_SOUND_STEREO) /* A2 stereo */ | 4271 | if (v->mode & VIDEO_SOUND_STEREO) /* A2 stereo */ |
3886 | val = 0x0880; | 4272 | val = 0x0880; |
3887 | if ((v->mode & VIDEO_SOUND_LANG1) || | 4273 | if ((v->mode & VIDEO_SOUND_LANG1) || |
3888 | (v->mode & VIDEO_SOUND_MONO)) | 4274 | (v->mode & VIDEO_SOUND_MONO)) |
3889 | val = 0; | 4275 | val = 0; |
3890 | gpio_bits(0x0880, val); | 4276 | gpio_bits(0x0880, val); |
3891 | if (bttv_gpio) | 4277 | if (bttv_gpio) |
3892 | bttv_gpio_tracking(btv,"lt9415"); | 4278 | bttv_gpio_tracking(btv,"lt9415"); |
3893 | } else { | 4279 | } else { |
3894 | /* autodetect doesn't work with this card :-( */ | 4280 | /* autodetect doesn't work with this card :-( */ |
3895 | v->mode = VIDEO_SOUND_MONO | VIDEO_SOUND_STEREO | | 4281 | v->mode = VIDEO_SOUND_MONO | VIDEO_SOUND_STEREO | |
3896 | VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; | 4282 | VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; |
3897 | return; | 4283 | return; |
3898 | } | 4284 | } |
3899 | } | 4285 | } |
3900 | 4286 | ||
3901 | /* TDA9821 on TerraTV+ Bt848, Bt878 */ | 4287 | /* TDA9821 on TerraTV+ Bt848, Bt878 */ |
@@ -4018,26 +4404,26 @@ fv2000s_audio(struct bttv *btv, struct video_audio *v, int set) | |||
4018 | static void | 4404 | static void |
4019 | windvr_audio(struct bttv *btv, struct video_audio *v, int set) | 4405 | windvr_audio(struct bttv *btv, struct video_audio *v, int set) |
4020 | { | 4406 | { |
4021 | unsigned long val = 0; | 4407 | unsigned long val = 0; |
4022 | 4408 | ||
4023 | if (set) { | 4409 | if (set) { |
4024 | if (v->mode & VIDEO_SOUND_MONO) | 4410 | if (v->mode & VIDEO_SOUND_MONO) |
4025 | val = 0x040000; | 4411 | val = 0x040000; |
4026 | if (v->mode & VIDEO_SOUND_LANG1) | 4412 | if (v->mode & VIDEO_SOUND_LANG1) |
4027 | val = 0; | 4413 | val = 0; |
4028 | if (v->mode & VIDEO_SOUND_LANG2) | 4414 | if (v->mode & VIDEO_SOUND_LANG2) |
4029 | val = 0x100000; | 4415 | val = 0x100000; |
4030 | if (v->mode & VIDEO_SOUND_STEREO) | 4416 | if (v->mode & VIDEO_SOUND_STEREO) |
4031 | val = 0; | 4417 | val = 0; |
4032 | if (val) { | 4418 | if (val) { |
4033 | gpio_bits(0x140000, val); | 4419 | gpio_bits(0x140000, val); |
4034 | if (bttv_gpio) | 4420 | if (bttv_gpio) |
4035 | bttv_gpio_tracking(btv,"windvr"); | 4421 | bttv_gpio_tracking(btv,"windvr"); |
4036 | } | 4422 | } |
4037 | } else { | 4423 | } else { |
4038 | v->mode = VIDEO_SOUND_MONO | VIDEO_SOUND_STEREO | | 4424 | v->mode = VIDEO_SOUND_MONO | VIDEO_SOUND_STEREO | |
4039 | VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; | 4425 | VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; |
4040 | } | 4426 | } |
4041 | } | 4427 | } |
4042 | 4428 | ||
4043 | /* | 4429 | /* |
@@ -4280,10 +4666,10 @@ static void kodicom4400r_init(struct bttv *btv) | |||
4280 | static void xguard_muxsel(struct bttv *btv, unsigned int input) | 4666 | static void xguard_muxsel(struct bttv *btv, unsigned int input) |
4281 | { | 4667 | { |
4282 | static const int masks[] = { | 4668 | static const int masks[] = { |
4283 | ENB0, ENB0|IN00, ENB0|IN10, ENB0|IN00|IN10, | 4669 | ENB0, ENB0|IN00, ENB0|IN10, ENB0|IN00|IN10, |
4284 | ENA0, ENA0|IN00, ENA0|IN10, ENA0|IN00|IN10, | 4670 | ENA0, ENA0|IN00, ENA0|IN10, ENA0|IN00|IN10, |
4285 | ENB1, ENB1|IN01, ENB1|IN11, ENB1|IN01|IN11, | 4671 | ENB1, ENB1|IN01, ENB1|IN11, ENB1|IN01|IN11, |
4286 | ENA1, ENA1|IN01, ENA1|IN11, ENA1|IN01|IN11, | 4672 | ENA1, ENA1|IN01, ENA1|IN11, ENA1|IN01|IN11, |
4287 | }; | 4673 | }; |
4288 | gpio_write(masks[input%16]); | 4674 | gpio_write(masks[input%16]); |
4289 | } | 4675 | } |
@@ -4388,10 +4774,10 @@ static void ivc120_muxsel(struct bttv *btv, unsigned int input) | |||
4388 | 4774 | ||
4389 | static void PXC200_muxsel(struct bttv *btv, unsigned int input) | 4775 | static void PXC200_muxsel(struct bttv *btv, unsigned int input) |
4390 | { | 4776 | { |
4391 | int rc; | 4777 | int rc; |
4392 | long mux; | 4778 | long mux; |
4393 | int bitmask; | 4779 | int bitmask; |
4394 | unsigned char buf[2]; | 4780 | unsigned char buf[2]; |
4395 | 4781 | ||
4396 | /* Read PIC config to determine if this is a PXC200F */ | 4782 | /* Read PIC config to determine if this is a PXC200F */ |
4397 | /* PX_I2C_CMD_CFG*/ | 4783 | /* PX_I2C_CMD_CFG*/ |
@@ -4421,14 +4807,14 @@ static void PXC200_muxsel(struct bttv *btv, unsigned int input) | |||
4421 | /* bitmask=0x30f; */ | 4807 | /* bitmask=0x30f; */ |
4422 | bitmask=0x302; | 4808 | bitmask=0x302; |
4423 | /* check whether we have a PXC200A */ | 4809 | /* check whether we have a PXC200A */ |
4424 | if (btv->cardid == PX_PXC200A_CARDID) { | 4810 | if (btv->cardid == PX_PXC200A_CARDID) { |
4425 | bitmask ^= 0x180; /* use 7 and 9, not 8 and 9 */ | 4811 | bitmask ^= 0x180; /* use 7 and 9, not 8 and 9 */ |
4426 | bitmask |= 7<<4; /* the DAC */ | 4812 | bitmask |= 7<<4; /* the DAC */ |
4427 | } | 4813 | } |
4428 | btwrite(bitmask, BT848_GPIO_OUT_EN); | 4814 | btwrite(bitmask, BT848_GPIO_OUT_EN); |
4429 | 4815 | ||
4430 | bitmask = btread(BT848_GPIO_DATA); | 4816 | bitmask = btread(BT848_GPIO_DATA); |
4431 | if (btv->cardid == PX_PXC200A_CARDID) | 4817 | if (btv->cardid == PX_PXC200A_CARDID) |
4432 | bitmask = (bitmask & ~0x280) | ((mux & 2) << 8) | ((mux & 1) << 7); | 4818 | bitmask = (bitmask & ~0x280) | ((mux & 2) << 8) | ((mux & 1) << 7); |
4433 | else /* older device */ | 4819 | else /* older device */ |
4434 | bitmask = (bitmask & ~0x300) | ((mux & 3) << 8); | 4820 | bitmask = (bitmask & ~0x300) | ((mux & 3) << 8); |
@@ -4441,7 +4827,7 @@ static void PXC200_muxsel(struct bttv *btv, unsigned int input) | |||
4441 | * | 4827 | * |
4442 | * needed because bttv-driver sets mux before calling this function | 4828 | * needed because bttv-driver sets mux before calling this function |
4443 | */ | 4829 | */ |
4444 | if (btv->cardid == PX_PXC200A_CARDID) | 4830 | if (btv->cardid == PX_PXC200A_CARDID) |
4445 | btaor(2<<5, ~BT848_IFORM_MUXSEL, BT848_IFORM); | 4831 | btaor(2<<5, ~BT848_IFORM_MUXSEL, BT848_IFORM); |
4446 | else /* older device */ | 4832 | else /* older device */ |
4447 | btand(~BT848_IFORM_MUXSEL,BT848_IFORM); | 4833 | btand(~BT848_IFORM_MUXSEL,BT848_IFORM); |
@@ -4485,10 +4871,9 @@ void __devinit bttv_check_chipset(void) | |||
4485 | } | 4871 | } |
4486 | if (UNSET != latency) | 4872 | if (UNSET != latency) |
4487 | printk(KERN_INFO "bttv: pci latency fixup [%d]\n",latency); | 4873 | printk(KERN_INFO "bttv: pci latency fixup [%d]\n",latency); |
4488 | 4874 | while ((dev = pci_get_device(PCI_VENDOR_ID_INTEL, | |
4489 | while ((dev = pci_find_device(PCI_VENDOR_ID_INTEL, | ||
4490 | PCI_DEVICE_ID_INTEL_82441, dev))) { | 4875 | PCI_DEVICE_ID_INTEL_82441, dev))) { |
4491 | unsigned char b; | 4876 | unsigned char b; |
4492 | pci_read_config_byte(dev, 0x53, &b); | 4877 | pci_read_config_byte(dev, 0x53, &b); |
4493 | if (bttv_debug) | 4878 | if (bttv_debug) |
4494 | printk(KERN_INFO "bttv: Host bridge: 82441FX Natoma, " | 4879 | printk(KERN_INFO "bttv: Host bridge: 82441FX Natoma, " |
@@ -4498,7 +4883,7 @@ void __devinit bttv_check_chipset(void) | |||
4498 | 4883 | ||
4499 | int __devinit bttv_handle_chipset(struct bttv *btv) | 4884 | int __devinit bttv_handle_chipset(struct bttv *btv) |
4500 | { | 4885 | { |
4501 | unsigned char command; | 4886 | unsigned char command; |
4502 | 4887 | ||
4503 | if (!triton1 && !vsfx && UNSET == latency) | 4888 | if (!triton1 && !vsfx && UNSET == latency) |
4504 | return 0; | 4889 | return 0; |
@@ -4519,13 +4904,13 @@ int __devinit bttv_handle_chipset(struct bttv *btv) | |||
4519 | btv->triton1 = BT848_INT_ETBF; | 4904 | btv->triton1 = BT848_INT_ETBF; |
4520 | } else { | 4905 | } else { |
4521 | /* bt878 has a bit in the pci config space for it */ | 4906 | /* bt878 has a bit in the pci config space for it */ |
4522 | pci_read_config_byte(btv->c.pci, BT878_DEVCTRL, &command); | 4907 | pci_read_config_byte(btv->c.pci, BT878_DEVCTRL, &command); |
4523 | if (triton1) | 4908 | if (triton1) |
4524 | command |= BT878_EN_TBFX; | 4909 | command |= BT878_EN_TBFX; |
4525 | if (vsfx) | 4910 | if (vsfx) |
4526 | command |= BT878_EN_VSFX; | 4911 | command |= BT878_EN_VSFX; |
4527 | pci_write_config_byte(btv->c.pci, BT878_DEVCTRL, command); | 4912 | pci_write_config_byte(btv->c.pci, BT878_DEVCTRL, command); |
4528 | } | 4913 | } |
4529 | if (UNSET != latency) | 4914 | if (UNSET != latency) |
4530 | pci_write_config_byte(btv->c.pci, PCI_LATENCY_TIMER, latency); | 4915 | pci_write_config_byte(btv->c.pci, PCI_LATENCY_TIMER, latency); |
4531 | return 0; | 4916 | return 0; |