From: Ezequiel Garcia <ezequiel@collabora.com>
To: linux-media@vger.kernel.org
Cc: Hans Verkuil <hans.verkuil@cisco.com>,
kernel@collabora.com, Ezequiel Garcia <ezequiel@collabora.com>
Subject: [PATCH v4 13/17] dvb-core: Provide lock for vb2_queue
Date: Fri, 15 Jun 2018 16:07:33 -0300 [thread overview]
Message-ID: <20180615190737.24139-14-ezequiel@collabora.com> (raw)
In-Reply-To: <20180615190737.24139-1-ezequiel@collabora.com>
Use the vb2 context mutex to protect the vb2_queue.
This allows to replace the ad-hoc wait_{prepare, finish}
with vb2_ops_wait_{prepare, finish}.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
drivers/media/dvb-core/dvb_vb2.c | 22 +++-------------------
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/drivers/media/dvb-core/dvb_vb2.c b/drivers/media/dvb-core/dvb_vb2.c
index b811adf88afa..cd3ea44f0ae9 100644
--- a/drivers/media/dvb-core/dvb_vb2.c
+++ b/drivers/media/dvb-core/dvb_vb2.c
@@ -107,31 +107,14 @@ static void _stop_streaming(struct vb2_queue *vq)
spin_unlock_irqrestore(&ctx->slock, flags);
}
-static void _dmxdev_lock(struct vb2_queue *vq)
-{
- struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq);
-
- mutex_lock(&ctx->mutex);
- dprintk(3, "[%s]\n", ctx->name);
-}
-
-static void _dmxdev_unlock(struct vb2_queue *vq)
-{
- struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq);
-
- if (mutex_is_locked(&ctx->mutex))
- mutex_unlock(&ctx->mutex);
- dprintk(3, "[%s]\n", ctx->name);
-}
-
static const struct vb2_ops dvb_vb2_qops = {
.queue_setup = _queue_setup,
.buf_prepare = _buffer_prepare,
.buf_queue = _buffer_queue,
.start_streaming = _start_streaming,
.stop_streaming = _stop_streaming,
- .wait_prepare = _dmxdev_unlock,
- .wait_finish = _dmxdev_lock,
+ .wait_prepare = vb2_ops_wait_prepare,
+ .wait_finish = vb2_ops_wait_finish,
};
static void _fill_dmx_buffer(struct vb2_buffer *vb, void *pb)
@@ -183,6 +166,7 @@ int dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, int nonblocking)
q->mem_ops = &vb2_vmalloc_memops;
q->buf_ops = &dvb_vb2_buf_ops;
q->num_buffers = 0;
+ q->lock = &ctx->mutex;
ret = vb2_core_queue_init(q);
if (ret) {
ctx->state = DVB_VB2_STATE_NONE;
--
2.17.1
next prev parent reply other threads:[~2018-06-15 19:08 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-15 19:07 [PATCH v4 00/17] v4l2 core: push ioctl lock down to ioctl handler Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 01/17] v4l2-ioctl.c: use correct vb2_queue lock for m2m devices Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 02/17] sta2x11: Add video_device and vb2_queue locks Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 03/17] omap4iss: Add vb2_queue lock Ezequiel Garcia
2018-07-02 8:28 ` Hans Verkuil
2018-07-06 15:24 ` Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 04/17] omap3isp: " Ezequiel Garcia
2018-06-18 7:31 ` Hans Verkuil
2018-06-20 17:42 ` [PATCH v5 " Ezequiel Garcia
2018-06-21 8:18 ` Hans Verkuil
2018-06-22 3:51 ` Ezequiel Garcia
2018-06-22 3:53 ` [PATCH v6 " Ezequiel Garcia
2018-07-02 16:49 ` Laurent Pinchart
2018-07-06 15:11 ` Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 05/17] mtk-mdp: Add locks for capture and output vb2_queues Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 06/17] s5p-g2d: Implement wait_prepare and wait_finish Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 07/17] staging: bcm2835-camera: Provide lock for vb2_queue Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 08/17] venus: Add video_device and vb2_queue locks Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 09/17] davinci_vpfe: " Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 10/17] mx_emmaprp: Implement wait_prepare and wait_finish Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 11/17] m2m-deinterlace: " Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 12/17] stk1160: Set the vb2_queue lock before calling vb2_queue_init Ezequiel Garcia
2018-06-15 19:07 ` Ezequiel Garcia [this message]
2018-06-15 19:07 ` [PATCH v4 14/17] videobuf2-core: require q->lock Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 15/17] videobuf2: assume q->lock is always set Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 16/17] v4l2-ioctl.c: assume queue->lock " Ezequiel Garcia
2018-06-15 19:07 ` [PATCH v4 17/17] media: Remove wait_{prepare, finish} Ezequiel Garcia
2018-06-29 18:12 ` [PATCH v4 00/17] v4l2 core: push ioctl lock down to ioctl handler Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180615190737.24139-14-ezequiel@collabora.com \
--to=ezequiel@collabora.com \
--cc=hans.verkuil@cisco.com \
--cc=kernel@collabora.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox