drm: rcar-du: Use the VBK interrupt for vblank events
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 10 Jul 2017 20:46:39 +0000 (23:46 +0300)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 3 Aug 2017 13:17:26 +0000 (16:17 +0300)
When implementing support for interlaced modes, the driver switched from
reporting vblank events on the vertical blanking (VBK) interrupt to the
frame end interrupt (FRM). This incorrectly divided the reported refresh
rate by two. Fix it by moving back to the VBK interrupt.

Fixes: 906eff7fcada ("drm: rcar-du: Implement support for interlaced modes")
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drivers/gpu/drm/rcar-du/rcar_du_crtc.c

index 98cf446391dc06314313590722d56be9e8dcc760..17fd1cd5212ce129b166f2a3f24847618cd10780 100644 (file)
@@ -698,7 +698,7 @@ static irqreturn_t rcar_du_crtc_irq(int irq, void *arg)
        status = rcar_du_crtc_read(rcrtc, DSSR);
        rcar_du_crtc_write(rcrtc, DSRCR, status & DSRCR_MASK);
 
-       if (status & DSSR_FRM) {
+       if (status & DSSR_VBK) {
                drm_crtc_handle_vblank(&rcrtc->crtc);
 
                if (rcdu->info->gen < 3)