aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-10-21 09:43:10 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-21 12:31:59 -0400
commit3007703db804b7e6e9f5e3cca9e3a661e0ff3eb2 (patch)
tree8bf44c4c64dbd02da721b9d2bf7d10df8b911c76
parent9212a572dd5ecc69f9b9985ba3e92c6f2504f0fc (diff)
V4L/DVB (9333): cx88: Not all boards that requires cx88-mpeg has frontends
The multifrontend changes on cx88 assumed that all boards that use cx88-mpeg supports DVB. This is not true. There also a few analog-only boards based on Blackboard design that also uses cx88-mpeg. For those boards, there's no need to allocate dvb frontends. This patch fixes videobuf allocation for those devices. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx88/cx88-cards.c4
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c8
2 files changed, 4 insertions, 8 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index fbc224f46e0e..5bcbb4cc7c2a 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -3044,8 +3044,8 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
3044 3044
3045 memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board)); 3045 memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board));
3046 3046
3047 if (!core->board.num_frontends) 3047 if (!core->board.num_frontends && (core->board.mpeg & CX88_MPEG_DVB))
3048 core->board.num_frontends=1; 3048 core->board.num_frontends = 1;
3049 3049
3050 info_printk(core, "subsystem: %04x:%04x, board: %s [card=%d,%s], frontend(s): %d\n", 3050 info_printk(core, "subsystem: %04x:%04x, board: %s [card=%d,%s], frontend(s): %d\n",
3051 pci->subsystem_vendor, pci->subsystem_device, core->board.name, 3051 pci->subsystem_vendor, pci->subsystem_device, core->board.name,
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index b21fd93c1929..a1c435b4b1cd 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -785,11 +785,6 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
785 if (!core->board.mpeg) 785 if (!core->board.mpeg)
786 goto fail_core; 786 goto fail_core;
787 787
788 if (!core->board.num_frontends) {
789 printk(KERN_ERR "%s() .num_frontends should be non-zero, err = %d\n", __func__, err);
790 goto fail_core;
791 }
792
793 err = -ENOMEM; 788 err = -ENOMEM;
794 dev = kzalloc(sizeof(*dev),GFP_KERNEL); 789 dev = kzalloc(sizeof(*dev),GFP_KERNEL);
795 if (NULL == dev) 790 if (NULL == dev)
@@ -808,7 +803,8 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
808 mutex_init(&dev->frontends.lock); 803 mutex_init(&dev->frontends.lock);
809 INIT_LIST_HEAD(&dev->frontends.felist); 804 INIT_LIST_HEAD(&dev->frontends.felist);
810 805
811 printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends); 806 if (core->board.num_frontends)
807 printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends);
812 808
813 for (i = 1; i <= core->board.num_frontends; i++) { 809 for (i = 1; i <= core->board.num_frontends; i++) {
814 demod = videobuf_dvb_alloc_frontend(&dev->frontends, i); 810 demod = videobuf_dvb_alloc_frontend(&dev->frontends, i);