Vadim says: This patchset contains various improvements to hwmon and thermal code in mlxsw. The most significant improvement is the ability to read modules' temperature attributes (input, fault, critical and emergency thresholds) as well as fans' fault indication. These new attributes will improve the ability to monitor the system.
Patches #1-#4 add the necessary device registers and APIs to read modules' temperature attributes and fans' fault indication. Patches #5-#8 perform small improvements in hwmon and thermal code such as using a more indicative name for cooling devices. Patch #9 exposes fans' fault indication via hwmon. Patch #10 exposes modules' temperature attributes via hwmon. Patch #11 adds an hwmon label to modules' temperature sensor. This helps to parse the output of utilities such as "sensors". Patch #12 allows to bind an external cooling device ("mlxreg-fan") to mlxsw thermal zone. This will allow the mlxsw thermal zone to change the cooling level of cooling devices not programmed via switch registers. Vadim Pasternak (12): mlxsw: spectrum: Move QSFP EEPROM definitions to common location mlxsw: reg: Add Management Temperature Bulk Register mlxsw: reg: Add Fan Out of Range Event Register mlxsw: core: Add API for QSFP module temperature thresholds reading mlxsw: core: Set different thermal polling time based on bus frequency capability mlxsw: core: Modify thermal zone definition mlxsw: core: Replace thermal temperature trips with defines mlxsw: core: Rename cooling device mlxsw: core: Extend hwmon interface with fan fault attribute mlxsw: core: Extend hwmon interface with QSFP module temperature attributes mlxsw: core: Add QSFP module temperature label attribute to hwmon mlxsw: core: Allow thermal zone binding to an external cooling device drivers/net/ethernet/mellanox/mlxsw/Makefile | 2 +- drivers/net/ethernet/mellanox/mlxsw/core.h | 1 + .../net/ethernet/mellanox/mlxsw/core_env.c | 117 ++++++++ .../net/ethernet/mellanox/mlxsw/core_env.h | 10 + .../net/ethernet/mellanox/mlxsw/core_hwmon.c | 275 +++++++++++++++++- .../ethernet/mellanox/mlxsw/core_thermal.c | 77 +++-- drivers/net/ethernet/mellanox/mlxsw/i2c.c | 1 + drivers/net/ethernet/mellanox/mlxsw/reg.h | 137 ++++++++- .../net/ethernet/mellanox/mlxsw/spectrum.c | 62 ++-- 9 files changed, 617 insertions(+), 65 deletions(-) create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_env.c create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_env.h -- 2.20.1