|
@@ -1001,13 +1001,18 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
|
|
|
saa7134_board_init1(dev);
|
|
|
saa7134_hwinit1(dev);
|
|
|
|
|
|
+ dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
|
|
+ if (IS_ERR(dev->alloc_ctx)) {
|
|
|
+ err = PTR_ERR(dev->alloc_ctx);
|
|
|
+ goto fail3;
|
|
|
+ }
|
|
|
/* get irq */
|
|
|
err = request_irq(pci_dev->irq, saa7134_irq,
|
|
|
IRQF_SHARED, dev->name, dev);
|
|
|
if (err < 0) {
|
|
|
printk(KERN_ERR "%s: can't get IRQ %d\n",
|
|
|
dev->name,pci_dev->irq);
|
|
|
- goto fail3;
|
|
|
+ goto fail4;
|
|
|
}
|
|
|
|
|
|
/* wait a bit, register i2c bus */
|
|
@@ -1065,7 +1070,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
|
|
|
if (err < 0) {
|
|
|
printk(KERN_INFO "%s: can't register video device\n",
|
|
|
dev->name);
|
|
|
- goto fail4;
|
|
|
+ goto fail5;
|
|
|
}
|
|
|
printk(KERN_INFO "%s: registered device %s [v4l2]\n",
|
|
|
dev->name, video_device_node_name(dev->video_dev));
|
|
@@ -1078,7 +1083,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
|
|
|
err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI,
|
|
|
vbi_nr[dev->nr]);
|
|
|
if (err < 0)
|
|
|
- goto fail4;
|
|
|
+ goto fail5;
|
|
|
printk(KERN_INFO "%s: registered device %s\n",
|
|
|
dev->name, video_device_node_name(dev->vbi_dev));
|
|
|
|
|
@@ -1089,7 +1094,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
|
|
|
err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO,
|
|
|
radio_nr[dev->nr]);
|
|
|
if (err < 0)
|
|
|
- goto fail4;
|
|
|
+ goto fail5;
|
|
|
printk(KERN_INFO "%s: registered device %s\n",
|
|
|
dev->name, video_device_node_name(dev->radio_dev));
|
|
|
}
|
|
@@ -1103,10 +1108,12 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
|
|
|
request_submodules(dev);
|
|
|
return 0;
|
|
|
|
|
|
- fail4:
|
|
|
+ fail5:
|
|
|
saa7134_unregister_video(dev);
|
|
|
saa7134_i2c_unregister(dev);
|
|
|
free_irq(pci_dev->irq, dev);
|
|
|
+ fail4:
|
|
|
+ vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
|
|
fail3:
|
|
|
saa7134_hwfini(dev);
|
|
|
iounmap(dev->lmmio);
|
|
@@ -1173,6 +1180,7 @@ static void saa7134_finidev(struct pci_dev *pci_dev)
|
|
|
|
|
|
/* release resources */
|
|
|
free_irq(pci_dev->irq, dev);
|
|
|
+ vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
|
|
iounmap(dev->lmmio);
|
|
|
release_mem_region(pci_resource_start(pci_dev,0),
|
|
|
pci_resource_len(pci_dev,0));
|