[PATCH v8 0/2] hwmon: add Altera SoC FPGA hardware monitoring support
| Newsgroups | org.kernel.vger.linux-hwmon,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Tze Yee Ng <[email protected]> This series adds hardware monitor support for Altera SoC FPGA devices. Temperature and voltage sensors are accessed through the Stratix 10 service layer and Secure Device Manager (SDM). Patch 1 adds async HWMON SMC support to stratix10-svc and registers the socfpga-hwmon platform device. Patch 2 adds the socfpga-hwmon driver, documentation, Kconfig, and MAINTAINERS entry. Changes in v8: - In Patch 2, address maintainer and Sashiko review feedback on socfpga-hwmon driver: - Drop the extra wait_for_completion() after sync-mode timeout; on timeout report -ETIMEDOUT and call stratix10_svc_done(). The previous wait could hang forever if receive_cb is never invoked (e.g. BUSY/REJECTED for HWMON). Any leftover svc_fifo race will be handled in a separate stratix10-svc series. - Place socfpga-hwmon alphabetically in Documentation/hwmon/index.rst - No functional changes in Patch 1 Changes in v7: - In Patch 2, address maintainer and Sashiko review feedback on socfpga-hwmon: - Break out of the async poll loop on hard errors and return the real poll status instead of rewriting it to -ETIMEDOUT - Drop redundant async poll alert/debug messages (SVC already logs) - Replace msleep(1) with usleep_range() for short retries - On sync-mode timeout, wait for the outstanding SVC callback before calling stratix10_svc_done() so a leftover svc_fifo request cannot desynchronize later sensor reads; still report -ETIMEDOUT - No functional changes in Patch 1 Changes in v6: - Rebase on torvalds/master (given “Linux 7.2-rc4”) - No functional changes in Patch 1 and Patch 2 Changes in v5: - Rebase on dinguyen/socfpga_svc_fixes_for_v7.2 - Address Sashiko review feedback on socfpga-hwmon (Patch 2): - Poll async responses until HWMON_TIMEOUT instead of a fixed 3-iteration retry loop (~3 ms), fixing premature timeouts on silicon - Add MODULE_ALIAS("platform:socfpga-hwmon") - No functional changes in Patch 1 Changes in v4: - Address maintainer and review feedback on socfpga-hwmon (Patch 2): - Register devm_add_action_or_reset() before devm_hwmon_device_register_with_info() to fix devres teardown order - Remove unreferenced completion and pre-poll wait_for_completion_io_timeout() from async reads; poll directly with a retry loop after async_send() - No functional changes in Patch 1 Changes in v3: - Address review feedback on socfpga-hwmon (Patch 2): - Fix 16-bit Q8.8 temperature sign extension - Drop unused async callback; pass NULL to stratix10_svc_async_send() - Document and retain pre-poll wait (RSU pattern; firmware needs time before async_poll()) - Align async poll retry behaviour with RSU - Use uninterruptible wait_for_completion_timeout() for sync reads - Handle -EINVAL and -EOPNOTSUPP when falling back to sync mode - Defer SVC channel cleanup via devm_add_action_or_reset() - No functional changes in Patch 1 Changes in v2: - Drop altr,stratix10-hwmon DT binding and intel,stratix10-svc hwmon child property - Drop Stratix 10 SoCDK DTS hwmon node - Register socfpga-hwmon from stratix10-svc (RSU-style) - Replace DT channel parsing with hardcoded Stratix 10 and Agilex tables - Rename driver/module to socfpga-hwmon (CONFIG_SENSORS_ALTERA_SOCFPGA_HWMON) - Add Agilex channel support - Fix SDM value conversion (Q8.8 degrees Celsius and Q16 volts to hwmon millidegrees/millivolts) - Improve sync-mode error handling via last_err Previous version: https://lore.kernel.org/all/[email protected]/ Tze Yee Ng (2): firmware: stratix10-svc: add async HWMON read commands and register socfpga-hwmon device hwmon: add Altera SoC FPGA hardware monitoring driver Documentation/hwmon/index.rst | 1 + Documentation/hwmon/socfpga-hwmon.rst | 34 ++ MAINTAINERS | 8 + drivers/firmware/stratix10-svc.c | 46 +- drivers/hwmon/Kconfig | 10 + drivers/hwmon/Makefile | 1 + drivers/hwmon/socfpga-hwmon.c | 579 +++++++++++++++++++ include/linux/firmware/intel/stratix10-smc.h | 38 ++ 8 files changed, 714 insertions(+), 3 deletions(-) create mode 100644 Documentation/hwmon/socfpga-hwmon.rst create mode 100644 drivers/hwmon/socfpga-hwmon.c -- 2.43.7