mirror of https://gitee.com/openkylin/linux.git
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:
parent
8a309113d5
commit
685d54b330
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue