forked from Minki/linux
drm/amdgpu: Move MMIO flip out of spinlocked region
Prior actual MMIO flip we need to acquire DAL mutex to guard our target state which get modified on reset mode. Assign page flip status before actual flip to handle the possible race condition with interrupt. Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9ddf940f5d
commit
6bd9e877ce
@ -118,12 +118,12 @@ static void amdgpu_flip_work_func(struct work_struct *__work)
|
|||||||
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* do the flip (mmio) */
|
|
||||||
adev->mode_info.funcs->page_flip(adev, work->crtc_id, work->base);
|
|
||||||
/* set the flip status */
|
/* set the flip status */
|
||||||
amdgpuCrtc->pflip_status = AMDGPU_FLIP_SUBMITTED;
|
amdgpuCrtc->pflip_status = AMDGPU_FLIP_SUBMITTED;
|
||||||
|
|
||||||
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
||||||
|
|
||||||
|
/* Do the flip (mmio) */
|
||||||
|
adev->mode_info.funcs->page_flip(adev, work->crtc_id, work->base);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user