summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c7
-rw-r--r--drivers/gpu/nvgpu/pmgr/pmgrpmu.c6
-rw-r--r--drivers/gpu/nvgpu/pmgr/pwrdev.c7
3 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 7459c57f..8f72522f 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -207,6 +207,13 @@ int gp106_init_gpu_characteristics(struct gk20a *g)
207 NVGPU_GPU_FLAGS_SUPPORT_DEVICE_EVENTS | 207 NVGPU_GPU_FLAGS_SUPPORT_DEVICE_EVENTS |
208 NVGPU_GPU_FLAGS_SUPPORT_SET_THERM_ALERT_LIMIT; 208 NVGPU_GPU_FLAGS_SUPPORT_SET_THERM_ALERT_LIMIT;
209 209
210 /* WAR for missing INA3221 on HW2.5 RevA */
211 if (g->power_sensor_missing) {
212 gpu->flags &= ~(NVGPU_GPU_FLAGS_SUPPORT_GET_VOLTAGE |
213 NVGPU_GPU_FLAGS_SUPPORT_GET_CURRENT |
214 NVGPU_GPU_FLAGS_SUPPORT_GET_POWER);
215 }
216
210 return 0; 217 return 0;
211} 218}
212 219
diff --git a/drivers/gpu/nvgpu/pmgr/pmgrpmu.c b/drivers/gpu/nvgpu/pmgr/pmgrpmu.c
index 95225961..d09becd6 100644
--- a/drivers/gpu/nvgpu/pmgr/pmgrpmu.c
+++ b/drivers/gpu/nvgpu/pmgr/pmgrpmu.c
@@ -488,6 +488,12 @@ u32 pmgr_send_pmgr_tables_to_pmu(struct gk20a *g)
488 } 488 }
489 } 489 }
490 490
491 /* WAR for missing INA3221 on HW2.5 RevA */
492 if (g->power_sensor_missing) {
493 nvgpu_warn(g, "no power device found, skipping power policy");
494 goto exit;
495 }
496
491 if (!(BOARDOBJGRP_IS_EMPTY( 497 if (!(BOARDOBJGRP_IS_EMPTY(
492 &g->pmgr_pmu.pmgr_policyobjs.pwr_policies.super)) || 498 &g->pmgr_pmu.pmgr_policyobjs.pwr_policies.super)) ||
493 !(BOARDOBJGRP_IS_EMPTY( 499 !(BOARDOBJGRP_IS_EMPTY(
diff --git a/drivers/gpu/nvgpu/pmgr/pwrdev.c b/drivers/gpu/nvgpu/pmgr/pwrdev.c
index e32dfc40..06356592 100644
--- a/drivers/gpu/nvgpu/pmgr/pwrdev.c
+++ b/drivers/gpu/nvgpu/pmgr/pwrdev.c
@@ -297,6 +297,13 @@ u32 pmgr_device_sw_setup(struct gk20a *g)
297 /* Override the Interfaces */ 297 /* Override the Interfaces */
298 pboardobjgrp->pmudatainstget = _pwr_device_pmudata_instget; 298 pboardobjgrp->pmudatainstget = _pwr_device_pmudata_instget;
299 299
300 /* WAR for missing INA3221 on HW2.5 RevA */
301 if (g->power_sensor_missing) {
302 gk20a_warn(dev_from_gk20a(g),
303 "no power sensor, monitoring disabled");
304 goto done;
305 }
306
300 status = devinit_get_pwr_device_table(g, ppwrdeviceobjs); 307 status = devinit_get_pwr_device_table(g, ppwrdeviceobjs);
301 if (status) 308 if (status)
302 goto done; 309 goto done;