On Thu, Mar 10, 2022 at 05:45:49PM +0000, Souza, Jose wrote: > On Thu, 2022-03-10 at 02:47 +0200, Ville Syrjala wrote: > > static void intel_drrs_frontbuffer_update(struct drm_i915_private *dev_priv, > > unsigned int frontbuffer_bits, > > bool invalidate) > > { > > - struct intel_dp *intel_dp; > > - struct drm_crtc *crtc; > > - enum pipe pipe; > > + struct intel_crtc *crtc; > > > > - if (dev_priv->drrs.type != DRRS_TYPE_SEAMLESS) > > + if (dev_priv->vbt.drrs_type != DRRS_TYPE_SEAMLESS) > > return; > > > > - cancel_delayed_work(&dev_priv->drrs.work); > > + for_each_intel_crtc(&dev_priv->drm, crtc) { > > + enum pipe pipe = crtc->pipe; > > > > - mutex_lock(&dev_priv->drrs.mutex); > > + cancel_delayed_work(&crtc->drrs.work); > > Not a good idea cancel work at this point, you could be canceling work even if CRTC of eDP is not being updated. Hmm, yeah. I guess we could in theory end up pushing the timer forward indefinitely even if nothing actually happens. The current code already has that issue though, so not specific to this patch. -- Ville Syrjälä Intel