Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'hwmon-for-v5.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:

- Fix read timeout problem in ina3221 driver

- Fix wrong bitmask in nct7904 driver

* tag 'hwmon-for-v5.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (ina3221) Fix read timeout issue
hwmon: (nct7904) Fix the incorrect value of vsen_mask & tcpu_mask & temp_mode in nct7904_data struct.

+13 -4
+1 -1
drivers/hwmon/ina3221.c
··· 170 170 171 171 /* Polling the CVRF bit to make sure read data is ready */ 172 172 return regmap_field_read_poll_timeout(ina->fields[F_CVRF], 173 - cvrf, cvrf, wait, 100000); 173 + cvrf, cvrf, wait, wait * 2); 174 174 } 175 175 176 176 static int ina3221_read_value(struct ina3221_data *ina, unsigned int reg,
+12 -3
drivers/hwmon/nct7904.c
··· 82 82 #define FANCTL1_FMR_REG 0x00 /* Bank 3; 1 reg per channel */ 83 83 #define FANCTL1_OUT_REG 0x10 /* Bank 3; 1 reg per channel */ 84 84 85 + #define VOLT_MONITOR_MODE 0x0 86 + #define THERMAL_DIODE_MODE 0x1 87 + #define THERMISTOR_MODE 0x3 88 + 85 89 #define ENABLE_TSI BIT(1) 86 90 87 91 static const unsigned short normal_i2c[] = { ··· 939 935 for (i = 0; i < 4; i++) { 940 936 val = (ret >> (i * 2)) & 0x03; 941 937 bit = (1 << i); 942 - if (val == 0) { 938 + if (val == VOLT_MONITOR_MODE) { 943 939 data->tcpu_mask &= ~bit; 940 + } else if (val == THERMAL_DIODE_MODE && i < 2) { 941 + data->temp_mode |= bit; 942 + data->vsen_mask &= ~(0x06 << (i * 2)); 943 + } else if (val == THERMISTOR_MODE) { 944 + data->vsen_mask &= ~(0x02 << (i * 2)); 944 945 } else { 945 - if (val == 0x1 || val == 0x2) 946 - data->temp_mode |= bit; 946 + /* Reserved */ 947 + data->tcpu_mask &= ~bit; 947 948 data->vsen_mask &= ~(0x06 << (i * 2)); 948 949 } 949 950 }