@@ -3512,6 +3512,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3512
3512
const u16 * reg_temp_mon , * reg_temp_alternate , * reg_temp_crit ;
3513
3513
const u16 * reg_temp_crit_l = NULL , * reg_temp_crit_h = NULL ;
3514
3514
int num_reg_temp , num_reg_temp_mon , num_reg_tsi_temp ;
3515
+ int num_reg_temp_config ;
3515
3516
struct device * hwmon_dev ;
3516
3517
struct sensor_template_group tsi_temp_tg ;
3517
3518
@@ -3594,6 +3595,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3594
3595
reg_temp_over = NCT6106_REG_TEMP_OVER ;
3595
3596
reg_temp_hyst = NCT6106_REG_TEMP_HYST ;
3596
3597
reg_temp_config = NCT6106_REG_TEMP_CONFIG ;
3598
+ num_reg_temp_config = ARRAY_SIZE (NCT6106_REG_TEMP_CONFIG );
3597
3599
reg_temp_alternate = NCT6106_REG_TEMP_ALTERNATE ;
3598
3600
reg_temp_crit = NCT6106_REG_TEMP_CRIT ;
3599
3601
reg_temp_crit_l = NCT6106_REG_TEMP_CRIT_L ;
@@ -3669,6 +3671,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3669
3671
reg_temp_over = NCT6106_REG_TEMP_OVER ;
3670
3672
reg_temp_hyst = NCT6106_REG_TEMP_HYST ;
3671
3673
reg_temp_config = NCT6106_REG_TEMP_CONFIG ;
3674
+ num_reg_temp_config = ARRAY_SIZE (NCT6106_REG_TEMP_CONFIG );
3672
3675
reg_temp_alternate = NCT6106_REG_TEMP_ALTERNATE ;
3673
3676
reg_temp_crit = NCT6106_REG_TEMP_CRIT ;
3674
3677
reg_temp_crit_l = NCT6106_REG_TEMP_CRIT_L ;
@@ -3746,6 +3749,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3746
3749
reg_temp_over = NCT6775_REG_TEMP_OVER ;
3747
3750
reg_temp_hyst = NCT6775_REG_TEMP_HYST ;
3748
3751
reg_temp_config = NCT6775_REG_TEMP_CONFIG ;
3752
+ num_reg_temp_config = ARRAY_SIZE (NCT6775_REG_TEMP_CONFIG );
3749
3753
reg_temp_alternate = NCT6775_REG_TEMP_ALTERNATE ;
3750
3754
reg_temp_crit = NCT6775_REG_TEMP_CRIT ;
3751
3755
@@ -3821,6 +3825,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3821
3825
reg_temp_over = NCT6775_REG_TEMP_OVER ;
3822
3826
reg_temp_hyst = NCT6775_REG_TEMP_HYST ;
3823
3827
reg_temp_config = NCT6776_REG_TEMP_CONFIG ;
3828
+ num_reg_temp_config = ARRAY_SIZE (NCT6776_REG_TEMP_CONFIG );
3824
3829
reg_temp_alternate = NCT6776_REG_TEMP_ALTERNATE ;
3825
3830
reg_temp_crit = NCT6776_REG_TEMP_CRIT ;
3826
3831
@@ -3900,6 +3905,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
3900
3905
reg_temp_over = NCT6779_REG_TEMP_OVER ;
3901
3906
reg_temp_hyst = NCT6779_REG_TEMP_HYST ;
3902
3907
reg_temp_config = NCT6779_REG_TEMP_CONFIG ;
3908
+ num_reg_temp_config = ARRAY_SIZE (NCT6779_REG_TEMP_CONFIG );
3903
3909
reg_temp_alternate = NCT6779_REG_TEMP_ALTERNATE ;
3904
3910
reg_temp_crit = NCT6779_REG_TEMP_CRIT ;
3905
3911
@@ -4034,6 +4040,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
4034
4040
reg_temp_over = NCT6779_REG_TEMP_OVER ;
4035
4041
reg_temp_hyst = NCT6779_REG_TEMP_HYST ;
4036
4042
reg_temp_config = NCT6779_REG_TEMP_CONFIG ;
4043
+ num_reg_temp_config = ARRAY_SIZE (NCT6779_REG_TEMP_CONFIG );
4037
4044
reg_temp_alternate = NCT6779_REG_TEMP_ALTERNATE ;
4038
4045
reg_temp_crit = NCT6779_REG_TEMP_CRIT ;
4039
4046
@@ -4123,6 +4130,7 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
4123
4130
reg_temp_over = NCT6798_REG_TEMP_OVER ;
4124
4131
reg_temp_hyst = NCT6798_REG_TEMP_HYST ;
4125
4132
reg_temp_config = NCT6779_REG_TEMP_CONFIG ;
4133
+ num_reg_temp_config = ARRAY_SIZE (NCT6779_REG_TEMP_CONFIG );
4126
4134
reg_temp_alternate = NCT6798_REG_TEMP_ALTERNATE ;
4127
4135
reg_temp_crit = NCT6798_REG_TEMP_CRIT ;
4128
4136
@@ -4204,7 +4212,8 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
4204
4212
= reg_temp_crit [src - 1 ];
4205
4213
if (reg_temp_crit_l && reg_temp_crit_l [i ])
4206
4214
data -> reg_temp [4 ][src - 1 ] = reg_temp_crit_l [i ];
4207
- data -> reg_temp_config [src - 1 ] = reg_temp_config [i ];
4215
+ if (i < num_reg_temp_config )
4216
+ data -> reg_temp_config [src - 1 ] = reg_temp_config [i ];
4208
4217
data -> temp_src [src - 1 ] = src ;
4209
4218
continue ;
4210
4219
}
@@ -4217,7 +4226,8 @@ int nct6775_probe(struct device *dev, struct nct6775_data *data,
4217
4226
data -> reg_temp [0 ][s ] = reg_temp [i ];
4218
4227
data -> reg_temp [1 ][s ] = reg_temp_over [i ];
4219
4228
data -> reg_temp [2 ][s ] = reg_temp_hyst [i ];
4220
- data -> reg_temp_config [s ] = reg_temp_config [i ];
4229
+ if (i < num_reg_temp_config )
4230
+ data -> reg_temp_config [s ] = reg_temp_config [i ];
4221
4231
if (reg_temp_crit_h && reg_temp_crit_h [i ])
4222
4232
data -> reg_temp [3 ][s ] = reg_temp_crit_h [i ];
4223
4233
else if (reg_temp_crit [src - 1 ])
0 commit comments