Commit 1fa86b0a authored by Daniel Lezcano's avatar Daniel Lezcano Committed by Daniel Lezcano
Browse files

thermal/drivers/qcom: Use generic thermal_zone_get_trip() function



The thermal framework gives the possibility to register the trip
points with the thermal zone. When that is done, no get_trip_* ops are
needed and they can be removed.

Convert ops content logic into generic trip points and register them with the
thermal zone.

Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: default avatarAmit Kucheria <amitk@kernel.org>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20221003092602.1323944-14-daniel.lezcano@linaro.org
parent 68a306cc
Loading
Loading
Loading
Loading
+17 −22
Original line number Diff line number Diff line
@@ -264,17 +264,17 @@ static int qpnp_tm_update_critical_trip_temp(struct qpnp_tm_chip *chip,
	return qpnp_tm_write(chip, QPNP_TM_REG_SHUTDOWN_CTRL1, reg);
}

static int qpnp_tm_set_trip_temp(struct thermal_zone_device *tz, int trip, int temp)
static int qpnp_tm_set_trip_temp(struct thermal_zone_device *tz, int trip_id, int temp)
{
	struct qpnp_tm_chip *chip = tz->devdata;
	const struct thermal_trip *trip_points;
	struct thermal_trip trip;
	int ret;

	trip_points = of_thermal_get_trip_points(chip->tz_dev);
	if (!trip_points)
		return -EINVAL;
	ret = thermal_zone_get_trip(chip->tz_dev, trip_id, &trip);
	if (ret)
		return ret;

	if (trip_points[trip].type != THERMAL_TRIP_CRITICAL)
	if (trip.type != THERMAL_TRIP_CRITICAL)
		return 0;

	mutex_lock(&chip->lock);
@@ -300,22 +300,17 @@ static irqreturn_t qpnp_tm_isr(int irq, void *data)

static int qpnp_tm_get_critical_trip_temp(struct qpnp_tm_chip *chip)
{
	int ntrips;
	const struct thermal_trip *trips;
	int i;
	struct thermal_trip trip;
	int i, ret;

	ntrips = of_thermal_get_ntrips(chip->tz_dev);
	if (ntrips <= 0)
		return THERMAL_TEMP_INVALID;
	for (i = 0; i < thermal_zone_get_num_trips(chip->tz_dev); i++) {

	trips = of_thermal_get_trip_points(chip->tz_dev);
	if (!trips)
		return THERMAL_TEMP_INVALID;
		ret = thermal_zone_get_trip(chip->tz_dev, i, &trip);
		if (ret)
			continue;

	for (i = 0; i < ntrips; i++) {
		if (of_thermal_is_trip_valid(chip->tz_dev, i) &&
		    trips[i].type == THERMAL_TRIP_CRITICAL)
			return trips[i].temperature;
		if (trip.type == THERMAL_TRIP_CRITICAL)
			return trip.temperature;
	}

	return THERMAL_TEMP_INVALID;