aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/saa7134/saa7134-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/pci/saa7134/saa7134-core.c')
-rw-r--r--drivers/media/pci/saa7134/saa7134-core.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c
index 236ed725f933..a349e964e0bc 100644
--- a/drivers/media/pci/saa7134/saa7134-core.c
+++ b/drivers/media/pci/saa7134/saa7134-core.c
@@ -1001,13 +1001,18 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1001 saa7134_board_init1(dev); 1001 saa7134_board_init1(dev);
1002 saa7134_hwinit1(dev); 1002 saa7134_hwinit1(dev);
1003 1003
1004 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
1005 if (IS_ERR(dev->alloc_ctx)) {
1006 err = PTR_ERR(dev->alloc_ctx);
1007 goto fail3;
1008 }
1004 /* get irq */ 1009 /* get irq */
1005 err = request_irq(pci_dev->irq, saa7134_irq, 1010 err = request_irq(pci_dev->irq, saa7134_irq,
1006 IRQF_SHARED, dev->name, dev); 1011 IRQF_SHARED, dev->name, dev);
1007 if (err < 0) { 1012 if (err < 0) {
1008 printk(KERN_ERR "%s: can't get IRQ %d\n", 1013 printk(KERN_ERR "%s: can't get IRQ %d\n",
1009 dev->name,pci_dev->irq); 1014 dev->name,pci_dev->irq);
1010 goto fail3; 1015 goto fail4;
1011 } 1016 }
1012 1017
1013 /* wait a bit, register i2c bus */ 1018 /* wait a bit, register i2c bus */
@@ -1065,7 +1070,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1065 if (err < 0) { 1070 if (err < 0) {
1066 printk(KERN_INFO "%s: can't register video device\n", 1071 printk(KERN_INFO "%s: can't register video device\n",
1067 dev->name); 1072 dev->name);
1068 goto fail4; 1073 goto fail5;
1069 } 1074 }
1070 printk(KERN_INFO "%s: registered device %s [v4l2]\n", 1075 printk(KERN_INFO "%s: registered device %s [v4l2]\n",
1071 dev->name, video_device_node_name(dev->video_dev)); 1076 dev->name, video_device_node_name(dev->video_dev));
@@ -1078,7 +1083,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1078 err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI, 1083 err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI,
1079 vbi_nr[dev->nr]); 1084 vbi_nr[dev->nr]);
1080 if (err < 0) 1085 if (err < 0)
1081 goto fail4; 1086 goto fail5;
1082 printk(KERN_INFO "%s: registered device %s\n", 1087 printk(KERN_INFO "%s: registered device %s\n",
1083 dev->name, video_device_node_name(dev->vbi_dev)); 1088 dev->name, video_device_node_name(dev->vbi_dev));
1084 1089
@@ -1089,7 +1094,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1089 err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO, 1094 err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO,
1090 radio_nr[dev->nr]); 1095 radio_nr[dev->nr]);
1091 if (err < 0) 1096 if (err < 0)
1092 goto fail4; 1097 goto fail5;
1093 printk(KERN_INFO "%s: registered device %s\n", 1098 printk(KERN_INFO "%s: registered device %s\n",
1094 dev->name, video_device_node_name(dev->radio_dev)); 1099 dev->name, video_device_node_name(dev->radio_dev));
1095 } 1100 }
@@ -1103,10 +1108,12 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1103 request_submodules(dev); 1108 request_submodules(dev);
1104 return 0; 1109 return 0;
1105 1110
1106 fail4: 1111 fail5:
1107 saa7134_unregister_video(dev); 1112 saa7134_unregister_video(dev);
1108 saa7134_i2c_unregister(dev); 1113 saa7134_i2c_unregister(dev);
1109 free_irq(pci_dev->irq, dev); 1114 free_irq(pci_dev->irq, dev);
1115 fail4:
1116 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1110 fail3: 1117 fail3:
1111 saa7134_hwfini(dev); 1118 saa7134_hwfini(dev);
1112 iounmap(dev->lmmio); 1119 iounmap(dev->lmmio);
@@ -1173,6 +1180,7 @@ static void saa7134_finidev(struct pci_dev *pci_dev)
1173 1180
1174 /* release resources */ 1181 /* release resources */
1175 free_irq(pci_dev->irq, dev); 1182 free_irq(pci_dev->irq, dev);
1183 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1176 iounmap(dev->lmmio); 1184 iounmap(dev->lmmio);
1177 release_mem_region(pci_resource_start(pci_dev,0), 1185 release_mem_region(pci_resource_start(pci_dev,0),
1178 pci_resource_len(pci_dev,0)); 1186 pci_resource_len(pci_dev,0));