]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
thermal: trip: Add conversion macros for thermal trip priv field
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 2 Jul 2024 14:41:03 +0000 (16:41 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 9 Jul 2024 16:22:59 +0000 (18:22 +0200)
Some drivers will need to store integers in the priv field of struct
thermal_trip, so add conversion macros for doing this in a consistent
way and switch over the int340x_thermal driver that already does it and
uses custom conversion functions to using the new macros.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/3297884.aeNJFYEL58@rjwysocki.net
drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
include/linux/thermal.h

index 400fde7cb3b1e438743e5fcec7a4675c902655d2..cd28a5582a6045d623bc796f32eb454b64f00105 100644 (file)
@@ -62,16 +62,6 @@ static void int340x_thermal_critical(struct thermal_zone_device *zone)
                thermal_zone_device_type(zone));
 }
 
-static inline void *int_to_trip_priv(int i)
-{
-       return (void *)(long)i;
-}
-
-static inline int trip_priv_to_int(const struct thermal_trip *trip)
-{
-       return (long)trip->priv;
-}
-
 static int int340x_thermal_read_trips(struct acpi_device *zone_adev,
                                      struct thermal_trip *zone_trips,
                                      int trip_cnt)
@@ -106,7 +96,7 @@ static int int340x_thermal_read_trips(struct acpi_device *zone_adev,
                        break;
 
                zone_trips[trip_cnt].type = THERMAL_TRIP_ACTIVE;
-               zone_trips[trip_cnt].priv = int_to_trip_priv(i);
+               zone_trips[trip_cnt].priv = THERMAL_INT_TO_TRIP_PRIV(i);
                trip_cnt++;
        }
 
@@ -224,7 +214,7 @@ static int int340x_update_one_trip(struct thermal_trip *trip, void *arg)
                break;
        case THERMAL_TRIP_ACTIVE:
                err = thermal_acpi_active_trip_temp(zone_adev,
-                                                   trip_priv_to_int(trip),
+                                                   THERMAL_TRIP_PRIV_TO_INT(trip->priv),
                                                    &temp);
                break;
        default:
index 5a0b66bd34f0aaf3a8b1493f783c5055cf5645ca..3bd1b361ec348fa2c1d79d95ee96083f4baf111d 100644 (file)
@@ -79,6 +79,9 @@ struct thermal_trip {
 #define THERMAL_TRIP_FLAG_RW   (THERMAL_TRIP_FLAG_RW_TEMP | \
                                 THERMAL_TRIP_FLAG_RW_HYST)
 
+#define THERMAL_TRIP_PRIV_TO_INT(_val_)        (uintptr_t)(_val_)
+#define THERMAL_INT_TO_TRIP_PRIV(_val_)        (void *)(uintptr_t)(_val_)
+
 struct thermal_zone_device;
 
 struct thermal_zone_device_ops {