]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/cx88/cx88-mpeg.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6-omap-h63xx.git] / drivers / media / video / cx88 / cx88-mpeg.c
index a6b061c2644a7d72446a0a79713180c64e3d6c8d..a1c435b4b1cd3901f93022d6ecf25f65d16486f8 100644 (file)
@@ -769,6 +769,10 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
        struct cx8802_dev *dev;
        struct cx88_core  *core;
        int err;
+#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
+       struct videobuf_dvb_frontend *demod;
+       int i;
+#endif
 
        /* general setup */
        core = cx88_core_get(pci_dev);
@@ -795,6 +799,23 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
        INIT_LIST_HEAD(&dev->drvlist);
        list_add_tail(&dev->devlist,&cx8802_devlist);
 
+#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
+       mutex_init(&dev->frontends.lock);
+       INIT_LIST_HEAD(&dev->frontends.felist);
+
+       if (core->board.num_frontends)
+               printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends);
+
+       for (i = 1; i <= core->board.num_frontends; i++) {
+               demod = videobuf_dvb_alloc_frontend(&dev->frontends, i);
+               if(demod == NULL) {
+                       printk(KERN_ERR "%s() failed to alloc\n", __func__);
+                       err = -ENOMEM;
+                       goto fail_free;
+               }
+       }
+#endif
+
        /* Maintain a reference so cx88-video can query the 8802 device. */
        core->dvbdev = dev;