diff options
author | Cyril Raju <craju@nvidia.com> | 2017-01-12 20:05:26 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-01-13 19:44:01 -0500 |
commit | c58da17d131bc551f8b3c5a05e60d8375d940f02 (patch) | |
tree | 27cac59e1e68de4d0bb11d150df70a275d40dd07 /drivers/gpu/nvgpu/gp10b | |
parent | f15a86f26527505cbe0de96ecb56736eb1686b87 (diff) |
nvgpu: gp10b: remove EMC floor when GPU Fmin
Remove EMC floor when GPU frequency is Fmin. At Fmin,
we most likely require a very low memory bandwidth.
At Fmin on load, actmon should sufficiently scale EMC
and hence not bottlenecking GPU.
Bug 1850297
Change-Id: I98b9dae648ea28910d534a9286ce2e9e91ea5fec
Signed-off-by: Cyril Raju <craju@nvidia.com>
Reviewed-on: http://git-master/r/1284572
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c b/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c index c198f9f1..9f45c929 100644 --- a/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c +++ b/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c | |||
@@ -312,7 +312,14 @@ static void gp10b_tegra_postscale(struct device *pdev, | |||
312 | 312 | ||
313 | gk20a_dbg_fn(""); | 313 | gk20a_dbg_fn(""); |
314 | if (profile && !gp10b_tegra_is_railgated(pdev)) { | 314 | if (profile && !gp10b_tegra_is_railgated(pdev)) { |
315 | emc_rate = (freq * EMC_BW_RATIO * g->emc3d_ratio) / 1000; | 315 | unsigned long emc_scale; |
316 | |||
317 | if (freq <= gp10b_freq_table[0]) | ||
318 | emc_scale = 0; | ||
319 | else | ||
320 | emc_scale = g->emc3d_ratio; | ||
321 | |||
322 | emc_rate = (freq * EMC_BW_RATIO * emc_scale) / 1000; | ||
316 | 323 | ||
317 | if (emc_rate > tegra_bwmgr_get_max_emc_rate()) | 324 | if (emc_rate > tegra_bwmgr_get_max_emc_rate()) |
318 | emc_rate = tegra_bwmgr_get_max_emc_rate(); | 325 | emc_rate = tegra_bwmgr_get_max_emc_rate(); |