diff options
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-dvb.c')
| -rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index e7b47c8da8f3..3da97c32b8fa 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
| @@ -243,6 +243,14 @@ static struct s5h1409_config em28xx_s5h1409_with_xc3028 = { | |||
| 243 | .mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK | 243 | .mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK |
| 244 | }; | 244 | }; |
| 245 | 245 | ||
| 246 | static struct zl10353_config em28xx_terratec_xs_zl10353_xc3028 = { | ||
| 247 | .demod_address = (0x1e >> 1), | ||
| 248 | .no_tuner = 1, | ||
| 249 | .disable_i2c_gate_ctrl = 1, | ||
| 250 | .parallel_ts = 1, | ||
| 251 | .if2 = 45600, | ||
| 252 | }; | ||
| 253 | |||
| 246 | #ifdef EM28XX_DRX397XD_SUPPORT | 254 | #ifdef EM28XX_DRX397XD_SUPPORT |
| 247 | /* [TODO] djh - not sure yet what the device config needs to contain */ | 255 | /* [TODO] djh - not sure yet what the device config needs to contain */ |
| 248 | static struct drx397xD_config em28xx_drx397xD_with_xc3028 = { | 256 | static struct drx397xD_config em28xx_drx397xD_with_xc3028 = { |
| @@ -433,7 +441,6 @@ static int dvb_init(struct em28xx *dev) | |||
| 433 | } | 441 | } |
| 434 | break; | 442 | break; |
| 435 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: | 443 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: |
| 436 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | ||
| 437 | case EM2880_BOARD_KWORLD_DVB_310U: | 444 | case EM2880_BOARD_KWORLD_DVB_310U: |
| 438 | case EM2880_BOARD_EMPIRE_DUAL_TV: | 445 | case EM2880_BOARD_EMPIRE_DUAL_TV: |
| 439 | dvb->frontend = dvb_attach(zl10353_attach, | 446 | dvb->frontend = dvb_attach(zl10353_attach, |
| @@ -444,6 +451,25 @@ static int dvb_init(struct em28xx *dev) | |||
| 444 | goto out_free; | 451 | goto out_free; |
| 445 | } | 452 | } |
| 446 | break; | 453 | break; |
| 454 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | ||
| 455 | dvb->frontend = dvb_attach(zl10353_attach, | ||
| 456 | &em28xx_terratec_xs_zl10353_xc3028, | ||
| 457 | &dev->i2c_adap); | ||
| 458 | if (dvb->frontend == NULL) { | ||
| 459 | /* This board could have either a zl10353 or a mt352. | ||
| 460 | If the chip id isn't for zl10353, try mt352 */ | ||
| 461 | |||
| 462 | /* FIXME: make support for mt352 work */ | ||
| 463 | printk(KERN_ERR "version of this board with mt352 not " | ||
| 464 | "currently supported\n"); | ||
| 465 | result = -EINVAL; | ||
| 466 | goto out_free; | ||
| 467 | } | ||
| 468 | if (attach_xc3028(0x61, dev) < 0) { | ||
| 469 | result = -EINVAL; | ||
| 470 | goto out_free; | ||
| 471 | } | ||
| 472 | break; | ||
| 447 | case EM2883_BOARD_KWORLD_HYBRID_330U: | 473 | case EM2883_BOARD_KWORLD_HYBRID_330U: |
| 448 | case EM2882_BOARD_EVGA_INDTUBE: | 474 | case EM2882_BOARD_EVGA_INDTUBE: |
| 449 | dvb->frontend = dvb_attach(s5h1409_attach, | 475 | dvb->frontend = dvb_attach(s5h1409_attach, |
