summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/vgpu/vgpu.c22
-rw-r--r--include/linux/tegra_vgpu.h1
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
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)
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
133struct tegra_vgpu_attrib_params { 134struct tegra_vgpu_attrib_params {