CHROMIUM: drm/rockchip: Clear interrupt status bits before enabling
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / rockchip / rockchip_drm_vop.c
index b10476fca40b373345af4665310e75a44d8c20c5..a80deb50d27d22a426b02e2fc46c23336e0c30b5 100644 (file)
@@ -664,6 +664,7 @@ static void vop_dsp_hold_valid_irq_enable(struct vop *vop)
 
        spin_lock_irqsave(&vop->irq_lock, flags);
 
+       VOP_INTR_SET_TYPE(vop, clear, DSP_HOLD_VALID_INTR, 1);
        VOP_INTR_SET_TYPE(vop, enable, DSP_HOLD_VALID_INTR, 1);
 
        spin_unlock_irqrestore(&vop->irq_lock, flags);
@@ -726,6 +727,7 @@ static void vop_line_flag_irq_enable(struct vop *vop, int line_num)
        spin_lock_irqsave(&vop->irq_lock, flags);
 
        VOP_INTR_SET(vop, line_flag_num[0], line_num);
+       VOP_INTR_SET_TYPE(vop, clear, LINE_FLAG_INTR, 1);
        VOP_INTR_SET_TYPE(vop, enable, LINE_FLAG_INTR, 1);
 
        spin_unlock_irqrestore(&vop->irq_lock, flags);
@@ -1240,6 +1242,7 @@ static int vop_crtc_enable_vblank(struct drm_crtc *crtc)
 
        spin_lock_irqsave(&vop->irq_lock, flags);
 
+       VOP_INTR_SET_TYPE(vop, clear, FS_INTR, 1);
        VOP_INTR_SET_TYPE(vop, enable, FS_INTR, 1);
 
        spin_unlock_irqrestore(&vop->irq_lock, flags);