diff options
| -rw-r--r-- | drivers/media/video/pvrusb2/pvrusb2-devattr.c | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c index 74c92a470eb6..43c49fb66209 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 "tda10048.h" | ||
| 39 | #include "tda18271.h" | 40 | #include "tda18271.h" |
| 40 | #include "tda8290.h" | 41 | #include "tda8290.h" |
| 41 | #include "tuner-simple.h" | 42 | #include "tuner-simple.h" |
| @@ -278,6 +279,50 @@ static const struct pvr2_device_desc pvr2_device_onair_usb2 = { | |||
| 278 | /*------------------------------------------------------------------------*/ | 279 | /*------------------------------------------------------------------------*/ |
| 279 | /* Hauppauge PVR-USB2 Model 73xxx */ | 280 | /* Hauppauge PVR-USB2 Model 73xxx */ |
| 280 | 281 | ||
| 282 | #ifdef CONFIG_VIDEO_PVRUSB2_DVB | ||
| 283 | static struct tda10048_config hauppauge_tda10048_config = { | ||
| 284 | .demod_address = 0x10 >> 1, | ||
| 285 | .output_mode = TDA10048_PARALLEL_OUTPUT, | ||
| 286 | .fwbulkwritelen = TDA10048_BULKWRITE_50, | ||
| 287 | .inversion = TDA10048_INVERSION_ON, | ||
| 288 | }; | ||
| 289 | |||
| 290 | static struct tda829x_config tda829x_no_probe = { | ||
| 291 | .probe_tuner = TDA829X_DONT_PROBE, | ||
| 292 | }; | ||
| 293 | |||
| 294 | static struct tda18271_config hauppauge_tda18271_dvb_config = { | ||
| 295 | .gate = TDA18271_GATE_ANALOG, | ||
| 296 | }; | ||
| 297 | |||
| 298 | static int pvr2_tda10048_attach(struct pvr2_dvb_adapter *adap) | ||
| 299 | { | ||
| 300 | adap->fe = dvb_attach(tda10048_attach, &hauppauge_tda10048_config, | ||
| 301 | &adap->channel.hdw->i2c_adap); | ||
| 302 | if (adap->fe) | ||
| 303 | return 0; | ||
| 304 | |||
| 305 | return -EIO; | ||
| 306 | } | ||
| 307 | |||
| 308 | static int pvr2_73xxx_tda18271_8295_attach(struct pvr2_dvb_adapter *adap) | ||
| 309 | { | ||
| 310 | dvb_attach(tda829x_attach, adap->fe, | ||
| 311 | &adap->channel.hdw->i2c_adap, 0x42, | ||
| 312 | &tda829x_no_probe); | ||
| 313 | dvb_attach(tda18271_attach, adap->fe, 0x60, | ||
| 314 | &adap->channel.hdw->i2c_adap, | ||
| 315 | &hauppauge_tda18271_dvb_config); | ||
| 316 | |||
| 317 | return 0; | ||
| 318 | } | ||
| 319 | |||
| 320 | struct pvr2_dvb_props pvr2_73xxx_dvb_props = { | ||
| 321 | .frontend_attach = pvr2_tda10048_attach, | ||
| 322 | .tuner_attach = pvr2_73xxx_tda18271_8295_attach, | ||
| 323 | }; | ||
| 324 | #endif | ||
| 325 | |||
| 281 | static const char *pvr2_client_73xxx[] = { | 326 | static const char *pvr2_client_73xxx[] = { |
| 282 | "cx25840", | 327 | "cx25840", |
| 283 | "tuner", | 328 | "tuner", |
| @@ -302,6 +347,9 @@ static const struct pvr2_device_desc pvr2_device_73xxx = { | |||
| 302 | .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, | 347 | .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, |
| 303 | .digital_control_scheme = PVR2_DIGITAL_SCHEME_HAUPPAUGE, | 348 | .digital_control_scheme = PVR2_DIGITAL_SCHEME_HAUPPAUGE, |
| 304 | .led_scheme = PVR2_LED_SCHEME_HAUPPAUGE, | 349 | .led_scheme = PVR2_LED_SCHEME_HAUPPAUGE, |
| 350 | #ifdef CONFIG_VIDEO_PVRUSB2_DVB | ||
| 351 | .dvb_props = &pvr2_73xxx_dvb_props, | ||
| 352 | #endif | ||
| 305 | }; | 353 | }; |
| 306 | 354 | ||
| 307 | 355 | ||
| @@ -319,10 +367,6 @@ static struct s5h1409_config pvr2_s5h1409_config = { | |||
| 319 | .status_mode = S5H1409_DEMODLOCKING, | 367 | .status_mode = S5H1409_DEMODLOCKING, |
| 320 | }; | 368 | }; |
| 321 | 369 | ||
| 322 | static struct tda829x_config tda829x_no_probe = { | ||
| 323 | .probe_tuner = TDA829X_DONT_PROBE, | ||
| 324 | }; | ||
| 325 | |||
| 326 | static struct tda18271_std_map hauppauge_tda18271_std_map = { | 370 | static struct tda18271_std_map hauppauge_tda18271_std_map = { |
| 327 | .atsc_6 = { .if_freq = 5380, .agc_mode = 3, .std = 3, | 371 | .atsc_6 = { .if_freq = 5380, .agc_mode = 3, .std = 3, |
| 328 | .if_lvl = 6, .rfagc_top = 0x37, }, | 372 | .if_lvl = 6, .rfagc_top = 0x37, }, |
