summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ddi.c
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2015-06-26 18:34:29 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-06-26 19:41:59 +0200
commite7ad987832637701fc723ac2c1580c30c191bca6 (patch)
tree194e9f9c06be41b63e1db9963b22076239ec15a0 /drivers/gpu/drm/i915/intel_ddi.c
parent350405623ff3f447813eaef2035272bf05281671 (diff)
downloadtalos-op-linux-e7ad987832637701fc723ac2c1580c30c191bca6.tar.gz
talos-op-linux-e7ad987832637701fc723ac2c1580c30c191bca6.zip
drm/i915/skl: Skip remaining dividers when deviation is 0
We can't improve a 0 deviation, so when we find such a divider, skip the remaining ones they won't be better. This short-circuit the search for 34 of the 373 test frequencies in the corresponding i-g-t test (tools/skl_compute_wrpll) v2: Place the short-circuiting code in skl_compute_wrpll() (Paulo) (I'm sure nobody will notice the spurious removal of a blank line) Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ddi.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index f6b3ccc4ab66..42c14870ef43 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1149,7 +1149,6 @@ static void skl_wrpll_try_divider(struct skl_wrpll_context *ctx,
ctx->dco_freq = dco_freq;
ctx->p = divider;
}
-
}
static void skl_wrpll_get_multipliers(unsigned int p,
@@ -1315,9 +1314,17 @@ skl_ddi_calculate_wrpll(int clock /* in Hz */,
dco_central_freq[dco],
dco_freq,
p);
+ /*
+ * Skip the remaining dividers if we're sure to
+ * have found the definitive divider, we can't
+ * improve a 0 deviation.
+ */
+ if (ctx.min_deviation == 0)
+ goto skip_remaining_dividers;
}
}
+skip_remaining_dividers:
/*
* If a solution is found with an even divider, prefer
* this one.
OpenPOWER on IntegriCloud