diff options
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 2 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 20 |
2 files changed, 10 insertions, 12 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 69fcea82d01c..5bdecb36ca27 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -859,6 +859,8 @@ struct em28xx_board em28xx_boards[] = { | |||
859 | .tuner_type = TUNER_XC2028, | 859 | .tuner_type = TUNER_XC2028, |
860 | .tuner_gpio = default_tuner_gpio, | 860 | .tuner_gpio = default_tuner_gpio, |
861 | .mts_firmware = 1, | 861 | .mts_firmware = 1, |
862 | .has_dvb = 1, | ||
863 | .dvb_gpio = hauppauge_wintv_hvr_900_digital, | ||
862 | .ir_codes = RC_MAP_HAUPPAUGE, | 864 | .ir_codes = RC_MAP_HAUPPAUGE, |
863 | .decoder = EM28XX_TVP5150, | 865 | .decoder = EM28XX_TVP5150, |
864 | .input = { { | 866 | .input = { { |
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index c7c04bf712aa..bdbdb1bd8ec9 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "tda1002x.h" | 38 | #include "tda1002x.h" |
39 | #include "tda18271.h" | 39 | #include "tda18271.h" |
40 | #include "s921.h" | 40 | #include "s921.h" |
41 | #include "drxd.h" | ||
41 | 42 | ||
42 | MODULE_DESCRIPTION("driver for em28xx based DVB cards"); | 43 | MODULE_DESCRIPTION("driver for em28xx based DVB cards"); |
43 | MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); | 44 | MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); |
@@ -285,12 +286,12 @@ static struct zl10353_config em28xx_zl10353_xc3028_no_i2c_gate = { | |||
285 | .if2 = 45600, | 286 | .if2 = 45600, |
286 | }; | 287 | }; |
287 | 288 | ||
288 | #ifdef EM28XX_DRX397XD_SUPPORT | 289 | static struct drxd_config em28xx_drxd = { |
289 | /* [TODO] djh - not sure yet what the device config needs to contain */ | 290 | .index = 0, .demod_address = 0x70, .demod_revision = 0xa2, |
290 | static struct drx397xD_config em28xx_drx397xD_with_xc3028 = { | 291 | .demoda_address = 0x00, .pll_address = 0x00, |
291 | .demod_address = (0xe0 >> 1), | 292 | .pll_type = DRXD_PLL_NONE, .clock = 12000, .insert_rs_byte = 1, |
293 | .pll_set = NULL, .osc_deviation = NULL, .IF = 42800000, | ||
292 | }; | 294 | }; |
293 | #endif | ||
294 | 295 | ||
295 | static int mt352_terratec_xs_init(struct dvb_frontend *fe) | 296 | static int mt352_terratec_xs_init(struct dvb_frontend *fe) |
296 | { | 297 | { |
@@ -588,18 +589,13 @@ static int dvb_init(struct em28xx *dev) | |||
588 | } | 589 | } |
589 | break; | 590 | break; |
590 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: | 591 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: |
591 | #ifdef EM28XX_DRX397XD_SUPPORT | 592 | dvb->frontend = dvb_attach(drxd_attach, &em28xx_drxd, NULL, |
592 | /* We don't have the config structure properly populated, so | 593 | &dev->i2c_adap, &dev->udev->dev); |
593 | this is commented out for now */ | ||
594 | dvb->frontend = dvb_attach(drx397xD_attach, | ||
595 | &em28xx_drx397xD_with_xc3028, | ||
596 | &dev->i2c_adap); | ||
597 | if (attach_xc3028(0x61, dev) < 0) { | 594 | if (attach_xc3028(0x61, dev) < 0) { |
598 | result = -EINVAL; | 595 | result = -EINVAL; |
599 | goto out_free; | 596 | goto out_free; |
600 | } | 597 | } |
601 | break; | 598 | break; |
602 | #endif | ||
603 | case EM2870_BOARD_REDDO_DVB_C_USB_BOX: | 599 | case EM2870_BOARD_REDDO_DVB_C_USB_BOX: |
604 | /* Philips CU1216L NIM (Philips TDA10023 + Infineon TUA6034) */ | 600 | /* Philips CU1216L NIM (Philips TDA10023 + Infineon TUA6034) */ |
605 | dvb->frontend = dvb_attach(tda10023_attach, | 601 | dvb->frontend = dvb_attach(tda10023_attach, |