drm/i915: Don't use intel_crtc->new_config in pll calculation code

Move towards atomic by using the atomic state instead.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Ander Conselvan de Oliveira 2015-04-02 14:47:57 +03:00 committed by Daniel Vetter
parent 304603f47a
commit 225da59b54
1 changed files with 11 additions and 4 deletions

View File

@ -11581,10 +11581,11 @@ intel_modeset_compute_config(struct drm_crtc *crtc,
return intel_atomic_get_crtc_state(state, to_intel_crtc(crtc));; return intel_atomic_get_crtc_state(state, to_intel_crtc(crtc));;
} }
static int __intel_set_mode_setup_plls(struct drm_device *dev, static int __intel_set_mode_setup_plls(struct drm_atomic_state *state,
unsigned modeset_pipes, unsigned modeset_pipes,
unsigned disable_pipes) unsigned disable_pipes)
{ {
struct drm_device *dev = state->dev;
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
unsigned clear_pipes = modeset_pipes | disable_pipes; unsigned clear_pipes = modeset_pipes | disable_pipes;
struct intel_crtc *intel_crtc; struct intel_crtc *intel_crtc;
@ -11598,9 +11599,15 @@ static int __intel_set_mode_setup_plls(struct drm_device *dev,
goto done; goto done;
for_each_intel_crtc_masked(dev, modeset_pipes, intel_crtc) { for_each_intel_crtc_masked(dev, modeset_pipes, intel_crtc) {
struct intel_crtc_state *state = intel_crtc->new_config; struct intel_crtc_state *crtc_state =
intel_atomic_get_crtc_state(state, intel_crtc);
/* Modeset pipes should have a new state by now */
if (WARN_ON(IS_ERR(crtc_state)))
continue;
ret = dev_priv->display.crtc_compute_clock(intel_crtc, ret = dev_priv->display.crtc_compute_clock(intel_crtc,
state); crtc_state);
if (ret) { if (ret) {
intel_shared_dpll_abort_config(dev_priv); intel_shared_dpll_abort_config(dev_priv);
goto done; goto done;
@ -11658,7 +11665,7 @@ static int __intel_set_mode(struct drm_crtc *crtc,
prepare_pipes &= ~disable_pipes; prepare_pipes &= ~disable_pipes;
} }
ret = __intel_set_mode_setup_plls(dev, modeset_pipes, disable_pipes); ret = __intel_set_mode_setup_plls(state, modeset_pipes, disable_pipes);
if (ret) if (ret)
goto done; goto done;