[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250609-vspx-reset-v1-2-9f17277ff1e2@ideasonboard.com>
Date: Mon, 09 Jun 2025 21:01:43 +0200
From: Jacopo Mondi <jacopo.mondi+renesas@...asonboard.com>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Kieran Bingham <kieran.bingham+renesas@...asonboard.com>,
Niklas Söderlund <niklas.soderlund@...natech.se>
Cc: linux-media@...r.kernel.org, linux-renesas-soc@...r.kernel.org,
linux-kernel@...r.kernel.org,
Jacopo Mondi <jacopo.mondi+renesas@...asonboard.com>,
Koji Matsuoka <koji.matsuoka.xm@...esas.com>,
LUU HOAI <hoai.luu.ub@...esas.com>
Subject: [PATCH 2/3] media: vsp1: Reset FCP for VSPD
From: Koji Matsuoka <koji.matsuoka.xm@...esas.com>
According to H/W manual v1.00, VSPD must be excecuted
FCP_RST.SOFTRST after VI6_SRESET.SRST. So this patch adds it.
VSPDL is not applicable.
Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@...esas.com>
Signed-off-by: LUU HOAI <hoai.luu.ub@...esas.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@...asonboard.com>
---
drivers/media/platform/renesas/vsp1/vsp1_pipe.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_pipe.c b/drivers/media/platform/renesas/vsp1/vsp1_pipe.c
index 3cbb768cf6adc8cb182d8d31c5b9a9d3565785e7..a6e5e10f3ef275c1b081c3d957e6cf356332afce 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_pipe.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_pipe.c
@@ -13,6 +13,7 @@
#include <linux/wait.h>
#include <media/media-entity.h>
+#include <media/rcar-fcp.h>
#include <media/v4l2-subdev.h>
#include "vsp1.h"
@@ -22,6 +23,7 @@
#include "vsp1_hgo.h"
#include "vsp1_hgt.h"
#include "vsp1_pipe.h"
+#include "vsp1_regs.h"
#include "vsp1_rwpf.h"
#include "vsp1_uds.h"
@@ -512,6 +514,11 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe)
pipe->state = VSP1_PIPELINE_STOPPED;
spin_unlock_irqrestore(&pipe->irqlock, flags);
}
+
+ if ((vsp1->version & VI6_IP_VERSION_MODEL_MASK) ==
+ VI6_IP_VERSION_MODEL_VSPD_GEN3)
+ ret |= rcar_fcp_soft_reset(vsp1->fcp);
+
} else {
/* Otherwise just request a stop and wait. */
spin_lock_irqsave(&pipe->irqlock, flags);
--
2.49.0
Powered by blists - more mailing lists