diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2010-09-20 16:39:46 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:06:14 -0400 |
commit | 08bff03ed697a583612b62a6ac566bd5bce98012 (patch) | |
tree | 733cf5b266cd7c5b064209dccd7ad6f18d989101 | |
parent | 97397687886aa8ecd4ec603fab9e70e970c11597 (diff) |
V4L/DVB: videobuf: add ext_lock argument to the queue init functions
Add an ext_lock argument to the videobuf init functions. This allows
drivers to pass the vdev->lock pointer (or any other externally held lock)
to videobuf. For now all drivers just pass NULL.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
28 files changed, 48 insertions, 37 deletions
diff --git a/drivers/media/common/saa7146_vbi.c b/drivers/media/common/saa7146_vbi.c index 8224c301d050..2d4533ab22b7 100644 --- a/drivers/media/common/saa7146_vbi.c +++ b/drivers/media/common/saa7146_vbi.c | |||
@@ -412,7 +412,7 @@ static int vbi_open(struct saa7146_dev *dev, struct file *file) | |||
412 | V4L2_BUF_TYPE_VBI_CAPTURE, | 412 | V4L2_BUF_TYPE_VBI_CAPTURE, |
413 | V4L2_FIELD_SEQ_TB, // FIXME: does this really work? | 413 | V4L2_FIELD_SEQ_TB, // FIXME: does this really work? |
414 | sizeof(struct saa7146_buf), | 414 | sizeof(struct saa7146_buf), |
415 | file); | 415 | file, NULL); |
416 | 416 | ||
417 | init_timer(&fh->vbi_read_timeout); | 417 | init_timer(&fh->vbi_read_timeout); |
418 | fh->vbi_read_timeout.function = vbi_read_timeout; | 418 | fh->vbi_read_timeout.function = vbi_read_timeout; |
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c index a212a91a30f0..741c5732b430 100644 --- a/drivers/media/common/saa7146_video.c +++ b/drivers/media/common/saa7146_video.c | |||
@@ -1386,7 +1386,7 @@ static int video_open(struct saa7146_dev *dev, struct file *file) | |||
1386 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1386 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1387 | V4L2_FIELD_INTERLACED, | 1387 | V4L2_FIELD_INTERLACED, |
1388 | sizeof(struct saa7146_buf), | 1388 | sizeof(struct saa7146_buf), |
1389 | file); | 1389 | file, NULL); |
1390 | 1390 | ||
1391 | return 0; | 1391 | return 0; |
1392 | } | 1392 | } |
diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c index 7989a7ba7c40..162fd5f9d448 100644 --- a/drivers/media/video/au0828/au0828-video.c +++ b/drivers/media/video/au0828/au0828-video.c | |||
@@ -965,7 +965,7 @@ static int au0828_v4l2_open(struct file *filp) | |||
965 | NULL, &dev->slock, | 965 | NULL, &dev->slock, |
966 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 966 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
967 | V4L2_FIELD_INTERLACED, | 967 | V4L2_FIELD_INTERLACED, |
968 | sizeof(struct au0828_buffer), fh); | 968 | sizeof(struct au0828_buffer), fh, NULL); |
969 | 969 | ||
970 | /* VBI Setup */ | 970 | /* VBI Setup */ |
971 | dev->vbi_width = 720; | 971 | dev->vbi_width = 720; |
@@ -974,7 +974,7 @@ static int au0828_v4l2_open(struct file *filp) | |||
974 | NULL, &dev->slock, | 974 | NULL, &dev->slock, |
975 | V4L2_BUF_TYPE_VBI_CAPTURE, | 975 | V4L2_BUF_TYPE_VBI_CAPTURE, |
976 | V4L2_FIELD_SEQ_TB, | 976 | V4L2_FIELD_SEQ_TB, |
977 | sizeof(struct au0828_buffer), fh); | 977 | sizeof(struct au0828_buffer), fh, NULL); |
978 | 978 | ||
979 | 979 | ||
980 | return ret; | 980 | return ret; |
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index 69a8ad24c0b3..3da6e80e1041 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -3318,13 +3318,13 @@ static int bttv_open(struct file *file) | |||
3318 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 3318 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
3319 | V4L2_FIELD_INTERLACED, | 3319 | V4L2_FIELD_INTERLACED, |
3320 | sizeof(struct bttv_buffer), | 3320 | sizeof(struct bttv_buffer), |
3321 | fh); | 3321 | fh, NULL); |
3322 | videobuf_queue_sg_init(&fh->vbi, &bttv_vbi_qops, | 3322 | videobuf_queue_sg_init(&fh->vbi, &bttv_vbi_qops, |
3323 | &btv->c.pci->dev, &btv->s_lock, | 3323 | &btv->c.pci->dev, &btv->s_lock, |
3324 | V4L2_BUF_TYPE_VBI_CAPTURE, | 3324 | V4L2_BUF_TYPE_VBI_CAPTURE, |
3325 | V4L2_FIELD_SEQ_TB, | 3325 | V4L2_FIELD_SEQ_TB, |
3326 | sizeof(struct bttv_buffer), | 3326 | sizeof(struct bttv_buffer), |
3327 | fh); | 3327 | fh, NULL); |
3328 | set_tvnorm(btv,btv->tvnorm); | 3328 | set_tvnorm(btv,btv->tvnorm); |
3329 | set_input(btv, btv->input, btv->tvnorm); | 3329 | set_input(btv, btv->input, btv->tvnorm); |
3330 | 3330 | ||
diff --git a/drivers/media/video/cx231xx/cx231xx-video.c b/drivers/media/video/cx231xx/cx231xx-video.c index e76014561aa7..b638c4ed3f2e 100644 --- a/drivers/media/video/cx231xx/cx231xx-video.c +++ b/drivers/media/video/cx231xx/cx231xx-video.c | |||
@@ -2008,7 +2008,8 @@ static int cx231xx_v4l2_open(struct file *filp) | |||
2008 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_video_qops, | 2008 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_video_qops, |
2009 | NULL, &dev->video_mode.slock, | 2009 | NULL, &dev->video_mode.slock, |
2010 | fh->type, V4L2_FIELD_INTERLACED, | 2010 | fh->type, V4L2_FIELD_INTERLACED, |
2011 | sizeof(struct cx231xx_buffer), fh); | 2011 | sizeof(struct cx231xx_buffer), |
2012 | fh, NULL); | ||
2012 | if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) { | 2013 | if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) { |
2013 | /* Set the required alternate setting VBI interface works in | 2014 | /* Set the required alternate setting VBI interface works in |
2014 | Bulk mode only */ | 2015 | Bulk mode only */ |
@@ -2017,7 +2018,8 @@ static int cx231xx_v4l2_open(struct file *filp) | |||
2017 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_vbi_qops, | 2018 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_vbi_qops, |
2018 | NULL, &dev->vbi_mode.slock, | 2019 | NULL, &dev->vbi_mode.slock, |
2019 | fh->type, V4L2_FIELD_SEQ_TB, | 2020 | fh->type, V4L2_FIELD_SEQ_TB, |
2020 | sizeof(struct cx231xx_buffer), fh); | 2021 | sizeof(struct cx231xx_buffer), |
2022 | fh, NULL); | ||
2021 | } | 2023 | } |
2022 | 2024 | ||
2023 | mutex_unlock(&dev->lock); | 2025 | mutex_unlock(&dev->lock); |
diff --git a/drivers/media/video/cx23885/cx23885-417.c b/drivers/media/video/cx23885/cx23885-417.c index abd64e89f60f..6628e07a8093 100644 --- a/drivers/media/video/cx23885/cx23885-417.c +++ b/drivers/media/video/cx23885/cx23885-417.c | |||
@@ -1591,7 +1591,7 @@ static int mpeg_open(struct file *file) | |||
1591 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1591 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1592 | V4L2_FIELD_INTERLACED, | 1592 | V4L2_FIELD_INTERLACED, |
1593 | sizeof(struct cx23885_buffer), | 1593 | sizeof(struct cx23885_buffer), |
1594 | fh); | 1594 | fh, NULL); |
1595 | unlock_kernel(); | 1595 | unlock_kernel(); |
1596 | 1596 | ||
1597 | return 0; | 1597 | return 0; |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 0674ea1bf863..5958cb882e93 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -1071,7 +1071,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port) | |||
1071 | videobuf_queue_sg_init(&fe0->dvb.dvbq, &dvb_qops, | 1071 | videobuf_queue_sg_init(&fe0->dvb.dvbq, &dvb_qops, |
1072 | &dev->pci->dev, &port->slock, | 1072 | &dev->pci->dev, &port->slock, |
1073 | V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_TOP, | 1073 | V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_TOP, |
1074 | sizeof(struct cx23885_buffer), port); | 1074 | sizeof(struct cx23885_buffer), port, NULL); |
1075 | } | 1075 | } |
1076 | err = dvb_register(port); | 1076 | err = dvb_register(port); |
1077 | if (err != 0) | 1077 | if (err != 0) |
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c index 5aadc1d1956e..3173cc69ac61 100644 --- a/drivers/media/video/cx23885/cx23885-video.c +++ b/drivers/media/video/cx23885/cx23885-video.c | |||
@@ -758,7 +758,7 @@ static int video_open(struct file *file) | |||
758 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 758 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
759 | V4L2_FIELD_INTERLACED, | 759 | V4L2_FIELD_INTERLACED, |
760 | sizeof(struct cx23885_buffer), | 760 | sizeof(struct cx23885_buffer), |
761 | fh); | 761 | fh, NULL); |
762 | 762 | ||
763 | dprintk(1, "post videobuf_queue_init()\n"); | 763 | dprintk(1, "post videobuf_queue_init()\n"); |
764 | 764 | ||
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index ec3299585434..ac885f49313c 100644 --- a/drivers/media/video/cx88/cx88-blackbird.c +++ b/drivers/media/video/cx88/cx88-blackbird.c | |||
@@ -1094,7 +1094,7 @@ static int mpeg_open(struct file *file) | |||
1094 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1094 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1095 | V4L2_FIELD_INTERLACED, | 1095 | V4L2_FIELD_INTERLACED, |
1096 | sizeof(struct cx88_buffer), | 1096 | sizeof(struct cx88_buffer), |
1097 | fh); | 1097 | fh, NULL); |
1098 | 1098 | ||
1099 | /* FIXME: locking against other video device */ | 1099 | /* FIXME: locking against other video device */ |
1100 | cx88_set_scale(dev->core, dev->width, dev->height, | 1100 | cx88_set_scale(dev->core, dev->width, dev->height, |
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index e24fd8d711d8..a037e925ceb9 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -1576,7 +1576,7 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv) | |||
1576 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1576 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1577 | V4L2_FIELD_TOP, | 1577 | V4L2_FIELD_TOP, |
1578 | sizeof(struct cx88_buffer), | 1578 | sizeof(struct cx88_buffer), |
1579 | dev); | 1579 | dev, NULL); |
1580 | /* init struct videobuf_dvb */ | 1580 | /* init struct videobuf_dvb */ |
1581 | fe->dvb.name = dev->core->name; | 1581 | fe->dvb.name = dev->core->name; |
1582 | } | 1582 | } |
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c index 2da9117b138e..19c64a7d0985 100644 --- a/drivers/media/video/cx88/cx88-video.c +++ b/drivers/media/video/cx88/cx88-video.c | |||
@@ -793,13 +793,13 @@ static int video_open(struct file *file) | |||
793 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 793 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
794 | V4L2_FIELD_INTERLACED, | 794 | V4L2_FIELD_INTERLACED, |
795 | sizeof(struct cx88_buffer), | 795 | sizeof(struct cx88_buffer), |
796 | fh); | 796 | fh, NULL); |
797 | videobuf_queue_sg_init(&fh->vbiq, &cx8800_vbi_qops, | 797 | videobuf_queue_sg_init(&fh->vbiq, &cx8800_vbi_qops, |
798 | &dev->pci->dev, &dev->slock, | 798 | &dev->pci->dev, &dev->slock, |
799 | V4L2_BUF_TYPE_VBI_CAPTURE, | 799 | V4L2_BUF_TYPE_VBI_CAPTURE, |
800 | V4L2_FIELD_SEQ_TB, | 800 | V4L2_FIELD_SEQ_TB, |
801 | sizeof(struct cx88_buffer), | 801 | sizeof(struct cx88_buffer), |
802 | fh); | 802 | fh, NULL); |
803 | 803 | ||
804 | if (fh->radio) { | 804 | if (fh->radio) { |
805 | dprintk(1,"video_open: setting radio device\n"); | 805 | dprintk(1,"video_open: setting radio device\n"); |
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 95a4b60a1eda..a0627cdb706b 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -2182,13 +2182,13 @@ static int em28xx_v4l2_open(struct file *filp) | |||
2182 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &em28xx_video_qops, | 2182 | videobuf_queue_vmalloc_init(&fh->vb_vidq, &em28xx_video_qops, |
2183 | NULL, &dev->slock, | 2183 | NULL, &dev->slock, |
2184 | V4L2_BUF_TYPE_VIDEO_CAPTURE, field, | 2184 | V4L2_BUF_TYPE_VIDEO_CAPTURE, field, |
2185 | sizeof(struct em28xx_buffer), fh); | 2185 | sizeof(struct em28xx_buffer), fh, NULL); |
2186 | 2186 | ||
2187 | videobuf_queue_vmalloc_init(&fh->vb_vbiq, &em28xx_vbi_qops, | 2187 | videobuf_queue_vmalloc_init(&fh->vb_vbiq, &em28xx_vbi_qops, |
2188 | NULL, &dev->slock, | 2188 | NULL, &dev->slock, |
2189 | V4L2_BUF_TYPE_VBI_CAPTURE, | 2189 | V4L2_BUF_TYPE_VBI_CAPTURE, |
2190 | V4L2_FIELD_SEQ_TB, | 2190 | V4L2_FIELD_SEQ_TB, |
2191 | sizeof(struct em28xx_buffer), fh); | 2191 | sizeof(struct em28xx_buffer), fh, NULL); |
2192 | 2192 | ||
2193 | mutex_unlock(&dev->lock); | 2193 | mutex_unlock(&dev->lock); |
2194 | 2194 | ||
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c index 8f7434182bc3..f5a46c458717 100644 --- a/drivers/media/video/s2255drv.c +++ b/drivers/media/video/s2255drv.c | |||
@@ -1817,7 +1817,7 @@ static int s2255_open(struct file *file) | |||
1817 | NULL, &dev->slock, | 1817 | NULL, &dev->slock, |
1818 | fh->type, | 1818 | fh->type, |
1819 | V4L2_FIELD_INTERLACED, | 1819 | V4L2_FIELD_INTERLACED, |
1820 | sizeof(struct s2255_buffer), fh); | 1820 | sizeof(struct s2255_buffer), fh, NULL); |
1821 | return 0; | 1821 | return 0; |
1822 | } | 1822 | } |
1823 | 1823 | ||
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index f26fe7661a1d..beb95e21d109 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -1111,7 +1111,7 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1111 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1111 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1112 | V4L2_FIELD_ALTERNATE, | 1112 | V4L2_FIELD_ALTERNATE, |
1113 | sizeof(struct saa7134_buf), | 1113 | sizeof(struct saa7134_buf), |
1114 | dev); | 1114 | dev, NULL); |
1115 | 1115 | ||
1116 | switch (dev->board) { | 1116 | switch (dev->board) { |
1117 | case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL: | 1117 | case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL: |
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index e763f9fd0133..1467a30a434f 100644 --- a/drivers/media/video/saa7134/saa7134-empress.c +++ b/drivers/media/video/saa7134/saa7134-empress.c | |||
@@ -542,7 +542,7 @@ static int empress_init(struct saa7134_dev *dev) | |||
542 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 542 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
543 | V4L2_FIELD_ALTERNATE, | 543 | V4L2_FIELD_ALTERNATE, |
544 | sizeof(struct saa7134_buf), | 544 | sizeof(struct saa7134_buf), |
545 | dev); | 545 | dev, NULL); |
546 | 546 | ||
547 | empress_signal_update(&dev->empress_workqueue); | 547 | empress_signal_update(&dev->empress_workqueue); |
548 | return 0; | 548 | return 0; |
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 645224cfd887..fae5e97a3eb2 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c | |||
@@ -1366,13 +1366,13 @@ static int video_open(struct file *file) | |||
1366 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1366 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1367 | V4L2_FIELD_INTERLACED, | 1367 | V4L2_FIELD_INTERLACED, |
1368 | sizeof(struct saa7134_buf), | 1368 | sizeof(struct saa7134_buf), |
1369 | fh); | 1369 | fh, NULL); |
1370 | videobuf_queue_sg_init(&fh->vbi, &saa7134_vbi_qops, | 1370 | videobuf_queue_sg_init(&fh->vbi, &saa7134_vbi_qops, |
1371 | &dev->pci->dev, &dev->slock, | 1371 | &dev->pci->dev, &dev->slock, |
1372 | V4L2_BUF_TYPE_VBI_CAPTURE, | 1372 | V4L2_BUF_TYPE_VBI_CAPTURE, |
1373 | V4L2_FIELD_SEQ_TB, | 1373 | V4L2_FIELD_SEQ_TB, |
1374 | sizeof(struct saa7134_buf), | 1374 | sizeof(struct saa7134_buf), |
1375 | fh); | 1375 | fh, NULL); |
1376 | saa7134_pgtable_alloc(dev->pci,&fh->pt_cap); | 1376 | saa7134_pgtable_alloc(dev->pci,&fh->pt_cap); |
1377 | saa7134_pgtable_alloc(dev->pci,&fh->pt_vbi); | 1377 | saa7134_pgtable_alloc(dev->pci,&fh->pt_vbi); |
1378 | 1378 | ||
diff --git a/drivers/media/video/videobuf-core.c b/drivers/media/video/videobuf-core.c index 2930665910b7..a32ef8eafc01 100644 --- a/drivers/media/video/videobuf-core.c +++ b/drivers/media/video/videobuf-core.c | |||
@@ -125,11 +125,13 @@ void videobuf_queue_core_init(struct videobuf_queue *q, | |||
125 | enum v4l2_field field, | 125 | enum v4l2_field field, |
126 | unsigned int msize, | 126 | unsigned int msize, |
127 | void *priv, | 127 | void *priv, |
128 | struct videobuf_qtype_ops *int_ops) | 128 | struct videobuf_qtype_ops *int_ops, |
129 | struct mutex *ext_lock) | ||
129 | { | 130 | { |
130 | BUG_ON(!q); | 131 | BUG_ON(!q); |
131 | memset(q, 0, sizeof(*q)); | 132 | memset(q, 0, sizeof(*q)); |
132 | q->irqlock = irqlock; | 133 | q->irqlock = irqlock; |
134 | q->ext_lock = ext_lock; | ||
133 | q->dev = dev; | 135 | q->dev = dev; |
134 | q->type = type; | 136 | q->type = type; |
135 | q->field = field; | 137 | q->field = field; |
diff --git a/drivers/media/video/videobuf-dma-contig.c b/drivers/media/video/videobuf-dma-contig.c index 047054f79601..4d0a723b744b 100644 --- a/drivers/media/video/videobuf-dma-contig.c +++ b/drivers/media/video/videobuf-dma-contig.c | |||
@@ -349,10 +349,11 @@ void videobuf_queue_dma_contig_init(struct videobuf_queue *q, | |||
349 | enum v4l2_buf_type type, | 349 | enum v4l2_buf_type type, |
350 | enum v4l2_field field, | 350 | enum v4l2_field field, |
351 | unsigned int msize, | 351 | unsigned int msize, |
352 | void *priv) | 352 | void *priv, |
353 | struct mutex *ext_lock) | ||
353 | { | 354 | { |
354 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, | 355 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, |
355 | priv, &qops); | 356 | priv, &qops, ext_lock); |
356 | } | 357 | } |
357 | EXPORT_SYMBOL_GPL(videobuf_queue_dma_contig_init); | 358 | EXPORT_SYMBOL_GPL(videobuf_queue_dma_contig_init); |
358 | 359 | ||
diff --git a/drivers/media/video/videobuf-dma-sg.c b/drivers/media/video/videobuf-dma-sg.c index 515ae887ffcf..359f2f3fdc77 100644 --- a/drivers/media/video/videobuf-dma-sg.c +++ b/drivers/media/video/videobuf-dma-sg.c | |||
@@ -654,10 +654,11 @@ void videobuf_queue_sg_init(struct videobuf_queue *q, | |||
654 | enum v4l2_buf_type type, | 654 | enum v4l2_buf_type type, |
655 | enum v4l2_field field, | 655 | enum v4l2_field field, |
656 | unsigned int msize, | 656 | unsigned int msize, |
657 | void *priv) | 657 | void *priv, |
658 | struct mutex *ext_lock) | ||
658 | { | 659 | { |
659 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, | 660 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, |
660 | priv, &sg_ops); | 661 | priv, &sg_ops, ext_lock); |
661 | } | 662 | } |
662 | EXPORT_SYMBOL_GPL(videobuf_queue_sg_init); | 663 | EXPORT_SYMBOL_GPL(videobuf_queue_sg_init); |
663 | 664 | ||
diff --git a/drivers/media/video/videobuf-vmalloc.c b/drivers/media/video/videobuf-vmalloc.c index 91348b3170ff..df142580e44c 100644 --- a/drivers/media/video/videobuf-vmalloc.c +++ b/drivers/media/video/videobuf-vmalloc.c | |||
@@ -304,10 +304,11 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue *q, | |||
304 | enum v4l2_buf_type type, | 304 | enum v4l2_buf_type type, |
305 | enum v4l2_field field, | 305 | enum v4l2_field field, |
306 | unsigned int msize, | 306 | unsigned int msize, |
307 | void *priv) | 307 | void *priv, |
308 | struct mutex *ext_lock) | ||
308 | { | 309 | { |
309 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, | 310 | videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, |
310 | priv, &qops); | 311 | priv, &qops, ext_lock); |
311 | } | 312 | } |
312 | EXPORT_SYMBOL_GPL(videobuf_queue_vmalloc_init); | 313 | EXPORT_SYMBOL_GPL(videobuf_queue_vmalloc_init); |
313 | 314 | ||
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index e17b6fee046b..547f5e546c9c 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c | |||
@@ -1176,7 +1176,7 @@ static int __init vivi_create_instance(int inst) | |||
1176 | videobuf_queue_vmalloc_init(&dev->vb_vidq, &vivi_video_qops, | 1176 | videobuf_queue_vmalloc_init(&dev->vb_vidq, &vivi_video_qops, |
1177 | NULL, &dev->slock, V4L2_BUF_TYPE_VIDEO_CAPTURE, | 1177 | NULL, &dev->slock, V4L2_BUF_TYPE_VIDEO_CAPTURE, |
1178 | V4L2_FIELD_INTERLACED, | 1178 | V4L2_FIELD_INTERLACED, |
1179 | sizeof(struct vivi_buffer), dev); | 1179 | sizeof(struct vivi_buffer), dev, NULL); |
1180 | 1180 | ||
1181 | /* init video dma queues */ | 1181 | /* init video dma queues */ |
1182 | INIT_LIST_HEAD(&dev->vidq.active); | 1182 | INIT_LIST_HEAD(&dev->vidq.active); |
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c index 616c61fb3493..7dfb01e9930e 100644 --- a/drivers/media/video/zr364xx.c +++ b/drivers/media/video/zr364xx.c | |||
@@ -1304,7 +1304,7 @@ static int zr364xx_open(struct file *file) | |||
1304 | NULL, &cam->slock, | 1304 | NULL, &cam->slock, |
1305 | cam->type, | 1305 | cam->type, |
1306 | V4L2_FIELD_NONE, | 1306 | V4L2_FIELD_NONE, |
1307 | sizeof(struct zr364xx_buffer), cam); | 1307 | sizeof(struct zr364xx_buffer), cam, NULL); |
1308 | 1308 | ||
1309 | /* Added some delay here, since opening/closing the camera quickly, | 1309 | /* Added some delay here, since opening/closing the camera quickly, |
1310 | * like Ekiga does during its startup, can crash the webcam | 1310 | * like Ekiga does during its startup, can crash the webcam |
diff --git a/drivers/staging/cx25821/cx25821-video.c b/drivers/staging/cx25821/cx25821-video.c index 6fff985358a6..e7f1d5778cec 100644 --- a/drivers/staging/cx25821/cx25821-video.c +++ b/drivers/staging/cx25821/cx25821-video.c | |||
@@ -856,7 +856,7 @@ static int video_open(struct file *file) | |||
856 | &dev->pci->dev, &dev->slock, | 856 | &dev->pci->dev, &dev->slock, |
857 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 857 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
858 | V4L2_FIELD_INTERLACED, | 858 | V4L2_FIELD_INTERLACED, |
859 | sizeof(struct cx25821_buffer), fh); | 859 | sizeof(struct cx25821_buffer), fh, NULL); |
860 | 860 | ||
861 | dprintk(1, "post videobuf_queue_init()\n"); | 861 | dprintk(1, "post videobuf_queue_init()\n"); |
862 | unlock_kernel(); | 862 | unlock_kernel(); |
diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c index ce0a089a0771..4c22c6584940 100644 --- a/drivers/staging/tm6000/tm6000-video.c +++ b/drivers/staging/tm6000/tm6000-video.c | |||
@@ -1300,7 +1300,7 @@ static int tm6000_open(struct file *file) | |||
1300 | NULL, &dev->slock, | 1300 | NULL, &dev->slock, |
1301 | fh->type, | 1301 | fh->type, |
1302 | V4L2_FIELD_INTERLACED, | 1302 | V4L2_FIELD_INTERLACED, |
1303 | sizeof(struct tm6000_buffer),fh); | 1303 | sizeof(struct tm6000_buffer), fh, NULL); |
1304 | 1304 | ||
1305 | return 0; | 1305 | return 0; |
1306 | } | 1306 | } |
diff --git a/include/media/videobuf-core.h b/include/media/videobuf-core.h index f5eb2cbf3002..9a4194557e4a 100644 --- a/include/media/videobuf-core.h +++ b/include/media/videobuf-core.h | |||
@@ -198,7 +198,8 @@ void videobuf_queue_core_init(struct videobuf_queue *q, | |||
198 | enum v4l2_field field, | 198 | enum v4l2_field field, |
199 | unsigned int msize, | 199 | unsigned int msize, |
200 | void *priv, | 200 | void *priv, |
201 | struct videobuf_qtype_ops *int_ops); | 201 | struct videobuf_qtype_ops *int_ops, |
202 | struct mutex *ext_lock); | ||
202 | int videobuf_queue_is_busy(struct videobuf_queue *q); | 203 | int videobuf_queue_is_busy(struct videobuf_queue *q); |
203 | void videobuf_queue_cancel(struct videobuf_queue *q); | 204 | void videobuf_queue_cancel(struct videobuf_queue *q); |
204 | 205 | ||
diff --git a/include/media/videobuf-dma-contig.h b/include/media/videobuf-dma-contig.h index ebaa9bc1ee8d..f0ed82543d9f 100644 --- a/include/media/videobuf-dma-contig.h +++ b/include/media/videobuf-dma-contig.h | |||
@@ -23,7 +23,8 @@ void videobuf_queue_dma_contig_init(struct videobuf_queue *q, | |||
23 | enum v4l2_buf_type type, | 23 | enum v4l2_buf_type type, |
24 | enum v4l2_field field, | 24 | enum v4l2_field field, |
25 | unsigned int msize, | 25 | unsigned int msize, |
26 | void *priv); | 26 | void *priv, |
27 | struct mutex *ext_lock); | ||
27 | 28 | ||
28 | dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf); | 29 | dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf); |
29 | void videobuf_dma_contig_free(struct videobuf_queue *q, | 30 | void videobuf_dma_contig_free(struct videobuf_queue *q, |
diff --git a/include/media/videobuf-dma-sg.h b/include/media/videobuf-dma-sg.h index aa4ebb42a565..1c647e8148c4 100644 --- a/include/media/videobuf-dma-sg.h +++ b/include/media/videobuf-dma-sg.h | |||
@@ -103,7 +103,8 @@ void videobuf_queue_sg_init(struct videobuf_queue *q, | |||
103 | enum v4l2_buf_type type, | 103 | enum v4l2_buf_type type, |
104 | enum v4l2_field field, | 104 | enum v4l2_field field, |
105 | unsigned int msize, | 105 | unsigned int msize, |
106 | void *priv); | 106 | void *priv, |
107 | struct mutex *ext_lock); | ||
107 | 108 | ||
108 | #endif /* _VIDEOBUF_DMA_SG_H */ | 109 | #endif /* _VIDEOBUF_DMA_SG_H */ |
109 | 110 | ||
diff --git a/include/media/videobuf-vmalloc.h b/include/media/videobuf-vmalloc.h index e19403c18dae..486a97efdb56 100644 --- a/include/media/videobuf-vmalloc.h +++ b/include/media/videobuf-vmalloc.h | |||
@@ -36,7 +36,8 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue *q, | |||
36 | enum v4l2_buf_type type, | 36 | enum v4l2_buf_type type, |
37 | enum v4l2_field field, | 37 | enum v4l2_field field, |
38 | unsigned int msize, | 38 | unsigned int msize, |
39 | void *priv); | 39 | void *priv, |
40 | struct mutex *ext_lock); | ||
40 | 41 | ||
41 | void *videobuf_to_vmalloc(struct videobuf_buffer *buf); | 42 | void *videobuf_to_vmalloc(struct videobuf_buffer *buf); |
42 | 43 | ||