Upgrade to 4.4.50-rt62
[kvmfornfv.git] / kernel / drivers / thermal / thermal_core.c
index ba08b55..3d5f8f4 100644 (file)
@@ -454,6 +454,10 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip)
 {
        enum thermal_trip_type type;
 
+       /* Ignore disabled trip points */
+       if (test_bit(trip, &tz->trips_disabled))
+               return;
+
        tz->ops->get_trip_type(tz, trip, &type);
 
        if (type == THERMAL_TRIP_CRITICAL || type == THERMAL_TRIP_HOT)
@@ -1796,6 +1800,7 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
 {
        struct thermal_zone_device *tz;
        enum thermal_trip_type trip_type;
+       int trip_temp;
        int result;
        int count;
        int passive = 0;
@@ -1867,9 +1872,15 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
                goto unregister;
 
        for (count = 0; count < trips; count++) {
-               tz->ops->get_trip_type(tz, count, &trip_type);
+               if (tz->ops->get_trip_type(tz, count, &trip_type))
+                       set_bit(count, &tz->trips_disabled);
                if (trip_type == THERMAL_TRIP_PASSIVE)
                        passive = 1;
+               if (tz->ops->get_trip_temp(tz, count, &trip_temp))
+                       set_bit(count, &tz->trips_disabled);
+               /* Check for bogus trip points */
+               if (trip_temp == 0)
+                       set_bit(count, &tz->trips_disabled);
        }
 
        if (!passive) {