diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 474 |
1 files changed, 311 insertions, 163 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index 4da91d535a5b..f2268631b7c0 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -126,27 +126,27 @@ struct cx88_board cx88_boards[] = { | |||
126 | .input = {{ | 126 | .input = {{ |
127 | .type = CX88_VMUX_TELEVISION, | 127 | .type = CX88_VMUX_TELEVISION, |
128 | .vmux = 0, | 128 | .vmux = 0, |
129 | .gpio0 = 0x03ff, | 129 | .gpio0 = 0x03ff, |
130 | },{ | 130 | },{ |
131 | .type = CX88_VMUX_COMPOSITE1, | 131 | .type = CX88_VMUX_COMPOSITE1, |
132 | .vmux = 1, | 132 | .vmux = 1, |
133 | .gpio0 = 0x03fe, | 133 | .gpio0 = 0x03fe, |
134 | },{ | 134 | },{ |
135 | .type = CX88_VMUX_SVIDEO, | 135 | .type = CX88_VMUX_SVIDEO, |
136 | .vmux = 2, | 136 | .vmux = 2, |
137 | .gpio0 = 0x03fe, | 137 | .gpio0 = 0x03fe, |
138 | }}, | 138 | }}, |
139 | }, | 139 | }, |
140 | [CX88_BOARD_WINFAST2000XP_EXPERT] = { | 140 | [CX88_BOARD_WINFAST2000XP_EXPERT] = { |
141 | .name = "Leadtek Winfast 2000XP Expert", | 141 | .name = "Leadtek Winfast 2000XP Expert", |
142 | .tuner_type = TUNER_PHILIPS_4IN1, | 142 | .tuner_type = TUNER_PHILIPS_4IN1, |
143 | .radio_type = UNSET, | 143 | .radio_type = UNSET, |
144 | .tuner_addr = ADDR_UNSET, | 144 | .tuner_addr = ADDR_UNSET, |
145 | .radio_addr = ADDR_UNSET, | 145 | .radio_addr = ADDR_UNSET, |
146 | .tda9887_conf = TDA9887_PRESENT, | 146 | .tda9887_conf = TDA9887_PRESENT, |
147 | .input = {{ | 147 | .input = {{ |
148 | .type = CX88_VMUX_TELEVISION, | 148 | .type = CX88_VMUX_TELEVISION, |
149 | .vmux = 0, | 149 | .vmux = 0, |
150 | .gpio0 = 0x00F5e700, | 150 | .gpio0 = 0x00F5e700, |
151 | .gpio1 = 0x00003004, | 151 | .gpio1 = 0x00003004, |
152 | .gpio2 = 0x00F5e700, | 152 | .gpio2 = 0x00F5e700, |
@@ -165,16 +165,16 @@ struct cx88_board cx88_boards[] = { | |||
165 | .gpio1 = 0x00003004, | 165 | .gpio1 = 0x00003004, |
166 | .gpio2 = 0x00F5c700, | 166 | .gpio2 = 0x00F5c700, |
167 | .gpio3 = 0x02000000, | 167 | .gpio3 = 0x02000000, |
168 | }}, | 168 | }}, |
169 | .radio = { | 169 | .radio = { |
170 | .type = CX88_RADIO, | 170 | .type = CX88_RADIO, |
171 | .gpio0 = 0x00F5d700, | 171 | .gpio0 = 0x00F5d700, |
172 | .gpio1 = 0x00003004, | 172 | .gpio1 = 0x00003004, |
173 | .gpio2 = 0x00F5d700, | 173 | .gpio2 = 0x00F5d700, |
174 | .gpio3 = 0x02000000, | 174 | .gpio3 = 0x02000000, |
175 | }, | 175 | }, |
176 | }, | 176 | }, |
177 | [CX88_BOARD_AVERTV_303] = { | 177 | [CX88_BOARD_AVERTV_STUDIO_303] = { |
178 | .name = "AverTV Studio 303 (M126)", | 178 | .name = "AverTV Studio 303 (M126)", |
179 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 179 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
180 | .radio_type = UNSET, | 180 | .radio_type = UNSET, |
@@ -206,7 +206,7 @@ struct cx88_board cx88_boards[] = { | |||
206 | .radio_type = UNSET, | 206 | .radio_type = UNSET, |
207 | .tuner_addr = ADDR_UNSET, | 207 | .tuner_addr = ADDR_UNSET, |
208 | .radio_addr = ADDR_UNSET, | 208 | .radio_addr = ADDR_UNSET, |
209 | .tda9887_conf = TDA9887_PRESENT, | 209 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER_NTSC, |
210 | .input = {{ | 210 | .input = {{ |
211 | .type = CX88_VMUX_TELEVISION, | 211 | .type = CX88_VMUX_TELEVISION, |
212 | .vmux = 0, | 212 | .vmux = 0, |
@@ -214,32 +214,32 @@ struct cx88_board cx88_boards[] = { | |||
214 | .gpio1 = 0x000080c0, | 214 | .gpio1 = 0x000080c0, |
215 | .gpio2 = 0x0000ff40, | 215 | .gpio2 = 0x0000ff40, |
216 | },{ | 216 | },{ |
217 | .type = CX88_VMUX_COMPOSITE1, | 217 | .type = CX88_VMUX_COMPOSITE1, |
218 | .vmux = 1, | 218 | .vmux = 1, |
219 | .gpio0 = 0x000040bf, | 219 | .gpio0 = 0x000040bf, |
220 | .gpio1 = 0x000080c0, | 220 | .gpio1 = 0x000080c0, |
221 | .gpio2 = 0x0000ff40, | 221 | .gpio2 = 0x0000ff40, |
222 | },{ | 222 | },{ |
223 | .type = CX88_VMUX_SVIDEO, | 223 | .type = CX88_VMUX_SVIDEO, |
224 | .vmux = 2, | 224 | .vmux = 2, |
225 | .gpio0 = 0x000040bf, | 225 | .gpio0 = 0x000040bf, |
226 | .gpio1 = 0x000080c0, | 226 | .gpio1 = 0x000080c0, |
227 | .gpio2 = 0x0000ff40, | 227 | .gpio2 = 0x0000ff40, |
228 | }}, | 228 | }}, |
229 | .radio = { | 229 | .radio = { |
230 | .type = CX88_RADIO, | 230 | .type = CX88_RADIO, |
231 | }, | 231 | }, |
232 | }, | 232 | }, |
233 | [CX88_BOARD_WINFAST_DV2000] = { | 233 | [CX88_BOARD_WINFAST_DV2000] = { |
234 | .name = "Leadtek Winfast DV2000", | 234 | .name = "Leadtek Winfast DV2000", |
235 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 235 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, |
236 | .radio_type = UNSET, | 236 | .radio_type = UNSET, |
237 | .tuner_addr = ADDR_UNSET, | 237 | .tuner_addr = ADDR_UNSET, |
238 | .radio_addr = ADDR_UNSET, | 238 | .radio_addr = ADDR_UNSET, |
239 | .tda9887_conf = TDA9887_PRESENT, | 239 | .tda9887_conf = TDA9887_PRESENT, |
240 | .input = {{ | 240 | .input = {{ |
241 | .type = CX88_VMUX_TELEVISION, | 241 | .type = CX88_VMUX_TELEVISION, |
242 | .vmux = 0, | 242 | .vmux = 0, |
243 | .gpio0 = 0x0035e700, | 243 | .gpio0 = 0x0035e700, |
244 | .gpio1 = 0x00003004, | 244 | .gpio1 = 0x00003004, |
245 | .gpio2 = 0x0035e700, | 245 | .gpio2 = 0x0035e700, |
@@ -260,14 +260,14 @@ struct cx88_board cx88_boards[] = { | |||
260 | .gpio2 = 0x02000000, | 260 | .gpio2 = 0x02000000, |
261 | .gpio3 = 0x02000000, | 261 | .gpio3 = 0x02000000, |
262 | }}, | 262 | }}, |
263 | .radio = { | 263 | .radio = { |
264 | .type = CX88_RADIO, | 264 | .type = CX88_RADIO, |
265 | .gpio0 = 0x0035d700, | 265 | .gpio0 = 0x0035d700, |
266 | .gpio1 = 0x00007004, | 266 | .gpio1 = 0x00007004, |
267 | .gpio2 = 0x0035d700, | 267 | .gpio2 = 0x0035d700, |
268 | .gpio3 = 0x02000000, | 268 | .gpio3 = 0x02000000, |
269 | }, | 269 | }, |
270 | }, | 270 | }, |
271 | [CX88_BOARD_LEADTEK_PVR2000] = { | 271 | [CX88_BOARD_LEADTEK_PVR2000] = { |
272 | // gpio values for PAL version from regspy by DScaler | 272 | // gpio values for PAL version from regspy by DScaler |
273 | .name = "Leadtek PVR 2000", | 273 | .name = "Leadtek PVR 2000", |
@@ -296,25 +296,25 @@ struct cx88_board cx88_boards[] = { | |||
296 | .blackbird = 1, | 296 | .blackbird = 1, |
297 | }, | 297 | }, |
298 | [CX88_BOARD_IODATA_GVVCP3PCI] = { | 298 | [CX88_BOARD_IODATA_GVVCP3PCI] = { |
299 | .name = "IODATA GV-VCP3/PCI", | 299 | .name = "IODATA GV-VCP3/PCI", |
300 | .tuner_type = TUNER_ABSENT, | 300 | .tuner_type = TUNER_ABSENT, |
301 | .radio_type = UNSET, | 301 | .radio_type = UNSET, |
302 | .tuner_addr = ADDR_UNSET, | 302 | .tuner_addr = ADDR_UNSET, |
303 | .radio_addr = ADDR_UNSET, | 303 | .radio_addr = ADDR_UNSET, |
304 | .input = {{ | 304 | .input = {{ |
305 | .type = CX88_VMUX_COMPOSITE1, | 305 | .type = CX88_VMUX_COMPOSITE1, |
306 | .vmux = 0, | 306 | .vmux = 0, |
307 | },{ | 307 | },{ |
308 | .type = CX88_VMUX_COMPOSITE2, | 308 | .type = CX88_VMUX_COMPOSITE2, |
309 | .vmux = 1, | 309 | .vmux = 1, |
310 | },{ | 310 | },{ |
311 | .type = CX88_VMUX_SVIDEO, | 311 | .type = CX88_VMUX_SVIDEO, |
312 | .vmux = 2, | 312 | .vmux = 2, |
313 | }}, | 313 | }}, |
314 | }, | 314 | }, |
315 | [CX88_BOARD_PROLINK_PLAYTVPVR] = { | 315 | [CX88_BOARD_PROLINK_PLAYTVPVR] = { |
316 | .name = "Prolink PlayTV PVR", | 316 | .name = "Prolink PlayTV PVR", |
317 | .tuner_type = TUNER_PHILIPS_FM1236_MK3, | 317 | .tuner_type = TUNER_PHILIPS_FM1236_MK3, |
318 | .radio_type = UNSET, | 318 | .radio_type = UNSET, |
319 | .tuner_addr = ADDR_UNSET, | 319 | .tuner_addr = ADDR_UNSET, |
320 | .radio_addr = ADDR_UNSET, | 320 | .radio_addr = ADDR_UNSET, |
@@ -348,15 +348,15 @@ struct cx88_board cx88_boards[] = { | |||
348 | .type = CX88_VMUX_TELEVISION, | 348 | .type = CX88_VMUX_TELEVISION, |
349 | .vmux = 0, | 349 | .vmux = 0, |
350 | .gpio0 = 0x0000fde6, | 350 | .gpio0 = 0x0000fde6, |
351 | },{ | 351 | },{ |
352 | .type = CX88_VMUX_SVIDEO, | 352 | .type = CX88_VMUX_SVIDEO, |
353 | .vmux = 2, | 353 | .vmux = 2, |
354 | .gpio0 = 0x0000fde6, // 0x0000fda6 L,R RCA audio in? | 354 | .gpio0 = 0x0000fde6, // 0x0000fda6 L,R RCA audio in? |
355 | }}, | 355 | }}, |
356 | .radio = { | 356 | .radio = { |
357 | .type = CX88_RADIO, | 357 | .type = CX88_RADIO, |
358 | .gpio0 = 0x0000fde2, | 358 | .gpio0 = 0x0000fde2, |
359 | }, | 359 | }, |
360 | .blackbird = 1, | 360 | .blackbird = 1, |
361 | }, | 361 | }, |
362 | [CX88_BOARD_MSI_TVANYWHERE] = { | 362 | [CX88_BOARD_MSI_TVANYWHERE] = { |
@@ -372,34 +372,34 @@ struct cx88_board cx88_boards[] = { | |||
372 | .gpio0 = 0x00000fbf, | 372 | .gpio0 = 0x00000fbf, |
373 | .gpio2 = 0x0000fc08, | 373 | .gpio2 = 0x0000fc08, |
374 | },{ | 374 | },{ |
375 | .type = CX88_VMUX_COMPOSITE1, | 375 | .type = CX88_VMUX_COMPOSITE1, |
376 | .vmux = 1, | 376 | .vmux = 1, |
377 | .gpio0 = 0x00000fbf, | 377 | .gpio0 = 0x00000fbf, |
378 | .gpio2 = 0x0000fc68, | 378 | .gpio2 = 0x0000fc68, |
379 | },{ | 379 | },{ |
380 | .type = CX88_VMUX_SVIDEO, | 380 | .type = CX88_VMUX_SVIDEO, |
381 | .vmux = 2, | 381 | .vmux = 2, |
382 | .gpio0 = 0x00000fbf, | 382 | .gpio0 = 0x00000fbf, |
383 | .gpio2 = 0x0000fc68, | 383 | .gpio2 = 0x0000fc68, |
384 | }}, | 384 | }}, |
385 | }, | 385 | }, |
386 | [CX88_BOARD_KWORLD_DVB_T] = { | 386 | [CX88_BOARD_KWORLD_DVB_T] = { |
387 | .name = "KWorld/VStream XPert DVB-T", | 387 | .name = "KWorld/VStream XPert DVB-T", |
388 | .tuner_type = TUNER_ABSENT, | 388 | .tuner_type = TUNER_ABSENT, |
389 | .radio_type = UNSET, | 389 | .radio_type = UNSET, |
390 | .tuner_addr = ADDR_UNSET, | 390 | .tuner_addr = ADDR_UNSET, |
391 | .radio_addr = ADDR_UNSET, | 391 | .radio_addr = ADDR_UNSET, |
392 | .input = {{ | 392 | .input = {{ |
393 | .type = CX88_VMUX_COMPOSITE1, | 393 | .type = CX88_VMUX_COMPOSITE1, |
394 | .vmux = 1, | 394 | .vmux = 1, |
395 | .gpio0 = 0x0700, | 395 | .gpio0 = 0x0700, |
396 | .gpio2 = 0x0101, | 396 | .gpio2 = 0x0101, |
397 | },{ | 397 | },{ |
398 | .type = CX88_VMUX_SVIDEO, | 398 | .type = CX88_VMUX_SVIDEO, |
399 | .vmux = 2, | 399 | .vmux = 2, |
400 | .gpio0 = 0x0700, | 400 | .gpio0 = 0x0700, |
401 | .gpio2 = 0x0101, | 401 | .gpio2 = 0x0101, |
402 | }}, | 402 | }}, |
403 | .dvb = 1, | 403 | .dvb = 1, |
404 | }, | 404 | }, |
405 | [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1] = { | 405 | [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1] = { |
@@ -425,27 +425,27 @@ struct cx88_board cx88_boards[] = { | |||
425 | .radio_type = UNSET, | 425 | .radio_type = UNSET, |
426 | .tuner_addr = ADDR_UNSET, | 426 | .tuner_addr = ADDR_UNSET, |
427 | .radio_addr = ADDR_UNSET, | 427 | .radio_addr = ADDR_UNSET, |
428 | .input = {{ | 428 | .input = {{ |
429 | .type = CX88_VMUX_TELEVISION, | 429 | .type = CX88_VMUX_TELEVISION, |
430 | .vmux = 0, | 430 | .vmux = 0, |
431 | .gpio0 = 0x07f8, | 431 | .gpio0 = 0x07f8, |
432 | },{ | 432 | },{ |
433 | .type = CX88_VMUX_DEBUG, | 433 | .type = CX88_VMUX_DEBUG, |
434 | .vmux = 0, | 434 | .vmux = 0, |
435 | .gpio0 = 0x07f9, // mono from tuner chip | 435 | .gpio0 = 0x07f9, // mono from tuner chip |
436 | },{ | 436 | },{ |
437 | .type = CX88_VMUX_COMPOSITE1, | 437 | .type = CX88_VMUX_COMPOSITE1, |
438 | .vmux = 1, | 438 | .vmux = 1, |
439 | .gpio0 = 0x000007fa, | 439 | .gpio0 = 0x000007fa, |
440 | },{ | 440 | },{ |
441 | .type = CX88_VMUX_SVIDEO, | 441 | .type = CX88_VMUX_SVIDEO, |
442 | .vmux = 2, | 442 | .vmux = 2, |
443 | .gpio0 = 0x000007fa, | 443 | .gpio0 = 0x000007fa, |
444 | }}, | 444 | }}, |
445 | .radio = { | 445 | .radio = { |
446 | .type = CX88_RADIO, | 446 | .type = CX88_RADIO, |
447 | .gpio0 = 0x000007f8, | 447 | .gpio0 = 0x000007f8, |
448 | }, | 448 | }, |
449 | }, | 449 | }, |
450 | [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q] = { | 450 | [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q] = { |
451 | .name = "DViCO FusionHDTV 3 Gold-Q", | 451 | .name = "DViCO FusionHDTV 3 Gold-Q", |
@@ -489,28 +489,28 @@ struct cx88_board cx88_boards[] = { | |||
489 | }}, | 489 | }}, |
490 | .dvb = 1, | 490 | .dvb = 1, |
491 | }, | 491 | }, |
492 | [CX88_BOARD_HAUPPAUGE_DVB_T1] = { | 492 | [CX88_BOARD_HAUPPAUGE_DVB_T1] = { |
493 | .name = "Hauppauge Nova-T DVB-T", | 493 | .name = "Hauppauge Nova-T DVB-T", |
494 | .tuner_type = TUNER_ABSENT, | 494 | .tuner_type = TUNER_ABSENT, |
495 | .radio_type = UNSET, | 495 | .radio_type = UNSET, |
496 | .tuner_addr = ADDR_UNSET, | 496 | .tuner_addr = ADDR_UNSET, |
497 | .radio_addr = ADDR_UNSET, | 497 | .radio_addr = ADDR_UNSET, |
498 | .input = {{ | 498 | .input = {{ |
499 | .type = CX88_VMUX_DVB, | 499 | .type = CX88_VMUX_DVB, |
500 | .vmux = 0, | 500 | .vmux = 0, |
501 | }}, | 501 | }}, |
502 | .dvb = 1, | 502 | .dvb = 1, |
503 | }, | 503 | }, |
504 | [CX88_BOARD_CONEXANT_DVB_T1] = { | 504 | [CX88_BOARD_CONEXANT_DVB_T1] = { |
505 | .name = "Conexant DVB-T reference design", | 505 | .name = "Conexant DVB-T reference design", |
506 | .tuner_type = TUNER_ABSENT, | 506 | .tuner_type = TUNER_ABSENT, |
507 | .radio_type = UNSET, | 507 | .radio_type = UNSET, |
508 | .tuner_addr = ADDR_UNSET, | 508 | .tuner_addr = ADDR_UNSET, |
509 | .radio_addr = ADDR_UNSET, | 509 | .radio_addr = ADDR_UNSET, |
510 | .input = {{ | 510 | .input = {{ |
511 | .type = CX88_VMUX_DVB, | 511 | .type = CX88_VMUX_DVB, |
512 | .vmux = 0, | 512 | .vmux = 0, |
513 | }}, | 513 | }}, |
514 | .dvb = 1, | 514 | .dvb = 1, |
515 | }, | 515 | }, |
516 | [CX88_BOARD_PROVIDEO_PV259] = { | 516 | [CX88_BOARD_PROVIDEO_PV259] = { |
@@ -543,12 +543,12 @@ struct cx88_board cx88_boards[] = { | |||
543 | .dvb = 1, | 543 | .dvb = 1, |
544 | }, | 544 | }, |
545 | [CX88_BOARD_DNTV_LIVE_DVB_T] = { | 545 | [CX88_BOARD_DNTV_LIVE_DVB_T] = { |
546 | .name = "digitalnow DNTV Live! DVB-T", | 546 | .name = "digitalnow DNTV Live! DVB-T", |
547 | .tuner_type = TUNER_ABSENT, | 547 | .tuner_type = TUNER_ABSENT, |
548 | .radio_type = UNSET, | 548 | .radio_type = UNSET, |
549 | .tuner_addr = ADDR_UNSET, | 549 | .tuner_addr = ADDR_UNSET, |
550 | .radio_addr = ADDR_UNSET, | 550 | .radio_addr = ADDR_UNSET, |
551 | .input = {{ | 551 | .input = {{ |
552 | .type = CX88_VMUX_COMPOSITE1, | 552 | .type = CX88_VMUX_COMPOSITE1, |
553 | .vmux = 1, | 553 | .vmux = 1, |
554 | .gpio0 = 0x00000700, | 554 | .gpio0 = 0x00000700, |
@@ -705,44 +705,44 @@ struct cx88_board cx88_boards[] = { | |||
705 | .gpio0 = 0xbf60, | 705 | .gpio0 = 0xbf60, |
706 | }, | 706 | }, |
707 | }, | 707 | }, |
708 | [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T] = { | 708 | [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T] = { |
709 | .name = "DViCO FusionHDTV 3 Gold-T", | 709 | .name = "DViCO FusionHDTV 3 Gold-T", |
710 | .tuner_type = TUNER_THOMSON_DTT7611, | 710 | .tuner_type = TUNER_THOMSON_DTT7611, |
711 | .radio_type = UNSET, | 711 | .radio_type = UNSET, |
712 | .tuner_addr = ADDR_UNSET, | 712 | .tuner_addr = ADDR_UNSET, |
713 | .radio_addr = ADDR_UNSET, | 713 | .radio_addr = ADDR_UNSET, |
714 | .input = {{ | 714 | .input = {{ |
715 | .type = CX88_VMUX_TELEVISION, | 715 | .type = CX88_VMUX_TELEVISION, |
716 | .vmux = 0, | 716 | .vmux = 0, |
717 | .gpio0 = 0x97ed, | 717 | .gpio0 = 0x97ed, |
718 | },{ | 718 | },{ |
719 | .type = CX88_VMUX_COMPOSITE1, | 719 | .type = CX88_VMUX_COMPOSITE1, |
720 | .vmux = 1, | 720 | .vmux = 1, |
721 | .gpio0 = 0x97e9, | 721 | .gpio0 = 0x97e9, |
722 | },{ | 722 | },{ |
723 | .type = CX88_VMUX_SVIDEO, | 723 | .type = CX88_VMUX_SVIDEO, |
724 | .vmux = 2, | 724 | .vmux = 2, |
725 | .gpio0 = 0x97e9, | 725 | .gpio0 = 0x97e9, |
726 | }}, | 726 | }}, |
727 | .dvb = 1, | 727 | .dvb = 1, |
728 | }, | 728 | }, |
729 | [CX88_BOARD_ADSTECH_DVB_T_PCI] = { | 729 | [CX88_BOARD_ADSTECH_DVB_T_PCI] = { |
730 | .name = "ADS Tech Instant TV DVB-T PCI", | 730 | .name = "ADS Tech Instant TV DVB-T PCI", |
731 | .tuner_type = TUNER_ABSENT, | 731 | .tuner_type = TUNER_ABSENT, |
732 | .radio_type = UNSET, | 732 | .radio_type = UNSET, |
733 | .tuner_addr = ADDR_UNSET, | 733 | .tuner_addr = ADDR_UNSET, |
734 | .radio_addr = ADDR_UNSET, | 734 | .radio_addr = ADDR_UNSET, |
735 | .input = {{ | 735 | .input = {{ |
736 | .type = CX88_VMUX_COMPOSITE1, | 736 | .type = CX88_VMUX_COMPOSITE1, |
737 | .vmux = 1, | 737 | .vmux = 1, |
738 | .gpio0 = 0x0700, | 738 | .gpio0 = 0x0700, |
739 | .gpio2 = 0x0101, | 739 | .gpio2 = 0x0101, |
740 | },{ | 740 | },{ |
741 | .type = CX88_VMUX_SVIDEO, | 741 | .type = CX88_VMUX_SVIDEO, |
742 | .vmux = 2, | 742 | .vmux = 2, |
743 | .gpio0 = 0x0700, | 743 | .gpio0 = 0x0700, |
744 | .gpio2 = 0x0101, | 744 | .gpio2 = 0x0101, |
745 | }}, | 745 | }}, |
746 | .dvb = 1, | 746 | .dvb = 1, |
747 | }, | 747 | }, |
748 | [CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1] = { | 748 | [CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1] = { |
@@ -762,20 +762,139 @@ struct cx88_board cx88_boards[] = { | |||
762 | .radio_addr = ADDR_UNSET, | 762 | .radio_addr = ADDR_UNSET, |
763 | .tda9887_conf = TDA9887_PRESENT, | 763 | .tda9887_conf = TDA9887_PRESENT, |
764 | .input = {{ | 764 | .input = {{ |
765 | .type = CX88_VMUX_TELEVISION, | 765 | .type = CX88_VMUX_TELEVISION, |
766 | .vmux = 0, | 766 | .vmux = 0, |
767 | .gpio0 = 0x87fd, | 767 | .gpio0 = 0x87fd, |
768 | },{ | 768 | },{ |
769 | .type = CX88_VMUX_COMPOSITE1, | 769 | .type = CX88_VMUX_COMPOSITE1, |
770 | .vmux = 1, | 770 | .vmux = 1, |
771 | .gpio0 = 0x87f9, | 771 | .gpio0 = 0x87f9, |
772 | },{ | 772 | },{ |
773 | .type = CX88_VMUX_SVIDEO, | 773 | .type = CX88_VMUX_SVIDEO, |
774 | .vmux = 2, | 774 | .vmux = 2, |
775 | .gpio0 = 0x87f9, | 775 | .gpio0 = 0x87f9, |
776 | }}, | 776 | }}, |
777 | .dvb = 1, | ||
778 | }, | ||
779 | [CX88_BOARD_AVERMEDIA_ULTRATV_MC_550] = { | ||
780 | .name = "AverMedia UltraTV Media Center PCI 550", | ||
781 | .tuner_type = TUNER_PHILIPS_FM1236_MK3, | ||
782 | .radio_type = UNSET, | ||
783 | .tuner_addr = ADDR_UNSET, | ||
784 | .radio_addr = ADDR_UNSET, | ||
785 | .tda9887_conf = TDA9887_PRESENT, | ||
786 | .blackbird = 1, | ||
787 | .input = {{ | ||
788 | .type = CX88_VMUX_COMPOSITE1, | ||
789 | .vmux = 0, | ||
790 | .gpio0 = 0x0000cd73, | ||
791 | },{ | ||
792 | .type = CX88_VMUX_SVIDEO, | ||
793 | .vmux = 1, | ||
794 | .gpio0 = 0x0000cd73, | ||
795 | },{ | ||
796 | .type = CX88_VMUX_TELEVISION, | ||
797 | .vmux = 3, | ||
798 | .gpio0 = 0x0000cdb3, | ||
799 | }}, | ||
800 | .radio = { | ||
801 | .type = CX88_RADIO, | ||
802 | .vmux = 2, | ||
803 | .gpio0 = 0x0000cdf3, | ||
804 | }, | ||
805 | }, | ||
806 | [CX88_BOARD_KWORLD_VSTREAM_EXPERT_DVD] = { | ||
807 | /* Alexander Wold <awold@bigfoot.com> */ | ||
808 | .name = "Kworld V-Stream Xpert DVD", | ||
809 | .tuner_type = UNSET, | ||
810 | .input = {{ | ||
811 | .type = CX88_VMUX_COMPOSITE1, | ||
812 | .vmux = 1, | ||
813 | .gpio0 = 0x03000000, | ||
814 | .gpio1 = 0x01000000, | ||
815 | .gpio2 = 0x02000000, | ||
816 | .gpio3 = 0x00100000, | ||
817 | },{ | ||
818 | .type = CX88_VMUX_SVIDEO, | ||
819 | .vmux = 2, | ||
820 | .gpio0 = 0x03000000, | ||
821 | .gpio1 = 0x01000000, | ||
822 | .gpio2 = 0x02000000, | ||
823 | .gpio3 = 0x00100000, | ||
824 | }}, | ||
825 | }, | ||
826 | [CX88_BOARD_ATI_HDTVWONDER] = { | ||
827 | .name = "ATI HDTV Wonder", | ||
828 | .tuner_type = TUNER_PHILIPS_TUV1236D, | ||
829 | .radio_type = UNSET, | ||
830 | .tuner_addr = ADDR_UNSET, | ||
831 | .radio_addr = ADDR_UNSET, | ||
832 | .input = {{ | ||
833 | .type = CX88_VMUX_TELEVISION, | ||
834 | .vmux = 0, | ||
835 | .gpio0 = 0x00000ff7, | ||
836 | .gpio1 = 0x000000ff, | ||
837 | .gpio2 = 0x00000001, | ||
838 | .gpio3 = 0x00000000, | ||
839 | },{ | ||
840 | .type = CX88_VMUX_COMPOSITE1, | ||
841 | .vmux = 1, | ||
842 | .gpio0 = 0x00000ffe, | ||
843 | .gpio1 = 0x000000ff, | ||
844 | .gpio2 = 0x00000001, | ||
845 | .gpio3 = 0x00000000, | ||
846 | },{ | ||
847 | .type = CX88_VMUX_SVIDEO, | ||
848 | .vmux = 2, | ||
849 | .gpio0 = 0x00000ffe, | ||
850 | .gpio1 = 0x000000ff, | ||
851 | .gpio2 = 0x00000001, | ||
852 | .gpio3 = 0x00000000, | ||
853 | }}, | ||
777 | .dvb = 1, | 854 | .dvb = 1, |
778 | }, | 855 | }, |
856 | [CX88_BOARD_WINFAST_DTV1000] = { | ||
857 | .name = "WinFast DTV1000-T", | ||
858 | .tuner_type = TUNER_ABSENT, | ||
859 | .radio_type = UNSET, | ||
860 | .tuner_addr = ADDR_UNSET, | ||
861 | .radio_addr = ADDR_UNSET, | ||
862 | .input = {{ | ||
863 | .type = CX88_VMUX_DVB, | ||
864 | .vmux = 0, | ||
865 | }}, | ||
866 | .dvb = 1, | ||
867 | }, | ||
868 | [CX88_BOARD_AVERTV_303] = { | ||
869 | .name = "AVerTV 303 (M126)", | ||
870 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
871 | .radio_type = UNSET, | ||
872 | .tuner_addr = ADDR_UNSET, | ||
873 | .radio_addr = ADDR_UNSET, | ||
874 | .tda9887_conf = TDA9887_PRESENT, | ||
875 | .input = {{ | ||
876 | .type = CX88_VMUX_TELEVISION, | ||
877 | .vmux = 0, | ||
878 | .gpio0 = 0x00ff, | ||
879 | .gpio1 = 0xe09f, | ||
880 | .gpio2 = 0x0010, | ||
881 | .gpio3 = 0x0000, | ||
882 | },{ | ||
883 | .type = CX88_VMUX_COMPOSITE1, | ||
884 | .vmux = 1, | ||
885 | .gpio0 = 0x00ff, | ||
886 | .gpio1 = 0xe05f, | ||
887 | .gpio2 = 0x0010, | ||
888 | .gpio3 = 0x0000, | ||
889 | },{ | ||
890 | .type = CX88_VMUX_SVIDEO, | ||
891 | .vmux = 2, | ||
892 | .gpio0 = 0x00ff, | ||
893 | .gpio1 = 0xe05f, | ||
894 | .gpio2 = 0x0010, | ||
895 | .gpio3 = 0x0000, | ||
896 | }}, | ||
897 | }, | ||
779 | }; | 898 | }; |
780 | const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); | 899 | const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); |
781 | 900 | ||
@@ -804,41 +923,41 @@ struct cx88_subid cx88_subids[] = { | |||
804 | .subdevice = 0x00f8, | 923 | .subdevice = 0x00f8, |
805 | .card = CX88_BOARD_ATI_WONDER_PRO, | 924 | .card = CX88_BOARD_ATI_WONDER_PRO, |
806 | },{ | 925 | },{ |
807 | .subvendor = 0x107d, | 926 | .subvendor = 0x107d, |
808 | .subdevice = 0x6611, | 927 | .subdevice = 0x6611, |
809 | .card = CX88_BOARD_WINFAST2000XP_EXPERT, | 928 | .card = CX88_BOARD_WINFAST2000XP_EXPERT, |
929 | },{ | ||
930 | .subvendor = 0x107d, | ||
931 | .subdevice = 0x6613, /* NTSC */ | ||
932 | .card = CX88_BOARD_WINFAST2000XP_EXPERT, | ||
810 | },{ | 933 | },{ |
811 | .subvendor = 0x107d, | 934 | .subvendor = 0x107d, |
812 | .subdevice = 0x6613, /* NTSC */ | 935 | .subdevice = 0x6620, |
813 | .card = CX88_BOARD_WINFAST2000XP_EXPERT, | 936 | .card = CX88_BOARD_WINFAST_DV2000, |
937 | },{ | ||
938 | .subvendor = 0x107d, | ||
939 | .subdevice = 0x663b, | ||
940 | .card = CX88_BOARD_LEADTEK_PVR2000, | ||
814 | },{ | 941 | },{ |
815 | .subvendor = 0x107d, | 942 | .subvendor = 0x107d, |
816 | .subdevice = 0x6620, | 943 | .subdevice = 0x663C, |
817 | .card = CX88_BOARD_WINFAST_DV2000, | 944 | .card = CX88_BOARD_LEADTEK_PVR2000, |
818 | },{ | 945 | },{ |
819 | .subvendor = 0x107d, | ||
820 | .subdevice = 0x663b, | ||
821 | .card = CX88_BOARD_LEADTEK_PVR2000, | ||
822 | },{ | ||
823 | .subvendor = 0x107d, | ||
824 | .subdevice = 0x663C, | ||
825 | .card = CX88_BOARD_LEADTEK_PVR2000, | ||
826 | },{ | ||
827 | .subvendor = 0x1461, | 946 | .subvendor = 0x1461, |
828 | .subdevice = 0x000b, | 947 | .subdevice = 0x000b, |
829 | .card = CX88_BOARD_AVERTV_303, | 948 | .card = CX88_BOARD_AVERTV_STUDIO_303, |
830 | },{ | 949 | },{ |
831 | .subvendor = 0x1462, | 950 | .subvendor = 0x1462, |
832 | .subdevice = 0x8606, | 951 | .subdevice = 0x8606, |
833 | .card = CX88_BOARD_MSI_TVANYWHERE_MASTER, | 952 | .card = CX88_BOARD_MSI_TVANYWHERE_MASTER, |
834 | },{ | 953 | },{ |
835 | .subvendor = 0x10fc, | 954 | .subvendor = 0x10fc, |
836 | .subdevice = 0xd003, | 955 | .subdevice = 0xd003, |
837 | .card = CX88_BOARD_IODATA_GVVCP3PCI, | 956 | .card = CX88_BOARD_IODATA_GVVCP3PCI, |
838 | },{ | 957 | },{ |
839 | .subvendor = 0x1043, | 958 | .subvendor = 0x1043, |
840 | .subdevice = 0x4823, /* with mpeg encoder */ | 959 | .subdevice = 0x4823, /* with mpeg encoder */ |
841 | .card = CX88_BOARD_ASUS_PVR_416, | 960 | .card = CX88_BOARD_ASUS_PVR_416, |
842 | },{ | 961 | },{ |
843 | .subvendor = 0x17de, | 962 | .subvendor = 0x17de, |
844 | .subdevice = 0x08a6, | 963 | .subdevice = 0x08a6, |
@@ -852,43 +971,43 @@ struct cx88_subid cx88_subids[] = { | |||
852 | .subdevice = 0xd820, | 971 | .subdevice = 0xd820, |
853 | .card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T, | 972 | .card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T, |
854 | },{ | 973 | },{ |
855 | .subvendor = 0x18AC, | 974 | .subvendor = 0x18ac, |
856 | .subdevice = 0xDB00, | 975 | .subdevice = 0xdb00, |
857 | .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1, | 976 | .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1, |
858 | },{ | 977 | },{ |
859 | .subvendor = 0x0070, | 978 | .subvendor = 0x0070, |
860 | .subdevice = 0x9002, | 979 | .subdevice = 0x9002, |
861 | .card = CX88_BOARD_HAUPPAUGE_DVB_T1, | 980 | .card = CX88_BOARD_HAUPPAUGE_DVB_T1, |
862 | },{ | 981 | },{ |
863 | .subvendor = 0x14f1, | 982 | .subvendor = 0x14f1, |
864 | .subdevice = 0x0187, | 983 | .subdevice = 0x0187, |
865 | .card = CX88_BOARD_CONEXANT_DVB_T1, | 984 | .card = CX88_BOARD_CONEXANT_DVB_T1, |
866 | },{ | 985 | },{ |
867 | .subvendor = 0x1540, | 986 | .subvendor = 0x1540, |
868 | .subdevice = 0x2580, | 987 | .subdevice = 0x2580, |
869 | .card = CX88_BOARD_PROVIDEO_PV259, | 988 | .card = CX88_BOARD_PROVIDEO_PV259, |
870 | },{ | 989 | },{ |
871 | .subvendor = 0x18AC, | 990 | .subvendor = 0x18ac, |
872 | .subdevice = 0xDB10, | 991 | .subdevice = 0xdb10, |
873 | .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS, | 992 | .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS, |
874 | },{ | 993 | },{ |
875 | .subvendor = 0x1554, | 994 | .subvendor = 0x1554, |
876 | .subdevice = 0x4811, | 995 | .subdevice = 0x4811, |
877 | .card = CX88_BOARD_PIXELVIEW, | 996 | .card = CX88_BOARD_PIXELVIEW, |
878 | },{ | 997 | },{ |
879 | .subvendor = 0x7063, | 998 | .subvendor = 0x7063, |
880 | .subdevice = 0x3000, /* HD-3000 card */ | 999 | .subdevice = 0x3000, /* HD-3000 card */ |
881 | .card = CX88_BOARD_PCHDTV_HD3000, | 1000 | .card = CX88_BOARD_PCHDTV_HD3000, |
882 | },{ | 1001 | },{ |
883 | .subvendor = 0x17DE, | 1002 | .subvendor = 0x17de, |
884 | .subdevice = 0xA8A6, | 1003 | .subdevice = 0xa8a6, |
885 | .card = CX88_BOARD_DNTV_LIVE_DVB_T, | 1004 | .card = CX88_BOARD_DNTV_LIVE_DVB_T, |
886 | },{ | 1005 | },{ |
887 | .subvendor = 0x0070, | 1006 | .subvendor = 0x0070, |
888 | .subdevice = 0x2801, | 1007 | .subdevice = 0x2801, |
889 | .card = CX88_BOARD_HAUPPAUGE_ROSLYN, | 1008 | .card = CX88_BOARD_HAUPPAUGE_ROSLYN, |
890 | },{ | 1009 | },{ |
891 | .subvendor = 0x14F1, | 1010 | .subvendor = 0x14f1, |
892 | .subdevice = 0x0342, | 1011 | .subdevice = 0x0342, |
893 | .card = CX88_BOARD_DIGITALLOGIC_MEC, | 1012 | .card = CX88_BOARD_DIGITALLOGIC_MEC, |
894 | },{ | 1013 | },{ |
@@ -899,14 +1018,30 @@ struct cx88_subid cx88_subids[] = { | |||
899 | .subvendor = 0x1421, | 1018 | .subvendor = 0x1421, |
900 | .subdevice = 0x0334, | 1019 | .subdevice = 0x0334, |
901 | .card = CX88_BOARD_ADSTECH_DVB_T_PCI, | 1020 | .card = CX88_BOARD_ADSTECH_DVB_T_PCI, |
902 | },{ | 1021 | },{ |
903 | .subvendor = 0x153b, | 1022 | .subvendor = 0x153b, |
904 | .subdevice = 0x1166, | 1023 | .subdevice = 0x1166, |
905 | .card = CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1, | 1024 | .card = CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1, |
906 | },{ | 1025 | },{ |
907 | .subvendor = 0x18ac, | 1026 | .subvendor = 0x18ac, |
908 | .subdevice = 0xd500, | 1027 | .subdevice = 0xd500, |
909 | .card = CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD, | 1028 | .card = CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD, |
1029 | },{ | ||
1030 | .subvendor = 0x1461, | ||
1031 | .subdevice = 0x8011, | ||
1032 | .card = CX88_BOARD_AVERMEDIA_ULTRATV_MC_550, | ||
1033 | },{ | ||
1034 | .subvendor = PCI_VENDOR_ID_ATI, | ||
1035 | .subdevice = 0xa101, | ||
1036 | .card = CX88_BOARD_ATI_HDTVWONDER, | ||
1037 | },{ | ||
1038 | .subvendor = 0x107d, | ||
1039 | .subdevice = 0x665f, | ||
1040 | .card = CX88_BOARD_WINFAST_DTV1000, | ||
1041 | },{ | ||
1042 | .subvendor = 0x1461, | ||
1043 | .subdevice = 0x000a, | ||
1044 | .card = CX88_BOARD_AVERTV_303, | ||
910 | }, | 1045 | }, |
911 | }; | 1046 | }; |
912 | const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); | 1047 | const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); |
@@ -1108,6 +1243,19 @@ void cx88_card_setup(struct cx88_core *core) | |||
1108 | cx_clear(MO_GP0_IO, 0x00000007); | 1243 | cx_clear(MO_GP0_IO, 0x00000007); |
1109 | cx_set(MO_GP2_IO, 0x00000101); | 1244 | cx_set(MO_GP2_IO, 0x00000101); |
1110 | break; | 1245 | break; |
1246 | case CX88_BOARD_ATI_HDTVWONDER: | ||
1247 | if (0 == core->i2c_rc) { | ||
1248 | /* enable tuner */ | ||
1249 | int i; | ||
1250 | u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 }; | ||
1251 | core->i2c_client.addr = 0x0a; | ||
1252 | |||
1253 | for (i = 0; i < 5; i++) | ||
1254 | if (2 != i2c_master_send(&core->i2c_client,&buffer[i*2],2)) | ||
1255 | printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n", | ||
1256 | core->name, i); | ||
1257 | } | ||
1258 | break; | ||
1111 | } | 1259 | } |
1112 | if (cx88_boards[core->board].radio.type == CX88_RADIO) | 1260 | if (cx88_boards[core->board].radio.type == CX88_RADIO) |
1113 | core->has_radio = 1; | 1261 | core->has_radio = 1; |