]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915: Disable updating of LUT values during vblank
authorChaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Fri, 23 May 2025 06:20:41 +0000 (11:50 +0530)
committerAnimesh Manna <animesh.manna@intel.com>
Mon, 26 May 2025 07:48:16 +0000 (13:18 +0530)
Do not schedule vblank worker for LUT update if the registers are
double buffered

v2: Do not schedule the worker at all (Ville)

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Link: https://lore.kernel.org/r/20250523062041.166468-12-chaitanya.kumar.borah@intel.com
drivers/gpu/drm/i915/display/intel_crtc.c

index 29cfc38f12e04645ec3a567fb5a41cd3daded524..a88317ea4e9c0e3002f5ca552b997b1c46e5505c 100644 (file)
@@ -417,10 +417,13 @@ int intel_crtc_get_pipe_from_crtc_id_ioctl(struct drm_device *dev, void *data,
 
 static bool intel_crtc_needs_vblank_work(const struct intel_crtc_state *crtc_state)
 {
+       struct intel_display *display = to_intel_display(crtc_state);
+
        return crtc_state->hw.active &&
                !crtc_state->preload_luts &&
                !intel_crtc_needs_modeset(crtc_state) &&
-               intel_crtc_needs_color_update(crtc_state) &&
+               (intel_crtc_needs_color_update(crtc_state) &&
+                !HAS_DOUBLE_BUFFERED_LUT(display)) &&
                !intel_color_uses_dsb(crtc_state) &&
                !crtc_state->use_dsb;
 }