Received: by 10.192.165.148 with SMTP id m20csp488285imm; Fri, 4 May 2018 01:06:10 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq3d6sDagJxBcQTWogWmMmKzO9L7KrtcRb6d9CtpL93df9FGOWiXJXSlkyh+Je+dSOO8k5m X-Received: by 10.167.133.131 with SMTP id w3mr25771682pfn.197.1525421170920; Fri, 04 May 2018 01:06:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525421170; cv=none; d=google.com; s=arc-20160816; b=xf72hiYnXt26unYV312wzvoXLOsYegzi6NoG/yfdjYQkU9cHV/76+stWY66RYVuaKS Hyd/cIITFkX6E98K3dgpXInITwx3FbAtjlhlDRkAurOr2KtCL8KZ/dLX/dBTa5Q/fWTG XDxjqn7U5ojjLZ3W2vdN2fXnRvfwGqFhYc1Wxbv+r2tvOxc6uvWOeRt9OixXh+A8tBBB iYJZVQLXg+O19utjWnBpCcbppmevVysGXqX8omext4JLGi4FuwOf3yHsCo5JBmn/tWTp /Xy1Q3045x7xcCUxuhe5ELq+ZvR4YuSLVC7AQyBUhPaqZxe4eUMPP+8Vgnvj+37zMA3W G94Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:organization:references :in-reply-to:date:cc:to:from:subject:message-id :arc-authentication-results; bh=wFrI7Mk0EyBgHBbR5hDjBx3M+fB+4EQn99xD55rgTfc=; b=kx/v6gX/bFP96d38KYSi1dhO5bVNmzXMJCQeCCXD5MbQQq4+p6xNZbgfPnSGXd8qB0 sE8pCTLK8C3vQfgXzIcKxiHw+qhPSARaG7ax+pw5jJvI09APLsw2VsZyTFDbiu32NBHu MbDkKzAskx11YvkhfpOK0BIootSRZ+ruvZ8IGB5FF21GWKAE+0VszyT8cQ8T9/DbojJM IZNqNENfb1hiqz+o0BMZbmjFMQcqwj6WaL6HgJh4J1BLqOUcA0j0wdNPPYNpIEdtAs84 fqihlDtRtyAnHRgd3mBGybdV8VRT6/PGCpfIwolduS5vgV/dR3js6jEylZmwx4h0pUMf rmww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b8-v6si17007746pls.261.2018.05.04.01.05.56; Fri, 04 May 2018 01:06:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751522AbeEDIFk (ORCPT + 99 others); Fri, 4 May 2018 04:05:40 -0400 Received: from mail.bootlin.com ([62.4.15.54]:50556 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751114AbeEDIFi (ORCPT ); Fri, 4 May 2018 04:05:38 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 6ADCD20A33; Fri, 4 May 2018 10:05:36 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT, URIBL_BLOCKED shortcircuit=ham autolearn=disabled version=3.4.0 Received: from aptenodytes (LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr [90.63.216.87]) by mail.bootlin.com (Postfix) with ESMTPSA id F05F620A21; Fri, 4 May 2018 10:04:47 +0200 (CEST) Message-ID: Subject: Re: [PATCH v2 03/10] videobuf2-core: Add helper to get buffer private data from media request From: Paul Kocialkowski To: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com Cc: Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Maxime Ripard , Chen-Yu Tsai , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Hans Verkuil , Sakari Ailus , Philipp Zabel , Arnd Bergmann , Alexandre Courbot , Tomasz Figa Date: Fri, 04 May 2018 10:03:29 +0200 In-Reply-To: <20180419154124.17512-4-paul.kocialkowski@bootlin.com> References: <20180419154124.17512-1-paul.kocialkowski@bootlin.com> <20180419154124.17512-4-paul.kocialkowski@bootlin.com> Organization: Bootlin Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-OkMVK6E3uX4i+oLxbLBv" X-Mailer: Evolution 3.28.1 Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-OkMVK6E3uX4i+oLxbLBv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, 2018-04-19 at 17:41 +0200, Paul Kocialkowski wrote: > 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. >=20 > 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. This patch too will be dropped since it's no longer useful with the latest version of the request API. > Signed-off-by: Paul Kocialkowski > --- > drivers/media/common/videobuf2/videobuf2-core.c | 15 +++++++++++++++ > include/media/videobuf2-core.h | 1 + > 2 files changed, 16 insertions(+) >=20 > 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); > =20 > +void *vb2_core_request_find_buffer_priv(struct media_request *req) > +{ > + struct media_request_object *obj; > + struct vb2_buffer *vb; > + > + obj =3D media_request_object_find(req, &vb2_core_req_ops, > NULL); > + if (!obj) > + return NULL; > + > + vb =3D 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); > =20 > 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 */ --=20 Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com --=-OkMVK6E3uX4i+oLxbLBv Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEJZpWjZeIetVBefti3cLmz3+fv9EFAlrsE9EACgkQ3cLmz3+f v9HYxwf9GfHkwCzO+xymDzRl8+yiO7l0OJn+I66l64ESLA+4bTLsrXnox8NkNFAX y2bZ0hxgk8ZDQ2Utu/T3RjoSdxtmKEchgKcwSti0Ljx//N6fdXZR6Pw2+/JMEX0N hpUGhFFkF4gSkjV6TD+PggXZWSnxzKTUkyTrCvw/AdzKdBy5nYjYTI6sdL9b6cod eqUUxREXsGHjvKBxZu74sA3LH6TQ5fa7yaLcZqfLLy3ARrzuzhQ1yLlyAOjp0xQ+ PZMNLuU8vrJ2aZ7Sqn5njhDsXdRBkSAdxrHQXU5tMN82tMG45CJPJnnJXVHWCA81 Fnyo4av3S7P6vODY0RqgwODQ3soPdA== =zhfg -----END PGP SIGNATURE----- --=-OkMVK6E3uX4i+oLxbLBv--