From: Nicolin Chen Date: Mon, 5 Nov 2018 20:48:40 +0000 (-0800) Subject: hwmon: (ina3221) Check channel status for alarms attribute read X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=efb0489ea8fa12c6a5b51c0b3e35f4f3d5d54939;p=openwrt%2Fstaging%2Fblogic.git hwmon: (ina3221) Check channel status for alarms attribute read There is nothing critically wrong to read these two attributes without having a is_enabled() check at this point. But reading the MASK_ENABLE register would clear the CVRF bit according to the datasheet. So it'd be safer to fence for disabled channels in order to add pm runtime feature. Signed-off-by: Nicolin Chen Signed-off-by: Guenter Roeck --- diff --git a/drivers/hwmon/ina3221.c b/drivers/hwmon/ina3221.c index d61688f04594..26cdf3342d80 100644 --- a/drivers/hwmon/ina3221.c +++ b/drivers/hwmon/ina3221.c @@ -200,6 +200,12 @@ static int ina3221_read_curr(struct device *dev, u32 attr, return 0; case hwmon_curr_crit_alarm: case hwmon_curr_max_alarm: + /* No actual register read if channel is disabled */ + if (!ina3221_is_enabled(ina, channel)) { + /* Return 0 for alert flags */ + *val = 0; + return 0; + } ret = regmap_field_read(ina->fields[reg], ®val); if (ret) return ret;