diff options
author | Igor M. Liplianin <liplianin@me.by> | 2009-01-17 10:23:31 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:42:24 -0400 |
commit | c9b8b04b267f9a7e472daa06cdf6d4963d503d1f (patch) | |
tree | bdcf257e093fdaf09c83d958ddf11622555c5fa3 | |
parent | c7bdcd0f541efcb92c407c601ff7819a4a551f6f (diff) |
V4L/DVB (10269): Add support for DVBWorld DVBS2 PCI-e 2005.
DVBWorld DVBS2 PCI-e 2005 card contains cx23885 PCI-e bridge
and cx24116 demodulator.
http://www.linuxtv.org/wiki/index.php/DVBWorld_DVB-S2_2005_PCI-Express_Card
The card tested by me (Igor).
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx23885 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 9 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 11 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
4 files changed, 22 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 43d290ea75bf..5937ff958f04 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -14,3 +14,4 @@ | |||
14 | 13 -> Compro VideoMate E650F [185b:e800] | 14 | 13 -> Compro VideoMate E650F [185b:e800] |
15 | 14 -> TurboSight TBS 6920 [6920:8888] | 15 | 14 -> TurboSight TBS 6920 [6920:8888] |
16 | 15 -> TeVii S470 [d470:9022] | 16 | 15 -> TeVii S470 [d470:9022] |
17 | 16 -> DVBWorld DVB-S2 2005 [0001:2005] | ||
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index dbc59d26f6f6..7ff339a2e3f2 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -170,6 +170,10 @@ struct cx23885_board cx23885_boards[] = { | |||
170 | .name = "TeVii S470", | 170 | .name = "TeVii S470", |
171 | .portb = CX23885_MPEG_DVB, | 171 | .portb = CX23885_MPEG_DVB, |
172 | }, | 172 | }, |
173 | [CX23885_BOARD_DVBWORLD_2005] = { | ||
174 | .name = "DVBWorld DVB-S2 2005", | ||
175 | .portb = CX23885_MPEG_DVB, | ||
176 | }, | ||
173 | }; | 177 | }; |
174 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 178 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
175 | 179 | ||
@@ -261,6 +265,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
261 | .subvendor = 0xd470, | 265 | .subvendor = 0xd470, |
262 | .subdevice = 0x9022, | 266 | .subdevice = 0x9022, |
263 | .card = CX23885_BOARD_TEVII_S470, | 267 | .card = CX23885_BOARD_TEVII_S470, |
268 | }, { | ||
269 | .subvendor = 0x0001, | ||
270 | .subdevice = 0x2005, | ||
271 | .card = CX23885_BOARD_DVBWORLD_2005, | ||
264 | }, | 272 | }, |
265 | }; | 273 | }; |
266 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 274 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -656,6 +664,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
656 | break; | 664 | break; |
657 | case CX23885_BOARD_TEVII_S470: | 665 | case CX23885_BOARD_TEVII_S470: |
658 | case CX23885_BOARD_TBS_6920: | 666 | case CX23885_BOARD_TBS_6920: |
667 | case CX23885_BOARD_DVBWORLD_2005: | ||
659 | ts1->gen_ctrl_val = 0x5; /* Parallel */ | 668 | ts1->gen_ctrl_val = 0x5; /* Parallel */ |
660 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 669 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
661 | ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | 670 | ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index a6b62a7bf618..14a6540b826c 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -331,6 +331,10 @@ static struct cx24116_config tevii_cx24116_config = { | |||
331 | .demod_address = 0x55, | 331 | .demod_address = 0x55, |
332 | }; | 332 | }; |
333 | 333 | ||
334 | static struct cx24116_config dvbworld_cx24116_config = { | ||
335 | .demod_address = 0x05, | ||
336 | }; | ||
337 | |||
334 | static int dvb_register(struct cx23885_tsport *port) | 338 | static int dvb_register(struct cx23885_tsport *port) |
335 | { | 339 | { |
336 | struct cx23885_dev *dev = port->dev; | 340 | struct cx23885_dev *dev = port->dev; |
@@ -569,6 +573,13 @@ static int dvb_register(struct cx23885_tsport *port) | |||
569 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; | 573 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; |
570 | 574 | ||
571 | break; | 575 | break; |
576 | case CX23885_BOARD_DVBWORLD_2005: | ||
577 | i2c_bus = &dev->i2c_bus[1]; | ||
578 | |||
579 | fe0->dvb.frontend = dvb_attach(cx24116_attach, | ||
580 | &dvbworld_cx24116_config, | ||
581 | &i2c_bus->i2c_adap); | ||
582 | break; | ||
572 | default: | 583 | default: |
573 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " | 584 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " |
574 | " isn't supported yet\n", | 585 | " isn't supported yet\n", |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index 01856fb48a40..37a88b1683c3 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -69,6 +69,7 @@ | |||
69 | #define CX23885_BOARD_COMPRO_VIDEOMATE_E650F 13 | 69 | #define CX23885_BOARD_COMPRO_VIDEOMATE_E650F 13 |
70 | #define CX23885_BOARD_TBS_6920 14 | 70 | #define CX23885_BOARD_TBS_6920 14 |
71 | #define CX23885_BOARD_TEVII_S470 15 | 71 | #define CX23885_BOARD_TEVII_S470 15 |
72 | #define CX23885_BOARD_DVBWORLD_2005 16 | ||
72 | 73 | ||
73 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ | 74 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ |
74 | #define CX23885_NORMS (\ | 75 | #define CX23885_NORMS (\ |