Commit c597b4e7 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

thermal: core: Introduce thermal_cdev_update_nocheck()



Three thermal governors call __thermal_cdev_update() under the
cdev lock without doing any checks, so in order to reduce the
related code duplication, introduce a new helper function called
thermal_cdev_update_nocheck() for them and make them use it.

No intentional functional impact.

Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/1835097.VLH7GnMWUR@rjwysocki.net


Reviewed-by: default avatarLukasz Luba <lukasz.luba@arm.com>
parent c690dce5
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -30,9 +30,7 @@ static void bang_bang_set_instance_target(struct thermal_instance *instance,

	dev_dbg(&instance->cdev->device, "target=%ld\n", instance->target);

	mutex_lock(&instance->cdev->lock);
	__thermal_cdev_update(instance->cdev);
	mutex_unlock(&instance->cdev->lock);
	thermal_cdev_update_nocheck(instance->cdev);
}

/**
+1 −3
Original line number Diff line number Diff line
@@ -89,9 +89,7 @@ static void fair_share_throttle(struct thermal_zone_device *tz,
		}
		instance->target = div_u64(dividend, divisor);

		mutex_lock(&cdev->lock);
		__thermal_cdev_update(cdev);
		mutex_unlock(&cdev->lock);
		thermal_cdev_update_nocheck(cdev);
	}
}

+2 −3
Original line number Diff line number Diff line
@@ -322,9 +322,8 @@ power_actor_set_power(struct thermal_cooling_device *cdev,
		return ret;

	instance->target = clamp_val(state, instance->lower, instance->upper);
	mutex_lock(&cdev->lock);
	__thermal_cdev_update(cdev);
	mutex_unlock(&cdev->lock);

	thermal_cdev_update_nocheck(cdev);

	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ static inline bool cdev_is_power_actor(struct thermal_cooling_device *cdev)
}

void thermal_cdev_update(struct thermal_cooling_device *);
void thermal_cdev_update_nocheck(struct thermal_cooling_device *cdev);
void __thermal_cdev_update(struct thermal_cooling_device *cdev);

int get_tz_trend(struct thermal_zone_device *tz, const struct thermal_trip *trip);
+13 −0
Original line number Diff line number Diff line
@@ -205,6 +205,19 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev)
	mutex_unlock(&cdev->lock);
}

/**
 * thermal_cdev_update_nocheck() - Unconditionally update cooling device state
 * @cdev: Target cooling device.
 */
void thermal_cdev_update_nocheck(struct thermal_cooling_device *cdev)
{
	mutex_lock(&cdev->lock);

	__thermal_cdev_update(cdev);

	mutex_unlock(&cdev->lock);
}

/**
 * thermal_zone_get_slope - return the slope attribute of the thermal zone
 * @tz: thermal zone device with the slope attribute