devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
To: linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Cc: Mauro Carvalho Chehab
	<mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Maxime Ripard
	<maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Pawel Osciak <pawel-FA/gS7QP4orQT0dZR+AlfA@public.gmane.org>,
	Marek Szyprowski
	<m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Kyungmin Park
	<kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Hans Verkuil
	<hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
	Sakari Ailus
	<sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Alexandre Courbot
	<acourbot-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Tomasz Figa <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Paul Kocialkowski
	<paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
Subject: [PATCH v2 03/10] videobuf2-core: Add helper to get buffer private data from media request
Date: Thu, 19 Apr 2018 17:41:17 +0200	[thread overview]
Message-ID: <20180419154124.17512-4-paul.kocialkowski@bootlin.com> (raw)
In-Reply-To: <20180419154124.17512-1-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>

When calling media operation driver callbacks related to media requests,
only a pointer to the request itself is provided, which is insufficient
to retrieve the driver's context. Since the driver context is usually
set as vb2 queue private data and given that the core can determine
which objects attached to the request are buffers, it is possible to
extract the associated private data for the first buffer found.

This is required in order to access the current m2m context from m2m
drivers' private data in the context of media request operation
callbacks. More specifically, this allows scheduling m2m device runs
from the newly-introduced request complete operation.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
---
 drivers/media/common/videobuf2/videobuf2-core.c | 15 +++++++++++++++
 include/media/videobuf2-core.h                  |  1 +
 2 files changed, 16 insertions(+)

diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
index 13c9d9e243dd..6fa46bfc620f 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -1351,6 +1351,21 @@ bool vb2_core_request_has_buffers(struct media_request *req)
 }
 EXPORT_SYMBOL_GPL(vb2_core_request_has_buffers);
 
+void *vb2_core_request_find_buffer_priv(struct media_request *req)
+{
+	struct media_request_object *obj;
+	struct vb2_buffer *vb;
+
+	obj = media_request_object_find(req, &vb2_core_req_ops, NULL);
+	if (!obj)
+		return NULL;
+
+	vb = container_of(obj, struct vb2_buffer, req_obj);
+
+	return vb2_get_drv_priv(vb->vb2_queue);
+}
+EXPORT_SYMBOL_GPL(vb2_core_request_find_buffer_priv);
+
 int vb2_core_prepare_buf(struct vb2_queue *q, unsigned int index, void *pb,
 			 struct media_request *req)
 {
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 032bd1bec555..65c0cf6afb55 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -1153,4 +1153,5 @@ int vb2_verify_memory_type(struct vb2_queue *q,
 		enum vb2_memory memory, unsigned int type);
 
 bool vb2_core_request_has_buffers(struct media_request *req);
+void *vb2_core_request_find_buffer_priv(struct media_request *req);
 #endif /* _MEDIA_VIDEOBUF2_CORE_H */
-- 
2.16.3

  parent reply	other threads:[~2018-04-19 15:41 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-19 15:41 [PATCH v2 00/10] Sunxi-Cedrus driver for the Allwinner Video Engine, using media requests Paul Kocialkowski
     [not found] ` <20180419154124.17512-1-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-19 15:41   ` [PATCH v2 01/10] media: v4l2-ctrls: Add missing v4l2 ctrl unlock Paul Kocialkowski
     [not found]     ` <20180419154124.17512-2-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20  7:23       ` Maxime Ripard
2018-04-20 13:38       ` Hans Verkuil
2018-04-19 15:41   ` [PATCH v2 02/10] media-request: Add a request complete operation to allow m2m scheduling Paul Kocialkowski
2018-04-20  7:38     ` Alexandre Courbot
     [not found]     ` <20180419154124.17512-3-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20 13:48       ` Hans Verkuil
2018-05-04  8:03       ` Paul Kocialkowski
2018-04-24  8:28     ` Sakari Ailus
2018-04-19 15:41   ` Paul Kocialkowski [this message]
     [not found]     ` <20180419154124.17512-4-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20 13:43       ` [PATCH v2 03/10] videobuf2-core: Add helper to get buffer private data from media request Hans Verkuil
2018-05-04  8:03       ` Paul Kocialkowski
2018-04-24  8:37     ` Sakari Ailus
2018-04-19 15:41   ` [PATCH v2 04/10] media: vim2m: Implement media request complete op to schedule m2m run Paul Kocialkowski
2018-04-19 15:45   ` [PATCH v2 05/10] media: v4l: Add definitions for MPEG2 frame format and header metadata Paul Kocialkowski
2018-04-20  9:51     ` Tomasz Figa
     [not found]       ` <CAAFQd5Dq4OeshtFaoxFK2357+-_=hzh0C7W=zksTWtaDuDCiGg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-05-04  8:24         ` Paul Kocialkowski
     [not found]     ` <20180419154536.17846-1-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20 13:57       ` Hans Verkuil
     [not found]         ` <4e6c4cb7-01b2-3278-4f12-c0ce8cd82ecc-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-05-04  8:22           ` Paul Kocialkowski
2018-04-20 14:00       ` Hans Verkuil
2018-05-04  8:48       ` Paul Kocialkowski
2018-04-24  9:01     ` Sakari Ailus
     [not found]       ` <20180424090150.rtbejfjaddd6wysk-z7MJbOB4PBP+e+fPlCVrcFDQ4js95KgL@public.gmane.org>
2018-05-04  8:21         ` Paul Kocialkowski
2018-04-19 15:45   ` [PATCH v2 06/10] media: v4l: Add definition for Allwinner's MB32-tiled NV12 format Paul Kocialkowski
     [not found]     ` <20180419154536.17846-2-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20 13:59       ` Hans Verkuil
     [not found]         ` <198e991c-1052-5bfb-f397-0e7d388b3c00-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-05-04  7:58           ` Paul Kocialkowski
2018-04-19 15:45   ` [PATCH v2 07/10] media: platform: Add Sunxi-Cedrus VPU decoder driver Paul Kocialkowski
2018-04-24  9:13     ` Sakari Ailus
     [not found]       ` <20180424091328.jsqp36nxekuj23am-z7MJbOB4PBP+e+fPlCVrcFDQ4js95KgL@public.gmane.org>
2018-05-04  7:57         ` Paul Kocialkowski
2018-04-19 15:45   ` [PATCH v2 08/10] dt-bindings: media: Document bindings for the Sunxi-Cedrus VPU driver Paul Kocialkowski
     [not found]     ` <20180419154536.17846-4-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-19 16:04       ` Philipp Zabel
2018-04-20  1:31         ` Tomasz Figa
     [not found]           ` <CAAFQd5DT_xjUbZzFOoKk7_duiSZ8Awb1J=0dPEhVTBk0P3gppA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-20  7:22             ` Paul Kocialkowski
     [not found]               ` <5fa80b1e88ad2a215f51ea3a2b9b62274fa9b1ec.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-27  3:04                 ` Rob Herring
2018-05-04  7:56                   ` Paul Kocialkowski
     [not found]                     ` <ce85c790b639bf9101b8c33526bdf149070bcc03.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-05-04  8:12                       ` Maxime Ripard
2018-04-27  3:06       ` Rob Herring
2018-04-19 15:45   ` [PATCH v2 09/10] ARM: dts: sun7i-a20: Add Video Engine and reserved memory nodes Paul Kocialkowski
     [not found]     ` <20180419154536.17846-5-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-04-20  7:39       ` Maxime Ripard
2018-05-04  7:49         ` Paul Kocialkowski
     [not found]           ` <82057e2f734137a3902d9313c228b01ceb345ee7.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-05-04  8:40             ` Maxime Ripard
2018-05-04  8:47               ` Paul Kocialkowski
     [not found]                 ` <e8cd340605ab4db8ebf2888a4fce645e8bc481d0.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-05-04  8:54                   ` Paul Kocialkowski
2018-05-04  9:15                   ` Maxime Ripard
2018-05-04 12:04                     ` Paul Kocialkowski
     [not found]                       ` <fc064c3f1534a6082dc2b4e18454e054b53e5aee.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-05-04 13:40                         ` Maxime Ripard
2018-05-04 13:57                           ` Paul Kocialkowski
     [not found]                             ` <dd6b502c66aad1fe34eb0b16a1e44a4ebfd172f1.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-05-04 15:44                               ` Maxime Ripard
2018-04-19 15:45   ` [PATCH v2 10/10] ARM: dts: sun8i-a33: " Paul Kocialkowski

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=20180419154124.17512-4-paul.kocialkowski@bootlin.com \
    --to=paul.kocialkowski-ldxbnhwyfcjbdgjk7y7tuq@public.gmane.org \
    --cc=acourbot-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
    --cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
    --cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=pawel-FA/gS7QP4orQT0dZR+AlfA@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.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;
as well as URLs for NNTP newsgroup(s).