diff options
author | Stéphane Voltz <stef.dev@free.fr> | 2008-09-05 13:33:54 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:10 -0400 |
commit | 3f6014fc77c3630d2511302e19f4f02af1605947 (patch) | |
tree | 98f4cafcd95b9f1b71d671d45e05c2ce3c0da727 /drivers/media/video/cx88/cx88-dvb.c | |
parent | 3de2ed127013219efc439c0d052d1cc825da88c2 (diff) |
V4L/DVB (9066): Pinnacle Hybrid PCTV Pro (pctv310c) DVB-T support
This patch against latest mercurial makes DVB-T working on Pinnacle
Hybrid PCTV Pro (pctv310c).
In cx88-dvb.c, a specific zl10353_config is created with the if2
inferred from the old comment in the currently used config. It is then
used for attach, and i2c_gate_ctrl is set to NULL.
The entry in cx88-cards.c is modified with GPIO gathered from windows
with regspy, and DVB enabled. The frontend is set to
XC3028_FE_ZARLINK456 to match the zl10353_config.
It is working great with the freeview channels I can receive.
Signed-off-by: Stéphane Voltz <stef.dev@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index 6751f36e061e..cccf38222a31 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -454,6 +454,12 @@ static struct xc5000_config pinnacle_pctv_hd_800i_tuner_config = { | |||
454 | .if_khz = 5380, | 454 | .if_khz = 5380, |
455 | }; | 455 | }; |
456 | 456 | ||
457 | static struct zl10353_config cx88_pinnacle_hybrid_pctv = { | ||
458 | .demod_address = (0x1e >> 1), | ||
459 | .no_tuner = 1, | ||
460 | .if2 = 45600, | ||
461 | }; | ||
462 | |||
457 | static struct zl10353_config cx88_geniatech_x8000_mt = { | 463 | static struct zl10353_config cx88_geniatech_x8000_mt = { |
458 | .demod_address = (0x1e >> 1), | 464 | .demod_address = (0x1e >> 1), |
459 | .no_tuner = 1, | 465 | .no_tuner = 1, |
@@ -890,10 +896,13 @@ static int dvb_register(struct cx8802_dev *dev) | |||
890 | break; | 896 | break; |
891 | case CX88_BOARD_PINNACLE_HYBRID_PCTV: | 897 | case CX88_BOARD_PINNACLE_HYBRID_PCTV: |
892 | dev->dvb.frontend = dvb_attach(zl10353_attach, | 898 | dev->dvb.frontend = dvb_attach(zl10353_attach, |
893 | &cx88_geniatech_x8000_mt, | 899 | &cx88_pinnacle_hybrid_pctv, |
894 | &core->i2c_adap); | 900 | &core->i2c_adap); |
895 | if (attach_xc3028(0x61, dev) < 0) | 901 | if (dev->dvb.frontend) { |
896 | goto frontend_detach; | 902 | dev->dvb.frontend->ops.i2c_gate_ctrl = NULL; |
903 | if (attach_xc3028(0x61, dev) < 0) | ||
904 | goto frontend_detach; | ||
905 | } | ||
897 | break; | 906 | break; |
898 | case CX88_BOARD_GENIATECH_X8000_MT: | 907 | case CX88_BOARD_GENIATECH_X8000_MT: |
899 | dev->ts_gen_cntrl = 0x00; | 908 | dev->ts_gen_cntrl = 0x00; |