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>
This commit is contained in:
Eddie James 2022-02-15 09:10:22 -06:00 committed by Guenter Roeck
parent 54cc3dbfc1
commit 84dc9e8a7e
1 changed files with 16 additions and 3 deletions

View File

@ -674,6 +674,9 @@ static ssize_t occ_show_caps_3(struct device *dev,
case 7:
val = caps->user_source;
break;
case 8:
val = get_unaligned_be16(&caps->soft_min) * 1000000ULL;
break;
default:
return -EINVAL;
}
@ -835,12 +838,13 @@ static int occ_setup_sensor_attrs(struct occ *occ)
case 1:
num_attrs += (sensors->caps.num_sensors * 7);
break;
case 3:
show_caps = occ_show_caps_3;
fallthrough;
case 2:
num_attrs += (sensors->caps.num_sensors * 8);
break;
case 3:
show_caps = occ_show_caps_3;
num_attrs += (sensors->caps.num_sensors * 9);
break;
default:
sensors->caps.num_sensors = 0;
}
@ -1047,6 +1051,15 @@ static int occ_setup_sensor_attrs(struct occ *occ)
attr->sensor = OCC_INIT_ATTR(attr->name, 0444,
show_caps, NULL, 7, 0);
attr++;
if (sensors->caps.version > 2) {
snprintf(attr->name, sizeof(attr->name),
"power%d_cap_min_soft", s);
attr->sensor = OCC_INIT_ATTR(attr->name, 0444,
show_caps, NULL,
8, 0);
attr++;
}
}
}