[Intel-gfx] [PATCH 6/7] drm/i915: Fix IPS disable in intel_plane_disable_noatomic()

Jani Nikula jani.nikula at linux.intel.com
Wed Feb 9 13:41:02 UTC 2022


On Wed, 09 Feb 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> IPS must be disabled prior to disabling the last plane (excluding
> the cursor). Make the code do that instead of assuming the primary
> plane would be the last one. This is probably 100% theoretical
> as the BIOS should never light up the other planes anyway. But
> no harm in making the code totally consistent.
>
> Also let's update the ips_enabled flag in the crtc state afterwards
> so that the first atomic commit has accurate information about
> the state of IPS.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

I admit, didn't have the time to dig into the details here now, so let's
just say, seems reasonable,

Acked-by: Jani Nikula <jani.nikula at intel.com>


> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index cdfee4ba1166..401a339973bf 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -753,9 +753,11 @@ void intel_plane_disable_noatomic(struct intel_crtc *crtc,
>  	crtc_state->data_rate[plane->id] = 0;
>  	crtc_state->min_cdclk[plane->id] = 0;
>  
> -	if (plane->id == PLANE_PRIMARY &&
> -	    hsw_ips_disable(crtc_state))
> +	if ((crtc_state->active_planes & ~BIT(PLANE_CURSOR)) == 0 &&
> +	    hsw_ips_disable(crtc_state)) {
> +		crtc_state->ips_enabled = false;
>  		intel_crtc_wait_for_next_vblank(crtc);
> +	}
>  
>  	/*
>  	 * Vblank time updates from the shadow to live plane control register

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list