diff options
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/vgpu.c | 22 | ||||
-rw-r--r-- | include/linux/tegra_vgpu.h | 1 |
2 files changed, 22 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) |
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 { | |||
128 | TEGRA_VGPU_ATTRIB_LTC_COUNT, | 128 | TEGRA_VGPU_ATTRIB_LTC_COUNT, |
129 | TEGRA_VGPU_ATTRIB_TPC_COUNT, | 129 | TEGRA_VGPU_ATTRIB_TPC_COUNT, |
130 | TEGRA_VGPU_ATTRIB_GPC0_TPC_COUNT, | 130 | TEGRA_VGPU_ATTRIB_GPC0_TPC_COUNT, |
131 | TEGRA_VGPU_ATTRIB_MAX_FREQ, | ||
131 | }; | 132 | }; |
132 | 133 | ||
133 | struct tegra_vgpu_attrib_params { | 134 | struct tegra_vgpu_attrib_params { |