diff options
author | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2015-04-02 07:47:57 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-04-10 02:55:56 -0400 |
commit | 225da59b540a92c8f8bbeb4c69c9139da06b061a (patch) | |
tree | 8ab89b89e3e18dcf30f83d89b85c3520849f48ef /drivers/gpu/drm/i915/intel_display.c | |
parent | 304603f47a7487309d5c450f438c59e92af2d93a (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.c | 15 |
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 | ||
11584 | static int __intel_set_mode_setup_plls(struct drm_device *dev, | 11584 | static 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 | ||