Em Wed, 12 Jul 2017 01:29:42 +0300 Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> escreveu: > From: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxxx> > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Acked-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> Thanks, Mauro