diff options
author | Vijayakumar Subbu <vsubbu@nvidia.com> | 2016-07-28 01:29:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-09-29 16:17:46 -0400 |
commit | b17d9708c9e9930778de43de1edf1385acb13ebd (patch) | |
tree | fc485e96cc19575d463c61c8b80a09dd89745f3f /drivers/gpu/nvgpu/gk20a/gk20a.c | |
parent | 27b47b1969d7d9cdd3de9fd6f0131ad357f4b0fa (diff) |
gpu: nvgpu: Add dGPU clocks support
JIRA DNVGPU-45
Change-Id: I237ce81e31b036c05c82d46eea8694ffe1c2e3df
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Signed-off-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-on: http://git-master/r/1205849
(cherry picked from commit 9a4006f76b75a8ad525e7aa5ad1f609aaae49126)
Reviewed-on: http://git-master/r/1227256
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index ebe2dca4..c9f84041 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -63,6 +63,9 @@ | |||
63 | #include "hal.h" | 63 | #include "hal.h" |
64 | #include "vgpu/vgpu.h" | 64 | #include "vgpu/vgpu.h" |
65 | #include "pci.h" | 65 | #include "pci.h" |
66 | #ifdef CONFIG_ARCH_TEGRA_18x_SOC | ||
67 | #include "pstate/pstate.h" | ||
68 | #endif | ||
66 | 69 | ||
67 | #define CREATE_TRACE_POINTS | 70 | #define CREATE_TRACE_POINTS |
68 | #include <trace/events/gk20a.h> | 71 | #include <trace/events/gk20a.h> |
@@ -956,6 +959,16 @@ int gk20a_pm_finalize_poweron(struct device *dev) | |||
956 | goto done; | 959 | goto done; |
957 | } | 960 | } |
958 | 961 | ||
962 | #ifdef CONFIG_ARCH_TEGRA_18x_SOC | ||
963 | if (g->ops.pmupstate) { | ||
964 | err = gk20a_init_pstate_support(g); | ||
965 | if (err) { | ||
966 | gk20a_err(dev, "failed to init pstates"); | ||
967 | goto done; | ||
968 | } | ||
969 | } | ||
970 | #endif | ||
971 | |||
959 | err = gk20a_init_pmu_support(g); | 972 | err = gk20a_init_pmu_support(g); |
960 | if (err) { | 973 | if (err) { |
961 | gk20a_err(dev, "failed to init gk20a pmu"); | 974 | gk20a_err(dev, "failed to init gk20a pmu"); |
@@ -968,6 +981,16 @@ int gk20a_pm_finalize_poweron(struct device *dev) | |||
968 | goto done; | 981 | goto done; |
969 | } | 982 | } |
970 | 983 | ||
984 | #ifdef CONFIG_ARCH_TEGRA_18x_SOC | ||
985 | if (g->ops.pmupstate) { | ||
986 | err = gk20a_init_pstate_pmu_support(g); | ||
987 | if (err) { | ||
988 | gk20a_err(dev, "failed to init pstates"); | ||
989 | goto done; | ||
990 | } | ||
991 | } | ||
992 | #endif | ||
993 | |||
971 | if (g->ops.pmu.mclk_init) { | 994 | if (g->ops.pmu.mclk_init) { |
972 | err = g->ops.pmu.mclk_init(g); | 995 | err = g->ops.pmu.mclk_init(g); |
973 | if (err) { | 996 | if (err) { |