From: "Erim, Salih" <salih.erim@amd.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Andy Shevchenko" <andy@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>, "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Conall O'Griofa" <conall.ogriofa@amd.com>,
"Michal Simek" <michal.simek@amd.com>,
"Guenter Roeck" <linux@roeck-us.net>,
"Salih Erim" <erimsalih@gmail.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 0/5] iio: adc: add AMD/Xilinx Versal SysMon driver
Date: Thu, 28 May 2026 22:46:58 +0100 [thread overview]
Message-ID: <d579623e-b799-4caa-aeec-7d070a972aae@amd.com> (raw)
In-Reply-To: <20260528130600.25e401a7@jic23-huawei>
Hi Jonathan,
On 28/05/2026 13:06, Jonathan Cameron wrote:
>
>
> On Wed, 27 May 2026 12:42:06 +0100
> Salih Erim <salih.erim@amd.com> wrote:
>
>> This series adds a new IIO driver for the AMD/Xilinx Versal System
>> Monitor (SysMon), providing on-chip voltage and temperature monitoring.
>>
>> The Versal SysMon measures up to 160 supply voltages and reads up to
>> 64 temperature satellites distributed across the SoC. The hardware
>> also provides aggregated device temperature registers: the current
>> max and min across all active satellites, and peak/trough values
>> recorded since last hardware reset. The device can be accessed via
>> memory-mapped I/O or via an I2C interface.
>>
>> The driver is split into a bus-agnostic core module using the regmap
>> API, an MMIO platform driver, and an I2C driver. This allows the
>> same IIO logic to be shared across different bus transports.
>>
>> Previous submissions:
>> v2: https://lore.kernel.org/all/cover.1746182670.git.salih.erim@amd.com/
>> v1: https://lore.kernel.org/all/cover.1757061697.git.michal.simek@amd.com/
>>
> https://sashiko.dev/#/patchset/20260527114211.174288-1-salih.erim%40amd.com
> Quite a bit of feedback. Some of which is clearly garbage, like the
> ARCH_VERSAL suggestion, but take a close look as it does tend to pick up on
> stuff that humans miss.
Thanks Jonathan. I've gone through all the Sashiko findings.
False positives:
- ARCH_VERSAL: doesn't exist in mainline; all Versal drivers use
ARCH_ZYNQMP (EDAC_VERSAL, Versal TRNG, etc.)
- I2C bus atomicity: the SysMon I2C slave protocol requires a
STOP between command and response; the vendor driver uses the
same send/recv sequence
- Hardirq on I2C: IRQ handler is never registered on the I2C
path (has_irq is false when fwnode_irq_get returns negative)
- Voltage threshold clobbering format bits: threshold registers
only use the mantissa (bits 15:0); vendor driver does the same
- IRQ storm on regmap error: ISR is cleared before handle_events
is called, so the interrupt won't re-fire
- VERSAL_SYSMON_I2C missing ARCH: no I2C ADC driver in the
kernel has an ARCH dependency; I2C clients are bus-agnostic
Reviewed but keeping as-is:
- Left-shift of negative in millicelsius_to_q8p7: GCC defines
this behavior and it's consistent with the read direction
(right-shift); Andy asked for this symmetry in v2
- Oversampling read without mutex: reading a single int is
atomic on arm64; adding contention for no practical benefit
- Voltage alarms one-shot: follows the IIO event model where
userspace re-arms via write_event_config
- Event config reads 0 during masked alarm: standard behavior,
xilinx-ams does the same
- TOCTOU on masked_temp after spinlock drop: benign; worst case
the worker reschedules one extra cycle
- Interrupts not disabled on teardown: devm_request_irq frees
the IRQ handler; probe already disables all interrupts via
IDR at init, and LIFO devm ordering is correct
- Oversampling shared_by_type for all temp: this is a per-type
HW setting; static channels report the aggregate result
- val*scale overflow in processedtoraw: realistic voltages
(< 3.3V) are well within int32 range; overflow requires
> 32V input which is beyond the ADC range
- sysmon_update_temp_lower underflow: hysteresis is validated
as non-negative and realistic thresholds keep the subtraction
well within Q8.7 range
Will address in v4:
- scan_type: dropping entirely (no buffered support), which
also resolves the realbits question
- RAW + PROCESSED: dropping RAW for voltage (PROCESSED only),
and using RAW + SCALE for temperature (linear Q8.7)
- temp_mask: take irq_lock in write_event_config to
synchronize with the unmask worker
Happy to fold these into v4 along with your review feedback.
Thanks,
Salih
next prev parent reply other threads:[~2026-05-28 21:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 11:42 Salih Erim
2026-05-27 11:42 ` [PATCH v3 1/5] dt-bindings: iio: adc: add xlnx,versal-sysmon binding Salih Erim
2026-05-28 8:38 ` Krzysztof Kozlowski
2026-05-27 11:42 ` [PATCH v3 2/5] iio: adc: add Versal SysMon driver Salih Erim
2026-05-28 12:24 ` Jonathan Cameron
2026-05-28 22:07 ` Erim, Salih
2026-05-27 11:42 ` [PATCH v3 3/5] iio: adc: versal-sysmon: add I2C driver Salih Erim
2026-05-28 12:42 ` Jonathan Cameron
2026-05-28 22:12 ` Erim, Salih
2026-05-27 11:42 ` [PATCH v3 4/5] iio: adc: versal-sysmon: add threshold event support Salih Erim
2026-05-28 13:01 ` Jonathan Cameron
2026-05-28 22:18 ` Erim, Salih
2026-05-27 11:42 ` [PATCH v3 5/5] iio: adc: versal-sysmon: add oversampling support Salih Erim
2026-05-28 13:05 ` Jonathan Cameron
2026-05-28 22:27 ` Erim, Salih
2026-05-28 12:06 ` [PATCH v3 0/5] iio: adc: add AMD/Xilinx Versal SysMon driver Jonathan Cameron
2026-05-28 21:46 ` Erim, Salih [this message]
2026-05-29 9:03 ` Jonathan Cameron
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=d579623e-b799-4caa-aeec-7d070a972aae@amd.com \
--to=salih.erim@amd.com \
--cc=andy@kernel.org \
--cc=conall.ogriofa@amd.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=erimsalih@gmail.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=michal.simek@amd.com \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
/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
all inboxes | Powered by JetHome®