From f48d28caa31877d76099311db2c6312c1cd1b97d Mon Sep 17 00:00:00 2001 From: Peter Daifuku Date: Tue, 17 May 2016 10:12:19 -0700 Subject: 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 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 Reviewed-by: Aingara Paramakuru GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/vgpu/vgpu.c | 22 +++++++++++++++++++++- include/linux/tegra_vgpu.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) 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) g->gpu_characteristics.rev); } +static int vgpu_init_gpu_characteristics(struct gk20a *g) +{ + struct gk20a_platform *platform = gk20a_get_platform(g->dev); + u32 max_freq; + int err; + + gk20a_dbg_fn(""); + + err = gk20a_init_gpu_characteristics(g); + if (err) + return err; + + if (vgpu_get_attribute(platform->virt_handle, + TEGRA_VGPU_ATTRIB_MAX_FREQ, &max_freq)) + return -ENOMEM; + + g->gpu_characteristics.max_freq = max_freq; + return 0; +} + void vgpu_init_hal_common(struct gk20a *g) { struct gpu_ops *gops = &g->ops; @@ -269,7 +289,7 @@ void vgpu_init_hal_common(struct gk20a *g) vgpu_init_debug_ops(gops); vgpu_init_fecs_trace_ops(gops); vgpu_init_tsg_ops(gops); - gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics; + gops->chip_init_gpu_characteristics = vgpu_init_gpu_characteristics; } static int vgpu_init_hal(struct gk20a *g) diff --git a/include/linux/tegra_vgpu.h b/include/linux/tegra_vgpu.h index 9547e35b..48c47962 100644 --- a/include/linux/tegra_vgpu.h +++ b/include/linux/tegra_vgpu.h @@ -128,6 +128,7 @@ enum { TEGRA_VGPU_ATTRIB_LTC_COUNT, TEGRA_VGPU_ATTRIB_TPC_COUNT, TEGRA_VGPU_ATTRIB_GPC0_TPC_COUNT, + TEGRA_VGPU_ATTRIB_MAX_FREQ, }; struct tegra_vgpu_attrib_params { -- cgit v1.2.2