Skip to content

Commit 9038011

Browse files
committed
drm/i915/display: Fix Panel Replay vblank enable workaround
Currently workaround is not applied when vblank is enabled on crtc that needs the workaround if vblank is already enabled for another crtc that doesn't need the workaround. Fix this by increasing counter only if crtc needs the workaround. Fixes: aa451ab ("drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay") Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241009134225.1322820-2-jouni.hogander@intel.com
1 parent 54ab6d1 commit 9038011

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/gpu/drm/i915/display/intel_display_irq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,7 +1447,7 @@ int bdw_enable_vblank(struct drm_crtc *_crtc)
14471447
if (gen11_dsi_configure_te(crtc, true))
14481448
return 0;
14491449

1450-
if (display->irq.vblank_wa_num_pipes++ == 0 && crtc->block_dc_for_vblank)
1450+
if (crtc->block_dc_for_vblank && display->irq.vblank_wa_num_pipes++ == 0)
14511451
schedule_work(&display->irq.vblank_dc_work);
14521452

14531453
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
@@ -1478,7 +1478,7 @@ void bdw_disable_vblank(struct drm_crtc *_crtc)
14781478
bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
14791479
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
14801480

1481-
if (--display->irq.vblank_wa_num_pipes == 0 && crtc->block_dc_for_vblank)
1481+
if (crtc->block_dc_for_vblank && --display->irq.vblank_wa_num_pipes == 0)
14821482
schedule_work(&display->irq.vblank_dc_work);
14831483
}
14841484

0 commit comments

Comments
 (0)