diff options
author | Devin Heitmueller <dheitmueller@kernellabs.com> | 2011-03-13 00:01:02 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-05-20 06:26:19 -0400 |
commit | 75e2b8694f0b1f8faea1851a39cb7ba07640aa7d (patch) | |
tree | e9312e9cbe5e4b11de4ac29c06ff8da7d44843fd /drivers/media/video/em28xx/em28xx-dvb.c | |
parent | ba96796544f3bfc53a3269f0cf65651e349f8033 (diff) |
[media] em28xx: enable support for the drx-d on the HVR-900 R2
Add the required board initialization required for the drx-d to work with
the 900R2.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-dvb.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 20 |
1 files changed, 8 insertions, 12 deletions
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, |