[Nouveau] [PATCH v4 0/6] Suppor for various power sensors on GF100+

Karol Herbst nouveau at karolherbst.de
Sat Feb 20 17:11:33 UTC 2016


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

Tested-by: Stefan Hühner <stefan at huehner.org> 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      |  15 ++
 drm/nouveau/nouveau_hwmon.c                     |  78 +++++++---
 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         |  97 ++++++++++++
 drm/nouveau/nvkm/subdev/iccsense/Kbuild         |   2 +
 drm/nouveau/nvkm/subdev/iccsense/base.c         | 191 ++++++++++++++++++++++++
 drm/nouveau/nvkm/subdev/iccsense/gf100.c        |  31 ++++
 drm/nouveau/nvkm/subdev/iccsense/priv.h         |  16 ++
 18 files changed, 633 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.1



More information about the Nouveau mailing list