drm/radeon: Move fb update from radeon_flip_work_func to radeon_crtc_page_flip
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 10 Jun 2014 01:21:57 +0000 (10:21 +0900)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 10 Jun 2014 02:09:12 +0000 (22:09 -0400)
Fixes WARN()s from the DRM core since the page flip rework.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=77521
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_display.c

index a4e725c6b8c865f8d8e1f30c24a2274469962444..5ed617056b9c4f4400fff1b770de25e2a08af0eb 100644 (file)
@@ -462,9 +462,6 @@ static void radeon_flip_work_func(struct work_struct *__work)
        /* We borrow the event spin lock for protecting flip_work */
        spin_lock_irqsave(&crtc->dev->event_lock, flags);
 
-       /* update crtc fb */
-       crtc->primary->fb = fb;
-
        /* set the proper interrupt */
        radeon_irq_kms_pflip_irq_get(rdev, radeon_crtc->crtc_id);
 
@@ -539,6 +536,9 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc,
        }
        radeon_crtc->flip_work = work;
 
+       /* update crtc fb */
+       crtc->primary->fb = fb;
+
        spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
 
        queue_work(radeon_crtc->flip_queue, &work->flip_work);