From: Louis Sautier <sautier.louis@gmail.com>
To: Sathya Prakash <sathya.prakash@broadcom.com>,
Sreekanth Reddy <sreekanth.reddy@broadcom.com>,
Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>,
Ranjan Kumar <ranjan.kumar@broadcom.com>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Guenter Roeck <linux@roeck-us.net>,
MPT-FusionLinux.pdl@broadcom.com, linux-scsi@vger.kernel.org,
linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
Damien Le Moal <dlemoal@kernel.org>
Subject: [PATCH v5 0/2] scsi: mpt3sas: add hwmon support
Date: Wed, 1 Jul 2026 00:49:20 +0200 [thread overview]
Message-ID: <20260630224922.2543096-1-sautier.louis@gmail.com> (raw)
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
v4 -> v5:
v4: https://lore.kernel.org/r/20260613023833.3163507-1-sautier.louis@gmail.com
* In mpt3sas_hwmon_register(), read IO Unit Page 7 and test sensor
presence before allocating, so the no-sensor and error paths no
longer allocate and free (Damien Le Moal).
* Added Damien Le Moal's Reviewed-by to patch 2.
v3 -> v4:
v3: https://lore.kernel.org/r/20260524210545.1333637-1-sautier.louis@gmail.com
v3 (resend): https://lore.kernel.org/r/20260609164423.2829699-1-sautier.louis@gmail.com
* Dropped the SCSI_MPT3SAS_HWMON Kconfig option as suggested by
Damien Le Moal; the hwmon code is now built whenever CONFIG_HWMON
is enabled. Used IS_REACHABLE() rather than IS_ENABLED() so
SCSI_MPT3SAS=y with HWMON=m still builds, same pattern as i915/xe.
* No line breaks after function return types; aligned multi-line
call arguments to the opening parenthesis (Damien Le Moal).
* Dropped unused #include <linux/kernel.h> from mpt3sas_hwmon.c.
* Added Damien Le Moal's Reviewed-by to patch 1.
v2 -> v3:
v2: https://lore.kernel.org/r/20260518184109.770185-1-sautier.louis@gmail.com
* Removed stale Documentation/hwmon/mpt3sas.rst reference from
Kconfig help text.
v1 -> v2:
v1: https://lore.kernel.org/r/20260512214703.655633-1-sautier.louis@gmail.com
* Dropped misleading Documentation/hwmon/mpt3sas.rst.
* Dropped inaccurate concurrency-wait figure from Testing;
corrected empirical data is in the on-list discussion.
Testing
-------
Build-tested all four SCSI_MPT3SAS x HWMON combinations (=y and =m
each), including the SCSI_MPT3SAS=y with HWMON=m case that requires
IS_REACHABLE().
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 matches `storcli /c0 show temperature` and
`lsiutil -p1 -a 25,2,0,0`
- 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).
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
drivers/scsi/mpt3sas/Makefile | 2 +
drivers/scsi/mpt3sas/mpt3sas_base.h | 20 +++
drivers/scsi/mpt3sas/mpt3sas_config.c | 36 +++++
drivers/scsi/mpt3sas/mpt3sas_hwmon.c | 191 ++++++++++++++++++++++++++
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 6 +
5 files changed, 255 insertions(+)
create mode 100644 drivers/scsi/mpt3sas/mpt3sas_hwmon.c
base-commit: 5d6919055dec134de3c40167a490f33c74c12581
--
2.54.0
next reply other threads:[~2026-06-30 22:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 22:49 Louis Sautier [this message]
2026-06-30 22:49 ` [PATCH v5 1/2] scsi: mpt3sas: add IO Unit Page 7 config accessor Louis Sautier
2026-06-30 22:56 ` sashiko-bot
2026-06-30 22:49 ` [PATCH v5 2/2] scsi: mpt3sas: add hwmon support Louis Sautier
2026-06-30 22:59 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260630224922.2543096-1-sautier.louis@gmail.com \
--to=sautier.louis@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=MPT-FusionLinux.pdl@broadcom.com \
--cc=dlemoal@kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=martin.petersen@oracle.com \
--cc=ranjan.kumar@broadcom.com \
--cc=sathya.prakash@broadcom.com \
--cc=sreekanth.reddy@broadcom.com \
--cc=suganath-prabu.subramani@broadcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox