[PATCH 0/2] scsi: mpt3sas: add hwmon support
From: Louis Sautier
Date: Tue May 12 2026 - 17:47:25 EST
Expose the IOC and board temperature sensors of LSI / Broadcom / Avago
SAS HBAs that bind to mpt3sas through the hwmon interface. The data
lives in MPI IO Unit Page 7.
The same fields are exposed by Broadcom's userspace tooling through
the /dev/mpt[23]ctl ioctl path (typically root-only): IOCTemperature
and BoardTemperature in lsiutil; ROC and Controller in storcli.
With this driver, sensors(1) shows them unprivileged:
$ sensors mpt3sas-pci-0200
mpt3sas-pci-0200
Adapter: PCI adapter
IOC: +42.0°C
Testing
-------
Validated across three Broadcom SAS chip generations. None of the
cards had a board sensor present, so the testing only covers the
IOC channel:
* LSI 9500-8i / SAS3816, SAS-3:
- hwmon device registers as "mpt3sas" with only temp1 (IOC) exposed
- IOC reading cross-references with storcli and lsiutil
- rmmod / modprobe cycle goes through the explicit
unregister/register paths cleanly
* LSI 9305-24i / SAS3224, SAS-3: same behaviour.
* LSI 9211-4i / SAS2004, SAS-2: firmware reports both
*TemperatureUnits = NOT_PRESENT, no hwmon device registered
(graceful-skip path).
Sysfs reads share ioc->config_cmds.mutex with the driver's internal
Config consumers; under 8 concurrent readers the queueing wait
imposed on legitimate operations stayed below ~40 µs (SAS3816 /
SAS3224).
Not verified (no available hardware):
* Path with both IOC and board sensors present.
* Fahrenheit-units conversion.
* Sub-zero readings (signed-cast path).
Louis Sautier (2):
scsi: mpt3sas: add IO Unit Page 7 config accessor
scsi: mpt3sas: add hwmon support
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/mpt3sas.rst | 57 ++++++++
MAINTAINERS | 1 +
drivers/scsi/mpt3sas/Kconfig | 9 ++
drivers/scsi/mpt3sas/Makefile | 2 +
drivers/scsi/mpt3sas/mpt3sas_base.h | 19 +++
drivers/scsi/mpt3sas/mpt3sas_config.c | 36 +++++
drivers/scsi/mpt3sas/mpt3sas_hwmon.c | 200 ++++++++++++++++++++++++++
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 6 +
9 files changed, 331 insertions(+)
create mode 100644 Documentation/hwmon/mpt3sas.rst
create mode 100644 drivers/scsi/mpt3sas/mpt3sas_hwmon.c
base-commit: 5d6919055dec134de3c40167a490f33c74c12581
--
2.54.0