diff options
author | Peter Daifuku <pdaifuku@nvidia.com> | 2016-05-17 13:12:19 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-06 18:35:16 -0400 |
commit | f48d28caa31877d76099311db2c6312c1cd1b97d (patch) | |
tree | c90ad5d51366c90f35a06db78b640c9d6427a1fb /drivers | |
parent | c16d985c8a6e6f615ae05f2909b30ef5eced48e6 (diff) |
gpu: nvgpu: vgpu: add support for max_freq
Add vgpu support for max_freq characteristic
Bug 200182714
JIRASW VFND-1570
Change-Id: Ibeddfbba1bf0529d6f576cefcb82978dbae315d1
Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com>
Reviewed-on: http://git-master/r/1149216
(cherry picked from commit 8e8b5979e87268401d5b0fc658a73589710a2e09)
Reviewed-on: http://git-master/r/1155416
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/vgpu.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c index 4948d246..aa4ece5f 100644 --- a/drivers/gpu/nvgpu/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/vgpu.c | |||
@@ -258,6 +258,26 @@ static void vgpu_detect_chip(struct gk20a *g) | |||
258 | g->gpu_characteristics.rev); | 258 | g->gpu_characteristics.rev); |
259 | } | 259 | } |
260 | 260 | ||
261 | static int vgpu_init_gpu_characteristics(struct gk20a *g) | ||
262 | { | ||
263 | struct gk20a_platform *platform = gk20a_get_platform(g->dev); | ||
264 | u32 max_freq; | ||
265 | int err; | ||
266 | |||
267 | gk20a_dbg_fn(""); | ||
268 | |||
269 | err = gk20a_init_gpu_characteristics(g); | ||
270 | if (err) | ||
271 | return err; | ||
272 | |||
273 | if (vgpu_get_attribute(platform->virt_handle, | ||
274 | TEGRA_VGPU_ATTRIB_MAX_FREQ, &max_freq)) | ||
275 | return -ENOMEM; | ||
276 | |||
277 | g->gpu_characteristics.max_freq = max_freq; | ||
278 | return 0; | ||
279 | } | ||
280 | |||
261 | void vgpu_init_hal_common(struct gk20a *g) | 281 | void vgpu_init_hal_common(struct gk20a *g) |
262 | { | 282 | { |
263 | struct gpu_ops *gops = &g->ops; | 283 | struct gpu_ops *gops = &g->ops; |
@@ -269,7 +289,7 @@ void vgpu_init_hal_common(struct gk20a *g) | |||
269 | vgpu_init_debug_ops(gops); | 289 | vgpu_init_debug_ops(gops); |
270 | vgpu_init_fecs_trace_ops(gops); | 290 | vgpu_init_fecs_trace_ops(gops); |
271 | vgpu_init_tsg_ops(gops); | 291 | vgpu_init_tsg_ops(gops); |
272 | gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics; | 292 | gops->chip_init_gpu_characteristics = vgpu_init_gpu_characteristics; |
273 | } | 293 | } |
274 | 294 | ||
275 | static int vgpu_init_hal(struct gk20a *g) | 295 | static int vgpu_init_hal(struct gk20a *g) |