diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/clk.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/clk.c b/drivers/gpu/nvgpu/os/linux/clk.c index 471f2aef..e9796eaf 100644 --- a/drivers/gpu/nvgpu/os/linux/clk.c +++ b/drivers/gpu/nvgpu/os/linux/clk.c | |||
@@ -122,10 +122,20 @@ static int nvgpu_linux_predict_mv_at_hz_cur_tfloor(struct clk_gk20a *clk, | |||
122 | static unsigned long nvgpu_linux_get_maxrate(struct gk20a *g, u32 api_domain) | 122 | static unsigned long nvgpu_linux_get_maxrate(struct gk20a *g, u32 api_domain) |
123 | { | 123 | { |
124 | int ret; | 124 | int ret; |
125 | u16 min_mhz, max_mhz; | ||
125 | 126 | ||
126 | switch (api_domain) { | 127 | switch (api_domain) { |
127 | case CTRL_CLK_DOMAIN_GPCCLK: | 128 | case CTRL_CLK_DOMAIN_GPCCLK: |
128 | ret = tegra_dvfs_get_maxrate(g->clk.tegra_clk_parent); | 129 | ret = tegra_dvfs_get_maxrate(g->clk.tegra_clk_parent); |
130 | /* If dvfs not supported */ | ||
131 | if (ret == 0) { | ||
132 | int err = nvgpu_clk_arb_get_arbiter_clk_range(g, | ||
133 | NVGPU_CLK_DOMAIN_GPCCLK, | ||
134 | &min_mhz, &max_mhz); | ||
135 | if (err == 0) { | ||
136 | ret = max_mhz * 1000000L; | ||
137 | } | ||
138 | } | ||
129 | break; | 139 | break; |
130 | default: | 140 | default: |
131 | nvgpu_err(g, "unknown clock: %u", api_domain); | 141 | nvgpu_err(g, "unknown clock: %u", api_domain); |