mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
drm/nouveau/iccsense: Parse max and crit power level
Signed-off-by: Karol Herbst <karolherbst@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
e5f8eabc00
commit
1efc3c4b9f
@ -8,6 +8,9 @@ struct nvkm_iccsense {
|
||||
bool data_valid;
|
||||
struct list_head sensors;
|
||||
struct list_head rails;
|
||||
|
||||
u32 power_w_max;
|
||||
u32 power_w_crit;
|
||||
};
|
||||
|
||||
int gf100_iccsense_new(struct nvkm_device *, int index, struct nvkm_iccsense **);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <subdev/bios.h>
|
||||
#include <subdev/bios/extdev.h>
|
||||
#include <subdev/bios/iccsense.h>
|
||||
#include <subdev/bios/power_budget.h>
|
||||
#include <subdev/i2c.h>
|
||||
|
||||
static bool
|
||||
@ -216,10 +217,25 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev)
|
||||
{
|
||||
struct nvkm_iccsense *iccsense = nvkm_iccsense(subdev);
|
||||
struct nvkm_bios *bios = subdev->device->bios;
|
||||
struct nvbios_power_budget budget;
|
||||
struct nvbios_iccsense stbl;
|
||||
int i;
|
||||
int i, ret;
|
||||
|
||||
if (!bios || nvbios_iccsense_parse(bios, &stbl) || !stbl.nr_entry)
|
||||
if (!bios)
|
||||
return 0;
|
||||
|
||||
ret = nvbios_power_budget_header(bios, &budget);
|
||||
if (!ret && budget.cap_entry != 0xff) {
|
||||
struct nvbios_power_budget_entry entry;
|
||||
ret = nvbios_power_budget_entry(bios, &budget,
|
||||
budget.cap_entry, &entry);
|
||||
if (!ret) {
|
||||
iccsense->power_w_max = entry.avg_w;
|
||||
iccsense->power_w_crit = entry.max_w;
|
||||
}
|
||||
}
|
||||
|
||||
if (nvbios_iccsense_parse(bios, &stbl) || !stbl.nr_entry)
|
||||
return 0;
|
||||
|
||||
iccsense->data_valid = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user