From: Greg Kroah-Hartman Date: Tue, 11 Nov 2025 00:26:23 +0000 (+0900) Subject: 6.17-stable patches X-Git-Tag: v6.12.58~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=809e63615bd209c71518030780081580dc911a11;p=thirdparty%2Fkernel%2Fstable-queue.git 6.17-stable patches added patches: drm-amd-display-update-color-on-atomic-commit-time.patch --- diff --git a/queue-6.17/drm-amd-display-update-color-on-atomic-commit-time.patch b/queue-6.17/drm-amd-display-update-color-on-atomic-commit-time.patch new file mode 100644 index 0000000000..5afbeaf09a --- /dev/null +++ b/queue-6.17/drm-amd-display-update-color-on-atomic-commit-time.patch @@ -0,0 +1,82 @@ +From 2f9c63883730a0bfecb086e6e59246933f936ca1 Mon Sep 17 00:00:00 2001 +From: Melissa Wen +Date: Thu, 11 Sep 2025 14:21:19 -0300 +Subject: drm/amd/display: update color on atomic commit time + +From: Melissa Wen + +commit 2f9c63883730a0bfecb086e6e59246933f936ca1 upstream. + +Use `atomic_commit_setup` to change the DC stream state. It's a +preparation to remove from `atomic_check` changes in CRTC color +components of DC stream state and prevent DC to commit TEST_ONLY +changes. + +Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4444 +Reviewed-by: Harry Wentland +Signed-off-by: Melissa Wen +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 36 +++++++++++++++++++++- + 1 file changed, 35 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -243,6 +243,7 @@ static int amdgpu_dm_encoder_init(struct + + static int amdgpu_dm_connector_get_modes(struct drm_connector *connector); + ++static int amdgpu_dm_atomic_setup_commit(struct drm_atomic_state *state); + static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state); + + static int amdgpu_dm_atomic_check(struct drm_device *dev, +@@ -3657,7 +3658,7 @@ static const struct drm_mode_config_func + + static struct drm_mode_config_helper_funcs amdgpu_dm_mode_config_helperfuncs = { + .atomic_commit_tail = amdgpu_dm_atomic_commit_tail, +- .atomic_commit_setup = drm_dp_mst_atomic_setup_commit, ++ .atomic_commit_setup = amdgpu_dm_atomic_setup_commit, + }; + + static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector) +@@ -10208,6 +10209,39 @@ static void dm_set_writeback(struct amdg + drm_writeback_queue_job(wb_conn, new_con_state); + } + ++static int amdgpu_dm_atomic_setup_commit(struct drm_atomic_state *state) ++{ ++ struct drm_crtc *crtc; ++ struct drm_crtc_state *old_crtc_state, *new_crtc_state; ++ struct dm_crtc_state *dm_old_crtc_state, *dm_new_crtc_state; ++ int i, ret; ++ ++ ret = drm_dp_mst_atomic_setup_commit(state); ++ if (ret) ++ return ret; ++ ++ for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { ++ dm_old_crtc_state = to_dm_crtc_state(old_crtc_state); ++ dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); ++ /* ++ * Color management settings. We also update color properties ++ * when a modeset is needed, to ensure it gets reprogrammed. ++ */ ++ if (dm_new_crtc_state->base.active && dm_new_crtc_state->stream && ++ (dm_new_crtc_state->base.color_mgmt_changed || ++ dm_old_crtc_state->regamma_tf != dm_new_crtc_state->regamma_tf || ++ drm_atomic_crtc_needs_modeset(new_crtc_state))) { ++ ret = amdgpu_dm_update_crtc_color_mgmt(dm_new_crtc_state); ++ if (ret) { ++ drm_dbg_atomic(state->dev, "Failed to update color state\n"); ++ return ret; ++ } ++ } ++ } ++ ++ return 0; ++} ++ + /** + * amdgpu_dm_atomic_commit_tail() - AMDgpu DM's commit tail implementation. + * @state: The atomic state to commit diff --git a/queue-6.17/series b/queue-6.17/series index 314e3a8bd4..5f9bd907a5 100644 --- a/queue-6.17/series +++ b/queue-6.17/series @@ -832,3 +832,4 @@ scsi-ufs-ufs-pci-fix-s0ix-s3-for-intel-controllers.patch scsi-ufs-ufs-pci-set-ufshcd_quirk_perform_link_startup_once-for-intel-adl.patch scsi-ufs-core-add-a-quirk-to-suppress-link_startup_again.patch scsi-ufs-core-fix-invalid-probe-error-return-value.patch +drm-amd-display-update-color-on-atomic-commit-time.patch