瀏覽代碼

drm/armada: move the locking for armada_drm_vbl_event_remove()

Move the locking for armada_drm_vbl_event_remove() into itself, which
makes this function symmetrical with armada_drm_vbl_event_add().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 10 年之前
父節點
當前提交
6908cf755a
共有 2 個文件被更改,包括 2 次插入2 次删除
  1. 2 0
      drivers/gpu/drm/armada/armada_crtc.c
  2. 0 2
      drivers/gpu/drm/armada/armada_overlay.c

+ 2 - 0
drivers/gpu/drm/armada/armada_crtc.c

@@ -211,10 +211,12 @@ void armada_drm_vbl_event_add(struct armada_crtc *dcrtc,
 void armada_drm_vbl_event_remove(struct armada_crtc *dcrtc,
 	struct armada_vbl_event *evt)
 {
+	spin_lock_irq(&dcrtc->irq_lock);
 	if (!list_empty(&evt->node)) {
 		list_del_init(&evt->node);
 		drm_vblank_put(dcrtc->crtc.dev, dcrtc->num);
 	}
+	spin_unlock_irq(&dcrtc->irq_lock);
 }
 
 static void armada_drm_vbl_event_run(struct armada_crtc *dcrtc)

+ 0 - 2
drivers/gpu/drm/armada/armada_overlay.c

@@ -273,9 +273,7 @@ static int armada_ovl_plane_disable(struct drm_plane *plane)
 	dcrtc = drm_to_armada_crtc(dplane->base.base.crtc);
 	dcrtc->plane = NULL;
 
-	spin_lock_irq(&dcrtc->irq_lock);
 	armada_drm_vbl_event_remove(dcrtc, &dplane->vbl.update);
-	spin_unlock_irq(&dcrtc->irq_lock);
 
 	dplane->ctrl0 = 0;