summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/vgpu.c
diff options
context:
space:
mode:
authorPeter Daifuku <pdaifuku@nvidia.com>2016-05-17 13:12:19 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-06-06 18:35:16 -0400
commitf48d28caa31877d76099311db2c6312c1cd1b97d (patch)
treec90ad5d51366c90f35a06db78b640c9d6427a1fb /drivers/gpu/nvgpu/vgpu/vgpu.c
parentc16d985c8a6e6f615ae05f2909b30ef5eced48e6 (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/gpu/nvgpu/vgpu/vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/vgpu.c22
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
261static 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
261void vgpu_init_hal_common(struct gk20a *g) 281void 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
275static int vgpu_init_hal(struct gk20a *g) 295static int vgpu_init_hal(struct gk20a *g)