Commit 8c5ee915 authored by Daniel Lezcano's avatar Daniel Lezcano
Browse files

thermal/drivers/armada: Use the thermal_zone_get_crit_temp()



The driver browses the trip point to find out the critical trip
temperature. However the function thermal_zone_get_crit_temp() does
already that, so the routine is pointless in the driver.

Use thermal_zone_get_crit_temp() instead of inspecting all the trip
points.

In addition, the hysteresis value is set to zero. A critical trip
point does not have a hysteresis.

Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20230118222610.186088-1-daniel.lezcano@linaro.org
parent 248da1fc
Loading
Loading
Loading
Loading
+15 −23
Original line number Diff line number Diff line
@@ -782,36 +782,28 @@ static int armada_configure_overheat_int(struct armada_thermal_priv *priv,
					 int sensor_id)
{
	/* Retrieve the critical trip point to enable the overheat interrupt */
	struct thermal_trip trip;
	int temperature;
	int ret;
	int i;

	for (i = 0; i < thermal_zone_get_num_trips(tz); i++) {

		ret = thermal_zone_get_trip(tz, i, &trip);
	ret = thermal_zone_get_crit_temp(tz, &temperature);
	if (ret)
		return ret;

		if (trip.type != THERMAL_TRIP_CRITICAL)
			continue;

	ret = armada_select_channel(priv, sensor_id);
	if (ret)
		return ret;

		armada_set_overheat_thresholds(priv, trip.temperature,
					       trip.hysteresis);
	/*
	 * A critical temperature does not have a hysteresis
	 */
	armada_set_overheat_thresholds(priv, temperature, 0);
	priv->overheat_sensor = tz;
	priv->interrupt_source = sensor_id;

	armada_enable_overheat_interrupt(priv);

	return 0;
}

	return -EINVAL;
}

static int armada_thermal_probe(struct platform_device *pdev)
{
	struct thermal_zone_device *tz;