drm/radeon: Move fb update from radeon_flip_work_func to radeon_crtc_page_flip

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>
This commit is contained in:
Michel Dänzer 2014-06-10 10:21:57 +09:00 committed by Alex Deucher
parent 8a309113d5
commit 685d54b330
1 changed files with 3 additions and 3 deletions

View 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 */ /* We borrow the event spin lock for protecting flip_work */
spin_lock_irqsave(&crtc->dev->event_lock, flags); spin_lock_irqsave(&crtc->dev->event_lock, flags);
/* update crtc fb */
crtc->primary->fb = fb;
/* set the proper interrupt */ /* set the proper interrupt */
radeon_irq_kms_pflip_irq_get(rdev, radeon_crtc->crtc_id); 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; radeon_crtc->flip_work = work;
/* update crtc fb */
crtc->primary->fb = fb;
spin_unlock_irqrestore(&crtc->dev->event_lock, flags); spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
queue_work(radeon_crtc->flip_queue, &work->flip_work); queue_work(radeon_crtc->flip_queue, &work->flip_work);