]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/thermal/thermal_core.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
[karo-tx-linux.git] / drivers / thermal / thermal_core.c
index 71b0ec0c370d73aad18d685118c197735c5b2833..9bf10aa6069bbed102735da623ebfedb711e5d20 100644 (file)
@@ -38,6 +38,9 @@
 #include <net/netlink.h>
 #include <net/genetlink.h>
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/thermal.h>
+
 #include "thermal_core.h"
 #include "thermal_hwmon.h"
 
@@ -66,7 +69,7 @@ static struct thermal_governor *__find_governor(const char *name)
                return def_governor;
 
        list_for_each_entry(pos, &thermal_governor_list, governor_list)
-               if (!strnicmp(name, pos->name, THERMAL_NAME_LENGTH))
+               if (!strncasecmp(name, pos->name, THERMAL_NAME_LENGTH))
                        return pos;
 
        return NULL;
@@ -104,7 +107,7 @@ int thermal_register_governor(struct thermal_governor *governor)
 
                name = pos->tzp->governor_name;
 
-               if (!strnicmp(name, governor->name, THERMAL_NAME_LENGTH))
+               if (!strncasecmp(name, governor->name, THERMAL_NAME_LENGTH))
                        pos->governor = governor;
        }
 
@@ -129,7 +132,7 @@ void thermal_unregister_governor(struct thermal_governor *governor)
        mutex_lock(&thermal_list_lock);
 
        list_for_each_entry(pos, &thermal_tz_list, node) {
-               if (!strnicmp(pos->governor->name, governor->name,
+               if (!strncasecmp(pos->governor->name, governor->name,
                                                THERMAL_NAME_LENGTH))
                        pos->governor = NULL;
        }
@@ -368,6 +371,8 @@ static void handle_critical_trips(struct thermal_zone_device *tz,
        if (tz->temperature < trip_temp)
                return;
 
+       trace_thermal_zone_trip(tz, trip, trip_type);
+
        if (tz->ops->notify)
                tz->ops->notify(tz, trip, trip_type);
 
@@ -463,6 +468,7 @@ static void update_temperature(struct thermal_zone_device *tz)
        tz->temperature = temp;
        mutex_unlock(&tz->lock);
 
+       trace_thermal_temperature(tz);
        dev_dbg(&tz->device, "last_temperature=%d, current_temperature=%d\n",
                                tz->last_temperature, tz->temperature);
 }
@@ -1287,6 +1293,7 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev)
        mutex_unlock(&cdev->lock);
        cdev->ops->set_cur_state(cdev, target);
        cdev->updated = true;
+       trace_cdev_update(cdev, target);
        dev_dbg(&cdev->device, "set to state %lu\n", target);
 }
 EXPORT_SYMBOL(thermal_cdev_update);
@@ -1665,7 +1672,7 @@ struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name)
 
        mutex_lock(&thermal_list_lock);
        list_for_each_entry(pos, &thermal_tz_list, node)
-               if (!strnicmp(name, pos->type, THERMAL_NAME_LENGTH)) {
+               if (!strncasecmp(name, pos->type, THERMAL_NAME_LENGTH)) {
                        found++;
                        ref = pos;
                }
@@ -1790,6 +1797,10 @@ static int __init thermal_register_governors(void)
        if (result)
                return result;
 
+       result = thermal_gov_bang_bang_register();
+       if (result)
+               return result;
+
        return thermal_gov_user_space_register();
 }
 
@@ -1797,6 +1808,7 @@ static void thermal_unregister_governors(void)
 {
        thermal_gov_step_wise_unregister();
        thermal_gov_fair_share_unregister();
+       thermal_gov_bang_bang_unregister();
        thermal_gov_user_space_unregister();
 }