Message ID | 20250207215406.19348-2-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Fix scanline_offset for LNL+/BMG+ | expand |
On Fri, 2025-02-07 at 23:54 +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Turns out LNL+ and BMG+ no longer have the weird extra scanline > offset for HDMI outputs. Fix intel_crtc_scanline_offset() > accordingly so that scanline evasion/etc. works correctly on > HDMI outputs on these new platforms. > > Cc: stable@vger.kernel.org > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_vblank.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c > b/drivers/gpu/drm/i915/display/intel_vblank.c > index 4efd4f7d497a..7b240ce681a0 100644 > --- a/drivers/gpu/drm/i915/display/intel_vblank.c > +++ b/drivers/gpu/drm/i915/display/intel_vblank.c > @@ -222,7 +222,9 @@ int intel_crtc_scanline_offset(const struct > intel_crtc_state *crtc_state) > * However if queried just before the start of vblank we'll > get an > * answer that's slightly in the future. > */ > - if (DISPLAY_VER(display) == 2) > + if (DISPLAY_VER(display) >= 20 || display- > >platform.battlemage) Based on what Matt Roper wrote in response to cover letter you could consider changing this to: if (DISPLAY_VERx100(display) >= 1401) What do you think? BR, Jouni Högander > + return 1; > + else if (DISPLAY_VER(display) == 2) > return -1; > else if (HAS_DDI(display) && intel_crtc_has_type(crtc_state, > INTEL_OUTPUT_HDMI)) > return 2;
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c index 4efd4f7d497a..7b240ce681a0 100644 --- a/drivers/gpu/drm/i915/display/intel_vblank.c +++ b/drivers/gpu/drm/i915/display/intel_vblank.c @@ -222,7 +222,9 @@ int intel_crtc_scanline_offset(const struct intel_crtc_state *crtc_state) * However if queried just before the start of vblank we'll get an * answer that's slightly in the future. */ - if (DISPLAY_VER(display) == 2) + if (DISPLAY_VER(display) >= 20 || display->platform.battlemage) + return 1; + else if (DISPLAY_VER(display) == 2) return -1; else if (HAS_DDI(display) && intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) return 2;