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.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:

- Fix tempeerature scale in gsc-hwmon driver

- Fix divide by 0 error in nct7904 driver

- Drop non-existing attribute from pmbus/isl68137 driver

- Fix status check in applesmc driver

* tag 'hwmon-for-v5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (gsc-hwmon) Scale temperature to millidegrees
hwmon: (applesmc) check status earlier.
hwmon: (nct7904) Correct divide by 0
hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_1 telemetry for RAA228228

+25 -18
+16 -15
drivers/hwmon/applesmc.c
··· 753 753 } 754 754 755 755 ret = applesmc_read_key(LIGHT_SENSOR_LEFT_KEY, buffer, data_length); 756 + if (ret) 757 + goto out; 756 758 /* newer macbooks report a single 10-bit bigendian value */ 757 759 if (data_length == 10) { 758 760 left = be16_to_cpu(*(__be16 *)(buffer + 6)) >> 2; 759 761 goto out; 760 762 } 761 763 left = buffer[2]; 764 + 765 + ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length); 762 766 if (ret) 763 767 goto out; 764 - ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length); 765 768 right = buffer[2]; 766 769 767 770 out: ··· 813 810 to_index(attr)); 814 811 815 812 ret = applesmc_read_key(newkey, buffer, 2); 816 - speed = ((buffer[0] << 8 | buffer[1]) >> 2); 817 - 818 813 if (ret) 819 814 return ret; 820 - else 821 - return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed); 815 + 816 + speed = ((buffer[0] << 8 | buffer[1]) >> 2); 817 + return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed); 822 818 } 823 819 824 820 static ssize_t applesmc_store_fan_speed(struct device *dev, ··· 853 851 u8 buffer[2]; 854 852 855 853 ret = applesmc_read_key(FANS_MANUAL, buffer, 2); 856 - manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01; 857 - 858 854 if (ret) 859 855 return ret; 860 - else 861 - return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual); 856 + 857 + manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01; 858 + return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual); 862 859 } 863 860 864 861 static ssize_t applesmc_store_fan_manual(struct device *dev, ··· 873 872 return -EINVAL; 874 873 875 874 ret = applesmc_read_key(FANS_MANUAL, buffer, 2); 876 - val = (buffer[0] << 8 | buffer[1]); 877 875 if (ret) 878 876 goto out; 877 + 878 + val = (buffer[0] << 8 | buffer[1]); 879 879 880 880 if (input) 881 881 val = val | (0x01 << to_index(attr)); ··· 953 951 u32 count; 954 952 955 953 ret = applesmc_read_key(KEY_COUNT_KEY, buffer, 4); 956 - count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) + 957 - ((u32)buffer[2]<<8) + buffer[3]; 958 - 959 954 if (ret) 960 955 return ret; 961 - else 962 - return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count); 956 + 957 + count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) + 958 + ((u32)buffer[2]<<8) + buffer[3]; 959 + return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count); 963 960 } 964 961 965 962 static ssize_t applesmc_key_at_index_read_show(struct device *dev,
+1
drivers/hwmon/gsc-hwmon.c
··· 172 172 case mode_temperature: 173 173 if (tmp > 0x8000) 174 174 tmp -= 0xffff; 175 + tmp *= 100; /* convert to millidegrees celsius */ 175 176 break; 176 177 case mode_voltage_raw: 177 178 tmp = clamp_val(tmp, 0, BIT(GSC_HWMON_RESOLUTION));
+2 -2
drivers/hwmon/nct7904.c
··· 231 231 if (ret < 0) 232 232 return ret; 233 233 cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f); 234 - if (cnt == 0x1fff) 234 + if (cnt == 0 || cnt == 0x1fff) 235 235 rpm = 0; 236 236 else 237 237 rpm = 1350000 / cnt; ··· 243 243 if (ret < 0) 244 244 return ret; 245 245 cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f); 246 - if (cnt == 0x1fff) 246 + if (cnt == 0 || cnt == 0x1fff) 247 247 rpm = 0; 248 248 else 249 249 rpm = 1350000 / cnt;
+6 -1
drivers/hwmon/pmbus/isl68137.c
··· 67 67 raa_dmpvr1_2rail, 68 68 raa_dmpvr2_1rail, 69 69 raa_dmpvr2_2rail, 70 + raa_dmpvr2_2rail_nontc, 70 71 raa_dmpvr2_3rail, 71 72 raa_dmpvr2_hv, 72 73 }; ··· 242 241 info->pages = 1; 243 242 info->read_word_data = raa_dmpvr2_read_word_data; 244 243 break; 244 + case raa_dmpvr2_2rail_nontc: 245 + info->func[0] &= ~PMBUS_HAVE_TEMP; 246 + info->func[1] &= ~PMBUS_HAVE_TEMP; 247 + fallthrough; 245 248 case raa_dmpvr2_2rail: 246 249 info->pages = 2; 247 250 info->read_word_data = raa_dmpvr2_read_word_data; ··· 309 304 {"raa228000", raa_dmpvr2_hv}, 310 305 {"raa228004", raa_dmpvr2_hv}, 311 306 {"raa228006", raa_dmpvr2_hv}, 312 - {"raa228228", raa_dmpvr2_2rail}, 307 + {"raa228228", raa_dmpvr2_2rail_nontc}, 313 308 {"raa229001", raa_dmpvr2_2rail}, 314 309 {"raa229004", raa_dmpvr2_2rail}, 315 310 {}