On Tue, May 12, 2020 at 02:25:23AM +0000, Amy.Shih@xxxxxxxxxxxxxxxx wrote: > From: Amy Shih <amy.shih@xxxxxxxxxxxxxxxx> > > When nct7904 power up, it compares current sensor readings within the > default threshold immediately, thus some of SMI status registers would > get non zero values cause the false alarms on first reading. Add to > read all of the SMI status registers in probe function to clear the > alarms. > > Signed-off-by: Amy Shih <amy.shih@xxxxxxxxxxxxxxxx> Applied. Thanks, Guenter > --- > drivers/hwmon/nct7904.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c > index 571a649..6fb06f7 100644 > --- a/drivers/hwmon/nct7904.c > +++ b/drivers/hwmon/nct7904.c > @@ -45,6 +45,7 @@ > #define FANCTL_MAX 4 /* Counted from 1 */ > #define TCPU_MAX 8 /* Counted from 1 */ > #define TEMP_MAX 4 /* Counted from 1 */ > +#define SMI_STS_MAX 10 /* Counted from 1 */ > > #define VT_ADC_CTRL0_REG 0x20 /* Bank 0 */ > #define VT_ADC_CTRL1_REG 0x21 /* Bank 0 */ > @@ -1126,6 +1127,13 @@ static int nct7904_probe(struct i2c_client *client, > data->fan_mode[i] = ret; > } > > + /* Read all of SMI status register to clear alarms */ > + for (i = 0; i < SMI_STS_MAX; i++) { > + ret = nct7904_read_reg(data, BANK_0, SMI_STS1_REG + i); > + if (ret < 0) > + return ret; > + } > + > hwmon_dev = > devm_hwmon_device_register_with_info(dev, client->name, data, > &nct7904_chip_info, NULL); > -- > 1.8.3.1 >