LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Paul Kocialkowski <paul.kocialkowski@bootlin.com> 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 <mchehab@kernel.org>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Maxime Ripard <maxime.ripard@bootlin.com>, Chen-Yu Tsai <wens@csie.org>, Pawel Osciak <pawel@osciak.com>, Marek Szyprowski <m.szyprowski@samsung.com>, Kyungmin Park <kyungmin.park@samsung.com>, Hans Verkuil <hans.verkuil@cisco.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Philipp Zabel <p.zabel@pengutronix.de>, Arnd Bergmann <arnd@arndb.de>, Alexandre Courbot <acourbot@chromium.org>, Tomasz Figa <tfiga@chromium.org>, Paul Kocialkowski <paul.kocialkowski@bootlin.com> Subject: [PATCH v2 02/10] media-request: Add a request complete operation to allow m2m scheduling Date: Thu, 19 Apr 2018 17:41:16 +0200 [thread overview] Message-ID: <20180419154124.17512-3-paul.kocialkowski@bootlin.com> (raw) In-Reply-To: <20180419154124.17512-1-paul.kocialkowski@bootlin.com> When using the request API in the context of a m2m driver, the operations that come with a m2m run scheduling call in their (m2m-specific) ioctl handler are delayed until the request is queued (for instance, this includes queuing buffers and streamon). Thus, the m2m run scheduling calls are not called in due time since the request AP's internal plumbing will (rightfully) use the relevant core functions directly instead of the ioctl handler. This ends up in a situation where nothing happens if there is no run-scheduling ioctl called after queuing the request. In order to circumvent the issue, a new media operation is introduced, called at the time of handling the media request queue ioctl. It gives m2m drivers a chance to schedule a m2m device run at that time. The existing req_queue operation cannot be used for this purpose, since it is called with the request queue mutex held, that is eventually needed in the device_run call to apply relevant controls. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> --- drivers/media/media-request.c | 3 +++ include/media/media-device.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/drivers/media/media-request.c b/drivers/media/media-request.c index 415f7e31019d..28ac5ccfe6a2 100644 --- a/drivers/media/media-request.c +++ b/drivers/media/media-request.c @@ -157,6 +157,9 @@ static long media_request_ioctl_queue(struct media_request *req) media_request_get(req); } + if (mdev->ops->req_complete) + mdev->ops->req_complete(req); + return ret; } diff --git a/include/media/media-device.h b/include/media/media-device.h index 07e323c57202..c7dcf2079cc9 100644 --- a/include/media/media-device.h +++ b/include/media/media-device.h @@ -55,6 +55,7 @@ struct media_entity_notify { * @req_alloc: Allocate a request * @req_free: Free a request * @req_queue: Queue a request + * @req_complete: Complete a request */ struct media_device_ops { int (*link_notify)(struct media_link *link, u32 flags, @@ -62,6 +63,7 @@ struct media_device_ops { struct media_request *(*req_alloc)(struct media_device *mdev); void (*req_free)(struct media_request *req); int (*req_queue)(struct media_request *req); + void (*req_complete)(struct media_request *req); }; /** -- 2.16.3
next prev parent reply other threads:[~2018-04-19 15:43 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 2018-04-19 15:41 ` [PATCH v2 01/10] media: v4l2-ctrls: Add missing v4l2 ctrl unlock Paul Kocialkowski 2018-04-20 7:23 ` Maxime Ripard 2018-04-20 13:38 ` Hans Verkuil 2018-04-19 15:41 ` Paul Kocialkowski [this message] 2018-04-20 7:38 ` [PATCH v2 02/10] media-request: Add a request complete operation to allow m2m scheduling Alexandre Courbot 2018-04-20 13:48 ` Hans Verkuil 2018-04-24 8:28 ` Sakari Ailus 2018-05-04 8:03 ` Paul Kocialkowski 2018-04-19 15:41 ` [PATCH v2 03/10] videobuf2-core: Add helper to get buffer private data from media request Paul Kocialkowski 2018-04-20 13:43 ` Hans Verkuil 2018-04-24 8:37 ` Sakari Ailus 2018-05-04 8:03 ` Paul Kocialkowski 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 2018-05-04 8:24 ` Paul Kocialkowski 2018-04-20 13:57 ` Hans Verkuil 2018-05-04 8:22 ` Paul Kocialkowski 2018-04-20 14:00 ` Hans Verkuil 2018-04-24 9:01 ` Sakari Ailus 2018-05-04 8:21 ` Paul Kocialkowski 2018-05-04 8:48 ` Paul Kocialkowski 2018-04-19 15:45 ` [PATCH v2 06/10] media: v4l: Add definition for Allwinner's MB32-tiled NV12 format Paul Kocialkowski 2018-04-20 13:59 ` Hans Verkuil 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 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 2018-04-19 16:04 ` Philipp Zabel 2018-04-20 1:31 ` Tomasz Figa 2018-04-20 7:22 ` Paul Kocialkowski 2018-04-27 3:04 ` Rob Herring 2018-05-04 7:56 ` Paul Kocialkowski 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 2018-04-20 7:39 ` Maxime Ripard 2018-05-04 7:49 ` Paul Kocialkowski 2018-05-04 8:40 ` Maxime Ripard 2018-05-04 8:47 ` Paul Kocialkowski 2018-05-04 8:54 ` Paul Kocialkowski 2018-05-04 9:15 ` Maxime Ripard 2018-05-04 12:04 ` Paul Kocialkowski 2018-05-04 13:40 ` Maxime Ripard 2018-05-04 13:57 ` Paul Kocialkowski 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-3-paul.kocialkowski@bootlin.com \ --to=paul.kocialkowski@bootlin.com \ --cc=acourbot@chromium.org \ --cc=arnd@arndb.de \ --cc=devicetree@vger.kernel.org \ --cc=hans.verkuil@cisco.com \ --cc=kyungmin.park@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-sunxi@googlegroups.com \ --cc=m.szyprowski@samsung.com \ --cc=mark.rutland@arm.com \ --cc=maxime.ripard@bootlin.com \ --cc=mchehab@kernel.org \ --cc=p.zabel@pengutronix.de \ --cc=pawel@osciak.com \ --cc=robh+dt@kernel.org \ --cc=sakari.ailus@linux.intel.com \ --cc=tfiga@chromium.org \ --cc=wens@csie.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: linkBe 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).