This is a resubmission of d79716401a95 ("drm/amd/display: use plane
color_mgmt_changed to track colorop changes") whose change was reverted
by 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next") during a
merge conflict resolution.
Original commit message:
```
Ensure the driver tracks changes in any colorop property of a plane
color pipeline by using the same mechanism of CRTC color management and
update plane color blocks when any colorop property changes. It fixes an
issue observed on gamescope settings for night mode which is done via
shaper/3D-LUT updates.
```
Fixes: 0461ba9a7994 ("Merge tag 'amd-drm-next-7.3-2026-07-02' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next")
Signed-off-by: Melissa Wen <[email protected]>
---
Hey,
I noticed this problem in the resolution of a merge conflict after
testing drm-misc-next on SteamDeck with KMS colorop API support and
verifying the issue of missing updates in nightlight-mode was back.
Let me know what are the right steps to address it.
Thanks,
Melissa
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 67b825cbb88f..d0e612371c8f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4202,7 +4202,7 @@ static void amdgpu_dm_commit_planes(struct
drm_atomic_commit *state,
continue;
bundle->surface_updates[planes_count].surface = dc_plane;
- if (new_pcrtc_state->color_mgmt_changed) {
+ if (new_pcrtc_state->color_mgmt_changed ||
new_plane_state->color_mgmt_changed) {
bundle->surface_updates[planes_count].gamma =
&dc_plane->gamma_correction;
bundle->surface_updates[planes_count].in_transfer_func
= &dc_plane->in_transfer_func;
bundle->surface_updates[planes_count].gamut_remap_matrix =
&dc_plane->gamut_remap_matrix;
@@ -6012,6 +6012,10 @@ static bool should_reset_plane(struct drm_atomic_commit
*state,
if (new_crtc_state->color_mgmt_changed)
return true;
+ /* Plane color pipeline or its colorop changes. */
+ if (new_plane_state->color_mgmt_changed)
+ return true;
+
/*
* On zpos change, planes need to be reordered by removing and re-adding
* them one by one to the dc state, in order of descending zpos.
--
2.53.0