[PATCH v5 0/5] hwmon: AMPINEL telemetry support and shared fixes

From: Vas Zayarskiy

Date: Sun Sep 27 2026 - 15:14:20 EST


This series adds read-only AMPINEL telemetry to aquacomputer_d5next,
along with shared numeric, initial-cache and report-validation fixes.
The separate keyboard interface remains deliberately unsupported, and
there is no HID core or generic-HID change.

Changes since v4:
- In patch 1, read the power cache once with READ_ONCE(), check that
snapshot for -ENODATA and return the same value. Mark the power-cache
updates with WRITE_ONCE(). This addresses the check/use race identified
by Sashiko review; the HID callback does not take the hwmon read mutex.
- In patch 5, use WRITE_ONCE() for AMPINEL's power-cache update as well.
- Patches 2 through 4 are unchanged. The base remains hwmon-next
9edd5ab2656f (7.3-rc4).

Validation of this revision:
- The hwmon object builds on x86_64 and i386 with W=1 and Sparse.
- All 995 captured reports pass the actual C parser/read replay under
ASan/UBSan, including simulated 32-bit long clamping and the existing
shared numeric, expiry and report-validation regression cases.
- A userspace scheduling hook invokes the actual raw-event handler after
a power-cache read. Valid-to-unavailable, unavailable-to-valid and
valid-to-different-valid updates preserve the checked snapshot.
The old double read and two independent READ_ONCE() calls fail this
check. This models an interleaving, not a live-kernel race reproduction.
- The exact final source was built and installed on Linux 7.2.6 with
stock hid-generic. All 24 raw USB/hwmon comparisons matched after
module loading and system activation. Telemetry binds successfully,
the keyboard remains unbound, and other HID devices retain their
drivers and input capabilities. No AMPINEL fault or kernel WARN/Oops
appeared during installation. This revision has not been tested across
reboot or suspend/resume; the earlier v3 lifecycle results are separate.

The power snapshot does not provide atomic readings across different
sensors. Other Aquacomputer models have synthetic regression coverage,
not hardware validation here. Channel labels follow report order;
alarm reporting and protection configuration remain outside this series.

AI assistance: Codex assisted with implementation, tests and submission
text; Sparse was used for static analysis.

V4: https://lore.kernel.org/linux-hwmon/20260927183723.4078226-1-contact@xxxxxxxxx/
V3: https://lore.kernel.org/linux-hwmon/20260914233728.22725-1-contact@xxxxxxxxx/

Vas Zayarskiy (5):
hwmon: (aquacomputer_d5next) Avoid truncating scaled sensor readings
hwmon: (aquacomputer_d5next) Expire the initial sensor cache
hwmon: (aquacomputer_d5next) Validate incoming status reports
hwmon: (aquacomputer_d5next) Skip unknown firmware version offsets
hwmon: (aquacomputer_d5next) Add AMPINEL telemetry support

Documentation/hwmon/aquacomputer_d5next.rst | 13 +++
drivers/hwmon/Kconfig | 4 +-
drivers/hwmon/aquacomputer_d5next.c | 118 +++++++++++++++++---
3 files changed, 116 insertions(+), 19 deletions(-)


base-commit: 9edd5ab2656f040d726b5388f49ceac10bb2944f