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@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() ? 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