All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] drm/i915: Enable vblanks after the timing generator has started
@ 2026-10-30 17:13 Ville Syrjala
  2026-10-30 17:13 ` [PATCH 01/10] drm/i915: Disable port sync if VRR is enabled Ville Syrjala
                   ` (13 more replies)
  0 siblings, 14 replies; 22+ messages in thread
From: Ville Syrjala @ 2026-10-30 17:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Currently we may enable the vblank machinery before the
timing generator has actually started, which means the
frame/scanline counters read out during the vblank enabling
may be complete nonsense. When the timing generator finally
starts running and we get the first vblank interrupt the
sampled counters may jump erratically, which could cause
the vblank code to get confused as to how many frames have
actually elapsed.

The series fixes the problem for HSW+ by making sure the
timing generator is actually ticking before we enable
the vblank machinery. I also plan to fix the pre-HSW
platforms but I'll need to do a bit more reverse
engineering to figure out the final details.

While doing this I also ended up fixing some related
FEC issues with port sync, and finally enable joiner+port
sync because we no longer have any need to keep the two
apart from each other.

Ville Syrjälä (10):
  drm/i915: Disable port sync if VRR is enabled
  drm/i915: Do intel_crtc_vblank_on() later on HSW+
  drm/i915: Handle joined pipes inside intel_crtc_vblank_{on,off}()
  Revert "drm/i915/display: Avoid stale PIPE_SCANLINE values after
    crtc_enable"
  drm/i915: Fix intel_crtc_vblank_on() with port sync
  drm/i915: Wait for timing generator to start in intel_crtc_vblank_on()
    on HSW+
  drm/i915: Reduce the sleep inside pipe_scanline_is_moving()
  drm/i915: Document timing generator start/stop behaviour on HSW+
  drm/i915: Fix FEC wait with port sync on pre-LNL
  drm/i915: Allow joiner with port sync

 drivers/gpu/drm/i915/display/icl_dsi.c        |   4 +-
 drivers/gpu/drm/i915/display/intel_crt.c      |   6 +-
 drivers/gpu/drm/i915/display/intel_crtc.c     |  45 ++++++-
 drivers/gpu/drm/i915/display/intel_crtc.h     |   8 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      | 120 ++++++++++++++----
 drivers/gpu/drm/i915/display/intel_display.c  |  12 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  17 +--
 .../drm/i915/display/intel_modeset_setup.c    |   2 +-
 drivers/gpu/drm/i915/display/intel_vblank.c   |   2 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c        |   4 +-
 10 files changed, 166 insertions(+), 54 deletions(-)

-- 
2.55.0


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2026-10-30 18:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-30 17:13 [PATCH 00/10] drm/i915: Enable vblanks after the timing generator has started Ville Syrjala
2026-10-30 17:13 ` [PATCH 01/10] drm/i915: Disable port sync if VRR is enabled Ville Syrjala
2026-10-30 17:13 ` [PATCH 02/10] drm/i915: Do intel_crtc_vblank_on() later on HSW+ Ville Syrjala
2026-10-30 17:13 ` [PATCH 03/10] drm/i915: Handle joined pipes inside intel_crtc_vblank_{on, off}() Ville Syrjala
2026-10-30 17:26   ` sashiko-bot
2026-10-30 17:49     ` Ville Syrjälä
2026-10-30 17:13 ` [PATCH 04/10] Revert "drm/i915/display: Avoid stale PIPE_SCANLINE values after crtc_enable" Ville Syrjala
2026-10-30 17:13 ` [PATCH 05/10] drm/i915: Fix intel_crtc_vblank_on() with port sync Ville Syrjala
2026-10-30 17:13 ` [PATCH 06/10] drm/i915: Wait for timing generator to start in intel_crtc_vblank_on() on HSW+ Ville Syrjala
2026-10-30 17:32   ` sashiko-bot
2026-10-30 18:07     ` Ville Syrjälä
2026-10-30 17:13 ` [PATCH 07/10] drm/i915: Reduce the sleep inside pipe_scanline_is_moving() Ville Syrjala
2026-10-30 17:13 ` [PATCH 08/10] drm/i915: Document timing generator start/stop behaviour on HSW+ Ville Syrjala
2026-10-30 17:13 ` [PATCH 09/10] drm/i915: Fix FEC wait with port sync on pre-LNL Ville Syrjala
2026-10-30 17:29   ` sashiko-bot
2026-10-30 17:13 ` [PATCH 10/10] drm/i915: Allow joiner with port sync Ville Syrjala
2026-10-30 17:38   ` sashiko-bot
2026-10-30 18:23     ` Ville Syrjälä
2026-10-30 17:20 ` ✗ CI.checkpatch: warning for drm/i915: Enable vblanks after the timing generator has started Patchwork
2026-10-30 17:23 ` ✓ CI.KUnit: success " Patchwork
2026-10-30 17:59 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-30 18:03 ` ✓ i915.CI.BAT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.