|
@@ -319,46 +319,6 @@ static void __bind(struct thermal_zone_device *tz, int mask,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void bind_tz(struct thermal_zone_device *tz)
|
|
|
-{
|
|
|
- int i, ret;
|
|
|
- struct thermal_cooling_device *pos = NULL;
|
|
|
- const struct thermal_zone_params *tzp = tz->tzp;
|
|
|
-
|
|
|
- if (!tzp && !tz->ops->bind)
|
|
|
- return;
|
|
|
-
|
|
|
- mutex_lock(&thermal_list_lock);
|
|
|
-
|
|
|
- /* If there is ops->bind, try to use ops->bind */
|
|
|
- if (tz->ops->bind) {
|
|
|
- list_for_each_entry(pos, &thermal_cdev_list, node) {
|
|
|
- ret = tz->ops->bind(tz, pos);
|
|
|
- if (ret)
|
|
|
- print_bind_err_msg(tz, pos, ret);
|
|
|
- }
|
|
|
- goto exit;
|
|
|
- }
|
|
|
-
|
|
|
- if (!tzp || !tzp->tbp)
|
|
|
- goto exit;
|
|
|
-
|
|
|
- list_for_each_entry(pos, &thermal_cdev_list, node) {
|
|
|
- for (i = 0; i < tzp->num_tbps; i++) {
|
|
|
- if (tzp->tbp[i].cdev || !tzp->tbp[i].match)
|
|
|
- continue;
|
|
|
- if (tzp->tbp[i].match(tz, pos))
|
|
|
- continue;
|
|
|
- tzp->tbp[i].cdev = pos;
|
|
|
- __bind(tz, tzp->tbp[i].trip_mask, pos,
|
|
|
- tzp->tbp[i].binding_limits,
|
|
|
- tzp->tbp[i].weight);
|
|
|
- }
|
|
|
- }
|
|
|
-exit:
|
|
|
- mutex_unlock(&thermal_list_lock);
|
|
|
-}
|
|
|
-
|
|
|
static void thermal_zone_device_set_polling(struct thermal_zone_device *tz,
|
|
|
int delay)
|
|
|
{
|
|
@@ -1094,6 +1054,46 @@ void thermal_notify_framework(struct thermal_zone_device *tz, int trip)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(thermal_notify_framework);
|
|
|
|
|
|
+static void bind_tz(struct thermal_zone_device *tz)
|
|
|
+{
|
|
|
+ int i, ret;
|
|
|
+ struct thermal_cooling_device *pos = NULL;
|
|
|
+ const struct thermal_zone_params *tzp = tz->tzp;
|
|
|
+
|
|
|
+ if (!tzp && !tz->ops->bind)
|
|
|
+ return;
|
|
|
+
|
|
|
+ mutex_lock(&thermal_list_lock);
|
|
|
+
|
|
|
+ /* If there is ops->bind, try to use ops->bind */
|
|
|
+ if (tz->ops->bind) {
|
|
|
+ list_for_each_entry(pos, &thermal_cdev_list, node) {
|
|
|
+ ret = tz->ops->bind(tz, pos);
|
|
|
+ if (ret)
|
|
|
+ print_bind_err_msg(tz, pos, ret);
|
|
|
+ }
|
|
|
+ goto exit;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!tzp || !tzp->tbp)
|
|
|
+ goto exit;
|
|
|
+
|
|
|
+ list_for_each_entry(pos, &thermal_cdev_list, node) {
|
|
|
+ for (i = 0; i < tzp->num_tbps; i++) {
|
|
|
+ if (tzp->tbp[i].cdev || !tzp->tbp[i].match)
|
|
|
+ continue;
|
|
|
+ if (tzp->tbp[i].match(tz, pos))
|
|
|
+ continue;
|
|
|
+ tzp->tbp[i].cdev = pos;
|
|
|
+ __bind(tz, tzp->tbp[i].trip_mask, pos,
|
|
|
+ tzp->tbp[i].binding_limits,
|
|
|
+ tzp->tbp[i].weight);
|
|
|
+ }
|
|
|
+ }
|
|
|
+exit:
|
|
|
+ mutex_unlock(&thermal_list_lock);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* thermal_zone_device_register() - register a new thermal zone device
|
|
|
* @type: the thermal zone device type
|