Prefill calculations are getting screwed up as casf_compute
is getting called in later stage. So move casf_compute_config
to crtc_compute_config and check if there is a change in the
sharpness strength, if so set the flag uapi.mode_changed
so that everytime when strength changes casf_compute_config
can be called and new strength value gets updated.

v2: Remove extra casf_check [Ville]

Signed-off-by: Nemesa Garg <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 9c6d3ecdb589..568730ffe359 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2494,6 +2494,10 @@ static int intel_crtc_compute_config(struct 
intel_atomic_state *state,
 
        intel_vrr_compute_guardband(crtc_state);
 
+       ret = intel_casf_compute_config(crtc_state);
+       if (ret)
+               return ret;
+
        return 0;
 }
 
@@ -4286,10 +4290,6 @@ static int intel_crtc_atomic_check(struct 
intel_atomic_state *state,
                return ret;
        }
 
-       ret = intel_casf_compute_config(crtc_state);
-       if (ret)
-               return ret;
-
        if (DISPLAY_VER(display) >= 9) {
                if (intel_crtc_needs_modeset(crtc_state) ||
                    intel_crtc_needs_fastset(crtc_state) ||
@@ -6431,6 +6431,10 @@ int intel_atomic_check(struct drm_device *dev,
                if (new_crtc_state->uapi.scaling_filter !=
                    old_crtc_state->uapi.scaling_filter)
                        new_crtc_state->uapi.mode_changed = true;
+
+               if (new_crtc_state->uapi.sharpness_strength !=
+                    old_crtc_state->uapi.sharpness_strength)
+                        new_crtc_state->uapi.mode_changed = true;
        }
 
        intel_vrr_check_modeset(state);
-- 
2.25.1

Reply via email to