* Re: [PATCH] media: renesas: vsp1: Move suspend/resume handling to LATE phase [not found] <02669d4630e04fe24c17dd2576ec8b27ded458f0.1765541401.git.tommaso.merciai.xr@bp.renesas.com> @ 2026-03-17 17:41 ` Tommaso Merciai 2026-03-17 23:23 ` Laurent Pinchart 1 sibling, 0 replies; 3+ messages in thread From: Tommaso Merciai @ 2026-03-17 17:41 UTC (permalink / raw) To: tomm.merciai Cc: linux-renesas-soc, biju.das.jz, Laurent Pinchart, Kieran Bingham, Mauro Carvalho Chehab, linux-media, linux-kernel Hi All, Gentle ping on this patch. Kind Regards, Tommaso On Fri, Dec 12, 2025 at 01:11:50PM +0100, Tommaso Merciai wrote: > Switch the VSP1 driver's dev_pm_ops to LATE_SYSTEM_SLEEP_PM_OPS to ensure > that suspend and resume callbacks are executed after DSI/DU suspend and > before DSI/DU resume. This prevents timeouts and vblank wait errors during > system resume, such as: > > [drm] *ERROR* flip_done timed out [CRTC:43:crtc-0] vblank wait timed out > > This addresses display commit and vblank timeouts seen with DRM atomic > helpers during s2ram. > > Co-developed-by: Biju Das <biju.das.jz@bp.renesas.com> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> > --- > drivers/media/platform/renesas/vsp1/vsp1_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/renesas/vsp1/vsp1_drv.c b/drivers/media/platform/renesas/vsp1/vsp1_drv.c > index 2de515c497eb..0fbd27df1f46 100644 > --- a/drivers/media/platform/renesas/vsp1/vsp1_drv.c > +++ b/drivers/media/platform/renesas/vsp1/vsp1_drv.c > @@ -693,7 +693,7 @@ static int vsp1_pm_runtime_resume(struct device *dev) > } > > static const struct dev_pm_ops vsp1_pm_ops = { > - SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) > + LATE_SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) > RUNTIME_PM_OPS(vsp1_pm_runtime_suspend, vsp1_pm_runtime_resume, NULL) > }; > > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] media: renesas: vsp1: Move suspend/resume handling to LATE phase [not found] <02669d4630e04fe24c17dd2576ec8b27ded458f0.1765541401.git.tommaso.merciai.xr@bp.renesas.com> 2026-03-17 17:41 ` [PATCH] media: renesas: vsp1: Move suspend/resume handling to LATE phase Tommaso Merciai @ 2026-03-17 23:23 ` Laurent Pinchart 2026-03-18 11:32 ` Tommaso Merciai 1 sibling, 1 reply; 3+ messages in thread From: Laurent Pinchart @ 2026-03-17 23:23 UTC (permalink / raw) To: Tommaso Merciai Cc: tomm.merciai, linux-renesas-soc, biju.das.jz, Kieran Bingham, Mauro Carvalho Chehab, linux-media, linux-kernel Hi Tommaso, Thank you for the patch. On Fri, Dec 12, 2025 at 01:11:50PM +0100, Tommaso Merciai wrote: > Switch the VSP1 driver's dev_pm_ops to LATE_SYSTEM_SLEEP_PM_OPS to ensure > that suspend and resume callbacks are executed after DSI/DU suspend and > before DSI/DU resume. Have you considered handling this through device links ? Using late system sleep is a hack that doesn't scale when more than two devices are involved. I've just written and posted [1] to address the issue in the rcar-du driver (the suspend/resume ordering was right, but apparently only by chance), it should be easy to replicate it in the rz-du driver.. [1] https://lore.kernel.org/dri-devel/20260317231930.595719-2-laurent.pinchart+renesas@ideasonboard.com/T/#u > This prevents timeouts and vblank wait errors during > system resume, such as: > > [drm] *ERROR* flip_done timed out [CRTC:43:crtc-0] vblank wait timed out > > This addresses display commit and vblank timeouts seen with DRM atomic > helpers during s2ram. > > Co-developed-by: Biju Das <biju.das.jz@bp.renesas.com> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> > --- > drivers/media/platform/renesas/vsp1/vsp1_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/renesas/vsp1/vsp1_drv.c b/drivers/media/platform/renesas/vsp1/vsp1_drv.c > index 2de515c497eb..0fbd27df1f46 100644 > --- a/drivers/media/platform/renesas/vsp1/vsp1_drv.c > +++ b/drivers/media/platform/renesas/vsp1/vsp1_drv.c > @@ -693,7 +693,7 @@ static int vsp1_pm_runtime_resume(struct device *dev) > } > > static const struct dev_pm_ops vsp1_pm_ops = { > - SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) > + LATE_SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) > RUNTIME_PM_OPS(vsp1_pm_runtime_suspend, vsp1_pm_runtime_resume, NULL) > }; > -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] media: renesas: vsp1: Move suspend/resume handling to LATE phase 2026-03-17 23:23 ` Laurent Pinchart @ 2026-03-18 11:32 ` Tommaso Merciai 0 siblings, 0 replies; 3+ messages in thread From: Tommaso Merciai @ 2026-03-18 11:32 UTC (permalink / raw) To: Laurent Pinchart Cc: tomm.merciai, linux-renesas-soc, biju.das.jz, Kieran Bingham, Mauro Carvalho Chehab, linux-media, linux-kernel Hi Laurent, Thanks for your review. On 3/18/26 00:23, Laurent Pinchart wrote: > Hi Tommaso, > > Thank you for the patch. > > On Fri, Dec 12, 2025 at 01:11:50PM +0100, Tommaso Merciai wrote: >> Switch the VSP1 driver's dev_pm_ops to LATE_SYSTEM_SLEEP_PM_OPS to ensure >> that suspend and resume callbacks are executed after DSI/DU suspend and >> before DSI/DU resume. > > Have you considered handling this through device links ? Using late > system sleep is a hack that doesn't scale when more than two devices are > involved. > > I've just written and posted [1] to address the issue in the rcar-du > driver (the suspend/resume ordering was right, but apparently only by > chance), it should be easy to replicate it in the rz-du driver.. > > [1] https://lore.kernel.org/dri-devel/20260317231930.595719-2-laurent.pinchart+renesas@ideasonboard.com/T/#u > >> This prevents timeouts and vblank wait errors during >> system resume, such as: >> >> [drm] *ERROR* flip_done timed out [CRTC:43:crtc-0] vblank wait timed out >> >> This addresses display commit and vblank timeouts seen with DRM atomic >> helpers during s2ram. Thanks for sharing I've replicated [0] on rzg2l_du_vsp driver. I've tested that on RZ/G3E, s2ram and s2idle works fine. [0] https://patchwork.kernel.org/project/linux-renesas-soc/patch/20260317231930.595719-2-laurent.pinchart+renesas@ideasonboard.com/ I'll provide feedback on the series. Thanks for your work! :) Kind Regards, Tommaso >> >> Co-developed-by: Biju Das <biju.das.jz@bp.renesas.com> >> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> >> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> >> --- >> drivers/media/platform/renesas/vsp1/vsp1_drv.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_drv.c b/drivers/media/platform/renesas/vsp1/vsp1_drv.c >> index 2de515c497eb..0fbd27df1f46 100644 >> --- a/drivers/media/platform/renesas/vsp1/vsp1_drv.c >> +++ b/drivers/media/platform/renesas/vsp1/vsp1_drv.c >> @@ -693,7 +693,7 @@ static int vsp1_pm_runtime_resume(struct device *dev) >> } >> >> static const struct dev_pm_ops vsp1_pm_ops = { >> - SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) >> + LATE_SYSTEM_SLEEP_PM_OPS(vsp1_pm_suspend, vsp1_pm_resume) >> RUNTIME_PM_OPS(vsp1_pm_runtime_suspend, vsp1_pm_runtime_resume, NULL) >> }; >> > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-18 11:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <02669d4630e04fe24c17dd2576ec8b27ded458f0.1765541401.git.tommaso.merciai.xr@bp.renesas.com>
2026-03-17 17:41 ` [PATCH] media: renesas: vsp1: Move suspend/resume handling to LATE phase Tommaso Merciai
2026-03-17 23:23 ` Laurent Pinchart
2026-03-18 11:32 ` Tommaso Merciai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox