Skip to content

Commit

Permalink
hwmon: (nct7904) Read all SMI status registers in probe function
Browse files Browse the repository at this point in the history
When nct7904 power up, it compares current sensor readings against the
default threshold immediately. This results in false alarms on startup.
Read all SMI status registers in probe function to clear the alarms.

Signed-off-by: Amy Shih <amy.shih@advantech.com.tw>
[groeck: Reworded description]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
  • Loading branch information
Amy Shih authored and Guenter Roeck committed May 13, 2020
1 parent bcb543c commit 6d44e43
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions drivers/hwmon/nct7904.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,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 */
Expand Down Expand Up @@ -1009,6 +1010,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);
Expand Down

0 comments on commit 6d44e43

Please sign in to comment.