[PATCH v2 3/3] drm: rcar-du: Repair vblank for DRM page flips using the VSP
Mauro Carvalho Chehab
mchehab at s-opensource.com
Thu Jul 20 14:22:34 UTC 2017
Em Wed, 12 Jul 2017 01:29:42 +0300
Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com> escreveu:
> From: Kieran Bingham <kieran.bingham+renesas at ideasonboard.com>
>
> The driver recently switched from handling page flip completion in the
> DU vertical blanking handler to the VSP frame end handler to fix a race
> condition. This unfortunately resulted in incorrect timestamps in the
> vertical blanking events sent to userspace as vertical blanking is now
> handled after sending the event.
>
> To fix this we must reverse the order of the two operations. The easiest
> way is to handle vertical blanking in the VSP frame end handler before
> sending the event. The VSP frame end interrupt occurs approximately 50µs
> earlier than the DU frame end interrupt, but this should not cause any
> undue harm.
>
> As we need to handle vertical blanking even when page flip completion is
> delayed, the VSP driver now needs to call the frame end completion
> callback unconditionally, with a new argument to report whether page
> flip has completed.
>
> With this new scheme the DU vertical blanking interrupt isn't needed
> anymore, so we can stop enabling it.
>
> Fixes: d503a43ac06a ("drm: rcar-du: Register a completion callback with VSP1")
> Signed-off-by: Kieran Bingham <kieran.bingham+renesas at ideasonboard.com>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
Acked-by: Mauro Carvalho Chehab <mchehab at s-opensource.com>
Thanks,
Mauro
More information about the dri-devel
mailing list