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

hwmon: (occ) Add soft minimum power cap attribute

Export the power caps data for the soft minimum power cap through hwmon.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20220215151022.7498-5-eajames@linux.ibm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Eddie James and committed by
Guenter Roeck
84dc9e8a 54cc3dbf

+16 -3
+16 -3
drivers/hwmon/occ/common.c
··· 674 674 case 7: 675 675 val = caps->user_source; 676 676 break; 677 + case 8: 678 + val = get_unaligned_be16(&caps->soft_min) * 1000000ULL; 679 + break; 677 680 default: 678 681 return -EINVAL; 679 682 } ··· 838 835 case 1: 839 836 num_attrs += (sensors->caps.num_sensors * 7); 840 837 break; 841 - case 3: 842 - show_caps = occ_show_caps_3; 843 - fallthrough; 844 838 case 2: 845 839 num_attrs += (sensors->caps.num_sensors * 8); 840 + break; 841 + case 3: 842 + show_caps = occ_show_caps_3; 843 + num_attrs += (sensors->caps.num_sensors * 9); 846 844 break; 847 845 default: 848 846 sensors->caps.num_sensors = 0; ··· 1051 1047 attr->sensor = OCC_INIT_ATTR(attr->name, 0444, 1052 1048 show_caps, NULL, 7, 0); 1053 1049 attr++; 1050 + 1051 + if (sensors->caps.version > 2) { 1052 + snprintf(attr->name, sizeof(attr->name), 1053 + "power%d_cap_min_soft", s); 1054 + attr->sensor = OCC_INIT_ATTR(attr->name, 0444, 1055 + show_caps, NULL, 1056 + 8, 0); 1057 + attr++; 1058 + } 1054 1059 } 1055 1060 } 1056 1061