gpu: nvgpu: missing power sensor detection

Monitoring INA3221 is currently missing on some customer designs.
Use PCI vendor/device ids and VBIOS version to identify such device,
and set power_sensor_missing flag. This flag is subsequently used
to skip power device and power policy programming in PMU.

Bug 1903258

Change-Id: Ia6b5ce563b5cc3593e138635639025b830e4535e
Signed-off-by: Thomas Fleury <tfleury@nvidia.com>
Reviewed-on: http://git-master/r/1460936
(cherry picked from commit 42f236c210931d28d2699858bb0663b91cf11046)
Reviewed-on: http://git-master/r/1463104
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Thomas Fleury
2017-04-11 16:10:26 -07:00
committed by mobile promotions
parent 07b15f68c7
commit 90a249b598
2 changed files with 10 additions and 0 deletions

View File

@@ -1158,6 +1158,10 @@ struct gk20a {
struct nvgpu_mem_alloc_tracker *vmallocs;
struct nvgpu_mem_alloc_tracker *kmallocs;
#endif
/* Some boards might be missing power sensor, preventing
* from monitoring power, current and voltage */
bool power_sensor_missing;
};
static inline unsigned long gk20a_get_gr_idle_timeout(struct gk20a *g)

View File

@@ -303,6 +303,12 @@ int gm206_bios_init(struct gk20a *g)
return -EINVAL;
}
/* WAR for missing INA3221 on HW2.5 RevA */
g->power_sensor_missing =
(g->pci_vendor_id == PCI_VENDOR_ID_NVIDIA) &&
(g->pci_device_id == 0x1c75) &&
(g->gpu_characteristics.vbios_version == 0x86065300);
g->bios_blob.data = g->bios.data;
g->bios_blob.size = g->bios.size;