On 9/9/2026 9:47 PM, Ville Syrjala wrote:
From: Ville Syrjälä <[email protected]>
We will never use the vblank worker based LUT update path on
hardware with double buffered LUTs. Split that check out from
the semi-illegble mess in intel_crtc_needs_vblank_work()
so that it's clear what's happening.
The rest of the checks in that mess are more about dynamic
runtime state, so keeping those together makes some sense.
LGTM.
Reviewed-by: Chaitanya Kumar Borah <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
---
drivers/gpu/drm/i915/display/intel_crtc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c
b/drivers/gpu/drm/i915/display/intel_crtc.c
index 58a99c265598..0de24d221e48 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -491,11 +491,13 @@ static bool intel_crtc_needs_vblank_work(const struct
intel_crtc_state *crtc_sta
{
struct intel_display *display = to_intel_display(crtc_state);
+ if (HAS_DOUBLE_BUFFERED_LUT(display))
+ return false;
+
return crtc_state->hw.active &&
+ intel_crtc_needs_color_update(crtc_state) &&
!crtc_state->preload_luts &&
!intel_crtc_needs_modeset(crtc_state) &&
- (intel_crtc_needs_color_update(crtc_state) &&
- !HAS_DOUBLE_BUFFERED_LUT(display)) &&
!intel_color_uses_dsb(crtc_state) &&
!crtc_state->use_flipq &&
!crtc_state->use_dsb;