[Intel-gfx] [PATCH 1/3] drm/i915/display: Do not schedule DRRS work thread when it is not active

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Apr 29 16:00:40 UTC 2022


On Thu, Apr 28, 2022 at 02:10:56PM -0700, José Roberto de Souza wrote:
> Frontbuffer updates were scheduling the execution of DRRS work thread
> even if DRRS is not active.
> There was no issues with it because intel_drrs_downclock_work() checks
> if DRRS is active but there is no reason to keep scheduling this work
> thread and wasting CPU time.
> 
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_drrs.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c
> index 166caf293f7bc..04bc296761be0 100644
> --- a/drivers/gpu/drm/i915/display/intel_drrs.c
> +++ b/drivers/gpu/drm/i915/display/intel_drrs.c
> @@ -236,6 +236,11 @@ static void intel_drrs_frontbuffer_update(struct drm_i915_private *dev_priv,
>  		else
>  			crtc->drrs.busy_frontbuffer_bits &= ~frontbuffer_bits;
>  
> +		if (!intel_drrs_is_active(crtc)) {
> +			mutex_unlock(&crtc->drrs.mutex);
> +			continue;
> +		}

Should be impossible due to crtc->drrs.frontbuffer_bits==0.

> +
>  		/* flush/invalidate means busy screen hence upclock */
>  		intel_drrs_set_state(crtc, DRRS_REFRESH_RATE_HIGH);
>  
> -- 
> 2.36.0

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list