aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2016-02-15 09:37:15 -0500
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-07-08 13:37:17 -0400
commit2bc46b3ad3c15165f91459b07ff8682478683194 (patch)
tree01a28e76142c4dde286157e7253fbd89dddc300b
parent0e2f511894ceca86d2cc006a363a1be0b17ca359 (diff)
[media] media/pci: convert drivers to use the new vb2_queue dev field
Stop using alloc_ctx and just fill in the device pointer. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: Federico Vaga <federico.vaga@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--drivers/media/pci/cobalt/cobalt-driver.c9
-rw-r--r--drivers/media/pci/cobalt/cobalt-driver.h1
-rw-r--r--drivers/media/pci/cobalt/cobalt-v4l2.c2
-rw-r--r--drivers/media/pci/cx23885/cx23885-417.c1
-rw-r--r--drivers/media/pci/cx23885/cx23885-core.c10
-rw-r--r--drivers/media/pci/cx23885/cx23885-dvb.c2
-rw-r--r--drivers/media/pci/cx23885/cx23885-vbi.c1
-rw-r--r--drivers/media/pci/cx23885/cx23885-video.c3
-rw-r--r--drivers/media/pci/cx23885/cx23885.h1
-rw-r--r--drivers/media/pci/cx25821/cx25821-core.c10
-rw-r--r--drivers/media/pci/cx25821/cx25821-video.c3
-rw-r--r--drivers/media/pci/cx25821/cx25821.h1
-rw-r--r--drivers/media/pci/cx88/cx88-blackbird.c2
-rw-r--r--drivers/media/pci/cx88/cx88-dvb.c2
-rw-r--r--drivers/media/pci/cx88/cx88-mpeg.c10
-rw-r--r--drivers/media/pci/cx88/cx88-vbi.c1
-rw-r--r--drivers/media/pci/cx88/cx88-video.c11
-rw-r--r--drivers/media/pci/cx88/cx88.h2
-rw-r--r--drivers/media/pci/dt3155/dt3155.c13
-rw-r--r--drivers/media/pci/dt3155/dt3155.h2
-rw-r--r--drivers/media/pci/saa7134/saa7134-core.c22
-rw-r--r--drivers/media/pci/saa7134/saa7134-ts.c1
-rw-r--r--drivers/media/pci/saa7134/saa7134-vbi.c1
-rw-r--r--drivers/media/pci/saa7134/saa7134-video.c3
-rw-r--r--drivers/media/pci/saa7134/saa7134.h1
-rw-r--r--drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c11
-rw-r--r--drivers/media/pci/solo6x10/solo6x10-v4l2.c10
-rw-r--r--drivers/media/pci/solo6x10/solo6x10.h2
-rw-r--r--drivers/media/pci/sta2x11/sta2x11_vip.c18
-rw-r--r--drivers/media/pci/tw68/tw68-core.c15
-rw-r--r--drivers/media/pci/tw68/tw68-video.c2
-rw-r--r--drivers/media/pci/tw68/tw68.h1
-rw-r--r--drivers/staging/media/tw686x-kh/tw686x-kh-video.c10
-rw-r--r--drivers/staging/media/tw686x-kh/tw686x-kh.h1
34 files changed, 32 insertions, 153 deletions
diff --git a/drivers/media/pci/cobalt/cobalt-driver.c b/drivers/media/pci/cobalt/cobalt-driver.c
index 8d6f04fc8013..1aaa2b074f48 100644
--- a/drivers/media/pci/cobalt/cobalt-driver.c
+++ b/drivers/media/pci/cobalt/cobalt-driver.c
@@ -691,17 +691,10 @@ static int cobalt_probe(struct pci_dev *pci_dev,
691 cobalt->pci_dev = pci_dev; 691 cobalt->pci_dev = pci_dev;
692 cobalt->instance = i; 692 cobalt->instance = i;
693 693
694 cobalt->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
695 if (IS_ERR(cobalt->alloc_ctx)) {
696 kfree(cobalt);
697 return -ENOMEM;
698 }
699
700 retval = v4l2_device_register(&pci_dev->dev, &cobalt->v4l2_dev); 694 retval = v4l2_device_register(&pci_dev->dev, &cobalt->v4l2_dev);
701 if (retval) { 695 if (retval) {
702 pr_err("cobalt: v4l2_device_register of card %d failed\n", 696 pr_err("cobalt: v4l2_device_register of card %d failed\n",
703 cobalt->instance); 697 cobalt->instance);
704 vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
705 kfree(cobalt); 698 kfree(cobalt);
706 return retval; 699 return retval;
707 } 700 }
@@ -782,7 +775,6 @@ err:
782 cobalt_err("error %d on initialization\n", retval); 775 cobalt_err("error %d on initialization\n", retval);
783 776
784 v4l2_device_unregister(&cobalt->v4l2_dev); 777 v4l2_device_unregister(&cobalt->v4l2_dev);
785 vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
786 kfree(cobalt); 778 kfree(cobalt);
787 return retval; 779 return retval;
788} 780}
@@ -818,7 +810,6 @@ static void cobalt_remove(struct pci_dev *pci_dev)
818 cobalt_info("removed cobalt card\n"); 810 cobalt_info("removed cobalt card\n");
819 811
820 v4l2_device_unregister(v4l2_dev); 812 v4l2_device_unregister(v4l2_dev);
821 vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
822 kfree(cobalt); 813 kfree(cobalt);
823} 814}
824 815
diff --git a/drivers/media/pci/cobalt/cobalt-driver.h b/drivers/media/pci/cobalt/cobalt-driver.h
index b2f08e4a68bf..ed00dc9d9399 100644
--- a/drivers/media/pci/cobalt/cobalt-driver.h
+++ b/drivers/media/pci/cobalt/cobalt-driver.h
@@ -262,7 +262,6 @@ struct cobalt {
262 int instance; 262 int instance;
263 struct pci_dev *pci_dev; 263 struct pci_dev *pci_dev;
264 struct v4l2_device v4l2_dev; 264 struct v4l2_device v4l2_dev;
265 void *alloc_ctx;
266 265
267 void __iomem *bar0, *bar1; 266 void __iomem *bar0, *bar1;
268 267
diff --git a/drivers/media/pci/cobalt/cobalt-v4l2.c b/drivers/media/pci/cobalt/cobalt-v4l2.c
index c0ba458f6cf3..6c19cdfcf3b1 100644
--- a/drivers/media/pci/cobalt/cobalt-v4l2.c
+++ b/drivers/media/pci/cobalt/cobalt-v4l2.c
@@ -54,7 +54,6 @@ static int cobalt_queue_setup(struct vb2_queue *q,
54 *num_buffers = 3; 54 *num_buffers = 3;
55 if (*num_buffers > NR_BUFS) 55 if (*num_buffers > NR_BUFS)
56 *num_buffers = NR_BUFS; 56 *num_buffers = NR_BUFS;
57 alloc_ctxs[0] = s->cobalt->alloc_ctx;
58 if (*num_planes) 57 if (*num_planes)
59 return sizes[0] < size ? -EINVAL : 0; 58 return sizes[0] < size ? -EINVAL : 0;
60 *num_planes = 1; 59 *num_planes = 1;
@@ -1224,6 +1223,7 @@ static int cobalt_node_register(struct cobalt *cobalt, int node)
1224 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1223 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1225 q->min_buffers_needed = 2; 1224 q->min_buffers_needed = 2;
1226 q->lock = &s->lock; 1225 q->lock = &s->lock;
1226 q->dev = &cobalt->pci_dev->dev;
1227 vdev->queue = q; 1227 vdev->queue = q;
1228 1228
1229 video_set_drvdata(vdev, s); 1229 video_set_drvdata(vdev, s);
diff --git a/drivers/media/pci/cx23885/cx23885-417.c b/drivers/media/pci/cx23885/cx23885-417.c
index bd333875a1f7..0174d08d0c27 100644
--- a/drivers/media/pci/cx23885/cx23885-417.c
+++ b/drivers/media/pci/cx23885/cx23885-417.c
@@ -1148,7 +1148,6 @@ static int queue_setup(struct vb2_queue *q,
1148 dev->ts1.ts_packet_count = mpeglines; 1148 dev->ts1.ts_packet_count = mpeglines;
1149 *num_planes = 1; 1149 *num_planes = 1;
1150 sizes[0] = mpeglinesize * mpeglines; 1150 sizes[0] = mpeglinesize * mpeglines;
1151 alloc_ctxs[0] = dev->alloc_ctx;
1152 *num_buffers = mpegbufs; 1151 *num_buffers = mpegbufs;
1153 return 0; 1152 return 0;
1154} 1153}
diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c
index 813c217b5e1a..c86b1093ab99 100644
--- a/drivers/media/pci/cx23885/cx23885-core.c
+++ b/drivers/media/pci/cx23885/cx23885-core.c
@@ -2005,14 +2005,9 @@ static int cx23885_initdev(struct pci_dev *pci_dev,
2005 err = pci_set_dma_mask(pci_dev, 0xffffffff); 2005 err = pci_set_dma_mask(pci_dev, 0xffffffff);
2006 if (err) { 2006 if (err) {
2007 printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name); 2007 printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name);
2008 goto fail_context; 2008 goto fail_ctrl;
2009 } 2009 }
2010 2010
2011 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
2012 if (IS_ERR(dev->alloc_ctx)) {
2013 err = PTR_ERR(dev->alloc_ctx);
2014 goto fail_context;
2015 }
2016 err = request_irq(pci_dev->irq, cx23885_irq, 2011 err = request_irq(pci_dev->irq, cx23885_irq,
2017 IRQF_SHARED, dev->name, dev); 2012 IRQF_SHARED, dev->name, dev);
2018 if (err < 0) { 2013 if (err < 0) {
@@ -2041,8 +2036,6 @@ static int cx23885_initdev(struct pci_dev *pci_dev,
2041 return 0; 2036 return 0;
2042 2037
2043fail_irq: 2038fail_irq:
2044 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
2045fail_context:
2046 cx23885_dev_unregister(dev); 2039 cx23885_dev_unregister(dev);
2047fail_ctrl: 2040fail_ctrl:
2048 v4l2_ctrl_handler_free(hdl); 2041 v4l2_ctrl_handler_free(hdl);
@@ -2068,7 +2061,6 @@ static void cx23885_finidev(struct pci_dev *pci_dev)
2068 pci_disable_device(pci_dev); 2061 pci_disable_device(pci_dev);
2069 2062
2070 cx23885_dev_unregister(dev); 2063 cx23885_dev_unregister(dev);
2071 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
2072 v4l2_ctrl_handler_free(&dev->ctrl_handler); 2064 v4l2_ctrl_handler_free(&dev->ctrl_handler);
2073 v4l2_device_unregister(v4l2_dev); 2065 v4l2_device_unregister(v4l2_dev);
2074 kfree(dev); 2066 kfree(dev);
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index f041b6931ba8..6ad07f5b5749 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -102,7 +102,6 @@ static int queue_setup(struct vb2_queue *q,
102 port->ts_packet_count = 32; 102 port->ts_packet_count = 32;
103 *num_planes = 1; 103 *num_planes = 1;
104 sizes[0] = port->ts_packet_size * port->ts_packet_count; 104 sizes[0] = port->ts_packet_size * port->ts_packet_count;
105 alloc_ctxs[0] = port->dev->alloc_ctx;
106 *num_buffers = 32; 105 *num_buffers = 32;
107 return 0; 106 return 0;
108} 107}
@@ -2397,6 +2396,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
2397 q->mem_ops = &vb2_dma_sg_memops; 2396 q->mem_ops = &vb2_dma_sg_memops;
2398 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 2397 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
2399 q->lock = &dev->lock; 2398 q->lock = &dev->lock;
2399 q->dev = &dev->pci->dev;
2400 2400
2401 err = vb2_queue_init(q); 2401 err = vb2_queue_init(q);
2402 if (err < 0) 2402 if (err < 0)
diff --git a/drivers/media/pci/cx23885/cx23885-vbi.c b/drivers/media/pci/cx23885/cx23885-vbi.c
index 39750ebcc04c..2de9485013e1 100644
--- a/drivers/media/pci/cx23885/cx23885-vbi.c
+++ b/drivers/media/pci/cx23885/cx23885-vbi.c
@@ -131,7 +131,6 @@ static int queue_setup(struct vb2_queue *q,
131 lines = VBI_NTSC_LINE_COUNT; 131 lines = VBI_NTSC_LINE_COUNT;
132 *num_planes = 1; 132 *num_planes = 1;
133 sizes[0] = lines * VBI_LINE_LENGTH * 2; 133 sizes[0] = lines * VBI_LINE_LENGTH * 2;
134 alloc_ctxs[0] = dev->alloc_ctx;
135 return 0; 134 return 0;
136} 135}
137 136
diff --git a/drivers/media/pci/cx23885/cx23885-video.c b/drivers/media/pci/cx23885/cx23885-video.c
index e1d7d0847167..3ff86d6dbc60 100644
--- a/drivers/media/pci/cx23885/cx23885-video.c
+++ b/drivers/media/pci/cx23885/cx23885-video.c
@@ -341,7 +341,6 @@ static int queue_setup(struct vb2_queue *q,
341 341
342 *num_planes = 1; 342 *num_planes = 1;
343 sizes[0] = (dev->fmt->depth * dev->width * dev->height) >> 3; 343 sizes[0] = (dev->fmt->depth * dev->width * dev->height) >> 3;
344 alloc_ctxs[0] = dev->alloc_ctx;
345 return 0; 344 return 0;
346} 345}
347 346
@@ -1268,6 +1267,7 @@ int cx23885_video_register(struct cx23885_dev *dev)
1268 q->mem_ops = &vb2_dma_sg_memops; 1267 q->mem_ops = &vb2_dma_sg_memops;
1269 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1268 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1270 q->lock = &dev->lock; 1269 q->lock = &dev->lock;
1270 q->dev = &dev->pci->dev;
1271 1271
1272 err = vb2_queue_init(q); 1272 err = vb2_queue_init(q);
1273 if (err < 0) 1273 if (err < 0)
@@ -1284,6 +1284,7 @@ int cx23885_video_register(struct cx23885_dev *dev)
1284 q->mem_ops = &vb2_dma_sg_memops; 1284 q->mem_ops = &vb2_dma_sg_memops;
1285 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1285 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1286 q->lock = &dev->lock; 1286 q->lock = &dev->lock;
1287 q->dev = &dev->pci->dev;
1287 1288
1288 err = vb2_queue_init(q); 1289 err = vb2_queue_init(q);
1289 if (err < 0) 1290 if (err < 0)
diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h
index b1a5409408c7..a25b64166277 100644
--- a/drivers/media/pci/cx23885/cx23885.h
+++ b/drivers/media/pci/cx23885/cx23885.h
@@ -430,7 +430,6 @@ struct cx23885_dev {
430 struct vb2_queue vb2_vidq; 430 struct vb2_queue vb2_vidq;
431 struct cx23885_dmaqueue vbiq; 431 struct cx23885_dmaqueue vbiq;
432 struct vb2_queue vb2_vbiq; 432 struct vb2_queue vb2_vbiq;
433 void *alloc_ctx;
434 433
435 spinlock_t slock; 434 spinlock_t slock;
436 435
diff --git a/drivers/media/pci/cx25821/cx25821-core.c b/drivers/media/pci/cx25821/cx25821-core.c
index 0042803a9de7..9a5f912ca859 100644
--- a/drivers/media/pci/cx25821/cx25821-core.c
+++ b/drivers/media/pci/cx25821/cx25821-core.c
@@ -1301,15 +1301,10 @@ static int cx25821_initdev(struct pci_dev *pci_dev,
1301 1301
1302 goto fail_unregister_device; 1302 goto fail_unregister_device;
1303 } 1303 }
1304 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
1305 if (IS_ERR(dev->alloc_ctx)) {
1306 err = PTR_ERR(dev->alloc_ctx);
1307 goto fail_unregister_pci;
1308 }
1309 1304
1310 err = cx25821_dev_setup(dev); 1305 err = cx25821_dev_setup(dev);
1311 if (err) 1306 if (err)
1312 goto fail_free_ctx; 1307 goto fail_unregister_pci;
1313 1308
1314 /* print pci info */ 1309 /* print pci info */
1315 pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev); 1310 pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev);
@@ -1340,8 +1335,6 @@ fail_irq:
1340 pr_info("cx25821_initdev() can't get IRQ !\n"); 1335 pr_info("cx25821_initdev() can't get IRQ !\n");
1341 cx25821_dev_unregister(dev); 1336 cx25821_dev_unregister(dev);
1342 1337
1343fail_free_ctx:
1344 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1345fail_unregister_pci: 1338fail_unregister_pci:
1346 pci_disable_device(pci_dev); 1339 pci_disable_device(pci_dev);
1347fail_unregister_device: 1340fail_unregister_device:
@@ -1365,7 +1358,6 @@ static void cx25821_finidev(struct pci_dev *pci_dev)
1365 free_irq(pci_dev->irq, dev); 1358 free_irq(pci_dev->irq, dev);
1366 1359
1367 cx25821_dev_unregister(dev); 1360 cx25821_dev_unregister(dev);
1368 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1369 v4l2_device_unregister(v4l2_dev); 1361 v4l2_device_unregister(v4l2_dev);
1370 kfree(dev); 1362 kfree(dev);
1371} 1363}
diff --git a/drivers/media/pci/cx25821/cx25821-video.c b/drivers/media/pci/cx25821/cx25821-video.c
index c48bba9daf1f..45fc23e11b0c 100644
--- a/drivers/media/pci/cx25821/cx25821-video.c
+++ b/drivers/media/pci/cx25821/cx25821-video.c
@@ -148,8 +148,6 @@ static int cx25821_queue_setup(struct vb2_queue *q,
148 struct cx25821_channel *chan = q->drv_priv; 148 struct cx25821_channel *chan = q->drv_priv;
149 unsigned size = (chan->fmt->depth * chan->width * chan->height) >> 3; 149 unsigned size = (chan->fmt->depth * chan->width * chan->height) >> 3;
150 150
151 alloc_ctxs[0] = chan->dev->alloc_ctx;
152
153 if (*num_planes) 151 if (*num_planes)
154 return sizes[0] < size ? -EINVAL : 0; 152 return sizes[0] < size ? -EINVAL : 0;
155 153
@@ -759,6 +757,7 @@ int cx25821_video_register(struct cx25821_dev *dev)
759 q->mem_ops = &vb2_dma_sg_memops; 757 q->mem_ops = &vb2_dma_sg_memops;
760 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 758 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
761 q->lock = &dev->lock; 759 q->lock = &dev->lock;
760 q->dev = &dev->pci->dev;
762 761
763 if (!is_output) { 762 if (!is_output) {
764 err = vb2_queue_init(q); 763 err = vb2_queue_init(q);
diff --git a/drivers/media/pci/cx25821/cx25821.h b/drivers/media/pci/cx25821/cx25821.h
index a513b68be0fa..35c7375e4617 100644
--- a/drivers/media/pci/cx25821/cx25821.h
+++ b/drivers/media/pci/cx25821/cx25821.h
@@ -249,7 +249,6 @@ struct cx25821_dev {
249 int hwrevision; 249 int hwrevision;
250 /* used by cx25821-alsa */ 250 /* used by cx25821-alsa */
251 struct snd_card *card; 251 struct snd_card *card;
252 void *alloc_ctx;
253 252
254 u32 clk_freq; 253 u32 clk_freq;
255 254
diff --git a/drivers/media/pci/cx88/cx88-blackbird.c b/drivers/media/pci/cx88/cx88-blackbird.c
index 3233d45d1e5b..7c026c1ca1fe 100644
--- a/drivers/media/pci/cx88/cx88-blackbird.c
+++ b/drivers/media/pci/cx88/cx88-blackbird.c
@@ -647,7 +647,6 @@ static int queue_setup(struct vb2_queue *q,
647 dev->ts_packet_size = 188 * 4; 647 dev->ts_packet_size = 188 * 4;
648 dev->ts_packet_count = 32; 648 dev->ts_packet_count = 32;
649 sizes[0] = dev->ts_packet_size * dev->ts_packet_count; 649 sizes[0] = dev->ts_packet_size * dev->ts_packet_count;
650 alloc_ctxs[0] = dev->alloc_ctx;
651 return 0; 650 return 0;
652} 651}
653 652
@@ -1183,6 +1182,7 @@ static int cx8802_blackbird_probe(struct cx8802_driver *drv)
1183 q->mem_ops = &vb2_dma_sg_memops; 1182 q->mem_ops = &vb2_dma_sg_memops;
1184 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1183 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1185 q->lock = &core->lock; 1184 q->lock = &core->lock;
1185 q->dev = &dev->pci->dev;
1186 1186
1187 err = vb2_queue_init(q); 1187 err = vb2_queue_init(q);
1188 if (err < 0) 1188 if (err < 0)
diff --git a/drivers/media/pci/cx88/cx88-dvb.c b/drivers/media/pci/cx88/cx88-dvb.c
index 851d2a9caed3..4d91d1697419 100644
--- a/drivers/media/pci/cx88/cx88-dvb.c
+++ b/drivers/media/pci/cx88/cx88-dvb.c
@@ -92,7 +92,6 @@ static int queue_setup(struct vb2_queue *q,
92 dev->ts_packet_size = 188 * 4; 92 dev->ts_packet_size = 188 * 4;
93 dev->ts_packet_count = dvb_buf_tscnt; 93 dev->ts_packet_count = dvb_buf_tscnt;
94 sizes[0] = dev->ts_packet_size * dev->ts_packet_count; 94 sizes[0] = dev->ts_packet_size * dev->ts_packet_count;
95 alloc_ctxs[0] = dev->alloc_ctx;
96 *num_buffers = dvb_buf_tscnt; 95 *num_buffers = dvb_buf_tscnt;
97 return 0; 96 return 0;
98} 97}
@@ -1793,6 +1792,7 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv)
1793 q->mem_ops = &vb2_dma_sg_memops; 1792 q->mem_ops = &vb2_dma_sg_memops;
1794 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1793 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1795 q->lock = &core->lock; 1794 q->lock = &core->lock;
1795 q->dev = &dev->pci->dev;
1796 1796
1797 err = vb2_queue_init(q); 1797 err = vb2_queue_init(q);
1798 if (err < 0) 1798 if (err < 0)
diff --git a/drivers/media/pci/cx88/cx88-mpeg.c b/drivers/media/pci/cx88/cx88-mpeg.c
index f34c229f9b37..245357adbc25 100644
--- a/drivers/media/pci/cx88/cx88-mpeg.c
+++ b/drivers/media/pci/cx88/cx88-mpeg.c
@@ -726,11 +726,6 @@ static int cx8802_probe(struct pci_dev *pci_dev,
726 if (NULL == dev) 726 if (NULL == dev)
727 goto fail_core; 727 goto fail_core;
728 dev->pci = pci_dev; 728 dev->pci = pci_dev;
729 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
730 if (IS_ERR(dev->alloc_ctx)) {
731 err = PTR_ERR(dev->alloc_ctx);
732 goto fail_dev;
733 }
734 dev->core = core; 729 dev->core = core;
735 730
736 /* Maintain a reference so cx88-video can query the 8802 device. */ 731 /* Maintain a reference so cx88-video can query the 8802 device. */
@@ -738,7 +733,7 @@ static int cx8802_probe(struct pci_dev *pci_dev,
738 733
739 err = cx8802_init_common(dev); 734 err = cx8802_init_common(dev);
740 if (err != 0) 735 if (err != 0)
741 goto fail_free; 736 goto fail_dev;
742 737
743 INIT_LIST_HEAD(&dev->drvlist); 738 INIT_LIST_HEAD(&dev->drvlist);
744 mutex_lock(&cx8802_mutex); 739 mutex_lock(&cx8802_mutex);
@@ -749,8 +744,6 @@ static int cx8802_probe(struct pci_dev *pci_dev,
749 request_modules(dev); 744 request_modules(dev);
750 return 0; 745 return 0;
751 746
752 fail_free:
753 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
754 fail_dev: 747 fail_dev:
755 kfree(dev); 748 kfree(dev);
756 fail_core: 749 fail_core:
@@ -798,7 +791,6 @@ static void cx8802_remove(struct pci_dev *pci_dev)
798 /* common */ 791 /* common */
799 cx8802_fini_common(dev); 792 cx8802_fini_common(dev);
800 cx88_core_put(dev->core,dev->pci); 793 cx88_core_put(dev->core,dev->pci);
801 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
802 kfree(dev); 794 kfree(dev);
803} 795}
804 796
diff --git a/drivers/media/pci/cx88/cx88-vbi.c b/drivers/media/pci/cx88/cx88-vbi.c
index ccc646d819f2..2479f7deccbf 100644
--- a/drivers/media/pci/cx88/cx88-vbi.c
+++ b/drivers/media/pci/cx88/cx88-vbi.c
@@ -118,7 +118,6 @@ static int queue_setup(struct vb2_queue *q,
118 sizes[0] = VBI_LINE_NTSC_COUNT * VBI_LINE_LENGTH * 2; 118 sizes[0] = VBI_LINE_NTSC_COUNT * VBI_LINE_LENGTH * 2;
119 else 119 else
120 sizes[0] = VBI_LINE_PAL_COUNT * VBI_LINE_LENGTH * 2; 120 sizes[0] = VBI_LINE_PAL_COUNT * VBI_LINE_LENGTH * 2;
121 alloc_ctxs[0] = dev->alloc_ctx;
122 return 0; 121 return 0;
123} 122}
124 123
diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
index 5f331df65fb9..9764d6fb382e 100644
--- a/drivers/media/pci/cx88/cx88-video.c
+++ b/drivers/media/pci/cx88/cx88-video.c
@@ -438,7 +438,6 @@ static int queue_setup(struct vb2_queue *q,
438 438
439 *num_planes = 1; 439 *num_planes = 1;
440 sizes[0] = (dev->fmt->depth * core->width * core->height) >> 3; 440 sizes[0] = (dev->fmt->depth * core->width * core->height) >> 3;
441 alloc_ctxs[0] = dev->alloc_ctx;
442 return 0; 441 return 0;
443} 442}
444 443
@@ -1319,12 +1318,6 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
1319 printk("%s/0: Oops: no 32bit PCI DMA ???\n",core->name); 1318 printk("%s/0: Oops: no 32bit PCI DMA ???\n",core->name);
1320 goto fail_core; 1319 goto fail_core;
1321 } 1320 }
1322 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
1323 if (IS_ERR(dev->alloc_ctx)) {
1324 err = PTR_ERR(dev->alloc_ctx);
1325 goto fail_core;
1326 }
1327
1328 1321
1329 /* initialize driver struct */ 1322 /* initialize driver struct */
1330 spin_lock_init(&dev->slock); 1323 spin_lock_init(&dev->slock);
@@ -1445,6 +1438,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
1445 q->mem_ops = &vb2_dma_sg_memops; 1438 q->mem_ops = &vb2_dma_sg_memops;
1446 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1439 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1447 q->lock = &core->lock; 1440 q->lock = &core->lock;
1441 q->dev = &dev->pci->dev;
1448 1442
1449 err = vb2_queue_init(q); 1443 err = vb2_queue_init(q);
1450 if (err < 0) 1444 if (err < 0)
@@ -1461,6 +1455,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
1461 q->mem_ops = &vb2_dma_sg_memops; 1455 q->mem_ops = &vb2_dma_sg_memops;
1462 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1456 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1463 q->lock = &core->lock; 1457 q->lock = &core->lock;
1458 q->dev = &dev->pci->dev;
1464 1459
1465 err = vb2_queue_init(q); 1460 err = vb2_queue_init(q);
1466 if (err < 0) 1461 if (err < 0)
@@ -1530,7 +1525,6 @@ fail_unreg:
1530 free_irq(pci_dev->irq, dev); 1525 free_irq(pci_dev->irq, dev);
1531 mutex_unlock(&core->lock); 1526 mutex_unlock(&core->lock);
1532fail_core: 1527fail_core:
1533 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1534 core->v4ldev = NULL; 1528 core->v4ldev = NULL;
1535 cx88_core_put(core,dev->pci); 1529 cx88_core_put(core,dev->pci);
1536fail_free: 1530fail_free:
@@ -1564,7 +1558,6 @@ static void cx8800_finidev(struct pci_dev *pci_dev)
1564 1558
1565 /* free memory */ 1559 /* free memory */
1566 cx88_core_put(core,dev->pci); 1560 cx88_core_put(core,dev->pci);
1567 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1568 kfree(dev); 1561 kfree(dev);
1569} 1562}
1570 1563
diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h
index 78f817ee7e41..ecd4b7bece99 100644
--- a/drivers/media/pci/cx88/cx88.h
+++ b/drivers/media/pci/cx88/cx88.h
@@ -485,7 +485,6 @@ struct cx8800_dev {
485 /* pci i/o */ 485 /* pci i/o */
486 struct pci_dev *pci; 486 struct pci_dev *pci;
487 unsigned char pci_rev,pci_lat; 487 unsigned char pci_rev,pci_lat;
488 void *alloc_ctx;
489 488
490 const struct cx8800_fmt *fmt; 489 const struct cx8800_fmt *fmt;
491 490
@@ -549,7 +548,6 @@ struct cx8802_dev {
549 /* pci i/o */ 548 /* pci i/o */
550 struct pci_dev *pci; 549 struct pci_dev *pci;
551 unsigned char pci_rev,pci_lat; 550 unsigned char pci_rev,pci_lat;
552 void *alloc_ctx;
553 551
554 /* dma queues */ 552 /* dma queues */
555 struct cx88_dmaqueue mpegq; 553 struct cx88_dmaqueue mpegq;
diff --git a/drivers/media/pci/dt3155/dt3155.c b/drivers/media/pci/dt3155/dt3155.c
index 568c0c8fb2dc..ec8f58a710c7 100644
--- a/drivers/media/pci/dt3155/dt3155.c
+++ b/drivers/media/pci/dt3155/dt3155.c
@@ -141,7 +141,6 @@ dt3155_queue_setup(struct vb2_queue *vq,
141 141
142 if (vq->num_buffers + *nbuffers < 2) 142 if (vq->num_buffers + *nbuffers < 2)
143 *nbuffers = 2 - vq->num_buffers; 143 *nbuffers = 2 - vq->num_buffers;
144 alloc_ctxs[0] = pd->alloc_ctx;
145 if (*num_planes) 144 if (*num_planes)
146 return sizes[0] < size ? -EINVAL : 0; 145 return sizes[0] < size ? -EINVAL : 0;
147 *num_planes = 1; 146 *num_planes = 1;
@@ -544,21 +543,16 @@ static int dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id)
544 pd->vidq.min_buffers_needed = 2; 543 pd->vidq.min_buffers_needed = 2;
545 pd->vidq.gfp_flags = GFP_DMA32; 544 pd->vidq.gfp_flags = GFP_DMA32;
546 pd->vidq.lock = &pd->mux; /* for locking v4l2_file_operations */ 545 pd->vidq.lock = &pd->mux; /* for locking v4l2_file_operations */
546 pd->vidq.dev = &pdev->dev;
547 pd->vdev.queue = &pd->vidq; 547 pd->vdev.queue = &pd->vidq;
548 err = vb2_queue_init(&pd->vidq); 548 err = vb2_queue_init(&pd->vidq);
549 if (err < 0) 549 if (err < 0)
550 goto err_v4l2_dev_unreg; 550 goto err_v4l2_dev_unreg;
551 pd->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
552 if (IS_ERR(pd->alloc_ctx)) {
553 dev_err(&pdev->dev, "Can't allocate buffer context");
554 err = PTR_ERR(pd->alloc_ctx);
555 goto err_v4l2_dev_unreg;
556 }
557 spin_lock_init(&pd->lock); 551 spin_lock_init(&pd->lock);
558 pd->config = ACQ_MODE_EVEN; 552 pd->config = ACQ_MODE_EVEN;
559 err = pci_enable_device(pdev); 553 err = pci_enable_device(pdev);
560 if (err) 554 if (err)
561 goto err_free_ctx; 555 goto err_v4l2_dev_unreg;
562 err = pci_request_region(pdev, 0, pci_name(pdev)); 556 err = pci_request_region(pdev, 0, pci_name(pdev));
563 if (err) 557 if (err)
564 goto err_pci_disable; 558 goto err_pci_disable;
@@ -588,8 +582,6 @@ err_free_reg:
588 pci_release_region(pdev, 0); 582 pci_release_region(pdev, 0);
589err_pci_disable: 583err_pci_disable:
590 pci_disable_device(pdev); 584 pci_disable_device(pdev);
591err_free_ctx:
592 vb2_dma_contig_cleanup_ctx(pd->alloc_ctx);
593err_v4l2_dev_unreg: 585err_v4l2_dev_unreg:
594 v4l2_device_unregister(&pd->v4l2_dev); 586 v4l2_device_unregister(&pd->v4l2_dev);
595 return err; 587 return err;
@@ -608,7 +600,6 @@ static void dt3155_remove(struct pci_dev *pdev)
608 pci_iounmap(pdev, pd->regs); 600 pci_iounmap(pdev, pd->regs);
609 pci_release_region(pdev, 0); 601 pci_release_region(pdev, 0);
610 pci_disable_device(pdev); 602 pci_disable_device(pdev);
611 vb2_dma_contig_cleanup_ctx(pd->alloc_ctx);
612} 603}
613 604
614static const struct pci_device_id pci_ids[] = { 605static const struct pci_device_id pci_ids[] = {
diff --git a/drivers/media/pci/dt3155/dt3155.h b/drivers/media/pci/dt3155/dt3155.h
index b3531e0bc733..39442e58919d 100644
--- a/drivers/media/pci/dt3155/dt3155.h
+++ b/drivers/media/pci/dt3155/dt3155.h
@@ -161,7 +161,6 @@
161 * @vdev: video_device structure 161 * @vdev: video_device structure
162 * @pdev: pointer to pci_dev structure 162 * @pdev: pointer to pci_dev structure
163 * @vidq: vb2_queue structure 163 * @vidq: vb2_queue structure
164 * @alloc_ctx: dma_contig allocation context
165 * @curr_buf: pointer to curren buffer 164 * @curr_buf: pointer to curren buffer
166 * @mux: mutex to protect the instance 165 * @mux: mutex to protect the instance
167 * @dmaq: queue for dma buffers 166 * @dmaq: queue for dma buffers
@@ -181,7 +180,6 @@ struct dt3155_priv {
181 struct video_device vdev; 180 struct video_device vdev;
182 struct pci_dev *pdev; 181 struct pci_dev *pdev;
183 struct vb2_queue vidq; 182 struct vb2_queue vidq;
184 struct vb2_alloc_ctx *alloc_ctx;
185 struct vb2_v4l2_buffer *curr_buf; 183 struct vb2_v4l2_buffer *curr_buf;
186 struct mutex mux; 184 struct mutex mux;
187 struct list_head dmaq; 185 struct list_head dmaq;
diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c
index c0e1780ec831..ffb66a9ae23e 100644
--- a/drivers/media/pci/saa7134/saa7134-core.c
+++ b/drivers/media/pci/saa7134/saa7134-core.c
@@ -1164,18 +1164,13 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1164 saa7134_board_init1(dev); 1164 saa7134_board_init1(dev);
1165 saa7134_hwinit1(dev); 1165 saa7134_hwinit1(dev);
1166 1166
1167 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
1168 if (IS_ERR(dev->alloc_ctx)) {
1169 err = PTR_ERR(dev->alloc_ctx);
1170 goto fail3;
1171 }
1172 /* get irq */ 1167 /* get irq */
1173 err = request_irq(pci_dev->irq, saa7134_irq, 1168 err = request_irq(pci_dev->irq, saa7134_irq,
1174 IRQF_SHARED, dev->name, dev); 1169 IRQF_SHARED, dev->name, dev);
1175 if (err < 0) { 1170 if (err < 0) {
1176 pr_err("%s: can't get IRQ %d\n", 1171 pr_err("%s: can't get IRQ %d\n",
1177 dev->name,pci_dev->irq); 1172 dev->name,pci_dev->irq);
1178 goto fail4; 1173 goto fail3;
1179 } 1174 }
1180 1175
1181 /* wait a bit, register i2c bus */ 1176 /* wait a bit, register i2c bus */
@@ -1233,7 +1228,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1233 if (err < 0) { 1228 if (err < 0) {
1234 pr_info("%s: can't register video device\n", 1229 pr_info("%s: can't register video device\n",
1235 dev->name); 1230 dev->name);
1236 goto fail5; 1231 goto fail4;
1237 } 1232 }
1238 pr_info("%s: registered device %s [v4l2]\n", 1233 pr_info("%s: registered device %s [v4l2]\n",
1239 dev->name, video_device_node_name(dev->video_dev)); 1234 dev->name, video_device_node_name(dev->video_dev));
@@ -1246,7 +1241,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1246 err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI, 1241 err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI,
1247 vbi_nr[dev->nr]); 1242 vbi_nr[dev->nr]);
1248 if (err < 0) 1243 if (err < 0)
1249 goto fail5; 1244 goto fail4;
1250 pr_info("%s: registered device %s\n", 1245 pr_info("%s: registered device %s\n",
1251 dev->name, video_device_node_name(dev->vbi_dev)); 1246 dev->name, video_device_node_name(dev->vbi_dev));
1252 1247
@@ -1257,7 +1252,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1257 err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO, 1252 err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO,
1258 radio_nr[dev->nr]); 1253 radio_nr[dev->nr]);
1259 if (err < 0) 1254 if (err < 0)
1260 goto fail5; 1255 goto fail4;
1261 pr_info("%s: registered device %s\n", 1256 pr_info("%s: registered device %s\n",
1262 dev->name, video_device_node_name(dev->radio_dev)); 1257 dev->name, video_device_node_name(dev->radio_dev));
1263 } 1258 }
@@ -1268,7 +1263,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1268 err = v4l2_mc_create_media_graph(dev->media_dev); 1263 err = v4l2_mc_create_media_graph(dev->media_dev);
1269 if (err) { 1264 if (err) {
1270 pr_err("failed to create media graph\n"); 1265 pr_err("failed to create media graph\n");
1271 goto fail5; 1266 goto fail4;
1272 } 1267 }
1273#endif 1268#endif
1274 /* everything worked */ 1269 /* everything worked */
@@ -1287,17 +1282,15 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
1287#ifdef CONFIG_MEDIA_CONTROLLER 1282#ifdef CONFIG_MEDIA_CONTROLLER
1288 err = media_device_register(dev->media_dev); 1283 err = media_device_register(dev->media_dev);
1289 if (err) 1284 if (err)
1290 goto fail5; 1285 goto fail4;
1291#endif 1286#endif
1292 1287
1293 return 0; 1288 return 0;
1294 1289
1295 fail5: 1290 fail4:
1296 saa7134_unregister_video(dev); 1291 saa7134_unregister_video(dev);
1297 saa7134_i2c_unregister(dev); 1292 saa7134_i2c_unregister(dev);
1298 free_irq(pci_dev->irq, dev); 1293 free_irq(pci_dev->irq, dev);
1299 fail4:
1300 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1301 fail3: 1294 fail3:
1302 saa7134_hwfini(dev); 1295 saa7134_hwfini(dev);
1303 iounmap(dev->lmmio); 1296 iounmap(dev->lmmio);
@@ -1367,7 +1360,6 @@ static void saa7134_finidev(struct pci_dev *pci_dev)
1367 1360
1368 /* release resources */ 1361 /* release resources */
1369 free_irq(pci_dev->irq, dev); 1362 free_irq(pci_dev->irq, dev);
1370 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
1371 iounmap(dev->lmmio); 1363 iounmap(dev->lmmio);
1372 release_mem_region(pci_resource_start(pci_dev,0), 1364 release_mem_region(pci_resource_start(pci_dev,0),
1373 pci_resource_len(pci_dev,0)); 1365 pci_resource_len(pci_dev,0));
diff --git a/drivers/media/pci/saa7134/saa7134-ts.c b/drivers/media/pci/saa7134/saa7134-ts.c
index 0584a2adbe99..8c68a934e22b 100644
--- a/drivers/media/pci/saa7134/saa7134-ts.c
+++ b/drivers/media/pci/saa7134/saa7134-ts.c
@@ -131,7 +131,6 @@ int saa7134_ts_queue_setup(struct vb2_queue *q,
131 *nbuffers = 3; 131 *nbuffers = 3;
132 *nplanes = 1; 132 *nplanes = 1;
133 sizes[0] = size; 133 sizes[0] = size;
134 alloc_ctxs[0] = dev->alloc_ctx;
135 return 0; 134 return 0;
136} 135}
137EXPORT_SYMBOL_GPL(saa7134_ts_queue_setup); 136EXPORT_SYMBOL_GPL(saa7134_ts_queue_setup);
diff --git a/drivers/media/pci/saa7134/saa7134-vbi.c b/drivers/media/pci/saa7134/saa7134-vbi.c
index e76da37c4a8a..e9bffb3569ba 100644
--- a/drivers/media/pci/saa7134/saa7134-vbi.c
+++ b/drivers/media/pci/saa7134/saa7134-vbi.c
@@ -155,7 +155,6 @@ static int queue_setup(struct vb2_queue *q,
155 *nbuffers = saa7134_buffer_count(size, *nbuffers); 155 *nbuffers = saa7134_buffer_count(size, *nbuffers);
156 *nplanes = 1; 156 *nplanes = 1;
157 sizes[0] = size; 157 sizes[0] = size;
158 alloc_ctxs[0] = dev->alloc_ctx;
159 return 0; 158 return 0;
160} 159}
161 160
diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/saa7134/saa7134-video.c
index ffa39543eb65..965ade72f5c5 100644
--- a/drivers/media/pci/saa7134/saa7134-video.c
+++ b/drivers/media/pci/saa7134/saa7134-video.c
@@ -980,7 +980,6 @@ static int queue_setup(struct vb2_queue *q,
980 *nbuffers = saa7134_buffer_count(size, *nbuffers); 980 *nbuffers = saa7134_buffer_count(size, *nbuffers);
981 *nplanes = 1; 981 *nplanes = 1;
982 sizes[0] = size; 982 sizes[0] = size;
983 alloc_ctxs[0] = dev->alloc_ctx;
984 983
985 saa7134_enable_analog_tuner(dev); 984 saa7134_enable_analog_tuner(dev);
986 985
@@ -2173,6 +2172,7 @@ int saa7134_video_init1(struct saa7134_dev *dev)
2173 q->buf_struct_size = sizeof(struct saa7134_buf); 2172 q->buf_struct_size = sizeof(struct saa7134_buf);
2174 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 2173 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
2175 q->lock = &dev->lock; 2174 q->lock = &dev->lock;
2175 q->dev = &dev->pci->dev;
2176 ret = vb2_queue_init(q); 2176 ret = vb2_queue_init(q);
2177 if (ret) 2177 if (ret)
2178 return ret; 2178 return ret;
@@ -2191,6 +2191,7 @@ int saa7134_video_init1(struct saa7134_dev *dev)
2191 q->buf_struct_size = sizeof(struct saa7134_buf); 2191 q->buf_struct_size = sizeof(struct saa7134_buf);
2192 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 2192 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
2193 q->lock = &dev->lock; 2193 q->lock = &dev->lock;
2194 q->dev = &dev->pci->dev;
2194 ret = vb2_queue_init(q); 2195 ret = vb2_queue_init(q);
2195 if (ret) 2196 if (ret)
2196 return ret; 2197 return ret;
diff --git a/drivers/media/pci/saa7134/saa7134.h b/drivers/media/pci/saa7134/saa7134.h
index 69a9bbf22d4d..41c01588af37 100644
--- a/drivers/media/pci/saa7134/saa7134.h
+++ b/drivers/media/pci/saa7134/saa7134.h
@@ -610,7 +610,6 @@ struct saa7134_dev {
610 610
611 611
612 /* video+ts+vbi capture */ 612 /* video+ts+vbi capture */
613 void *alloc_ctx;
614 struct saa7134_dmaqueue video_q; 613 struct saa7134_dmaqueue video_q;
615 struct vb2_queue video_vbq; 614 struct vb2_queue video_vbq;
616 struct saa7134_dmaqueue vbi_q; 615 struct saa7134_dmaqueue vbi_q;
diff --git a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c b/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
index 67a14c41c227..f48ef3392576 100644
--- a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
+++ b/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
@@ -666,10 +666,7 @@ static int solo_enc_queue_setup(struct vb2_queue *q,
666 unsigned int *num_planes, unsigned int sizes[], 666 unsigned int *num_planes, unsigned int sizes[],
667 void *alloc_ctxs[]) 667 void *alloc_ctxs[])
668{ 668{
669 struct solo_enc_dev *solo_enc = vb2_get_drv_priv(q);
670
671 sizes[0] = FRAME_BUF_SIZE; 669 sizes[0] = FRAME_BUF_SIZE;
672 alloc_ctxs[0] = solo_enc->alloc_ctx;
673 *num_planes = 1; 670 *num_planes = 1;
674 671
675 if (*num_buffers < MIN_VID_BUFFERS) 672 if (*num_buffers < MIN_VID_BUFFERS)
@@ -1239,11 +1236,6 @@ static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
1239 return ERR_PTR(-ENOMEM); 1236 return ERR_PTR(-ENOMEM);
1240 1237
1241 hdl = &solo_enc->hdl; 1238 hdl = &solo_enc->hdl;
1242 solo_enc->alloc_ctx = vb2_dma_sg_init_ctx(&solo_dev->pdev->dev);
1243 if (IS_ERR(solo_enc->alloc_ctx)) {
1244 ret = PTR_ERR(solo_enc->alloc_ctx);
1245 goto hdl_free;
1246 }
1247 v4l2_ctrl_handler_init(hdl, 10); 1239 v4l2_ctrl_handler_init(hdl, 10);
1248 v4l2_ctrl_new_std(hdl, &solo_ctrl_ops, 1240 v4l2_ctrl_new_std(hdl, &solo_ctrl_ops,
1249 V4L2_CID_BRIGHTNESS, 0, 255, 1, 128); 1241 V4L2_CID_BRIGHTNESS, 0, 255, 1, 128);
@@ -1299,6 +1291,7 @@ static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
1299 solo_enc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 1291 solo_enc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
1300 solo_enc->vidq.buf_struct_size = sizeof(struct solo_vb2_buf); 1292 solo_enc->vidq.buf_struct_size = sizeof(struct solo_vb2_buf);
1301 solo_enc->vidq.lock = &solo_enc->lock; 1293 solo_enc->vidq.lock = &solo_enc->lock;
1294 solo_enc->vidq.dev = &solo_dev->pdev->dev;
1302 ret = vb2_queue_init(&solo_enc->vidq); 1295 ret = vb2_queue_init(&solo_enc->vidq);
1303 if (ret) 1296 if (ret)
1304 goto hdl_free; 1297 goto hdl_free;
@@ -1347,7 +1340,6 @@ pci_free:
1347 solo_enc->desc_items, solo_enc->desc_dma); 1340 solo_enc->desc_items, solo_enc->desc_dma);
1348hdl_free: 1341hdl_free:
1349 v4l2_ctrl_handler_free(hdl); 1342 v4l2_ctrl_handler_free(hdl);
1350 vb2_dma_sg_cleanup_ctx(solo_enc->alloc_ctx);
1351 kfree(solo_enc); 1343 kfree(solo_enc);
1352 return ERR_PTR(ret); 1344 return ERR_PTR(ret);
1353} 1345}
@@ -1362,7 +1354,6 @@ static void solo_enc_free(struct solo_enc_dev *solo_enc)
1362 solo_enc->desc_items, solo_enc->desc_dma); 1354 solo_enc->desc_items, solo_enc->desc_dma);
1363 video_unregister_device(solo_enc->vfd); 1355 video_unregister_device(solo_enc->vfd);
1364 v4l2_ctrl_handler_free(&solo_enc->hdl); 1356 v4l2_ctrl_handler_free(&solo_enc->hdl);
1365 vb2_dma_sg_cleanup_ctx(solo_enc->alloc_ctx);
1366 kfree(solo_enc); 1357 kfree(solo_enc);
1367} 1358}
1368 1359
diff --git a/drivers/media/pci/solo6x10/solo6x10-v4l2.c b/drivers/media/pci/solo6x10/solo6x10-v4l2.c
index 953d6bf22320..11cf03be106f 100644
--- a/drivers/media/pci/solo6x10/solo6x10-v4l2.c
+++ b/drivers/media/pci/solo6x10/solo6x10-v4l2.c
@@ -320,7 +320,6 @@ static int solo_queue_setup(struct vb2_queue *q,
320 struct solo_dev *solo_dev = vb2_get_drv_priv(q); 320 struct solo_dev *solo_dev = vb2_get_drv_priv(q);
321 321
322 sizes[0] = solo_image_size(solo_dev); 322 sizes[0] = solo_image_size(solo_dev);
323 alloc_ctxs[0] = solo_dev->alloc_ctx;
324 *num_planes = 1; 323 *num_planes = 1;
325 324
326 if (*num_buffers < MIN_VID_BUFFERS) 325 if (*num_buffers < MIN_VID_BUFFERS)
@@ -679,16 +678,11 @@ int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
679 solo_dev->vidq.gfp_flags = __GFP_DMA32 | __GFP_KSWAPD_RECLAIM; 678 solo_dev->vidq.gfp_flags = __GFP_DMA32 | __GFP_KSWAPD_RECLAIM;
680 solo_dev->vidq.buf_struct_size = sizeof(struct solo_vb2_buf); 679 solo_dev->vidq.buf_struct_size = sizeof(struct solo_vb2_buf);
681 solo_dev->vidq.lock = &solo_dev->lock; 680 solo_dev->vidq.lock = &solo_dev->lock;
681 solo_dev->vidq.dev = &solo_dev->pdev->dev;
682 ret = vb2_queue_init(&solo_dev->vidq); 682 ret = vb2_queue_init(&solo_dev->vidq);
683 if (ret < 0) 683 if (ret < 0)
684 goto fail; 684 goto fail;
685 685
686 solo_dev->alloc_ctx = vb2_dma_contig_init_ctx(&solo_dev->pdev->dev);
687 if (IS_ERR(solo_dev->alloc_ctx)) {
688 dev_err(&solo_dev->pdev->dev, "Can't allocate buffer context");
689 return PTR_ERR(solo_dev->alloc_ctx);
690 }
691
692 /* Cycle all the channels and clear */ 686 /* Cycle all the channels and clear */
693 for (i = 0; i < solo_dev->nr_chans; i++) { 687 for (i = 0; i < solo_dev->nr_chans; i++) {
694 solo_v4l2_set_ch(solo_dev, i); 688 solo_v4l2_set_ch(solo_dev, i);
@@ -716,7 +710,6 @@ int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
716 710
717fail: 711fail:
718 video_device_release(solo_dev->vfd); 712 video_device_release(solo_dev->vfd);
719 vb2_dma_contig_cleanup_ctx(solo_dev->alloc_ctx);
720 v4l2_ctrl_handler_free(&solo_dev->disp_hdl); 713 v4l2_ctrl_handler_free(&solo_dev->disp_hdl);
721 solo_dev->vfd = NULL; 714 solo_dev->vfd = NULL;
722 return ret; 715 return ret;
@@ -728,7 +721,6 @@ void solo_v4l2_exit(struct solo_dev *solo_dev)
728 return; 721 return;
729 722
730 video_unregister_device(solo_dev->vfd); 723 video_unregister_device(solo_dev->vfd);
731 vb2_dma_contig_cleanup_ctx(solo_dev->alloc_ctx);
732 v4l2_ctrl_handler_free(&solo_dev->disp_hdl); 724 v4l2_ctrl_handler_free(&solo_dev->disp_hdl);
733 solo_dev->vfd = NULL; 725 solo_dev->vfd = NULL;
734} 726}
diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
index 4ab6586c0467..5bd498735a66 100644
--- a/drivers/media/pci/solo6x10/solo6x10.h
+++ b/drivers/media/pci/solo6x10/solo6x10.h
@@ -178,7 +178,6 @@ struct solo_enc_dev {
178 u32 sequence; 178 u32 sequence;
179 struct vb2_queue vidq; 179 struct vb2_queue vidq;
180 struct list_head vidq_active; 180 struct list_head vidq_active;
181 void *alloc_ctx;
182 int desc_count; 181 int desc_count;
183 int desc_nelts; 182 int desc_nelts;
184 struct solo_p2m_desc *desc_items; 183 struct solo_p2m_desc *desc_items;
@@ -269,7 +268,6 @@ struct solo_dev {
269 268
270 /* Buffer handling */ 269 /* Buffer handling */
271 struct vb2_queue vidq; 270 struct vb2_queue vidq;
272 struct vb2_alloc_ctx *alloc_ctx;
273 u32 sequence; 271 u32 sequence;
274 struct task_struct *kthread; 272 struct task_struct *kthread;
275 struct mutex lock; 273 struct mutex lock;
diff --git a/drivers/media/pci/sta2x11/sta2x11_vip.c b/drivers/media/pci/sta2x11/sta2x11_vip.c
index 1fc195f89686..2844df23ada2 100644
--- a/drivers/media/pci/sta2x11/sta2x11_vip.c
+++ b/drivers/media/pci/sta2x11/sta2x11_vip.c
@@ -111,7 +111,6 @@ static inline struct vip_buffer *to_vip_buffer(struct vb2_v4l2_buffer *vb2)
111 * @input: input line for video signal ( 0 or 1 ) 111 * @input: input line for video signal ( 0 or 1 )
112 * @disabled: Device is in power down state 112 * @disabled: Device is in power down state
113 * @slock: for excluse acces of registers 113 * @slock: for excluse acces of registers
114 * @alloc_ctx: context for videobuf2
115 * @vb_vidq: queue maintained by videobuf2 layer 114 * @vb_vidq: queue maintained by videobuf2 layer
116 * @buffer_list: list of buffer in use 115 * @buffer_list: list of buffer in use
117 * @sequence: sequence number of acquired buffer 116 * @sequence: sequence number of acquired buffer
@@ -141,7 +140,6 @@ struct sta2x11_vip {
141 int disabled; 140 int disabled;
142 spinlock_t slock; 141 spinlock_t slock;
143 142
144 struct vb2_alloc_ctx *alloc_ctx;
145 struct vb2_queue vb_vidq; 143 struct vb2_queue vb_vidq;
146 struct list_head buffer_list; 144 struct list_head buffer_list;
147 unsigned int sequence; 145 unsigned int sequence;
@@ -276,7 +274,6 @@ static int queue_setup(struct vb2_queue *vq,
276 274
277 *nplanes = 1; 275 *nplanes = 1;
278 sizes[0] = vip->format.sizeimage; 276 sizes[0] = vip->format.sizeimage;
279 alloc_ctxs[0] = vip->alloc_ctx;
280 277
281 vip->sequence = 0; 278 vip->sequence = 0;
282 vip->active = NULL; 279 vip->active = NULL;
@@ -861,25 +858,15 @@ static int sta2x11_vip_init_buffer(struct sta2x11_vip *vip)
861 vip->vb_vidq.ops = &vip_video_qops; 858 vip->vb_vidq.ops = &vip_video_qops;
862 vip->vb_vidq.mem_ops = &vb2_dma_contig_memops; 859 vip->vb_vidq.mem_ops = &vb2_dma_contig_memops;
863 vip->vb_vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 860 vip->vb_vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
861 vip->vb_vidq.dev = &vip->pdev->dev;
864 err = vb2_queue_init(&vip->vb_vidq); 862 err = vb2_queue_init(&vip->vb_vidq);
865 if (err) 863 if (err)
866 return err; 864 return err;
867 INIT_LIST_HEAD(&vip->buffer_list); 865 INIT_LIST_HEAD(&vip->buffer_list);
868 spin_lock_init(&vip->lock); 866 spin_lock_init(&vip->lock);
869
870
871 vip->alloc_ctx = vb2_dma_contig_init_ctx(&vip->pdev->dev);
872 if (IS_ERR(vip->alloc_ctx)) {
873 v4l2_err(&vip->v4l2_dev, "Can't allocate buffer context");
874 return PTR_ERR(vip->alloc_ctx);
875 }
876
877 return 0; 867 return 0;
878} 868}
879static void sta2x11_vip_release_buffer(struct sta2x11_vip *vip) 869
880{
881 vb2_dma_contig_cleanup_ctx(vip->alloc_ctx);
882}
883static int sta2x11_vip_init_controls(struct sta2x11_vip *vip) 870static int sta2x11_vip_init_controls(struct sta2x11_vip *vip)
884{ 871{
885 /* 872 /*
@@ -1120,7 +1107,6 @@ vrelease:
1120 video_unregister_device(&vip->video_dev); 1107 video_unregister_device(&vip->video_dev);
1121 free_irq(pdev->irq, vip); 1108 free_irq(pdev->irq, vip);
1122release_buf: 1109release_buf:
1123 sta2x11_vip_release_buffer(vip);
1124 pci_disable_msi(pdev); 1110 pci_disable_msi(pdev);
1125unmap: 1111unmap:
1126 vb2_queue_release(&vip->vb_vidq); 1112 vb2_queue_release(&vip->vb_vidq);
diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
index 4e77618fbb2b..8474528be91e 100644
--- a/drivers/media/pci/tw68/tw68-core.c
+++ b/drivers/media/pci/tw68/tw68-core.c
@@ -305,19 +305,13 @@ static int tw68_initdev(struct pci_dev *pci_dev,
305 /* Then do any initialisation wanted before interrupts are on */ 305 /* Then do any initialisation wanted before interrupts are on */
306 tw68_hw_init1(dev); 306 tw68_hw_init1(dev);
307 307
308 dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
309 if (IS_ERR(dev->alloc_ctx)) {
310 err = PTR_ERR(dev->alloc_ctx);
311 goto fail3;
312 }
313
314 /* get irq */ 308 /* get irq */
315 err = devm_request_irq(&pci_dev->dev, pci_dev->irq, tw68_irq, 309 err = devm_request_irq(&pci_dev->dev, pci_dev->irq, tw68_irq,
316 IRQF_SHARED, dev->name, dev); 310 IRQF_SHARED, dev->name, dev);
317 if (err < 0) { 311 if (err < 0) {
318 pr_err("%s: can't get IRQ %d\n", 312 pr_err("%s: can't get IRQ %d\n",
319 dev->name, pci_dev->irq); 313 dev->name, pci_dev->irq);
320 goto fail4; 314 goto fail3;
321 } 315 }
322 316
323 /* 317 /*
@@ -331,7 +325,7 @@ static int tw68_initdev(struct pci_dev *pci_dev,
331 if (err < 0) { 325 if (err < 0) {
332 pr_err("%s: can't register video device\n", 326 pr_err("%s: can't register video device\n",
333 dev->name); 327 dev->name);
334 goto fail5; 328 goto fail4;
335 } 329 }
336 tw_setl(TW68_INTMASK, dev->pci_irqmask); 330 tw_setl(TW68_INTMASK, dev->pci_irqmask);
337 331
@@ -340,10 +334,8 @@ static int tw68_initdev(struct pci_dev *pci_dev,
340 334
341 return 0; 335 return 0;
342 336
343fail5:
344 video_unregister_device(&dev->vdev);
345fail4: 337fail4:
346 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx); 338 video_unregister_device(&dev->vdev);
347fail3: 339fail3:
348 iounmap(dev->lmmio); 340 iounmap(dev->lmmio);
349fail2: 341fail2:
@@ -367,7 +359,6 @@ static void tw68_finidev(struct pci_dev *pci_dev)
367 /* unregister */ 359 /* unregister */
368 video_unregister_device(&dev->vdev); 360 video_unregister_device(&dev->vdev);
369 v4l2_ctrl_handler_free(&dev->hdl); 361 v4l2_ctrl_handler_free(&dev->hdl);
370 vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
371 362
372 /* release resources */ 363 /* release resources */
373 iounmap(dev->lmmio); 364 iounmap(dev->lmmio);
diff --git a/drivers/media/pci/tw68/tw68-video.c b/drivers/media/pci/tw68/tw68-video.c
index 07116a87a57b..c675f9abbb24 100644
--- a/drivers/media/pci/tw68/tw68-video.c
+++ b/drivers/media/pci/tw68/tw68-video.c
@@ -388,7 +388,6 @@ static int tw68_queue_setup(struct vb2_queue *q,
388 tot_bufs = 2; 388 tot_bufs = 2;
389 tot_bufs = tw68_buffer_count(size, tot_bufs); 389 tot_bufs = tw68_buffer_count(size, tot_bufs);
390 *num_buffers = tot_bufs - q->num_buffers; 390 *num_buffers = tot_bufs - q->num_buffers;
391 alloc_ctxs[0] = dev->alloc_ctx;
392 /* 391 /*
393 * We allow create_bufs, but only if the sizeimage is >= as the 392 * We allow create_bufs, but only if the sizeimage is >= as the
394 * current sizeimage. The tw68_buffer_count calculation becomes quite 393 * current sizeimage. The tw68_buffer_count calculation becomes quite
@@ -983,6 +982,7 @@ int tw68_video_init2(struct tw68_dev *dev, int video_nr)
983 dev->vidq.buf_struct_size = sizeof(struct tw68_buf); 982 dev->vidq.buf_struct_size = sizeof(struct tw68_buf);
984 dev->vidq.lock = &dev->lock; 983 dev->vidq.lock = &dev->lock;
985 dev->vidq.min_buffers_needed = 2; 984 dev->vidq.min_buffers_needed = 2;
985 dev->vidq.dev = &dev->pci->dev;
986 ret = vb2_queue_init(&dev->vidq); 986 ret = vb2_queue_init(&dev->vidq);
987 if (ret) 987 if (ret)
988 return ret; 988 return ret;
diff --git a/drivers/media/pci/tw68/tw68.h b/drivers/media/pci/tw68/tw68.h
index 6c7dcb300f34..5585c7ee23f2 100644
--- a/drivers/media/pci/tw68/tw68.h
+++ b/drivers/media/pci/tw68/tw68.h
@@ -165,7 +165,6 @@ struct tw68_dev {
165 unsigned field; 165 unsigned field;
166 struct vb2_queue vidq; 166 struct vb2_queue vidq;
167 struct list_head active; 167 struct list_head active;
168 void *alloc_ctx;
169 168
170 /* various v4l controls */ 169 /* various v4l controls */
171 const struct tw68_tvnorm *tvnorm; /* video */ 170 const struct tw68_tvnorm *tvnorm; /* video */
diff --git a/drivers/staging/media/tw686x-kh/tw686x-kh-video.c b/drivers/staging/media/tw686x-kh/tw686x-kh-video.c
index 6ecb504a79f9..4e2ef9decbe2 100644
--- a/drivers/staging/media/tw686x-kh/tw686x-kh-video.c
+++ b/drivers/staging/media/tw686x-kh/tw686x-kh-video.c
@@ -135,7 +135,6 @@ static int tw686x_queue_setup(struct vb2_queue *vq, unsigned int *nbuffers,
135 struct tw686x_video_channel *vc = vb2_get_drv_priv(vq); 135 struct tw686x_video_channel *vc = vb2_get_drv_priv(vq);
136 unsigned int size = vc->width * vc->height * vc->format->depth / 8; 136 unsigned int size = vc->width * vc->height * vc->format->depth / 8;
137 137
138 alloc_ctxs[0] = vc->alloc_ctx;
139 if (*nbuffers < 2) 138 if (*nbuffers < 2)
140 *nbuffers = 2; 139 *nbuffers = 2;
141 140
@@ -645,7 +644,6 @@ void tw686x_kh_video_free(struct tw686x_dev *dev)
645 v4l2_ctrl_handler_free(&vc->ctrl_handler); 644 v4l2_ctrl_handler_free(&vc->ctrl_handler);
646 if (vc->device) 645 if (vc->device)
647 video_unregister_device(vc->device); 646 video_unregister_device(vc->device);
648 vb2_dma_sg_cleanup_ctx(vc->alloc_ctx);
649 for (n = 0; n < 2; n++) { 647 for (n = 0; n < 2; n++) {
650 struct dma_desc *descs = &vc->sg_tables[n]; 648 struct dma_desc *descs = &vc->sg_tables[n];
651 649
@@ -750,13 +748,6 @@ int tw686x_kh_video_init(struct tw686x_dev *dev)
750 goto error; 748 goto error;
751 } 749 }
752 750
753 vc->alloc_ctx = vb2_dma_sg_init_ctx(&dev->pci_dev->dev);
754 if (IS_ERR(vc->alloc_ctx)) {
755 pr_warn("Unable to initialize DMA scatter-gather context\n");
756 err = PTR_ERR(vc->alloc_ctx);
757 goto error;
758 }
759
760 vc->vidq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 751 vc->vidq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
761 vc->vidq.io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF; 752 vc->vidq.io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF;
762 vc->vidq.drv_priv = vc; 753 vc->vidq.drv_priv = vc;
@@ -766,6 +757,7 @@ int tw686x_kh_video_init(struct tw686x_dev *dev)
766 vc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 757 vc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
767 vc->vidq.min_buffers_needed = 2; 758 vc->vidq.min_buffers_needed = 2;
768 vc->vidq.lock = &vc->vb_mutex; 759 vc->vidq.lock = &vc->vb_mutex;
760 vc->vidq.dev = &dev->pci_dev->dev;
769 vc->vidq.gfp_flags = GFP_DMA32; 761 vc->vidq.gfp_flags = GFP_DMA32;
770 762
771 err = vb2_queue_init(&vc->vidq); 763 err = vb2_queue_init(&vc->vidq);
diff --git a/drivers/staging/media/tw686x-kh/tw686x-kh.h b/drivers/staging/media/tw686x-kh/tw686x-kh.h
index dc257967dbc7..6284a90d6fe3 100644
--- a/drivers/staging/media/tw686x-kh/tw686x-kh.h
+++ b/drivers/staging/media/tw686x-kh/tw686x-kh.h
@@ -56,7 +56,6 @@ struct tw686x_video_channel {
56 struct video_device *device; 56 struct video_device *device;
57 struct dma_desc sg_tables[2]; 57 struct dma_desc sg_tables[2];
58 struct tw686x_vb2_buf *curr_bufs[2]; 58 struct tw686x_vb2_buf *curr_bufs[2];
59 void *alloc_ctx;
60 struct vdma_desc *sg_descs[2]; 59 struct vdma_desc *sg_descs[2];
61 60
62 struct v4l2_ctrl_handler ctrl_handler; 61 struct v4l2_ctrl_handler ctrl_handler;