diff options
author | Igor M. Liplianin <liplianin@me.by> | 2011-01-25 15:06:00 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-21 19:32:18 -0400 |
commit | 10d0dcd73c619d86b8ba1c9cd753ce749f578bf4 (patch) | |
tree | 0628ae2fe4c5cdb7509b9fa8f7b1041d18f9b1ab /drivers/media | |
parent | 557f48d5720b45dae07788bc9976762c363b8ad0 (diff) |
[media] cx23885: implement num_fds_portb, num_fds_portc parameters for cx23885_board structure
This is needed for multifrontend support.
NetUP Dual DVB-T/C CI RF card has frontends connected to port B & C
Each frontend has two switchable cores - DVB-T & DVB-C
Signed-off-by: Igor M. Liplianin <liplianin@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 2 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-core.c | 6 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index fb2045af499f..ea88722cb4ab 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -344,6 +344,8 @@ struct cx23885_board cx23885_boards[] = { | |||
344 | .porta = CX23885_ANALOG_VIDEO, | 344 | .porta = CX23885_ANALOG_VIDEO, |
345 | .portb = CX23885_MPEG_DVB, | 345 | .portb = CX23885_MPEG_DVB, |
346 | .portc = CX23885_MPEG_DVB, | 346 | .portc = CX23885_MPEG_DVB, |
347 | .num_fds_portb = 2, | ||
348 | .num_fds_portc = 2, | ||
347 | .tuner_type = TUNER_XC5000, | 349 | .tuner_type = TUNER_XC5000, |
348 | .tuner_addr = 0x64, | 350 | .tuner_addr = 0x64, |
349 | .input = { { | 351 | .input = { { |
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c index d621d76f3a9a..d778b1ae9217 100644 --- a/drivers/media/video/cx23885/cx23885-core.c +++ b/drivers/media/video/cx23885/cx23885-core.c | |||
@@ -1005,6 +1005,9 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) | |||
1005 | } | 1005 | } |
1006 | 1006 | ||
1007 | if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) { | 1007 | if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) { |
1008 | if (cx23885_boards[dev->board].num_fds_portb) | ||
1009 | dev->ts1.num_frontends = | ||
1010 | cx23885_boards[dev->board].num_fds_portb; | ||
1008 | if (cx23885_dvb_register(&dev->ts1) < 0) { | 1011 | if (cx23885_dvb_register(&dev->ts1) < 0) { |
1009 | printk(KERN_ERR "%s() Failed to register dvb adapters on VID_B\n", | 1012 | printk(KERN_ERR "%s() Failed to register dvb adapters on VID_B\n", |
1010 | __func__); | 1013 | __func__); |
@@ -1019,6 +1022,9 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) | |||
1019 | } | 1022 | } |
1020 | 1023 | ||
1021 | if (cx23885_boards[dev->board].portc == CX23885_MPEG_DVB) { | 1024 | if (cx23885_boards[dev->board].portc == CX23885_MPEG_DVB) { |
1025 | if (cx23885_boards[dev->board].num_fds_portc) | ||
1026 | dev->ts2.num_frontends = | ||
1027 | cx23885_boards[dev->board].num_fds_portc; | ||
1022 | if (cx23885_dvb_register(&dev->ts2) < 0) { | 1028 | if (cx23885_dvb_register(&dev->ts2) < 0) { |
1023 | printk(KERN_ERR | 1029 | printk(KERN_ERR |
1024 | "%s() Failed to register dvb on VID_C\n", | 1030 | "%s() Failed to register dvb on VID_C\n", |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index d8c76b05e4d7..8db2797bc7c3 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -205,6 +205,7 @@ typedef enum { | |||
205 | struct cx23885_board { | 205 | struct cx23885_board { |
206 | char *name; | 206 | char *name; |
207 | port_t porta, portb, portc; | 207 | port_t porta, portb, portc; |
208 | int num_fds_portb, num_fds_portc; | ||
208 | unsigned int tuner_type; | 209 | unsigned int tuner_type; |
209 | unsigned int radio_type; | 210 | unsigned int radio_type; |
210 | unsigned char tuner_addr; | 211 | unsigned char tuner_addr; |