Previously we parsed that table a bit wrong: 1. The entry layout depends on the sensor type used. 2. We have all resitors in one entry for the INA3221. 3. The config is already included in the vbios. This commit addresses that issue and with that we should be able to read out the right power consumption for every GPU with a INA209, INA219 and INA3221. Signed-off-by: Karol Herbst <karolherbst@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
27 lines
687 B
C
27 lines
687 B
C
#ifndef __NVKM_ICCSENSE_PRIV_H__
|
|
#define __NVKM_ICCSENSE_PRIV_H__
|
|
#define nvkm_iccsense(p) container_of((p), struct nvkm_iccsense, subdev)
|
|
#include <subdev/iccsense.h>
|
|
#include <subdev/bios/extdev.h>
|
|
|
|
struct nvkm_iccsense_sensor {
|
|
struct list_head head;
|
|
int id;
|
|
enum nvbios_extdev_type type;
|
|
struct i2c_adapter *i2c;
|
|
u8 addr;
|
|
u16 config;
|
|
};
|
|
|
|
struct nvkm_iccsense_rail {
|
|
struct list_head head;
|
|
int (*read)(struct nvkm_iccsense *, struct nvkm_iccsense_rail *);
|
|
struct nvkm_iccsense_sensor *sensor;
|
|
u8 idx;
|
|
u8 mohm;
|
|
};
|
|
|
|
void nvkm_iccsense_ctor(struct nvkm_device *, int, struct nvkm_iccsense *);
|
|
int nvkm_iccsense_new_(struct nvkm_device *, int, struct nvkm_iccsense **);
|
|
#endif
|