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

Pull hwmon fixes from Guenter Roeck:

- Fix crash in w83627ehf driver seen with W83627DHG-P

- Fix lockdep splat in acpi_power_meter driver

- Fix xdpe12284 documentation Sphinx warnings

* tag 'hwmon-for-v5.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (w83627ehf) Fix crash seen with W83627DHG-P
hwmon: (acpi_power_meter) Fix lockdep splat
Documentation/hwmon: fix xdpe12284 Sphinx warnings

+15 -9
+1
Documentation/hwmon/xdpe12284.rst
··· 24 24 dual loop voltage regulators. 25 25 The family includes XDPE12284 and XDPE12254 devices. 26 26 The devices from this family complaint with: 27 + 27 28 - Intel VR13 and VR13HC rev 1.3, IMVP8 rev 1.2 and IMPVP9 rev 1.3 DC-DC 28 29 converter specification. 29 30 - Intel SVID rev 1.9. protocol.
+8 -8
drivers/hwmon/acpi_power_meter.c
··· 355 355 struct acpi_device *acpi_dev = to_acpi_device(dev); 356 356 struct acpi_power_meter_resource *resource = acpi_dev->driver_data; 357 357 acpi_string val; 358 + int ret; 358 359 360 + mutex_lock(&resource->lock); 359 361 switch (attr->index) { 360 362 case 0: 361 363 val = resource->model_number; ··· 374 372 val = ""; 375 373 break; 376 374 } 377 - 378 - return sprintf(buf, "%s\n", val); 375 + ret = sprintf(buf, "%s\n", val); 376 + mutex_unlock(&resource->lock); 377 + return ret; 379 378 } 380 379 381 380 static ssize_t show_val(struct device *dev, ··· 820 817 821 818 resource = acpi_driver_data(device); 822 819 823 - mutex_lock(&resource->lock); 824 820 switch (event) { 825 821 case METER_NOTIFY_CONFIG: 822 + mutex_lock(&resource->lock); 826 823 free_capabilities(resource); 827 824 res = read_capabilities(resource); 825 + mutex_unlock(&resource->lock); 828 826 if (res) 829 827 break; 830 828 ··· 834 830 break; 835 831 case METER_NOTIFY_TRIP: 836 832 sysfs_notify(&device->dev.kobj, NULL, POWER_AVERAGE_NAME); 837 - update_meter(resource); 838 833 break; 839 834 case METER_NOTIFY_CAP: 840 835 sysfs_notify(&device->dev.kobj, NULL, POWER_CAP_NAME); 841 - update_cap(resource); 842 836 break; 843 837 case METER_NOTIFY_INTERVAL: 844 838 sysfs_notify(&device->dev.kobj, NULL, POWER_AVG_INTERVAL_NAME); 845 - update_avg_interval(resource); 846 839 break; 847 840 case METER_NOTIFY_CAPPING: 848 841 sysfs_notify(&device->dev.kobj, NULL, POWER_ALARM_NAME); ··· 849 848 WARN(1, "Unexpected event %d\n", event); 850 849 break; 851 850 } 852 - mutex_unlock(&resource->lock); 853 851 854 852 acpi_bus_generate_netlink_event(ACPI_POWER_METER_CLASS, 855 853 dev_name(&device->dev), event, 0); ··· 912 912 resource = acpi_driver_data(device); 913 913 hwmon_device_unregister(resource->hwmon_dev); 914 914 915 - free_capabilities(resource); 916 915 remove_attrs(resource); 916 + free_capabilities(resource); 917 917 918 918 kfree(resource); 919 919 return 0;
+6 -1
drivers/hwmon/w83627ehf.c
··· 1346 1346 /* channel 0.., name 1.. */ 1347 1347 if (!(data->have_temp & (1 << channel))) 1348 1348 return 0; 1349 - if (attr == hwmon_temp_input || attr == hwmon_temp_label) 1349 + if (attr == hwmon_temp_input) 1350 1350 return 0444; 1351 + if (attr == hwmon_temp_label) { 1352 + if (data->temp_label) 1353 + return 0444; 1354 + return 0; 1355 + } 1351 1356 if (channel == 2 && data->temp3_val_only) 1352 1357 return 0; 1353 1358 if (attr == hwmon_temp_max) {