devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benoit Parrot <bparrot@ti.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: <linux-media@vger.kernel.org>, Rob Herring <robh+dt@kernel.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Benoit Parrot <bparrot@ti.com>
Subject: [Patch v2 15/20] media: ti-vpe: cal: Add subdev s_power hooks
Date: Mon, 4 Nov 2019 13:31:35 -0600	[thread overview]
Message-ID: <20191104193140.31145-16-bparrot@ti.com> (raw)
In-Reply-To: <20191104193140.31145-1-bparrot@ti.com>

Based on V4L2 documentations bridge driver must power on and off sub
device explicitly if media-controller mode is not used.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
---
 drivers/media/platform/ti-vpe/cal.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c
index 45653e9ed6cd..f0210a743bdc 100644
--- a/drivers/media/platform/ti-vpe/cal.c
+++ b/drivers/media/platform/ti-vpe/cal.c
@@ -1661,6 +1661,12 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
 	if (ret < 0)
 		goto err;
 
+	ret = v4l2_subdev_call(ctx->sensor, core, s_power, 1);
+	if (ret < 0 && ret != -ENOIOCTLCMD && ret != -ENODEV) {
+		ctx_err(ctx, "power on failed in subdev\n");
+		goto err;
+	}
+
 	cal_runtime_get(ctx->dev);
 
 	csi2_ctx_config(ctx);
@@ -1674,6 +1680,7 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
 
 	ret = v4l2_subdev_call(ctx->sensor, video, s_stream, 1);
 	if (ret) {
+		v4l2_subdev_call(ctx->sensor, core, s_power, 0);
 		ctx_err(ctx, "stream on failed in subdev\n");
 		cal_runtime_put(ctx->dev);
 		goto err;
@@ -1702,6 +1709,7 @@ static void cal_stop_streaming(struct vb2_queue *vq)
 	struct cal_dmaqueue *dma_q = &ctx->vidq;
 	struct cal_buffer *buf, *tmp;
 	unsigned long flags;
+	int ret;
 
 	csi2_ppi_disable(ctx);
 	disable_irqs(ctx);
@@ -1710,6 +1718,10 @@ static void cal_stop_streaming(struct vb2_queue *vq)
 	if (v4l2_subdev_call(ctx->sensor, video, s_stream, 0))
 		ctx_err(ctx, "stream off failed in subdev\n");
 
+	ret = v4l2_subdev_call(ctx->sensor, core, s_power, 0);
+	if (ret < 0 && ret != -ENOIOCTLCMD && ret != -ENODEV)
+		ctx_err(ctx, "power off failed in subdev\n");
+
 	/* Release all active buffers */
 	spin_lock_irqsave(&ctx->slock, flags);
 	list_for_each_entry_safe(buf, tmp, &dma_q->active, list) {
-- 
2.17.1


  parent reply	other threads:[~2019-11-04 19:32 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04 19:31 [Patch v2 00/20] media: ti-vpe: cal: maintenance Benoit Parrot
2019-11-04 19:31 ` [Patch v2 01/20] dt-bindings: media: cal: update binding to use syscon Benoit Parrot
2019-11-04 19:31 ` [Patch v2 02/20] dt-bindings: media: cal: update binding example Benoit Parrot
2019-11-04 19:31 ` [Patch v2 03/20] media: ti-vpe: cal: Add per platform data support Benoit Parrot
2019-11-04 19:31 ` [Patch v2 04/20] media: ti-vpe: cal: Enable DMABUF export Benoit Parrot
2019-11-04 19:31 ` [Patch v2 05/20] media: ti-vpe: cal: Restrict DMA to avoid memory corruption Benoit Parrot
2019-11-04 19:31 ` [Patch v2 06/20] dt-bindings: media: cal: update binding to add PHY LDO errata support Benoit Parrot
2019-11-04 19:31 ` [Patch v2 07/20] media: ti-vpe: cal: add CSI2 " Benoit Parrot
2019-11-06  8:55   ` Sakari Ailus
2019-11-06 20:35     ` Benoit Parrot
2019-11-06 20:41     ` Benoit Parrot
2019-11-04 19:31 ` [Patch v2 08/20] media: ti-vpe: cal: Fix ths_term/ths_settle parameters Benoit Parrot
2019-11-04 19:31 ` [Patch v2 09/20] media: ti-vpe: cal: Fix pixel processing parameters Benoit Parrot
2019-11-04 19:31 ` [Patch v2 10/20] media: ti-vpe: cal: Align DPHY init sequence with docs Benoit Parrot
2019-11-04 19:31 ` [Patch v2 11/20] dt-bindings: media: cal: update binding to add DRA76x support Benoit Parrot
2019-11-04 19:31 ` [Patch v2 12/20] media: ti-vpe: cal: Add " Benoit Parrot
2019-11-06  8:57   ` Sakari Ailus
2019-11-06 20:58     ` Benoit Parrot
2019-11-06 21:10       ` Sakari Ailus
2019-11-12 13:28       ` Benoit Parrot
2019-11-12 13:35         ` Benoit Parrot
2019-11-04 19:31 ` [Patch v2 13/20] dt-bindings: media: cal: update binding to add AM654 support Benoit Parrot
2019-11-04 19:31 ` [Patch v2 14/20] media: ti-vpe: cal: Add " Benoit Parrot
2019-11-06  9:07   ` Sakari Ailus
2019-11-04 19:31 ` Benoit Parrot [this message]
2019-11-06  9:08   ` [Patch v2 15/20] media: ti-vpe: cal: Add subdev s_power hooks Sakari Ailus
2019-11-06 20:59     ` Benoit Parrot
2019-11-04 19:31 ` [Patch v2 16/20] media: ti-vpe: cal: Properly calculate max resolution boundary Benoit Parrot
2019-11-04 19:31 ` [Patch v2 17/20] media: ti-vpe: cal: Fix a WARN issued when start streaming fails Benoit Parrot
2019-11-04 19:31 ` [Patch v2 18/20] media: ti-vpe: cal: fix enum_mbus_code/frame_size subdev arguments Benoit Parrot
2019-11-04 19:31 ` [Patch v2 19/20] dt-bindings: media: cal: convert binding to yaml Benoit Parrot
2019-11-06 21:15   ` Benoit Parrot
2019-11-04 19:31 ` [Patch v2 20/20] MAINTAINERS: Add ti,cal.yaml Benoit Parrot
2019-11-06  9:10   ` Sakari Ailus
2019-11-06 21:01     ` Benoit Parrot
2019-11-06 22:35       ` Sakari Ailus

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=20191104193140.31145-16-bparrot@ti.com \
    --to=bparrot@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=robh+dt@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;
as well as URLs for NNTP newsgroup(s).