On Wed, Sep 26, 2018 at 06:06:32AM -0700, Guenter Roeck wrote: > > +static inline bool ina3221_is_enable(struct ina3221_data *ina, int channel) > > s/is_enable/is_enabled/, maybe ? Fixing. > > + return (config & INA3221_CONFIG_CHx_EN(channel)) > 0; > > The "> 0" is unnecessary. Conversion to bool is automatic. If you want to make > it explicit, please use > > return !!(config & INA3221_CONFIG_CHx_EN(channel)); Removing "> 0". > It should not be necessary to re-read the value from the chip all the time. > I would suggest to cache the value in the 'disabled' variable. Regarding this part, I added a cache before sending this one. But I realized if the chip got powered off and rebooted during system suspend/resume, the cache would not reflect the actual status. As I mentioned earlier, this was enlightened by your comments about the BIOS. So I feel it'd be safer to read the register every time at this point, until I add the suspend/resume feature by syncing with regcache. What do you think about it? > > + ret = kstrtoint(buf, 0, &val); > > + if (ret) > > + return ret; > > + > > + /* inX_enable only accepts 1 for enabling or 0 for disabling */ > > + if (val != 0 && val != 1) > > + return -EINVAL; > > + > Just use kstrtobool(). Fixing. Thanks Nicolin