[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250611233401.GA14811@pendragon.ideasonboard.com>
Date: Thu, 12 Jun 2025 02:34:01 +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 2/3] media: vsp1: Reset FCP for VSPD
On Thu, Jun 12, 2025 at 02:29:58AM +0300, Laurent Pinchart wrote:
> 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@...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.
>
> 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@...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);
>
> Wouldn't this be better placed in vsp1_reset_wpf() ?
Also, there's a similar requirement for VSPD in Gen4. I'd address both
in this patch.
> > +
> > } else {
> > /* Otherwise just request a stop and wait. */
> > spin_lock_irqsave(&pipe->irqlock, flags);
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists