Re: [PATCH 2/3] media: vsp1: Reset FCP for VSPD

From: Laurent Pinchart
Date: Wed Jun 11 2025 - 19:30:24 EST


Hi Jacopo,

Thank you for the patch.

On Mon, Jun 09, 2025 at 09:01:43PM +0200, Jacopo Mondi wrote:
> From: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
>
> 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.

According to the R-Car Gen3 H/W manual v1.00, the FCP must be reset
after resetting the VSPD, except for the VSPDL. Do so.

> Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
> Signed-off-by: LUU HOAI <hoai.luu.ub@xxxxxxxxxxx>
> Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@xxxxxxxxxxxxxxxx>
> ---
> 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);

Wouldn't this be better placed in vsp1_reset_wpf() ?

> +
> } else {
> /* Otherwise just request a stop and wait. */
> spin_lock_irqsave(&pipe->irqlock, flags);

--
Regards,

Laurent Pinchart