diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-04-25 03:19:02 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-26 08:29:56 -0400 |
commit | 4aef8fddb6639056ea830509ce3015c79f158011 (patch) | |
tree | e312b4625762505f9c05f2f02ed103cd2a6bdd45 /drivers | |
parent | d893d5dc7fef94a072a74f3141f9d1f60fd0cc7e (diff) |
V4L/DVB (7744): pvrusb2-dvb: add atsc/qam support for Hauppauge pvrusb2 model 751xx
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/pvrusb2/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/pvrusb2/pvrusb2-devattr.c | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/drivers/media/video/pvrusb2/Kconfig b/drivers/media/video/pvrusb2/Kconfig index a8da90f69dd9..158b3d0c6532 100644 --- a/drivers/media/video/pvrusb2/Kconfig +++ b/drivers/media/video/pvrusb2/Kconfig | |||
@@ -64,6 +64,7 @@ config VIDEO_PVRUSB2_DVB | |||
64 | depends on VIDEO_PVRUSB2 && DVB_CORE && EXPERIMENTAL | 64 | depends on VIDEO_PVRUSB2 && DVB_CORE && EXPERIMENTAL |
65 | select DVB_LGDT330X if !DVB_FE_CUSTOMISE | 65 | select DVB_LGDT330X if !DVB_FE_CUSTOMISE |
66 | select DVB_S5H1409 if !DVB_FE_CUSTOMISE | 66 | select DVB_S5H1409 if !DVB_FE_CUSTOMISE |
67 | select DVB_S5H1411 if !DVB_FE_CUSTOMISE | ||
67 | select DVB_TDA10048 if !DVB_FE_CUSTOMIZE | 68 | select DVB_TDA10048 if !DVB_FE_CUSTOMIZE |
68 | select DVB_TDA18271 if !DVB_FE_CUSTOMIZE | 69 | select DVB_TDA18271 if !DVB_FE_CUSTOMIZE |
69 | select TUNER_SIMPLE if !DVB_FE_CUSTOMISE | 70 | select TUNER_SIMPLE if !DVB_FE_CUSTOMISE |
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c index 2dd06a90adce..3a141d93e1a9 100644 --- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c +++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c | |||
@@ -36,6 +36,7 @@ pvr2_device_desc structures. | |||
36 | #include "pvrusb2-hdw-internal.h" | 36 | #include "pvrusb2-hdw-internal.h" |
37 | #include "lgdt330x.h" | 37 | #include "lgdt330x.h" |
38 | #include "s5h1409.h" | 38 | #include "s5h1409.h" |
39 | #include "s5h1411.h" | ||
39 | #include "tda10048.h" | 40 | #include "tda10048.h" |
40 | #include "tda18271.h" | 41 | #include "tda18271.h" |
41 | #include "tda8290.h" | 42 | #include "tda8290.h" |
@@ -368,6 +369,15 @@ static struct s5h1409_config pvr2_s5h1409_config = { | |||
368 | .status_mode = S5H1409_DEMODLOCKING, | 369 | .status_mode = S5H1409_DEMODLOCKING, |
369 | }; | 370 | }; |
370 | 371 | ||
372 | static struct s5h1411_config pvr2_s5h1411_config = { | ||
373 | .output_mode = S5H1411_PARALLEL_OUTPUT, | ||
374 | .gpio = S5H1411_GPIO_OFF, | ||
375 | .vsb_if = S5H1411_IF_44000, | ||
376 | .qam_if = S5H1411_IF_4000, | ||
377 | .inversion = S5H1411_INVERSION_ON, | ||
378 | .status_mode = S5H1411_DEMODLOCKING, | ||
379 | }; | ||
380 | |||
371 | static struct tda18271_std_map hauppauge_tda18271_std_map = { | 381 | static struct tda18271_std_map hauppauge_tda18271_std_map = { |
372 | .atsc_6 = { .if_freq = 5380, .agc_mode = 3, .std = 3, | 382 | .atsc_6 = { .if_freq = 5380, .agc_mode = 3, .std = 3, |
373 | .if_lvl = 6, .rfagc_top = 0x37, }, | 383 | .if_lvl = 6, .rfagc_top = 0x37, }, |
@@ -390,6 +400,16 @@ static int pvr2_s5h1409_attach(struct pvr2_dvb_adapter *adap) | |||
390 | return -EIO; | 400 | return -EIO; |
391 | } | 401 | } |
392 | 402 | ||
403 | static int pvr2_s5h1411_attach(struct pvr2_dvb_adapter *adap) | ||
404 | { | ||
405 | adap->fe = dvb_attach(s5h1411_attach, &pvr2_s5h1411_config, | ||
406 | &adap->channel.hdw->i2c_adap); | ||
407 | if (adap->fe) | ||
408 | return 0; | ||
409 | |||
410 | return -EIO; | ||
411 | } | ||
412 | |||
393 | static int pvr2_tda18271_8295_attach(struct pvr2_dvb_adapter *adap) | 413 | static int pvr2_tda18271_8295_attach(struct pvr2_dvb_adapter *adap) |
394 | { | 414 | { |
395 | dvb_attach(tda829x_attach, adap->fe, | 415 | dvb_attach(tda829x_attach, adap->fe, |
@@ -406,6 +426,11 @@ struct pvr2_dvb_props pvr2_750xx_dvb_props = { | |||
406 | .frontend_attach = pvr2_s5h1409_attach, | 426 | .frontend_attach = pvr2_s5h1409_attach, |
407 | .tuner_attach = pvr2_tda18271_8295_attach, | 427 | .tuner_attach = pvr2_tda18271_8295_attach, |
408 | }; | 428 | }; |
429 | |||
430 | struct pvr2_dvb_props pvr2_751xx_dvb_props = { | ||
431 | .frontend_attach = pvr2_s5h1411_attach, | ||
432 | .tuner_attach = pvr2_tda18271_8295_attach, | ||
433 | }; | ||
409 | #endif | 434 | #endif |
410 | 435 | ||
411 | static const char *pvr2_client_75xxx[] = { | 436 | static const char *pvr2_client_75xxx[] = { |
@@ -454,6 +479,9 @@ static const struct pvr2_device_desc pvr2_device_751xx = { | |||
454 | .digital_control_scheme = PVR2_DIGITAL_SCHEME_HAUPPAUGE, | 479 | .digital_control_scheme = PVR2_DIGITAL_SCHEME_HAUPPAUGE, |
455 | .default_std_mask = V4L2_STD_NTSC_M, | 480 | .default_std_mask = V4L2_STD_NTSC_M, |
456 | .led_scheme = PVR2_LED_SCHEME_HAUPPAUGE, | 481 | .led_scheme = PVR2_LED_SCHEME_HAUPPAUGE, |
482 | #ifdef CONFIG_VIDEO_PVRUSB2_DVB | ||
483 | .dvb_props = &pvr2_751xx_dvb_props, | ||
484 | #endif | ||
457 | }; | 485 | }; |
458 | 486 | ||
459 | 487 | ||