|
@@ -1012,6 +1012,34 @@ int power_actor_get_max_power(struct thermal_cooling_device *cdev,
|
|
|
return cdev->ops->state2power(cdev, tz, 0, max_power);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * power_actor_get_min_power() - get the mainimum power that a cdev can consume
|
|
|
+ * @cdev: pointer to &thermal_cooling_device
|
|
|
+ * @tz: a valid thermal zone device pointer
|
|
|
+ * @min_power: pointer in which to store the minimum power
|
|
|
+ *
|
|
|
+ * Calculate the minimum power consumption in milliwatts that the
|
|
|
+ * cooling device can currently consume and store it in @min_power.
|
|
|
+ *
|
|
|
+ * Return: 0 on success, -EINVAL if @cdev doesn't support the
|
|
|
+ * power_actor API or -E* on other error.
|
|
|
+ */
|
|
|
+int power_actor_get_min_power(struct thermal_cooling_device *cdev,
|
|
|
+ struct thermal_zone_device *tz, u32 *min_power)
|
|
|
+{
|
|
|
+ unsigned long max_state;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ if (!cdev_is_power_actor(cdev))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ ret = cdev->ops->get_max_state(cdev, &max_state);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ return cdev->ops->state2power(cdev, tz, max_state, min_power);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* power_actor_set_power() - limit the maximum power that a cooling device can consume
|
|
|
* @cdev: pointer to &thermal_cooling_device
|