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.bo...@intel.com>
Reviewed-by: Uma Shankar <uma.shan...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_crtc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c 
b/drivers/gpu/drm/i915/display/intel_crtc.c
index 29cfc38f12e0..a88317ea4e9c 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -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;
 }
-- 
2.25.1

Reply via email to