aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2015-04-02 07:47:57 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-04-10 02:55:56 -0400
commit225da59b540a92c8f8bbeb4c69c9139da06b061a (patch)
tree8ab89b89e3e18dcf30f83d89b85c3520849f48ef /drivers/gpu/drm/i915/intel_display.c
parent304603f47a7487309d5c450f438c59e92af2d93a (diff)
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>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a6cd8c7a64e9..0b7ddeee681a 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11581,10 +11581,11 @@ intel_modeset_compute_config(struct drm_crtc *crtc,
11581 return intel_atomic_get_crtc_state(state, to_intel_crtc(crtc));; 11581 return intel_atomic_get_crtc_state(state, to_intel_crtc(crtc));;
11582} 11582}
11583 11583
11584static int __intel_set_mode_setup_plls(struct drm_device *dev, 11584static int __intel_set_mode_setup_plls(struct drm_atomic_state *state,
11585 unsigned modeset_pipes, 11585 unsigned modeset_pipes,
11586 unsigned disable_pipes) 11586 unsigned disable_pipes)
11587{ 11587{
11588 struct drm_device *dev = state->dev;
11588 struct drm_i915_private *dev_priv = to_i915(dev); 11589 struct drm_i915_private *dev_priv = to_i915(dev);
11589 unsigned clear_pipes = modeset_pipes | disable_pipes; 11590 unsigned clear_pipes = modeset_pipes | disable_pipes;
11590 struct intel_crtc *intel_crtc; 11591 struct intel_crtc *intel_crtc;
@@ -11598,9 +11599,15 @@ static int __intel_set_mode_setup_plls(struct drm_device *dev,
11598 goto done; 11599 goto done;
11599 11600
11600 for_each_intel_crtc_masked(dev, modeset_pipes, intel_crtc) { 11601 for_each_intel_crtc_masked(dev, modeset_pipes, intel_crtc) {
11601 struct intel_crtc_state *state = intel_crtc->new_config; 11602 struct intel_crtc_state *crtc_state =
11603 intel_atomic_get_crtc_state(state, intel_crtc);
11604
11605 /* Modeset pipes should have a new state by now */
11606 if (WARN_ON(IS_ERR(crtc_state)))
11607 continue;
11608
11602 ret = dev_priv->display.crtc_compute_clock(intel_crtc, 11609 ret = dev_priv->display.crtc_compute_clock(intel_crtc,
11603 state); 11610 crtc_state);
11604 if (ret) { 11611 if (ret) {
11605 intel_shared_dpll_abort_config(dev_priv); 11612 intel_shared_dpll_abort_config(dev_priv);
11606 goto done; 11613 goto done;
@@ -11658,7 +11665,7 @@ static int __intel_set_mode(struct drm_crtc *crtc,
11658 prepare_pipes &= ~disable_pipes; 11665 prepare_pipes &= ~disable_pipes;
11659 } 11666 }
11660 11667
11661 ret = __intel_set_mode_setup_plls(dev, modeset_pipes, disable_pipes); 11668 ret = __intel_set_mode_setup_plls(state, modeset_pipes, disable_pipes);
11662 if (ret) 11669 if (ret)
11663 goto done; 11670 goto done;
11664 11671