diff options
Diffstat (limited to 'drivers/media/pci/saa7134/saa7134-core.c')
-rw-r--r-- | drivers/media/pci/saa7134/saa7134-core.c | 18 |
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)); |