On Thu, 11 Sep 2025, Jonathan Cavitt <jonathan.cav...@intel.com> wrote: > There are a couple of modulus operations in the i915 display code with > vtotal as the divisor that add vtotal to the dividend. In modular > arithmetic, adding the divisor to the dividend is equivalent to adding > zero to the dividend, so this addition can be dropped.
The result might become negative with this? BR, Jani. > > Signed-off-by: Jonathan Cavitt <jonathan.cav...@intel.com> > Cc: Ville Syrjälä <ville.syrj...@linux.intel.com> > Cc: Animesh Manna <animesh.ma...@intel.com> > Cc: Jani Nikula <jani.nik...@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dsb.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_vblank.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c > b/drivers/gpu/drm/i915/display/intel_dsb.c > index dee44d45b668..67315116839b 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.c > +++ b/drivers/gpu/drm/i915/display/intel_dsb.c > @@ -173,7 +173,7 @@ static int dsb_scanline_to_hw(struct intel_atomic_state > *state, > intel_pre_commit_crtc_state(state, crtc); > int vtotal = dsb_vtotal(state, crtc); > > - return (scanline + vtotal - intel_crtc_scanline_offset(crtc_state)) % > vtotal; > + return (scanline - intel_crtc_scanline_offset(crtc_state)) % vtotal; > } > > /* > @@ -482,7 +482,7 @@ static void assert_dsl_ok(struct intel_atomic_state > *state, > * Waiting for the entire frame doesn't make sense, > * (IN==don't wait, OUT=wait forever). > */ > - drm_WARN(crtc->base.dev, (end - start + vtotal) % vtotal == vtotal - 1, > + drm_WARN(crtc->base.dev, (end - start) % vtotal == vtotal - 1, > "[CRTC:%d:%s] DSB %d bad scanline window wait: %d-%d > (vt=%d)\n", > crtc->base.base.id, crtc->base.name, dsb->id, > start, end, vtotal); > diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c > b/drivers/gpu/drm/i915/display/intel_vblank.c > index c15234c1d96e..bcfca2fcef3c 100644 > --- a/drivers/gpu/drm/i915/display/intel_vblank.c > +++ b/drivers/gpu/drm/i915/display/intel_vblank.c > @@ -288,7 +288,7 @@ static int __intel_get_crtc_scanline(struct intel_crtc > *crtc) > * See update_scanline_offset() for the details on the > * scanline_offset adjustment. > */ > - return (position + vtotal + crtc->scanline_offset) % vtotal; > + return (position + crtc->scanline_offset) % vtotal; > } > > /* -- Jani Nikula, Intel