This is a complete rework from the first version I sent out. Now the implementation is more centered around the power_rails we find in the SENSE table instead of extdev centered. This makes the implementation a lot easier and straightforward.
I've added support for the INA219, INA209 and INA3221 sensors found on multiple Fermi and Kepler cards. The power consumption is also exported via hwmon, so "sensors" will be able to print it in userspace. This work is based on Martins initial power sensor work and most of the ground work was just copied from him. Happy testing changes in v3: fixes ina2x9, rebase on current master changes in v4: some minor ina2x9 fixes and get it to work on maxwell gen2 changes in v5: final polishing Tested-by: Stefan Hühner <[email protected]> on gm206 Karol Herbst (4): iccsense: implement for ina209, ina219 and ina3221 hwmon: add power consumption hwmon: don't require therm to be valid to get any data bios/extdev: also parse v4.1 table Martin Peres (2): subdev/iccsense: add new subdev for power sensors nvbios/iccsense: add parsing of the SENSE table drm/nouveau/include/nvif/device.h | 1 + drm/nouveau/include/nvkm/core/device.h | 83 +++++---- drm/nouveau/include/nvkm/subdev/bios/extdev.h | 3 + drm/nouveau/include/nvkm/subdev/bios/iccsense.h | 16 ++ drm/nouveau/include/nvkm/subdev/i2c.h | 31 ++++ drm/nouveau/include/nvkm/subdev/iccsense.h | 17 ++ drm/nouveau/nouveau_hwmon.c | 75 ++++++-- drm/nouveau/nvkm/core/subdev.c | 83 ++++----- drm/nouveau/nvkm/engine/device/base.c | 144 ++++++++------- drm/nouveau/nvkm/engine/device/priv.h | 1 + drm/nouveau/nvkm/subdev/Kbuild | 1 + drm/nouveau/nvkm/subdev/bios/Kbuild | 1 + drm/nouveau/nvkm/subdev/bios/extdev.c | 2 +- drm/nouveau/nvkm/subdev/bios/iccsense.c | 100 ++++++++++ drm/nouveau/nvkm/subdev/iccsense/Kbuild | 2 + drm/nouveau/nvkm/subdev/iccsense/base.c | 232 ++++++++++++++++++++++++ drm/nouveau/nvkm/subdev/iccsense/gf100.c | 31 ++++ drm/nouveau/nvkm/subdev/iccsense/priv.h | 16 ++ 18 files changed, 676 insertions(+), 163 deletions(-) create mode 100644 drm/nouveau/include/nvkm/subdev/bios/iccsense.h create mode 100644 drm/nouveau/include/nvkm/subdev/iccsense.h create mode 100644 drm/nouveau/nvkm/subdev/bios/iccsense.c create mode 100644 drm/nouveau/nvkm/subdev/iccsense/Kbuild create mode 100644 drm/nouveau/nvkm/subdev/iccsense/base.c create mode 100644 drm/nouveau/nvkm/subdev/iccsense/gf100.c create mode 100644 drm/nouveau/nvkm/subdev/iccsense/priv.h -- 2.7.2 _______________________________________________ Nouveau mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/nouveau
