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. 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 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/media/platform/renesas/vsp1/vsp1_pipe.c b/drivers/media/platform/renesas/vsp1/vsp1_pipe.c index bb0739f684f39e23326a4d8fdb9f43e020bc23c8..8dbbe92b522e49c795cf0b2bbe507871899ee15e 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" @@ -367,6 +368,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.47.1