drm/tilcdc: make frame_done interrupt active at all times
authorDarren Etheridge <detheridge@ti.com>
Thu, 25 Sep 2014 00:59:31 +0000 (00:59 +0000)
committerJyri Sarha <jsarha@ti.com>
Thu, 25 Feb 2016 14:39:31 +0000 (16:39 +0200)
The frame_done interrupt was only being enabled when the vsync
interrupts were being enabled by DRM.  However the frame_done is
used to determine if the LCD controller has successfully completed
the raster_enable, raster_disable commands and the vsync interrupts
are not always enabled during these operations.

Signed-off-by: Darren Etheridge <detheridge@ti.com>
Tested-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/tilcdc/tilcdc_drv.c

index 67ed9f7fe19792cdbd9abfb0860bc7d39148ee10..7c39362c9455280ca1a9a955f9b2729504750c21 100644 (file)
@@ -369,7 +369,9 @@ static int tilcdc_irq_postinstall(struct drm_device *dev)
        if (priv->rev == 1)
                tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_V1_UNDERFLOW_INT_ENA);
        else
-               tilcdc_set(dev, LCDC_INT_ENABLE_SET_REG, LCDC_V2_UNDERFLOW_INT_ENA);
+               tilcdc_set(dev, LCDC_INT_ENABLE_SET_REG,
+                          LCDC_V2_UNDERFLOW_INT_ENA |
+                          LCDC_FRAME_DONE);
 
        return 0;
 }
@@ -403,7 +405,7 @@ static void enable_vblank(struct drm_device *dev, bool enable)
        } else {
                reg = LCDC_INT_ENABLE_SET_REG;
                mask = LCDC_V2_END_OF_FRAME0_INT_ENA |
-                       LCDC_V2_END_OF_FRAME1_INT_ENA | LCDC_FRAME_DONE;
+                       LCDC_V2_END_OF_FRAME1_INT_ENA;
        }
 
        if (enable)