Re: [PATCH v5 2/4] hwmon: (pmbus/max20830): add VOUT feedback resistor scaling support
Guenter Roeck <[email protected]> Wed, 29 Jul 2026 19:33:04 -0700
| Newsgroups | org.kernel.vger.linux-hwmon,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <[email protected]> |
On 7/29/26 18:14, [email protected] wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [Medium] Returning -ENODATA does not mask unsupported PMBus limit registers, incorrectly exposing unscaled limit attributes if the hardware responds. > -- > > --- Patch [2]: [PATCH v5 2/4] hwmon: (pmbus/max20830): add VOUT feedback resistor scaling support --- > commit 852e7cf36da1bb5ec1c29eff09bb747755762b5b > Author: Alexis Czezar Torreno <[email protected]> > > hwmon: (pmbus/max20830): add VOUT feedback resistor scaling support > > This commit adds support for external voltage divider scaling in the max20830 > driver. It reads resistor values from device tree properties and applies a > scaling formula to VOUT readings to report the actual output voltage. > >> diff --git a/drivers/hwmon/pmbus/max20830.c b/drivers/hwmon/pmbus/max20830.c >> --- a/drivers/hwmon/pmbus/max20830.c >> +++ b/drivers/hwmon/pmbus/max20830.c > [ ... ] >> @@ -14,6 +15,56 @@ > [ ... ] >> +static int max20830_read_word_data(struct i2c_client *client, int page, >> + int phase, int reg) >> +{ >> + const struct pmbus_driver_info *info = pmbus_get_driver_info(client); >> + const struct max20830_data *data = container_of(info, struct max20830_data, info); >> + int ret; >> + u64 temp; >> + >> + switch (reg) { >> + case PMBUS_READ_VOUT: > [ ... ] >> + return ret; >> + default: >> + return -ENODATA; > > [Severity: Medium] > Does returning -ENODATA here actually mask the unsupported limit registers as > intended? > > In the PMBus core framework, returning -ENODATA from the driver's read > callback is treated as a signal to fall back to a standard I2C read. It > does not block the attribute. > > If the hardware responds to the limit register reads over standard I2C, the > PMBus core will still create the sysfs attributes. Because scaling is only > applied to PMBUS_READ_VOUT in this patch, these exposed limit attributes > (e.g., in1_max) would report raw, unscaled feedback voltages, while in1_input > reports scaled actual voltages, creating an inconsistent interface. > > Should this return -ENXIO instead, which explicitly tells the PMBus core that > the register is unsupported and prevents the sysfs attributes from being > created? > That would require explicitly listing either all supported or all unsupported attributes. Let's not do that unless it is really necessary. Guenter