drm/i915: Perform dpll commit first, v2.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Mon, 14 Mar 2016 08:27:53 +0000 (09:27 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 17 Mar 2016 08:27:40 +0000 (09:27 +0100)
Warn for the wrong mask in enable only. Disable will have the wrong mask now
because the new state is committed before disabling the old state.

Changes since v1:
- Use crtc_mask (Durgadoss)
- Rebase.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1457944075-14123-3-git-send-email-maarten.lankhorst@linux.intel.com
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_dpll_mgr.c

index 089d65eaef75ca26e848f65c5d1c93187c42141c..80aa51c98a2d4c2d19d52cc2a20b67f9d9174c60 100644 (file)
@@ -13525,7 +13525,8 @@ static int intel_atomic_commit(struct drm_device *dev,
        }
 
        drm_atomic_helper_swap_state(dev, state);
-       dev_priv->wm.config = to_intel_atomic_state(state)->wm_config;
+       dev_priv->wm.config = intel_state->wm_config;
+       intel_shared_dpll_commit(state);
 
        if (intel_state->modeset) {
                memcpy(dev_priv->min_pixclk, intel_state->min_pixclk,
@@ -13577,8 +13578,6 @@ static int intel_atomic_commit(struct drm_device *dev,
        intel_modeset_update_crtc_state(state);
 
        if (intel_state->modeset) {
-               intel_shared_dpll_commit(state);
-
                drm_atomic_helper_update_legacy_modeset_state(state->dev, state);
 
                if (dev_priv->display.modeset_commit_cdclk &&
index 9bf2c3914625953b4d51b4965afb2c5ad6ced0a7..2c98610213f493687e6b1b785e84f4344a348224 100644 (file)
@@ -156,7 +156,7 @@ void intel_disable_shared_dpll(struct intel_crtc *crtc)
        if (pll == NULL)
                return;
 
-       if (WARN_ON(!(pll->config.crtc_mask & crtc_mask)))
+       if (WARN_ON(!(pll->active_mask & crtc_mask)))
                return;
 
        DRM_DEBUG_KMS("disable %s (active %x, on? %d) for crtc %d\n",