mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
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: aa451abcff ("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
This commit is contained in:
parent
54ab6d160d
commit
90380119ef
|
|
@ -1447,7 +1447,7 @@ int bdw_enable_vblank(struct drm_crtc *_crtc)
|
|||
if (gen11_dsi_configure_te(crtc, true))
|
||||
return 0;
|
||||
|
||||
if (display->irq.vblank_wa_num_pipes++ == 0 && crtc->block_dc_for_vblank)
|
||||
if (crtc->block_dc_for_vblank && display->irq.vblank_wa_num_pipes++ == 0)
|
||||
schedule_work(&display->irq.vblank_dc_work);
|
||||
|
||||
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
|
||||
|
|
@ -1478,7 +1478,7 @@ void bdw_disable_vblank(struct drm_crtc *_crtc)
|
|||
bdw_disable_pipe_irq(dev_priv, pipe, GEN8_PIPE_VBLANK);
|
||||
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
|
||||
|
||||
if (--display->irq.vblank_wa_num_pipes == 0 && crtc->block_dc_for_vblank)
|
||||
if (crtc->block_dc_for_vblank && --display->irq.vblank_wa_num_pipes == 0)
|
||||
schedule_work(&display->irq.vblank_dc_work);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user