thermal: streamline get_trend callbacks
The .get_trend callback in struct thermal_zone_device_ops has the prototype: int (*get_trend) (struct thermal_zone_device *, int, enum thermal_trend *); whereas the .get_trend callback in struct thermal_zone_of_device_ops has: int (*get_trend)(void *, long *); Streamline both prototypes and add the trip argument to the OF callback aswell and use enum thermal_trend * instead of an integer pointer. While the OF prototype may be the better one, this should be decided at framework level and not on OF level. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Caesar Wang <wxt@rock-chips.com> Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Cc: linux-pm@vger.kernel.org Reviewed-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
Родитель
826386e731
Коммит
e78eaf4599
|
@ -202,25 +202,11 @@ static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip,
|
|||
enum thermal_trend *trend)
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
long dev_trend;
|
||||
int r;
|
||||
|
||||
if (!data->ops->get_trend)
|
||||
return -EINVAL;
|
||||
|
||||
r = data->ops->get_trend(data->sensor_data, &dev_trend);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
/* TODO: These intervals might have some thresholds, but in core code */
|
||||
if (dev_trend > 0)
|
||||
*trend = THERMAL_TREND_RAISING;
|
||||
else if (dev_trend < 0)
|
||||
*trend = THERMAL_TREND_DROPPING;
|
||||
else
|
||||
*trend = THERMAL_TREND_STABLE;
|
||||
|
||||
return 0;
|
||||
return data->ops->get_trend(data->sensor_data, trip, trend);
|
||||
}
|
||||
|
||||
static int of_thermal_bind(struct thermal_zone_device *thermal,
|
||||
|
|
|
@ -29,13 +29,13 @@ static int tsens_get_temp(void *data, int *temp)
|
|||
return tmdev->ops->get_temp(tmdev, s->id, temp);
|
||||
}
|
||||
|
||||
static int tsens_get_trend(void *data, long *temp)
|
||||
static int tsens_get_trend(void *p, int trip, enum thermal_trend *trend)
|
||||
{
|
||||
const struct tsens_sensor *s = data;
|
||||
const struct tsens_sensor *s = p;
|
||||
struct tsens_device *tmdev = s->tmdev;
|
||||
|
||||
if (tmdev->ops->get_trend)
|
||||
return tmdev->ops->get_trend(tmdev, s->id, temp);
|
||||
return tmdev->ops->get_trend(tmdev, s->id, trend);
|
||||
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#define ONE_PT_CALIB2 0x2
|
||||
#define TWO_PT_CALIB 0x3
|
||||
|
||||
#include <linux/thermal.h>
|
||||
|
||||
struct tsens_device;
|
||||
|
||||
struct tsens_sensor {
|
||||
|
@ -50,7 +52,7 @@ struct tsens_ops {
|
|||
void (*disable)(struct tsens_device *);
|
||||
int (*suspend)(struct tsens_device *);
|
||||
int (*resume)(struct tsens_device *);
|
||||
int (*get_trend)(struct tsens_device *, int, long *);
|
||||
int (*get_trend)(struct tsens_device *, int, enum thermal_trend *);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -239,7 +239,7 @@ static int ti_thermal_get_trip_temp(struct thermal_zone_device *thermal,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __ti_thermal_get_trend(void *p, long *trend)
|
||||
static int __ti_thermal_get_trend(void *p, int trip, enum thermal_trend *trend)
|
||||
{
|
||||
struct ti_thermal_data *data = p;
|
||||
struct ti_bandgap *bgp;
|
||||
|
@ -252,22 +252,6 @@ static int __ti_thermal_get_trend(void *p, long *trend)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
*trend = tr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Get the temperature trend callback functions for thermal zone */
|
||||
static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
|
||||
int trip, enum thermal_trend *trend)
|
||||
{
|
||||
int ret;
|
||||
long tr;
|
||||
|
||||
ret = __ti_thermal_get_trend(thermal->devdata, &tr);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (tr > 0)
|
||||
*trend = THERMAL_TREND_RAISING;
|
||||
else if (tr < 0)
|
||||
|
@ -278,6 +262,13 @@ static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Get the temperature trend callback functions for thermal zone */
|
||||
static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
|
||||
int trip, enum thermal_trend *trend)
|
||||
{
|
||||
return __ti_thermal_get_trend(thermal->devdata, trip, trend);
|
||||
}
|
||||
|
||||
/* Get critical temperature callback functions for thermal zone */
|
||||
static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal,
|
||||
int *temp)
|
||||
|
|
|
@ -350,7 +350,7 @@ struct thermal_genl_event {
|
|||
*/
|
||||
struct thermal_zone_of_device_ops {
|
||||
int (*get_temp)(void *, int *);
|
||||
int (*get_trend)(void *, long *);
|
||||
int (*get_trend)(void *, int, enum thermal_trend *);
|
||||
int (*set_trips)(void *, int, int);
|
||||
int (*set_emul_temp)(void *, int);
|
||||
int (*set_trip_temp)(void *, int, int);
|
||||
|
|
Загрузка…
Ссылка в новой задаче