summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2018-03-12 05:39:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-04-06 17:07:02 -0400
commit1389aa3e87ae059121329af41009b37692177775 (patch)
tree3ad6cd9a035e4019691241e0a35982e71e73d0bf /drivers/gpu
parent5bb1de5b31cf20f125391b20a74112e36fee55d0 (diff)
gpu: nvgpu: gv100 temperature read support
- Enabled internal temperature sensor read for gv100 dgpu. - Added check to temperature read support before proceeding to read temperature from H/W - Assigned GP106 temperature HAL's for GV100 as no changes between GP106 & GV100 H/W registers. Bug 200352328 Change-Id: I86b5a1859b87ace49a07d0ff3749bb5b085bba91 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1673347 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c3
-rw-r--r--drivers/gpu/nvgpu/gv100/hal_gv100.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
index 12e3a297..c37f45dd 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
@@ -1376,6 +1376,9 @@ static int nvgpu_gpu_get_temperature(struct gk20a *g,
1376 if (args->reserved[0] || args->reserved[1] || args->reserved[2]) 1376 if (args->reserved[0] || args->reserved[1] || args->reserved[2])
1377 return -EINVAL; 1377 return -EINVAL;
1378 1378
1379 if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_GET_TEMPERATURE))
1380 return -EINVAL;
1381
1379 if (!g->ops.therm.get_internal_sensor_curr_temp) 1382 if (!g->ops.therm.get_internal_sensor_curr_temp)
1380 return -EINVAL; 1383 return -EINVAL;
1381 1384
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c
index 1091cbd2..cf751135 100644
--- a/drivers/gpu/nvgpu/gv100/hal_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c
@@ -246,6 +246,7 @@ int gv100_init_gpu_characteristics(struct gk20a *g)
246 return err; 246 return err;
247 247
248 __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG_SUBCONTEXTS, true); 248 __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG_SUBCONTEXTS, true);
249 __nvgpu_set_enabled(g, NVGPU_SUPPORT_GET_TEMPERATURE, true);
249 250
250 return 0; 251 return 0;
251} 252}
@@ -587,6 +588,14 @@ static const struct gpu_ops gv100_ops = {
587 .exit = gk20a_pramin_exit, 588 .exit = gk20a_pramin_exit,
588 .data032_r = pram_data032_r, 589 .data032_r = pram_data032_r,
589 }, 590 },
591 .therm = {
592#ifdef CONFIG_DEBUG_FS
593 .therm_debugfs_init = gp106_therm_debugfs_init,
594#endif /* CONFIG_DEBUG_FS */
595 .elcg_init_idle_filters = gp106_elcg_init_idle_filters,
596 .get_internal_sensor_curr_temp =
597 gp106_get_internal_sensor_curr_temp,
598 },
590 .pmu = { 599 .pmu = {
591 .init_wpr_region = gv100_pmu_init_acr, 600 .init_wpr_region = gv100_pmu_init_acr,
592 .load_lsfalcon_ucode = gv100_load_falcon_ucode, 601 .load_lsfalcon_ucode = gv100_load_falcon_ucode,