mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 13:24:22 -04:00
drm/amd/display: reject atomic commit if setting both plane and CRTC degamma
DC only has pre-blending degamma caps (plane/DPP) that is currently in use for CRTC/post-blending degamma, so that we don't have HW caps to perform plane and CRTC degamma at the same time. Reject atomic updates when serspace sets both plane and CRTC degamma properties. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Melissa Wen <mwen@igalia.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
980f871007
commit
ef113a3b19
@@ -944,9 +944,20 @@ int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc,
|
||||
has_crtc_cm_degamma = (crtc->cm_has_degamma || crtc->cm_is_degamma_srgb);
|
||||
|
||||
ret = __set_dm_plane_degamma(plane_state, dc_plane_state);
|
||||
if (ret != -EINVAL)
|
||||
if (ret == -ENOMEM)
|
||||
return ret;
|
||||
|
||||
/* We only have one degamma block available (pre-blending) for the
|
||||
* whole color correction pipeline, so that we can't actually perform
|
||||
* plane and CRTC degamma at the same time. Explicitly reject atomic
|
||||
* updates when userspace sets both plane and CRTC degamma properties.
|
||||
*/
|
||||
if (has_crtc_cm_degamma && ret != -EINVAL){
|
||||
drm_dbg_kms(crtc->base.crtc->dev,
|
||||
"doesn't support plane and CRTC degamma at the same time\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* If we are here, it means we don't have plane degamma settings, check
|
||||
* if we have CRTC degamma waiting for mapping to pre-blending degamma
|
||||
* block
|
||||
|
||||
Reference in New Issue
Block a user