Commit 84dc9e8a authored by Eddie James's avatar Eddie James Committed by Guenter Roeck
Browse files

hwmon: (occ) Add soft minimum power cap attribute



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

Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20220215151022.7498-5-eajames@linux.ibm.com


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 54cc3dbf
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -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++;
			}
		}
	}