diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx23885 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 13 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 27 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
4 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 191194ea1e25..f0e613ba55b8 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -8,3 +8,4 @@ | |||
8 | 7 -> Hauppauge WinTV-HVR1200 [0070:71d1,0070:71d3] | 8 | 7 -> Hauppauge WinTV-HVR1200 [0070:71d1,0070:71d3] |
9 | 8 -> Hauppauge WinTV-HVR1700 [0070:8101] | 9 | 8 -> Hauppauge WinTV-HVR1700 [0070:8101] |
10 | 9 -> Hauppauge WinTV-HVR1400 [0070:8010] | 10 | 9 -> Hauppauge WinTV-HVR1400 [0070:8010] |
11 | 10 -> DViCO FusionHDTV7 Dual Express [18ac:d618] | ||
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 20e05f230546..fd7112c11d35 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -143,6 +143,10 @@ struct cx23885_board cx23885_boards[] = { | |||
143 | .name = "Hauppauge WinTV-HVR1400", | 143 | .name = "Hauppauge WinTV-HVR1400", |
144 | .portc = CX23885_MPEG_DVB, | 144 | .portc = CX23885_MPEG_DVB, |
145 | }, | 145 | }, |
146 | [CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP] = { | ||
147 | .name = "DViCO FusionHDTV7 Dual Express", | ||
148 | .portc = CX23885_MPEG_DVB, | ||
149 | }, | ||
146 | }; | 150 | }; |
147 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 151 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
148 | 152 | ||
@@ -210,6 +214,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
210 | .subvendor = 0x0070, | 214 | .subvendor = 0x0070, |
211 | .subdevice = 0x8010, | 215 | .subdevice = 0x8010, |
212 | .card = CX23885_BOARD_HAUPPAUGE_HVR1400, | 216 | .card = CX23885_BOARD_HAUPPAUGE_HVR1400, |
217 | },{ | ||
218 | .subvendor = 0x18ac, | ||
219 | .subdevice = 0xd618, | ||
220 | .card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP, | ||
213 | }, | 221 | }, |
214 | }; | 222 | }; |
215 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 223 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -477,6 +485,11 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
477 | } | 485 | } |
478 | 486 | ||
479 | switch (dev->board) { | 487 | switch (dev->board) { |
488 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: | ||
489 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | ||
490 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | ||
491 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | ||
492 | /* break omitted intentionally */ | ||
480 | case CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP: | 493 | case CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP: |
481 | ts1->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | 494 | ts1->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
482 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 495 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 022aa391937a..51dedb182c99 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -164,12 +164,28 @@ static struct s5h1409_config hauppauge_hvr1500q_config = { | |||
164 | .mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, | 164 | .mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, |
165 | }; | 165 | }; |
166 | 166 | ||
167 | static struct s5h1409_config dvico_s5h1409_config = { | ||
168 | .demod_address = 0x32 >> 1, | ||
169 | .output_mode = S5H1409_SERIAL_OUTPUT, | ||
170 | .gpio = S5H1409_GPIO_ON, | ||
171 | .qam_if = 44000, | ||
172 | .inversion = S5H1409_INVERSION_OFF, | ||
173 | .status_mode = S5H1409_DEMODLOCKING, | ||
174 | .mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, | ||
175 | }; | ||
176 | |||
167 | static struct xc5000_config hauppauge_hvr1500q_tunerconfig = { | 177 | static struct xc5000_config hauppauge_hvr1500q_tunerconfig = { |
168 | .i2c_address = 0x61, | 178 | .i2c_address = 0x61, |
169 | .if_khz = 5380, | 179 | .if_khz = 5380, |
170 | .tuner_callback = cx23885_tuner_callback | 180 | .tuner_callback = cx23885_tuner_callback |
171 | }; | 181 | }; |
172 | 182 | ||
183 | static struct xc5000_config dvico_xc5000_tunerconfig = { | ||
184 | .i2c_address = 0x64, | ||
185 | .if_khz = 5380, | ||
186 | .tuner_callback = cx23885_tuner_callback | ||
187 | }; | ||
188 | |||
173 | static struct tda829x_config tda829x_no_probe = { | 189 | static struct tda829x_config tda829x_no_probe = { |
174 | .probe_tuner = TDA829X_DONT_PROBE, | 190 | .probe_tuner = TDA829X_DONT_PROBE, |
175 | }; | 191 | }; |
@@ -453,6 +469,17 @@ static int dvb_register(struct cx23885_tsport *port) | |||
453 | fe->ops.tuner_ops.set_config(fe, &ctl); | 469 | fe->ops.tuner_ops.set_config(fe, &ctl); |
454 | } | 470 | } |
455 | break; | 471 | break; |
472 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: | ||
473 | i2c_bus = &dev->i2c_bus[port->nr - 1]; | ||
474 | |||
475 | port->dvb.frontend = dvb_attach(s5h1409_attach, | ||
476 | &dvico_s5h1409_config, | ||
477 | &i2c_bus->i2c_adap); | ||
478 | if (port->dvb.frontend != NULL) | ||
479 | dvb_attach(xc5000_attach, port->dvb.frontend, | ||
480 | &i2c_bus->i2c_adap, | ||
481 | &dvico_xc5000_tunerconfig, i2c_bus); | ||
482 | break; | ||
456 | default: | 483 | default: |
457 | printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", | 484 | printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", |
458 | dev->name); | 485 | dev->name); |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index 32af87f25e7b..00dfdc89d641 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -63,6 +63,7 @@ | |||
63 | #define CX23885_BOARD_HAUPPAUGE_HVR1200 7 | 63 | #define CX23885_BOARD_HAUPPAUGE_HVR1200 7 |
64 | #define CX23885_BOARD_HAUPPAUGE_HVR1700 8 | 64 | #define CX23885_BOARD_HAUPPAUGE_HVR1700 8 |
65 | #define CX23885_BOARD_HAUPPAUGE_HVR1400 9 | 65 | #define CX23885_BOARD_HAUPPAUGE_HVR1400 9 |
66 | #define CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP 10 | ||
66 | 67 | ||
67 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ | 68 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ |
68 | #define CX23885_NORMS (\ | 69 | #define CX23885_NORMS (\ |