Message ID | 8282829.T7Z3S40VBb@kreacher (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | thermal: core: Pass trip pointers to governor .throttle() callbacks | expand |
On 06/10/2023 19:41, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Define a new macro for_each_trip() to be used by the thermal core code > and thermal governors for walking trips in a given thermal zone. > > Modify for_each_thermal_trip() to use this macro instead of an open- > coded loop over trips. > > No intentional functional impact. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
On 10/6/23 18:41, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Define a new macro for_each_trip() to be used by the thermal core code > and thermal governors for walking trips in a given thermal zone. > > Modify for_each_thermal_trip() to use this macro instead of an open- > coded loop over trips. > > No intentional functional impact. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/thermal/thermal_core.h | 3 +++ > drivers/thermal/thermal_trip.c | 7 ++++--- > 2 files changed, 7 insertions(+), 3 deletions(-) > > Index: linux-pm/drivers/thermal/thermal_core.h > =================================================================== > --- linux-pm.orig/drivers/thermal/thermal_core.h > +++ linux-pm/drivers/thermal/thermal_core.h > @@ -116,6 +116,9 @@ void __thermal_zone_device_update(struct > enum thermal_notify_event event); > > /* Helpers */ > +#define for_each_trip(__tz, __trip) \ > + for (__trip = __tz->trips; __trip - __tz->trips < __tz->num_trips; __trip++) > + > void __thermal_zone_set_trips(struct thermal_zone_device *tz); > int __thermal_zone_get_trip(struct thermal_zone_device *tz, int trip_id, > struct thermal_trip *trip); > Index: linux-pm/drivers/thermal/thermal_trip.c > =================================================================== > --- linux-pm.orig/drivers/thermal/thermal_trip.c > +++ linux-pm/drivers/thermal/thermal_trip.c > @@ -13,12 +13,13 @@ int for_each_thermal_trip(struct thermal > int (*cb)(struct thermal_trip *, void *), > void *data) > { > - int i, ret; > + struct thermal_trip *trip; > + int ret; > > lockdep_assert_held(&tz->lock); > > - for (i = 0; i < tz->num_trips; i++) { > - ret = cb(&tz->trips[i], data); > + for_each_trip(tz, trip) { > + ret = cb(trip, data); > if (ret) > return ret; > } > > > LGTM Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
On Fri, Oct 20, 2023 at 7:14 PM Lukasz Luba <lukasz.luba@arm.com> wrote: > > > > On 10/6/23 18:41, Rafael J. Wysocki wrote: > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > Define a new macro for_each_trip() to be used by the thermal core code > > and thermal governors for walking trips in a given thermal zone. > > > > Modify for_each_thermal_trip() to use this macro instead of an open- > > coded loop over trips. > > > > No intentional functional impact. > > > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > --- > > drivers/thermal/thermal_core.h | 3 +++ > > drivers/thermal/thermal_trip.c | 7 ++++--- > > 2 files changed, 7 insertions(+), 3 deletions(-) > > > > Index: linux-pm/drivers/thermal/thermal_core.h > > =================================================================== > > --- linux-pm.orig/drivers/thermal/thermal_core.h > > +++ linux-pm/drivers/thermal/thermal_core.h > > @@ -116,6 +116,9 @@ void __thermal_zone_device_update(struct > > enum thermal_notify_event event); > > > > /* Helpers */ > > +#define for_each_trip(__tz, __trip) \ > > + for (__trip = __tz->trips; __trip - __tz->trips < __tz->num_trips; __trip++) > > + > > void __thermal_zone_set_trips(struct thermal_zone_device *tz); > > int __thermal_zone_get_trip(struct thermal_zone_device *tz, int trip_id, > > struct thermal_trip *trip); > > Index: linux-pm/drivers/thermal/thermal_trip.c > > =================================================================== > > --- linux-pm.orig/drivers/thermal/thermal_trip.c > > +++ linux-pm/drivers/thermal/thermal_trip.c > > @@ -13,12 +13,13 @@ int for_each_thermal_trip(struct thermal > > int (*cb)(struct thermal_trip *, void *), > > void *data) > > { > > - int i, ret; > > + struct thermal_trip *trip; > > + int ret; > > > > lockdep_assert_held(&tz->lock); > > > > - for (i = 0; i < tz->num_trips; i++) { > > - ret = cb(&tz->trips[i], data); > > + for_each_trip(tz, trip) { > > + ret = cb(trip, data); > > if (ret) > > return ret; > > } > > > > > > > > LGTM > > Reviewed-by: Lukasz Luba <lukasz.luba@arm.com> Thanks!
Index: linux-pm/drivers/thermal/thermal_core.h =================================================================== --- linux-pm.orig/drivers/thermal/thermal_core.h +++ linux-pm/drivers/thermal/thermal_core.h @@ -116,6 +116,9 @@ void __thermal_zone_device_update(struct enum thermal_notify_event event); /* Helpers */ +#define for_each_trip(__tz, __trip) \ + for (__trip = __tz->trips; __trip - __tz->trips < __tz->num_trips; __trip++) + void __thermal_zone_set_trips(struct thermal_zone_device *tz); int __thermal_zone_get_trip(struct thermal_zone_device *tz, int trip_id, struct thermal_trip *trip); Index: linux-pm/drivers/thermal/thermal_trip.c =================================================================== --- linux-pm.orig/drivers/thermal/thermal_trip.c +++ linux-pm/drivers/thermal/thermal_trip.c @@ -13,12 +13,13 @@ int for_each_thermal_trip(struct thermal int (*cb)(struct thermal_trip *, void *), void *data) { - int i, ret; + struct thermal_trip *trip; + int ret; lockdep_assert_held(&tz->lock); - for (i = 0; i < tz->num_trips; i++) { - ret = cb(&tz->trips[i], data); + for_each_trip(tz, trip) { + ret = cb(trip, data); if (ret) return ret; }