diff options
author | Karol Herbst <karolherbst@gmail.com> | 2016-10-22 15:26:32 +0200 |
---|---|---|
committer | Karol Herbst <karolherbst@gmail.com> | 2016-10-22 15:26:32 +0200 |
commit | 1a2d8f7c6286ad9ad232e51777b37bf52142ce17 (patch) | |
tree | 221c2d28f86b9021b61e4c89c353f2bb48ef72ad /nvbios | |
parent | a4fd800cdb2188da1925fc8b6a5d648e1888813f (diff) |
nvbios: add nvidia-smi cap entry to power budget
currently no idea if it affects anything in the driver, but it does affect nvidia-smi. Setting that byte to 0xff even causes nvidia-smi to display N/A for the power cap
Diffstat (limited to 'nvbios')
-rw-r--r-- | nvbios/bios.h | 2 | ||||
-rw-r--r-- | nvbios/power.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/nvbios/bios.h b/nvbios/bios.h index df466b70..13d112aa 100644 --- a/nvbios/bios.h +++ b/nvbios/bios.h @@ -833,6 +833,8 @@ struct envy_bios_power_budget { uint8_t entriesnum; uint8_t rlen; + uint8_t cap_entry; + struct envy_bios_power_budget_entry *entries; }; diff --git a/nvbios/power.c b/nvbios/power.c index a1c87084..526e5be3 100644 --- a/nvbios/power.c +++ b/nvbios/power.c @@ -508,8 +508,9 @@ int envy_bios_parse_power_budget(struct envy_bios *bios) { bios_u8(bios, budget->offset + 0x0, &budget->version); switch(budget->version) { - case 0x10: case 0x20: + err |= bios_u8(bios, budget->offset + 0x9, &budget->cap_entry); + case 0x10: case 0x30: err |= bios_u8(bios, budget->offset + 0x1, &budget->hlen); err |= bios_u8(bios, budget->offset + 0x2, &budget->rlen); @@ -560,6 +561,11 @@ void envy_bios_print_power_budget(struct envy_bios *bios, FILE *out, unsigned ma } fprintf(out, "POWER BUDGET table at 0x%x, version %x\n", budget->offset, budget->version); + switch(budget->version) { + case 0x20: + fprintf(out, "nvidia-smi cap entry: %i\n", budget->cap_entry); + break; + } envy_bios_dump_hex(bios, out, budget->offset, budget->hlen, mask); if (mask & ENVY_BIOS_PRINT_VERBOSE) fprintf(out, "\n"); |