mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
hwmon fixes for v5.7-rc6
Fix ADC access synchronization problem with da9052 driver Fix temperature limit and status reporting in nct7904 driver Fix drivetemp temperature reporting if SCT is supported but SCT data tables are not. -----BEGIN PGP SIGNATURE----- iQIyBAABCAAdFiEEiHPvMQj9QTOCiqgVyx8mb86fmYEFAl6+s2EACgkQyx8mb86f mYEJKg/yAmslfyCTM0d6p+O4Vzl7r1PWNjI1d1BxBXJfDxMorSeZqKIlcb5VlvNa aNXq61NfQdTv2HyMTiKzSuCCu6OuMUmwPnVwO92U/tfEsxX7UNKtcU+XM7CfyPyf USVadR8Uq9JawJRs0Sq5wNRcPxaTC7DIM9MyKLRdirBl/HWgyLhGH2UL+9we2xy8 fukj060uFxm55QbIQsLhMN1oJ4u2gwvZuyGZdiZ0QRIHrDlacZKrVFRrXmm27qUr ZGN3gHKVFRkQU9NQdflait/EJdb/AeVJIjZGvP195SFg1DaRQL7q5Xh6BEipadRt vSZAJP4G8YqgYGsqRlIMiyzlSZjvmioCRrUtbcK1ATCsHtz5KhbtUnACmzDiEA0c 86xEkQ8ucIb+VO2qMLZsjJSFu5SQeQHzIh5scxQSbQBXYmGY9cK0EkvvALlqItM6 /afBISGoAcsCxyZQ9u4bLhzHS/A6pmRTE2tWcRbFfKMU1bvcxYESdF19P5UFSiix gUEdbyMh8lF3jAB/zqcMR+J/Jlm+UGM+gFlBuwdOiu/kdrHT/F36UVcKclVjmkKL iKkD37fgm4X+vUo/fPCCU6ISSzsxWBBlb7IetVNsDEGdmHwuivrJN1kNX3ra2pUE 4aovpn0tcLSjdMWNhqTe3c3+rYIC/DL6ZRIiNpTsO1xfednhUw== =YCH3 -----END PGP SIGNATURE----- Merge tag 'hwmon-for-v5.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: - Fix ADC access synchronization problem with da9052 driver - Fix temperature limit and status reporting in nct7904 driver - Fix drivetemp temperature reporting if SCT is supported but SCT data tables are not. * tag 'hwmon-for-v5.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (da9052) Synchronize access with mfd hwmon: (nct7904) Fix incorrect range of temperature limit registers hwmon: (nct7904) Read all SMI status registers in probe function hwmon: (drivetemp) Fix SCT support if SCT data tables are not supported
This commit is contained in:
commit
051e6b7e34
@ -244,9 +244,9 @@ static ssize_t da9052_tsi_show(struct device *dev,
|
||||
int channel = to_sensor_dev_attr(devattr)->index;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&hwmon->hwmon_lock);
|
||||
mutex_lock(&hwmon->da9052->auxadc_lock);
|
||||
ret = __da9052_read_tsi(dev, channel);
|
||||
mutex_unlock(&hwmon->hwmon_lock);
|
||||
mutex_unlock(&hwmon->da9052->auxadc_lock);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
@ -346,7 +346,7 @@ static int drivetemp_identify_sata(struct drivetemp_data *st)
|
||||
st->have_temp_highest = temp_is_valid(buf[SCT_STATUS_TEMP_HIGHEST]);
|
||||
|
||||
if (!have_sct_data_table)
|
||||
goto skip_sct;
|
||||
goto skip_sct_data;
|
||||
|
||||
/* Request and read temperature history table */
|
||||
memset(buf, '\0', sizeof(st->smartdata));
|
||||
|
@ -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 */
|
||||
@ -361,6 +362,7 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
|
||||
struct nct7904_data *data = dev_get_drvdata(dev);
|
||||
int ret, temp;
|
||||
unsigned int reg1, reg2, reg3;
|
||||
s8 temps;
|
||||
|
||||
switch (attr) {
|
||||
case hwmon_temp_input:
|
||||
@ -466,7 +468,8 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
*val = ret * 1000;
|
||||
temps = ret;
|
||||
*val = temps * 1000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1009,6 +1012,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);
|
||||
|
Loading…
Reference in New Issue
Block a user