From f65d2dde977147801a283d0eebe1f7dcc917f2ff Mon Sep 17 00:00:00 2001 From: Alex Frid Date: Wed, 1 Oct 2014 16:24:58 -0700 Subject: gpu: nvgpu: Change quantize order in GPCPLL NA mode When calculating fractional divider in GPCPLL NA mode quantize voltage before (used to do it after) applying DFS_COEFF, to follow h/w order. Bug 1555318 Change-Id: I37be2bc73cd1f849695b94acc4ff21caf26e8b97 Signed-off-by: Alex Frid Reviewed-on: http://git-master/r/552741 Reviewed-by: Yu-Huan Hsu --- drivers/gpu/nvgpu/gm20b/clk_gm20b.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c index fbdf9368..16f88d62 100644 --- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c @@ -302,10 +302,11 @@ static void clk_config_dvfs_ndiv(int mv, u32 n_eff, struct na_dvfs *d) u32 rem, rem_range; struct pll_parms *p = &gpc_pll_params; - det_delta = (mv * 1000 - d->uv_cal); - det_delta = min(det_delta, d->dfs_det_max * p->uvdet_slope); + det_delta = DIV_ROUND_CLOSEST(mv * 1000 - p->uvdet_offs, + p->uvdet_slope); + det_delta -= d->dfs_ext_cal; + det_delta = min(det_delta, d->dfs_det_max); det_delta = det_delta * d->dfs_coeff; - det_delta = DIV_ROUND_CLOSEST(det_delta, p->uvdet_slope); n = (int)(n_eff << DFS_DET_RANGE) - det_delta; BUG_ON((n < 0) || (n > (p->max_N << DFS_DET_RANGE))); -- cgit v1.2.2