[Intel-gfx] [PATCH v2 1/3] drm/i915/gen9: Initialize intel_state->active_crtcs during WM sanitization (v2)

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Jul 13 15:10:37 UTC 2016


On 17/06/16 21:42, Matt Roper wrote:
> intel_state->active_crtcs is usually only initialized when doing a
> modeset.  During our first atomic commit after boot, we're effectively
> faking a modeset to sanitize the DDB/wm setup, so ensure that this field
> gets initialized before use.
>
> v2:
>   - Don't clobber active_crtcs if our first commit really is a modeset
>     (Maarten)
>   - Grab connection_mutex when faking a modeset during sanitization
>     (Maarten)
>
> Reported-by: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>

Tested-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

I am still applying this series locally in order to run nightly on SKL 
RVP with DP and no fbcon. :)

Regards,

Tvrtko

> ---
>   drivers/gpu/drm/i915/intel_pm.c | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 658a756..c06a8a3 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3896,9 +3896,24 @@ skl_compute_ddb(struct drm_atomic_state *state)
>   	 * pretend that all pipes switched active status so that we'll
>   	 * ensure a full DDB recompute.
>   	 */
> -	if (dev_priv->wm.distrust_bios_wm)
> +	if (dev_priv->wm.distrust_bios_wm) {
> +		ret = drm_modeset_lock(&dev->mode_config.connection_mutex,
> +				       state->acquire_ctx);
> +		if (ret)
> +			return ret;
> +
>   		intel_state->active_pipe_changes = ~0;
>
> +		/*
> +		 * We usually only initialize intel_state->active_crtcs if we
> +		 * we're doing a modeset; make sure this field is always
> +		 * initialized during the sanitization process that happens
> +		 * on the first commit too.
> +		 */
> +		if (!intel_state->modeset)
> +			intel_state->active_crtcs = dev_priv->active_crtcs;
> +	}
> +
>   	/*
>   	 * If the modeset changes which CRTC's are active, we need to
>   	 * recompute the DDB allocation for *all* active pipes, even
>


More information about the Intel-gfx mailing list