Commit 587c7914 authored by Ville Syrjälä's avatar Ville Syrjälä

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: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1462995892-32416-3-git-send-email-ville.syrjala@linux.intel.comReviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
parent e1ff5f01
...@@ -9675,6 +9675,18 @@ static void broadwell_set_cdclk(struct drm_device *dev, int cdclk) ...@@ -9675,6 +9675,18 @@ static void broadwell_set_cdclk(struct drm_device *dev, int cdclk)
cdclk, dev_priv->cdclk_freq); cdclk, dev_priv->cdclk_freq);
} }
static int broadwell_calc_cdclk(int max_pixclk)
{
if (max_pixclk > 540000)
return 675000;
else if (max_pixclk > 450000)
return 540000;
else if (max_pixclk > 337500)
return 450000;
else
return 337500;
}
static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state) static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
{ {
struct drm_i915_private *dev_priv = to_i915(state->dev); 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,14 +9698,7 @@ static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
* FIXME should also account for plane ratio * FIXME should also account for plane ratio
* once 64bpp pixel formats are supported. * once 64bpp pixel formats are supported.
*/ */
if (max_pixclk > 540000) cdclk = broadwell_calc_cdclk(max_pixclk);
cdclk = 675000;
else if (max_pixclk > 450000)
cdclk = 540000;
else if (max_pixclk > 337500)
cdclk = 450000;
else
cdclk = 337500;
if (cdclk > dev_priv->max_cdclk_freq) { if (cdclk > dev_priv->max_cdclk_freq) {
DRM_DEBUG_KMS("requested cdclk (%d kHz) exceeds max (%d kHz)\n", 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,7 +9708,7 @@ static int broadwell_modeset_calc_cdclk(struct drm_atomic_state *state)
intel_state->cdclk = intel_state->dev_cdclk = cdclk; intel_state->cdclk = intel_state->dev_cdclk = cdclk;
if (!intel_state->active_crtcs) if (!intel_state->active_crtcs)
intel_state->dev_cdclk = 337500; intel_state->dev_cdclk = broadwell_calc_cdclk(0);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment