aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorIgor M. Liplianin <liplianin@me.by>2011-01-25 15:06:00 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-03-21 19:32:18 -0400
commit10d0dcd73c619d86b8ba1c9cd753ce749f578bf4 (patch)
tree0628ae2fe4c5cdb7509b9fa8f7b1041d18f9b1ab /drivers/media
parent557f48d5720b45dae07788bc9976762c363b8ad0 (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.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c6
-rw-r--r--drivers/media/video/cx23885/cx23885.h1
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 {
205struct cx23885_board { 205struct 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;