diff options
author | Sachit Kadle <skadle@nvidia.com> | 2017-01-24 13:22:13 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-19 19:36:26 -0400 |
commit | b3a7c2b305ec6f895dc236f0c5f163bd4cbeb248 (patch) | |
tree | a1df93a947d7f5d60a9e57a69d0058d430844c92 /drivers/gpu/nvgpu/gk20a | |
parent | 2535c81c6c916f9f2e1224e17e80d240df569e49 (diff) |
gpu: nvgpu: vgpu: add devfreq support
Add devfreq governor support in order to allow frequency scaling
in virtualization config. GPU clock frequency operations are
re-directed to the server over RPC.
Bug 200237433
Change-Id: I1c8e565a4fff36d3456dc72ebb20795b7822650e
Signed-off-by: Sachit Kadle <skadle@nvidia.com>
Reviewed-on: http://git-master/r/1295542
(cherry picked from commit d5c956fc06697eda3829c67cb22987e538213b29)
Reviewed-on: http://git-master/r/1280968
(cherry picked from commit 25e2b3cf7cb5559a6849c0024d42c157564a9be2)
Reviewed-on: http://git-master/r/1321835
(cherry picked from commit f871b52fd3f553d6b6375a3c848fbca272ed8e29)
Reviewed-on: http://git-master/r/1313468
Tested-by: Aparna Das <aparnad@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Richard Zhao <rizhao@nvidia.com>
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c index e33fc29f..f2c877f9 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c +++ b/drivers/gpu/nvgpu/gk20a/platform_vgpu_tegra.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include "gk20a.h" | 16 | #include "gk20a.h" |
17 | #include "hal_gk20a.h" | 17 | #include "hal_gk20a.h" |
18 | #include "platform_gk20a.h" | 18 | #include "platform_gk20a.h" |
19 | #include "vgpu/clk_vgpu.h" | ||
19 | 20 | ||
20 | #include <nvgpu/nvhost.h> | 21 | #include <nvgpu/nvhost.h> |
21 | 22 | ||
@@ -23,7 +24,14 @@ static int gk20a_tegra_probe(struct device *dev) | |||
23 | { | 24 | { |
24 | #ifdef CONFIG_TEGRA_GK20A_NVHOST | 25 | #ifdef CONFIG_TEGRA_GK20A_NVHOST |
25 | struct gk20a_platform *platform = dev_get_drvdata(dev); | 26 | struct gk20a_platform *platform = dev_get_drvdata(dev); |
26 | return nvgpu_get_nvhost_dev(platform->g); | 27 | int ret; |
28 | |||
29 | ret = nvgpu_get_nvhost_dev(platform->g); | ||
30 | if (ret) | ||
31 | return ret; | ||
32 | |||
33 | vgpu_init_clk_support(platform->g); | ||
34 | return 0; | ||
27 | #else | 35 | #else |
28 | return 0; | 36 | return 0; |
29 | #endif | 37 | #endif |
@@ -47,5 +55,11 @@ struct gk20a_platform vgpu_tegra_platform = { | |||
47 | .probe = gk20a_tegra_probe, | 55 | .probe = gk20a_tegra_probe, |
48 | .default_big_page_size = SZ_128K, | 56 | .default_big_page_size = SZ_128K, |
49 | 57 | ||
58 | .clk_round_rate = vgpu_clk_round_rate, | ||
59 | .get_clk_freqs = vgpu_clk_get_freqs, | ||
60 | |||
61 | /* frequency scaling configuration */ | ||
62 | .devfreq_governor = "userspace", | ||
63 | |||
50 | .virtual_dev = true, | 64 | .virtual_dev = true, |
51 | }; | 65 | }; |