aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-05-11 15:44:41 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2016-05-13 14:28:09 -0400
commit587c7914154921ffa819aa61ef9057e68e9ad73f (patch)
tree7aeae504ec19668ce1ff1d0b0fbd035ef9d30eff
parente1ff5f0126cd83b149060171a84a4b33972ea28b (diff)
drm/i915: Extract broadwell_calc_cdclk()
Try to reduce the amount of duplicated cdclk magic numbers by moving the max_pixclk->cdclk conversion into a helper. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1462995892-32416-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 5bc7300db654..f6adea8116de 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -9675,6 +9675,18 @@ static void broadwell_set_cdclk(struct drm_device *dev, int cdclk)
9675 cdclk, dev_priv->cdclk_freq); 9675 cdclk, dev_priv->cdclk_freq);
9676} 9676}
9677 9677
9678static int broadwell_calc_cdclk(int max_pixclk)
9679{
9680 if (max_pixclk > 540000)
9681 return 675000;
9682 else if (max_pixclk > 450000)
9683 return 540000;
9684 else if (max_pixclk > 337500)
9685 return 450000;
9686 else
9687 return 337500;
9688}
9689
9678static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state) 9690static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
9679{ 9691{
9680 struct drm_i915_private *dev_priv = to_i915(state->dev); 9692 struct drm_i915_private *dev_priv = to_i915(state->dev);
@@ -9686,14 +9698,7 @@ static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
9686 * FIXME should also account for plane ratio 9698 * FIXME should also account for plane ratio
9687 * once 64bpp pixel formats are supported. 9699 * once 64bpp pixel formats are supported.
9688 */ 9700 */
9689 if (max_pixclk > 540000) 9701 cdclk = broadwell_calc_cdclk(max_pixclk);
9690 cdclk = 675000;
9691 else if (max_pixclk > 450000)
9692 cdclk = 540000;
9693 else if (max_pixclk > 337500)
9694 cdclk = 450000;
9695 else
9696 cdclk = 337500;
9697 9702
9698 if (cdclk > dev_priv->max_cdclk_freq) { 9703 if (cdclk > dev_priv->max_cdclk_freq) {
9699 DRM_DEBUG_KMS("requested cdclk (%d kHz) exceeds max (%d kHz)\n", 9704 DRM_DEBUG_KMS("requested cdclk (%d kHz) exceeds max (%d kHz)\n",
@@ -9703,7 +9708,7 @@ static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
9703 9708
9704 intel_state->cdclk = intel_state->dev_cdclk = cdclk; 9709 intel_state->cdclk = intel_state->dev_cdclk = cdclk;
9705 if (!intel_state->active_crtcs) 9710 if (!intel_state->active_crtcs)
9706 intel_state->dev_cdclk = 337500; 9711 intel_state->dev_cdclk = broadwell_calc_cdclk(0);
9707 9712
9708 return 0; 9713 return 0;
9709} 9714}