[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250616125850.GZ10542@pendragon.ideasonboard.com>
Date: Mon, 16 Jun 2025 15:58:50 +0300
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Jacopo Mondi <jacopo.mondi+renesas@...asonboard.com>
Cc: Mauro Carvalho Chehab <mchehab@...nel.org>,
Kieran Bingham <kieran.bingham+renesas@...asonboard.com>,
Niklas Söderlund <niklas.soderlund@...natech.se>,
linux-media@...r.kernel.org, linux-renesas-soc@...r.kernel.org,
linux-kernel@...r.kernel.org,
Koji Matsuoka <koji.matsuoka.xm@...esas.com>,
LUU HOAI <hoai.luu.ub@...esas.com>
Subject: Re: [PATCH v2 2/2] media: vsp1: Reset FCP after VSPD
Hi Jacopo,
Thank you for the patch.
On Mon, Jun 16, 2025 at 02:14:25PM +0200, Jacopo Mondi wrote:
> From: Koji Matsuoka <koji.matsuoka.xm@...esas.com>
>
> According to the R-Car Gen3 H/W manual v2.40, and R-Car Gen4 H/W manual
> v1.20, the FCP must be reset after resetting the VSPD, except for the
> VSPDL. Do so.
>
> 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>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@...asonboard.com>
> ---
> drivers/media/platform/renesas/vsp1/vsp1_drv.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_drv.c b/drivers/media/platform/renesas/vsp1/vsp1_drv.c
> index 8270a9d207cb19c3a08911a408f5039d7d2924b6..49ac3104291a63ca0a47947baaff78ac7ecce3ea 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_drv.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_drv.c
> @@ -33,6 +33,7 @@
> #include "vsp1_lif.h"
> #include "vsp1_lut.h"
> #include "vsp1_pipe.h"
> +#include "vsp1_regs.h"
> #include "vsp1_rwpf.h"
> #include "vsp1_sru.h"
> #include "vsp1_uds.h"
> @@ -502,7 +503,9 @@ static int vsp1_create_entities(struct vsp1_device *vsp1)
>
> int vsp1_reset_wpf(struct vsp1_device *vsp1, unsigned int index)
> {
> + u32 version = vsp1->version & VI6_IP_VERSION_MODEL_MASK;
> unsigned int timeout;
> + int ret = 0;
> u32 status;
>
> status = vsp1_read(vsp1, VI6_STATUS);
> @@ -523,7 +526,11 @@ int vsp1_reset_wpf(struct vsp1_device *vsp1, unsigned int index)
> return -ETIMEDOUT;
> }
>
> - return 0;
> + if (version == VI6_IP_VERSION_MODEL_VSPD_GEN3 ||
> + version == VI6_IP_VERSION_MODEL_VSPD_GEN4)
> + ret = rcar_fcp_soft_reset(vsp1->fcp);
> +
> + return ret;
> }
>
> static int vsp1_device_init(struct vsp1_device *vsp1)
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists