thermal/drivers/qcom: Use generic thermal_zone_get_trip() function
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 3 Oct 2022 09:25:46 +0000 (11:25 +0200)
committerDaniel Lezcano <daniel.lezcano@kernel.org>
Fri, 6 Jan 2023 13:14:47 +0000 (14:14 +0100)
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: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Amit Kucheria <amitk@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20221003092602.1323944-14-daniel.lezcano@linaro.org
drivers/thermal/qcom/qcom-spmi-temp-alarm.c

index ad84978109e6f7a4e53751b286e1ca9af6ebf916..58055a7abaf692404d44d56a373087e789d72450 100644 (file)
@@ -264,17 +264,17 @@ skip:
        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;
-
-       ntrips = of_thermal_get_ntrips(chip->tz_dev);
-       if (ntrips <= 0)
-               return THERMAL_TEMP_INVALID;
-
-       trips = of_thermal_get_trip_points(chip->tz_dev);
-       if (!trips)
-               return THERMAL_TEMP_INVALID;
-
-       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;
+       struct thermal_trip trip;
+       int i, ret;
+
+       for (i = 0; i < thermal_zone_get_num_trips(chip->tz_dev); i++) {
+
+               ret = thermal_zone_get_trip(chip->tz_dev, i, &trip);
+               if (ret)
+                       continue;
+
+               if (trip.type == THERMAL_TRIP_CRITICAL)
+                       return trip.temperature;
        }
 
        return THERMAL_TEMP_INVALID;