On Tue, May 12, 2020 at 02:25:23AM +0000, [email protected] wrote:
> From: Amy Shih <[email protected]>
> 
> 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 <[email protected]>

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
> 

Reply via email to