[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