On Tue, Feb 22, 2022 at 01:12:53PM +0000, Vikash Chandola wrote: > Almost all fault/warning bits in pmbus status registers remain set even > after fault/warning condition are removed. As per pmbus specification > these faults must be cleared by user. > Modify hwmon behavior to clear fault/warning bit after fetching data if > fault/warning bit was set. This allows to get fresh data in next read. > > Signed-off-by: Vikash Chandola <vikash.chandola@xxxxxxxxxxxxxxx> Applied. Thanks, Guenter > --- > changes since v1: > v1 patch was clearing all the faults. That would have lead faults not > getting reported to user at all. This change clears only current fault > and that too after reporting it at least once. This way all the faults > will be reported to user space at least once. > > Behaviour has been verified with following PSU > FRU Device Description : IS162F22 (ID 84) > Product Manufacturer : SOLUM CO., LTD. > Product Name : IS162F22 > Product Part Number : G36234-015 > Product Version : 10A > > drivers/hwmon/pmbus/pmbus_core.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c > index 776ee2237be2..ac2fbee1ba9c 100644 > --- a/drivers/hwmon/pmbus/pmbus_core.c > +++ b/drivers/hwmon/pmbus/pmbus_core.c > @@ -911,6 +911,11 @@ static int pmbus_get_boolean(struct i2c_client *client, struct pmbus_boolean *b, > pmbus_update_sensor_data(client, s2); > > regval = status & mask; > + if (regval) { > + ret = pmbus_write_byte_data(client, page, reg, regval); > + if (ret) > + goto unlock; > + } > if (s1 && s2) { > s64 v1, v2; >