summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gm20b/clk_gm20b.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
index 7f0e3055..4f63f956 100644
--- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
@@ -1266,13 +1266,16 @@ static long gm20b_round_rate(struct clk_hw *hw, unsigned long rate,
1266 unsigned long *parent_rate) 1266 unsigned long *parent_rate)
1267{ 1267{
1268 struct clk_gk20a *clk = to_clk_gk20a(hw); 1268 struct clk_gk20a *clk = to_clk_gk20a(hw);
1269 u32 freq, old_freq; 1269 u32 freq;
1270 struct pll tmp_pll; 1270 struct pll tmp_pll;
1271 unsigned long maxrate;
1272
1273 maxrate = tegra_dvfs_get_maxrate(clk_get_parent(clk->tegra_clk));
1274 if (rate > maxrate)
1275 rate = maxrate;
1271 1276
1272 mutex_lock(&clk->clk_mutex); 1277 mutex_lock(&clk->clk_mutex);
1273 old_freq = clk->gpc_pll.freq;
1274 freq = rate_gpu_to_gpc2clk(rate); 1278 freq = rate_gpu_to_gpc2clk(rate);
1275
1276 if (freq > gpc_pll_params.max_freq) 1279 if (freq > gpc_pll_params.max_freq)
1277 freq = gpc_pll_params.max_freq; 1280 freq = gpc_pll_params.max_freq;
1278 else if (freq < gpc_pll_params.min_freq) 1281 else if (freq < gpc_pll_params.min_freq)
@@ -1280,7 +1283,6 @@ static long gm20b_round_rate(struct clk_hw *hw, unsigned long rate,
1280 1283
1281 tmp_pll = clk->gpc_pll; 1284 tmp_pll = clk->gpc_pll;
1282 clk_config_pll(clk, &tmp_pll, &gpc_pll_params, &freq, true); 1285 clk_config_pll(clk, &tmp_pll, &gpc_pll_params, &freq, true);
1283
1284 mutex_unlock(&clk->clk_mutex); 1286 mutex_unlock(&clk->clk_mutex);
1285 1287
1286 return rate_gpc2clk_to_gpu(tmp_pll.freq); 1288 return rate_gpc2clk_to_gpu(tmp_pll.freq);