summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/armada/armada_overlay.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/armada/armada_overlay.c')
-rw-r--r--drivers/gpu/drm/armada/armada_overlay.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/armada/armada_overlay.c b/drivers/gpu/drm/armada/armada_overlay.c
index 995463cd542d..04746ade74e6 100644
--- a/drivers/gpu/drm/armada/armada_overlay.c
+++ b/drivers/gpu/drm/armada/armada_overlay.c
@@ -84,10 +84,14 @@ static void armada_ovl_plane_work(struct armada_crtc *dcrtc,
{
struct armada_ovl_plane *dplane = container_of(work->plane,
struct armada_ovl_plane, base.base);
+ unsigned long flags;
trace_armada_ovl_plane_work(&dcrtc->crtc, work->plane);
+ spin_lock_irqsave(&dcrtc->irq_lock, flags);
armada_drm_crtc_update_regs(dcrtc, dplane->vbl.regs);
+ spin_unlock_irqrestore(&dcrtc->irq_lock, flags);
+
armada_ovl_retire_fb(dplane, NULL);
}