All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes
@ 2026-08-07 11:56 Melissa Wen
  2026-08-07 12:12 ` sashiko-bot
  2026-08-10 18:40 ` Alex Deucher
  0 siblings, 2 replies; 4+ messages in thread
From: Melissa Wen @ 2026-08-07 11:56 UTC (permalink / raw)
  To: Dave Airlie, Alex Deucher, Harry Wentland, sunpeng.li, siqueira,
	christian.koenig, airlied, simona
  Cc: kernel-dev, amd-gfx, dri-devel

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 <mwen@igalia.com>

---

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-08-27 10:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07 11:56 [PATCH] drm/amd/display: use plane color_mgmt_changed to track colorop changes Melissa Wen
2026-08-07 12:12 ` sashiko-bot
2026-08-10 18:40 ` Alex Deucher
2026-08-27 10:24   ` Melissa Wen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.