drm/i915/gen9: Initialize intel_state->active_crtcs during WM sanitization (v2)
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@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Tested-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466196140-16336-2-git-send-email-matthew.d.roper@intel.com
Cc: stable@vger.kernel.org #v4.7+
(cherry picked from commit 1b54a880b2
)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
fa8410b355
commit
f4750a46a0
|
@ -3912,9 +3912,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
|
||||
|
|
Loading…
Reference in New Issue