thermal: fair_share: use the weight from the thermal instance
authorJavi Merino <javi.merino@arm.com>
Wed, 18 Feb 2015 16:04:22 +0000 (16:04 +0000)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 5 May 2015 04:27:51 +0000 (21:27 -0700)
The fair share governor is not usable with thermal zones that use the
bind op and don't populate thermal_zone_parameters, the majority of
them.  Now that the weight is in the thermal instance, we can use that
in the fair share governor to allow every thermal zone to trivially use
this governor.  Furthermore, this simplifies the code.

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Durgadoss R <durgadoss.r@intel.com>
Reviewed-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/fair_share.c

index c3b25187b467556412b0b07bb4f5ab59ff7d6fe5..9e392d34ac9f964c79c2883b47fb24cfa0b337a1 100644 (file)
@@ -88,24 +88,13 @@ static long get_target_state(struct thermal_zone_device *tz,
  */
 static int fair_share_throttle(struct thermal_zone_device *tz, int trip)
 {
-       const struct thermal_zone_params *tzp;
-       struct thermal_cooling_device *cdev;
        struct thermal_instance *instance;
-       int i;
        int cur_trip_level = get_trip_level(tz);
 
-       if (!tz->tzp || !tz->tzp->tbp)
-               return -EINVAL;
+       list_for_each_entry(instance, &tz->thermal_instances, tz_node) {
+               struct thermal_cooling_device *cdev = instance->cdev;
 
-       tzp = tz->tzp;
-
-       for (i = 0; i < tzp->num_tbps; i++) {
-               if (!tzp->tbp[i].cdev)
-                       continue;
-
-               cdev = tzp->tbp[i].cdev;
-               instance = get_thermal_instance(tz, cdev, trip);
-               if (!instance)
+               if (instance->trip != trip)
                        continue;
 
                instance->target = get_target_state(tz, cdev,