diff options
Diffstat (limited to 'target/linux/mediatek/patches/0010-thermal-consistently-use-int-for-temperatures.patch')
-rw-r--r-- | target/linux/mediatek/patches/0010-thermal-consistently-use-int-for-temperatures.patch | 1155 |
1 files changed, 1155 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches/0010-thermal-consistently-use-int-for-temperatures.patch b/target/linux/mediatek/patches/0010-thermal-consistently-use-int-for-temperatures.patch new file mode 100644 index 0000000..2aa83ab --- /dev/null +++ b/target/linux/mediatek/patches/0010-thermal-consistently-use-int-for-temperatures.patch @@ -0,0 +1,1155 @@ +From 29e6031548373b9e7ec0c17e85da6a4cf4fee7f5 Mon Sep 17 00:00:00 2001 +From: Sascha Hauer <s.hauer@pengutronix.de> +Date: Wed, 13 May 2015 10:52:29 +0200 +Subject: [PATCH 10/76] thermal: consistently use int for temperatures + +The thermal code uses int, long and unsigned long for temperatures +in different places. Using an unsigned type limits the thermal framework +to positive temperatures without need. 'long' is 64bit on several +architectures which is not needed. Consistently use a plain 'int' +for temperatures. + +Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> +--- + drivers/acpi/thermal.c | 12 ++++----- + drivers/hwmon/lm75.c | 2 +- + drivers/hwmon/ntc_thermistor.c | 2 +- + drivers/hwmon/tmp102.c | 2 +- + drivers/input/touchscreen/sun4i-ts.c | 8 +++--- + drivers/platform/x86/acerhdf.c | 9 +++---- + drivers/power/power_supply_core.c | 2 +- + drivers/thermal/armada_thermal.c | 2 +- + drivers/thermal/db8500_thermal.c | 7 +++-- + drivers/thermal/dove_thermal.c | 2 +- + drivers/thermal/fair_share.c | 2 +- + drivers/thermal/gov_bang_bang.c | 5 ++-- + drivers/thermal/imx_thermal.c | 27 ++++++++++---------- + .../thermal/int340x_thermal/int340x_thermal_zone.c | 10 ++++---- + .../thermal/int340x_thermal/int340x_thermal_zone.h | 8 +++--- + drivers/thermal/intel_soc_dts_thermal.c | 7 +++-- + drivers/thermal/of-thermal.c | 14 +++++----- + drivers/thermal/rcar_thermal.c | 7 +++-- + drivers/thermal/rockchip_thermal.c | 10 ++++---- + drivers/thermal/samsung/exynos_tmu.c | 19 +++++++------- + drivers/thermal/spear_thermal.c | 2 +- + drivers/thermal/st/st_thermal.c | 5 ++-- + drivers/thermal/step_wise.c | 4 +-- + drivers/thermal/tegra_soctherm.c | 4 +-- + drivers/thermal/thermal_core.c | 26 +++++++++---------- + drivers/thermal/thermal_hwmon.c | 10 ++++---- + drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 10 ++++---- + drivers/thermal/x86_pkg_temp_thermal.c | 10 ++++---- + include/linux/thermal.h | 26 ++++++++----------- + 29 files changed, 120 insertions(+), 134 deletions(-) + +diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c +index d24fa19..68bff60 100644 +--- a/drivers/acpi/thermal.c ++++ b/drivers/acpi/thermal.c +@@ -529,8 +529,7 @@ static void acpi_thermal_check(void *data) + + /* sys I/F for generic thermal sysfs support */ + +-static int thermal_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp) + { + struct acpi_thermal *tz = thermal->devdata; + int result; +@@ -637,7 +636,7 @@ static int thermal_get_trip_type(struct thermal_zone_device *thermal, + } + + static int thermal_get_trip_temp(struct thermal_zone_device *thermal, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct acpi_thermal *tz = thermal->devdata; + int i; +@@ -690,7 +689,8 @@ static int thermal_get_trip_temp(struct thermal_zone_device *thermal, + } + + static int thermal_get_crit_temp(struct thermal_zone_device *thermal, +- unsigned long *temperature) { ++ int *temperature) ++{ + struct acpi_thermal *tz = thermal->devdata; + + if (tz->trips.critical.flags.valid) { +@@ -713,8 +713,8 @@ static int thermal_get_trend(struct thermal_zone_device *thermal, + return -EINVAL; + + if (type == THERMAL_TRIP_ACTIVE) { +- unsigned long trip_temp; +- unsigned long temp = DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET( ++ int trip_temp; ++ int temp = DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET( + tz->temperature, tz->kelvin_offset); + if (thermal_get_trip_temp(thermal, trip, &trip_temp)) + return -EINVAL; +diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c +index fe41d5a..e4e57bb 100644 +--- a/drivers/hwmon/lm75.c ++++ b/drivers/hwmon/lm75.c +@@ -104,7 +104,7 @@ static inline long lm75_reg_to_mc(s16 temp, u8 resolution) + + /* sysfs attributes for hwmon */ + +-static int lm75_read_temp(void *dev, long *temp) ++static int lm75_read_temp(void *dev, int *temp) + { + struct lm75_data *data = lm75_update_device(dev); + +diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c +index 6880011..3d9eab9 100644 +--- a/drivers/hwmon/ntc_thermistor.c ++++ b/drivers/hwmon/ntc_thermistor.c +@@ -439,7 +439,7 @@ static int ntc_thermistor_get_ohm(struct ntc_data *data) + return -EINVAL; + } + +-static int ntc_read_temp(void *dev, long *temp) ++static int ntc_read_temp(void *dev, int *temp) + { + struct ntc_data *data = dev_get_drvdata(dev); + int ohm; +diff --git a/drivers/hwmon/tmp102.c b/drivers/hwmon/tmp102.c +index 9da2735..6548262 100644 +--- a/drivers/hwmon/tmp102.c ++++ b/drivers/hwmon/tmp102.c +@@ -98,7 +98,7 @@ static struct tmp102 *tmp102_update_device(struct device *dev) + return tmp102; + } + +-static int tmp102_read_temp(void *dev, long *temp) ++static int tmp102_read_temp(void *dev, int *temp) + { + struct tmp102 *tmp102 = tmp102_update_device(dev); + +diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c +index c011699..4857943 100644 +--- a/drivers/input/touchscreen/sun4i-ts.c ++++ b/drivers/input/touchscreen/sun4i-ts.c +@@ -191,7 +191,7 @@ static void sun4i_ts_close(struct input_dev *dev) + writel(TEMP_IRQ_EN(1), ts->base + TP_INT_FIFOC); + } + +-static int sun4i_get_temp(const struct sun4i_ts_data *ts, long *temp) ++static int sun4i_get_temp(const struct sun4i_ts_data *ts, int *temp) + { + /* No temp_data until the first irq */ + if (ts->temp_data == -1) +@@ -202,7 +202,7 @@ static int sun4i_get_temp(const struct sun4i_ts_data *ts, long *temp) + return 0; + } + +-static int sun4i_get_tz_temp(void *data, long *temp) ++static int sun4i_get_tz_temp(void *data, int *temp) + { + return sun4i_get_temp(data, temp); + } +@@ -215,14 +215,14 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *devattr, + char *buf) + { + struct sun4i_ts_data *ts = dev_get_drvdata(dev); +- long temp; ++ int temp; + int error; + + error = sun4i_get_temp(ts, &temp); + if (error) + return error; + +- return sprintf(buf, "%ld\n", temp); ++ return sprintf(buf, "%d\n", temp); + } + + static ssize_t show_temp_label(struct device *dev, +diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c +index 594c918..f2ce63c 100644 +--- a/drivers/platform/x86/acerhdf.c ++++ b/drivers/platform/x86/acerhdf.c +@@ -346,8 +346,7 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal) + * as late as the polling interval is since we can't do that in the respective + * accessors of the module parameters. + */ +-static int acerhdf_get_ec_temp(struct thermal_zone_device *thermal, +- unsigned long *t) ++static int acerhdf_get_ec_temp(struct thermal_zone_device *thermal, int *t) + { + int temp, err = 0; + +@@ -452,7 +451,7 @@ static int acerhdf_get_trip_type(struct thermal_zone_device *thermal, int trip, + } + + static int acerhdf_get_trip_hyst(struct thermal_zone_device *thermal, int trip, +- unsigned long *temp) ++ int *temp) + { + if (trip != 0) + return -EINVAL; +@@ -463,7 +462,7 @@ static int acerhdf_get_trip_hyst(struct thermal_zone_device *thermal, int trip, + } + + static int acerhdf_get_trip_temp(struct thermal_zone_device *thermal, int trip, +- unsigned long *temp) ++ int *temp) + { + if (trip == 0) + *temp = fanon; +@@ -476,7 +475,7 @@ static int acerhdf_get_trip_temp(struct thermal_zone_device *thermal, int trip, + } + + static int acerhdf_get_crit_temp(struct thermal_zone_device *thermal, +- unsigned long *temperature) ++ int *temperature) + { + *temperature = ACERHDF_TEMP_CRIT; + return 0; +diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c +index 2ed4a4a..87e2fd1 100644 +--- a/drivers/power/power_supply_core.c ++++ b/drivers/power/power_supply_core.c +@@ -492,7 +492,7 @@ EXPORT_SYMBOL_GPL(power_supply_unreg_notifier); + + #ifdef CONFIG_THERMAL + static int power_supply_read_temp(struct thermal_zone_device *tzd, +- unsigned long *temp) ++ int *temp) + { + struct power_supply *psy; + union power_supply_propval val; +diff --git a/drivers/thermal/armada_thermal.c b/drivers/thermal/armada_thermal.c +index 01255fd..26b8d32 100644 +--- a/drivers/thermal/armada_thermal.c ++++ b/drivers/thermal/armada_thermal.c +@@ -155,7 +155,7 @@ static bool armada_is_valid(struct armada_thermal_priv *priv) + } + + static int armada_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + struct armada_thermal_priv *priv = thermal->devdata; + unsigned long reg; +diff --git a/drivers/thermal/db8500_thermal.c b/drivers/thermal/db8500_thermal.c +index 20adfbe..b3eca71 100644 +--- a/drivers/thermal/db8500_thermal.c ++++ b/drivers/thermal/db8500_thermal.c +@@ -107,8 +107,7 @@ static int db8500_cdev_unbind(struct thermal_zone_device *thermal, + } + + /* Callback to get current temperature */ +-static int db8500_sys_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++static int db8500_sys_get_temp(struct thermal_zone_device *thermal, int *temp) + { + struct db8500_thermal_zone *pzone = thermal->devdata; + +@@ -180,7 +179,7 @@ static int db8500_sys_get_trip_type(struct thermal_zone_device *thermal, + + /* Callback to get trip point temperature */ + static int db8500_sys_get_trip_temp(struct thermal_zone_device *thermal, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct db8500_thermal_zone *pzone = thermal->devdata; + struct db8500_thsens_platform_data *ptrips = pzone->trip_tab; +@@ -195,7 +194,7 @@ static int db8500_sys_get_trip_temp(struct thermal_zone_device *thermal, + + /* Callback to get critical trip point temperature */ + static int db8500_sys_get_crit_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + struct db8500_thermal_zone *pzone = thermal->devdata; + struct db8500_thsens_platform_data *ptrips = pzone->trip_tab; +diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c +index 09f6e30..a0bc9de 100644 +--- a/drivers/thermal/dove_thermal.c ++++ b/drivers/thermal/dove_thermal.c +@@ -93,7 +93,7 @@ static int dove_init_sensor(const struct dove_thermal_priv *priv) + } + + static int dove_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + unsigned long reg; + struct dove_thermal_priv *priv = thermal->devdata; +diff --git a/drivers/thermal/fair_share.c b/drivers/thermal/fair_share.c +index 6e0a3fb..efad70e 100644 +--- a/drivers/thermal/fair_share.c ++++ b/drivers/thermal/fair_share.c +@@ -34,7 +34,7 @@ + static int get_trip_level(struct thermal_zone_device *tz) + { + int count = 0; +- unsigned long trip_temp; ++ int trip_temp; + enum thermal_trip_type trip_type; + + if (tz->trips == 0 || !tz->ops->get_trip_temp) +diff --git a/drivers/thermal/gov_bang_bang.c b/drivers/thermal/gov_bang_bang.c +index c5dd76b..70836c5 100644 +--- a/drivers/thermal/gov_bang_bang.c ++++ b/drivers/thermal/gov_bang_bang.c +@@ -25,14 +25,13 @@ + + static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) + { +- long trip_temp; +- unsigned long trip_hyst; ++ int trip_temp, trip_hyst; + struct thermal_instance *instance; + + tz->ops->get_trip_temp(tz, trip, &trip_temp); + tz->ops->get_trip_hyst(tz, trip, &trip_hyst); + +- dev_dbg(&tz->device, "Trip%d[temp=%ld]:temp=%d:hyst=%ld\n", ++ dev_dbg(&tz->device, "Trip%d[temp=%d]:temp=%d:hyst=%d\n", + trip, trip_temp, tz->temperature, + trip_hyst); + +diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c +index 2ccbc07..f1424f0 100644 +--- a/drivers/thermal/imx_thermal.c ++++ b/drivers/thermal/imx_thermal.c +@@ -98,10 +98,10 @@ struct imx_thermal_data { + enum thermal_device_mode mode; + struct regmap *tempmon; + u32 c1, c2; /* See formula in imx_get_sensor_data() */ +- unsigned long temp_passive; +- unsigned long temp_critical; +- unsigned long alarm_temp; +- unsigned long last_temp; ++ int temp_passive; ++ int temp_critical; ++ int alarm_temp; ++ int last_temp; + bool irq_enabled; + int irq; + struct clk *thermal_clk; +@@ -109,7 +109,7 @@ struct imx_thermal_data { + }; + + static void imx_set_panic_temp(struct imx_thermal_data *data, +- signed long panic_temp) ++ int panic_temp) + { + struct regmap *map = data->tempmon; + int critical_value; +@@ -121,7 +121,7 @@ static void imx_set_panic_temp(struct imx_thermal_data *data, + } + + static void imx_set_alarm_temp(struct imx_thermal_data *data, +- signed long alarm_temp) ++ int alarm_temp) + { + struct regmap *map = data->tempmon; + int alarm_value; +@@ -133,7 +133,7 @@ static void imx_set_alarm_temp(struct imx_thermal_data *data, + TEMPSENSE0_ALARM_VALUE_SHIFT); + } + +-static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp) ++static int imx_get_temp(struct thermal_zone_device *tz, int *temp) + { + struct imx_thermal_data *data = tz->devdata; + struct regmap *map = data->tempmon; +@@ -189,13 +189,13 @@ static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp) + if (data->alarm_temp == data->temp_critical && + *temp < data->temp_passive) { + imx_set_alarm_temp(data, data->temp_passive); +- dev_dbg(&tz->device, "thermal alarm off: T < %lu\n", ++ dev_dbg(&tz->device, "thermal alarm off: T < %d\n", + data->alarm_temp / 1000); + } + } + + if (*temp != data->last_temp) { +- dev_dbg(&tz->device, "millicelsius: %ld\n", *temp); ++ dev_dbg(&tz->device, "millicelsius: %d\n", *temp); + data->last_temp = *temp; + } + +@@ -262,8 +262,7 @@ static int imx_get_trip_type(struct thermal_zone_device *tz, int trip, + return 0; + } + +-static int imx_get_crit_temp(struct thermal_zone_device *tz, +- unsigned long *temp) ++static int imx_get_crit_temp(struct thermal_zone_device *tz, int *temp) + { + struct imx_thermal_data *data = tz->devdata; + +@@ -272,7 +271,7 @@ static int imx_get_crit_temp(struct thermal_zone_device *tz, + } + + static int imx_get_trip_temp(struct thermal_zone_device *tz, int trip, +- unsigned long *temp) ++ int *temp) + { + struct imx_thermal_data *data = tz->devdata; + +@@ -282,7 +281,7 @@ static int imx_get_trip_temp(struct thermal_zone_device *tz, int trip, + } + + static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip, +- unsigned long temp) ++ int temp) + { + struct imx_thermal_data *data = tz->devdata; + +@@ -433,7 +432,7 @@ static irqreturn_t imx_thermal_alarm_irq_thread(int irq, void *dev) + { + struct imx_thermal_data *data = dev; + +- dev_dbg(&data->tz->device, "THERMAL ALARM: T > %lu\n", ++ dev_dbg(&data->tz->device, "THERMAL ALARM: T > %d\n", + data->alarm_temp / 1000); + + thermal_zone_device_update(data->tz); +diff --git a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c +index 1e25133..b9b2666 100644 +--- a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c ++++ b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c +@@ -20,7 +20,7 @@ + #include "int340x_thermal_zone.h" + + static int int340x_thermal_get_zone_temp(struct thermal_zone_device *zone, +- unsigned long *temp) ++ int *temp) + { + struct int34x_thermal_zone *d = zone->devdata; + unsigned long long tmp; +@@ -49,7 +49,7 @@ static int int340x_thermal_get_zone_temp(struct thermal_zone_device *zone, + } + + static int int340x_thermal_get_trip_temp(struct thermal_zone_device *zone, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct int34x_thermal_zone *d = zone->devdata; + int i; +@@ -114,7 +114,7 @@ static int int340x_thermal_get_trip_type(struct thermal_zone_device *zone, + } + + static int int340x_thermal_set_trip_temp(struct thermal_zone_device *zone, +- int trip, unsigned long temp) ++ int trip, int temp) + { + struct int34x_thermal_zone *d = zone->devdata; + acpi_status status; +@@ -136,7 +136,7 @@ static int int340x_thermal_set_trip_temp(struct thermal_zone_device *zone, + + + static int int340x_thermal_get_trip_hyst(struct thermal_zone_device *zone, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct int34x_thermal_zone *d = zone->devdata; + acpi_status status; +@@ -163,7 +163,7 @@ static struct thermal_zone_device_ops int340x_thermal_zone_ops = { + }; + + static int int340x_thermal_get_trip_config(acpi_handle handle, char *name, +- unsigned long *temp) ++ int *temp) + { + unsigned long long r; + acpi_status status; +diff --git a/drivers/thermal/int340x_thermal/int340x_thermal_zone.h b/drivers/thermal/int340x_thermal/int340x_thermal_zone.h +index 9f38ab7..aaadf72 100644 +--- a/drivers/thermal/int340x_thermal/int340x_thermal_zone.h ++++ b/drivers/thermal/int340x_thermal/int340x_thermal_zone.h +@@ -21,7 +21,7 @@ + #define INT340X_THERMAL_MAX_ACT_TRIP_COUNT 10 + + struct active_trip { +- unsigned long temp; ++ int temp; + int id; + bool valid; + }; +@@ -31,11 +31,11 @@ struct int34x_thermal_zone { + struct active_trip act_trips[INT340X_THERMAL_MAX_ACT_TRIP_COUNT]; + unsigned long *aux_trips; + int aux_trip_nr; +- unsigned long psv_temp; ++ int psv_temp; + int psv_trip_id; +- unsigned long crt_temp; ++ int crt_temp; + int crt_trip_id; +- unsigned long hot_temp; ++ int hot_temp; + int hot_trip_id; + struct thermal_zone_device *zone; + struct thermal_zone_device_ops *override_ops; +diff --git a/drivers/thermal/intel_soc_dts_thermal.c b/drivers/thermal/intel_soc_dts_thermal.c +index 9013505..fd550b9 100644 +--- a/drivers/thermal/intel_soc_dts_thermal.c ++++ b/drivers/thermal/intel_soc_dts_thermal.c +@@ -106,7 +106,7 @@ err_ret: + } + + static int sys_get_trip_temp(struct thermal_zone_device *tzd, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + int status; + u32 out; +@@ -224,7 +224,7 @@ err_restore_ptps: + } + + static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, +- unsigned long temp) ++ int temp) + { + struct soc_sensor_entry *aux_entry = tzd->devdata; + int status; +@@ -250,8 +250,7 @@ static int sys_get_trip_type(struct thermal_zone_device *thermal, + return 0; + } + +-static int sys_get_curr_temp(struct thermal_zone_device *tzd, +- unsigned long *temp) ++static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) + { + int status; + u32 out; +diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c +index 668fb1b..03839df 100644 +--- a/drivers/thermal/of-thermal.c ++++ b/drivers/thermal/of-thermal.c +@@ -87,7 +87,7 @@ struct __thermal_zone { + /*** DT thermal zone device callbacks ***/ + + static int of_thermal_get_temp(struct thermal_zone_device *tz, +- unsigned long *temp) ++ int *temp) + { + struct __thermal_zone *data = tz->devdata; + +@@ -173,7 +173,7 @@ EXPORT_SYMBOL_GPL(of_thermal_get_trip_points); + * Return: zero on success, error code otherwise + */ + static int of_thermal_set_emul_temp(struct thermal_zone_device *tz, +- unsigned long temp) ++ int temp) + { + struct __thermal_zone *data = tz->devdata; + +@@ -306,7 +306,7 @@ static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip, + } + + static int of_thermal_get_trip_temp(struct thermal_zone_device *tz, int trip, +- unsigned long *temp) ++ int *temp) + { + struct __thermal_zone *data = tz->devdata; + +@@ -319,7 +319,7 @@ static int of_thermal_get_trip_temp(struct thermal_zone_device *tz, int trip, + } + + static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip, +- unsigned long temp) ++ int temp) + { + struct __thermal_zone *data = tz->devdata; + +@@ -333,7 +333,7 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip, + } + + static int of_thermal_get_trip_hyst(struct thermal_zone_device *tz, int trip, +- unsigned long *hyst) ++ int *hyst) + { + struct __thermal_zone *data = tz->devdata; + +@@ -346,7 +346,7 @@ static int of_thermal_get_trip_hyst(struct thermal_zone_device *tz, int trip, + } + + static int of_thermal_set_trip_hyst(struct thermal_zone_device *tz, int trip, +- unsigned long hyst) ++ int hyst) + { + struct __thermal_zone *data = tz->devdata; + +@@ -360,7 +360,7 @@ static int of_thermal_set_trip_hyst(struct thermal_zone_device *tz, int trip, + } + + static int of_thermal_get_crit_temp(struct thermal_zone_device *tz, +- unsigned long *temp) ++ int *temp) + { + struct __thermal_zone *data = tz->devdata; + int i; +diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c +index fe4e767..5d4ae7d 100644 +--- a/drivers/thermal/rcar_thermal.c ++++ b/drivers/thermal/rcar_thermal.c +@@ -200,8 +200,7 @@ err_out_unlock: + return ret; + } + +-static int rcar_thermal_get_temp(struct thermal_zone_device *zone, +- unsigned long *temp) ++static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) + { + struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + +@@ -235,7 +234,7 @@ static int rcar_thermal_get_trip_type(struct thermal_zone_device *zone, + } + + static int rcar_thermal_get_trip_temp(struct thermal_zone_device *zone, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + struct device *dev = rcar_priv_to_dev(priv); +@@ -299,7 +298,7 @@ static void _rcar_thermal_irq_ctrl(struct rcar_thermal_priv *priv, int enable) + static void rcar_thermal_work(struct work_struct *work) + { + struct rcar_thermal_priv *priv; +- unsigned long cctemp, nctemp; ++ int cctemp, nctemp; + + priv = container_of(work, struct rcar_thermal_priv, work.work); + +diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c +index cd8f5f93..c89ffb2 100644 +--- a/drivers/thermal/rockchip_thermal.c ++++ b/drivers/thermal/rockchip_thermal.c +@@ -64,7 +64,7 @@ struct rockchip_tsadc_chip { + void (*control)(void __iomem *reg, bool on); + + /* Per-sensor methods */ +- int (*get_temp)(int chn, void __iomem *reg, long *temp); ++ int (*get_temp)(int chn, void __iomem *reg, int *temp); + void (*set_tshut_temp)(int chn, void __iomem *reg, long temp); + void (*set_tshut_mode)(int chn, void __iomem *reg, enum tshut_mode m); + }; +@@ -191,7 +191,7 @@ static u32 rk_tsadcv2_temp_to_code(long temp) + return 0; + } + +-static long rk_tsadcv2_code_to_temp(u32 code) ++static int rk_tsadcv2_code_to_temp(u32 code) + { + unsigned int low = 0; + unsigned int high = ARRAY_SIZE(v2_code_table) - 1; +@@ -277,7 +277,7 @@ static void rk_tsadcv2_control(void __iomem *regs, bool enable) + writel_relaxed(val, regs + TSADCV2_AUTO_CON); + } + +-static int rk_tsadcv2_get_temp(int chn, void __iomem *regs, long *temp) ++static int rk_tsadcv2_get_temp(int chn, void __iomem *regs, int *temp) + { + u32 val; + +@@ -366,7 +366,7 @@ static irqreturn_t rockchip_thermal_alarm_irq_thread(int irq, void *dev) + return IRQ_HANDLED; + } + +-static int rockchip_thermal_get_temp(void *_sensor, long *out_temp) ++static int rockchip_thermal_get_temp(void *_sensor, int *out_temp) + { + struct rockchip_thermal_sensor *sensor = _sensor; + struct rockchip_thermal_data *thermal = sensor->thermal; +@@ -374,7 +374,7 @@ static int rockchip_thermal_get_temp(void *_sensor, long *out_temp) + int retval; + + retval = tsadc->get_temp(sensor->id, thermal->regs, out_temp); +- dev_dbg(&thermal->pdev->dev, "sensor %d - temp: %ld, retval: %d\n", ++ dev_dbg(&thermal->pdev->dev, "sensor %d - temp: %d, retval: %d\n", + sensor->id, *out_temp, retval); + + return retval; +diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c +index 1d30b09..29eaf4d 100644 +--- a/drivers/thermal/samsung/exynos_tmu.c ++++ b/drivers/thermal/samsung/exynos_tmu.c +@@ -181,8 +181,7 @@ struct exynos_tmu_data { + int (*tmu_initialize)(struct platform_device *pdev); + void (*tmu_control)(struct platform_device *pdev, bool on); + int (*tmu_read)(struct exynos_tmu_data *data); +- void (*tmu_set_emulation)(struct exynos_tmu_data *data, +- unsigned long temp); ++ void (*tmu_set_emulation)(struct exynos_tmu_data *data, int temp); + void (*tmu_clear_irqs)(struct exynos_tmu_data *data); + }; + +@@ -190,7 +189,7 @@ static void exynos_report_trigger(struct exynos_tmu_data *p) + { + char data[10], *envp[] = { data, NULL }; + struct thermal_zone_device *tz = p->tzd; +- unsigned long temp; ++ int temp; + unsigned int i; + + if (!tz) { +@@ -489,7 +488,7 @@ static int exynos5440_tmu_initialize(struct platform_device *pdev) + struct exynos_tmu_data *data = platform_get_drvdata(pdev); + unsigned int trim_info = 0, con, rising_threshold; + int ret = 0, threshold_code; +- unsigned long crit_temp = 0; ++ int crit_temp = 0; + + /* + * For exynos5440 soc triminfo value is swapped between TMU0 and +@@ -542,7 +541,7 @@ static int exynos7_tmu_initialize(struct platform_device *pdev) + unsigned int status, trim_info; + unsigned int rising_threshold = 0, falling_threshold = 0; + int ret = 0, threshold_code, i; +- unsigned long temp, temp_hist; ++ int temp, temp_hist; + unsigned int reg_off, bit_off; + + status = readb(data->base + EXYNOS_TMU_REG_STATUS); +@@ -713,7 +712,7 @@ static void exynos7_tmu_control(struct platform_device *pdev, bool on) + writel(con, data->base + EXYNOS_TMU_REG_CONTROL); + } + +-static int exynos_get_temp(void *p, long *temp) ++static int exynos_get_temp(void *p, int *temp) + { + struct exynos_tmu_data *data = p; + +@@ -733,7 +732,7 @@ static int exynos_get_temp(void *p, long *temp) + + #ifdef CONFIG_THERMAL_EMULATION + static u32 get_emul_con_reg(struct exynos_tmu_data *data, unsigned int val, +- unsigned long temp) ++ int temp) + { + if (temp) { + temp /= MCELSIUS; +@@ -763,7 +762,7 @@ static u32 get_emul_con_reg(struct exynos_tmu_data *data, unsigned int val, + } + + static void exynos4412_tmu_set_emulation(struct exynos_tmu_data *data, +- unsigned long temp) ++ int temp) + { + unsigned int val; + u32 emul_con; +@@ -781,7 +780,7 @@ static void exynos4412_tmu_set_emulation(struct exynos_tmu_data *data, + } + + static void exynos5440_tmu_set_emulation(struct exynos_tmu_data *data, +- unsigned long temp) ++ int temp) + { + unsigned int val; + +@@ -790,7 +789,7 @@ static void exynos5440_tmu_set_emulation(struct exynos_tmu_data *data, + writel(val, data->base + EXYNOS5440_TMU_S0_7_DEBUG); + } + +-static int exynos_tmu_set_emulation(void *drv_data, unsigned long temp) ++static int exynos_tmu_set_emulation(void *drv_data, int temp) + { + struct exynos_tmu_data *data = drv_data; + int ret = -EINVAL; +diff --git a/drivers/thermal/spear_thermal.c b/drivers/thermal/spear_thermal.c +index bddb717..534dd91 100644 +--- a/drivers/thermal/spear_thermal.c ++++ b/drivers/thermal/spear_thermal.c +@@ -38,7 +38,7 @@ struct spear_thermal_dev { + }; + + static inline int thermal_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + struct spear_thermal_dev *stdev = thermal->devdata; + +diff --git a/drivers/thermal/st/st_thermal.c b/drivers/thermal/st/st_thermal.c +index 76c515d..44cbba9 100644 +--- a/drivers/thermal/st/st_thermal.c ++++ b/drivers/thermal/st/st_thermal.c +@@ -111,8 +111,7 @@ static int st_thermal_calibration(struct st_thermal_sensor *sensor) + } + + /* Callback to get temperature from HW*/ +-static int st_thermal_get_temp(struct thermal_zone_device *th, +- unsigned long *temperature) ++static int st_thermal_get_temp(struct thermal_zone_device *th, int *temperature) + { + struct st_thermal_sensor *sensor = th->devdata; + struct device *dev = sensor->dev; +@@ -159,7 +158,7 @@ static int st_thermal_get_trip_type(struct thermal_zone_device *th, + } + + static int st_thermal_get_trip_temp(struct thermal_zone_device *th, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + struct st_thermal_sensor *sensor = th->devdata; + struct device *dev = sensor->dev; +diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c +index 5a0f12d..2f9f708 100644 +--- a/drivers/thermal/step_wise.c ++++ b/drivers/thermal/step_wise.c +@@ -113,7 +113,7 @@ static void update_passive_instance(struct thermal_zone_device *tz, + + static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) + { +- long trip_temp; ++ int trip_temp; + enum thermal_trip_type trip_type; + enum thermal_trend trend; + struct thermal_instance *instance; +@@ -135,7 +135,7 @@ static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) + trace_thermal_zone_trip(tz, trip, trip_type); + } + +- dev_dbg(&tz->device, "Trip%d[type=%d,temp=%ld]:trend=%d,throttle=%d\n", ++ dev_dbg(&tz->device, "Trip%d[type=%d,temp=%d]:trend=%d,throttle=%d\n", + trip, trip_type, trip_temp, trend, throttle); + + mutex_lock(&tz->lock); +diff --git a/drivers/thermal/tegra_soctherm.c b/drivers/thermal/tegra_soctherm.c +index 9197fc0..74ea576 100644 +--- a/drivers/thermal/tegra_soctherm.c ++++ b/drivers/thermal/tegra_soctherm.c +@@ -293,7 +293,7 @@ static int enable_tsensor(struct tegra_soctherm *tegra, + * H denotes an addition of 0.5 Celsius and N denotes negation + * of the final value. + */ +-static long translate_temp(u16 val) ++static int translate_temp(u16 val) + { + long t; + +@@ -306,7 +306,7 @@ static long translate_temp(u16 val) + return t; + } + +-static int tegra_thermctl_get_temp(void *data, long *out_temp) ++static int tegra_thermctl_get_temp(void *data, int *out_temp) + { + struct tegra_thermctl_zone *zone = data; + u32 val; +diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c +index 4108db7..62cc82a 100644 +--- a/drivers/thermal/thermal_core.c ++++ b/drivers/thermal/thermal_core.c +@@ -363,7 +363,7 @@ static void handle_non_critical_trips(struct thermal_zone_device *tz, + static void handle_critical_trips(struct thermal_zone_device *tz, + int trip, enum thermal_trip_type trip_type) + { +- long trip_temp; ++ int trip_temp; + + tz->ops->get_trip_temp(tz, trip, &trip_temp); + +@@ -411,12 +411,12 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip) + * + * Return: On success returns 0, an error code otherwise + */ +-int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long *temp) ++int thermal_zone_get_temp(struct thermal_zone_device *tz, int *temp) + { + int ret = -EINVAL; + #ifdef CONFIG_THERMAL_EMULATION + int count; +- unsigned long crit_temp = -1UL; ++ int crit_temp = INT_MAX; + enum thermal_trip_type type; + #endif + +@@ -453,8 +453,7 @@ EXPORT_SYMBOL_GPL(thermal_zone_get_temp); + + static void update_temperature(struct thermal_zone_device *tz) + { +- long temp; +- int ret; ++ int temp, ret; + + ret = thermal_zone_get_temp(tz, &temp); + if (ret) { +@@ -514,15 +513,14 @@ static ssize_t + temp_show(struct device *dev, struct device_attribute *attr, char *buf) + { + struct thermal_zone_device *tz = to_thermal_zone(dev); +- long temperature; +- int ret; ++ int temperature, ret; + + ret = thermal_zone_get_temp(tz, &temperature); + + if (ret) + return ret; + +- return sprintf(buf, "%ld\n", temperature); ++ return sprintf(buf, "%d\n", temperature); + } + + static ssize_t +@@ -626,7 +624,7 @@ trip_point_temp_show(struct device *dev, struct device_attribute *attr, + { + struct thermal_zone_device *tz = to_thermal_zone(dev); + int trip, ret; +- long temperature; ++ int temperature; + + if (!tz->ops->get_trip_temp) + return -EPERM; +@@ -639,7 +637,7 @@ trip_point_temp_show(struct device *dev, struct device_attribute *attr, + if (ret) + return ret; + +- return sprintf(buf, "%ld\n", temperature); ++ return sprintf(buf, "%d\n", temperature); + } + + static ssize_t +@@ -648,7 +646,7 @@ trip_point_hyst_store(struct device *dev, struct device_attribute *attr, + { + struct thermal_zone_device *tz = to_thermal_zone(dev); + int trip, ret; +- unsigned long temperature; ++ int temperature; + + if (!tz->ops->set_trip_hyst) + return -EPERM; +@@ -656,7 +654,7 @@ trip_point_hyst_store(struct device *dev, struct device_attribute *attr, + if (!sscanf(attr->attr.name, "trip_point_%d_hyst", &trip)) + return -EINVAL; + +- if (kstrtoul(buf, 10, &temperature)) ++ if (kstrtoint(buf, 10, &temperature)) + return -EINVAL; + + /* +@@ -675,7 +673,7 @@ trip_point_hyst_show(struct device *dev, struct device_attribute *attr, + { + struct thermal_zone_device *tz = to_thermal_zone(dev); + int trip, ret; +- unsigned long temperature; ++ int temperature; + + if (!tz->ops->get_trip_hyst) + return -EPERM; +@@ -685,7 +683,7 @@ trip_point_hyst_show(struct device *dev, struct device_attribute *attr, + + ret = tz->ops->get_trip_hyst(tz, trip, &temperature); + +- return ret ? ret : sprintf(buf, "%ld\n", temperature); ++ return ret ? ret : sprintf(buf, "%d\n", temperature); + } + + static ssize_t +diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c +index 1967bee..06fd2ed9 100644 +--- a/drivers/thermal/thermal_hwmon.c ++++ b/drivers/thermal/thermal_hwmon.c +@@ -69,7 +69,7 @@ static DEVICE_ATTR(name, 0444, name_show, NULL); + static ssize_t + temp_input_show(struct device *dev, struct device_attribute *attr, char *buf) + { +- long temperature; ++ int temperature; + int ret; + struct thermal_hwmon_attr *hwmon_attr + = container_of(attr, struct thermal_hwmon_attr, attr); +@@ -83,7 +83,7 @@ temp_input_show(struct device *dev, struct device_attribute *attr, char *buf) + if (ret) + return ret; + +- return sprintf(buf, "%ld\n", temperature); ++ return sprintf(buf, "%d\n", temperature); + } + + static ssize_t +@@ -95,14 +95,14 @@ temp_crit_show(struct device *dev, struct device_attribute *attr, char *buf) + = container_of(hwmon_attr, struct thermal_hwmon_temp, + temp_crit); + struct thermal_zone_device *tz = temp->tz; +- long temperature; ++ int temperature; + int ret; + + ret = tz->ops->get_trip_temp(tz, 0, &temperature); + if (ret) + return ret; + +- return sprintf(buf, "%ld\n", temperature); ++ return sprintf(buf, "%d\n", temperature); + } + + +@@ -142,7 +142,7 @@ thermal_hwmon_lookup_temp(const struct thermal_hwmon_device *hwmon, + + static bool thermal_zone_crit_temp_valid(struct thermal_zone_device *tz) + { +- unsigned long temp; ++ int temp; + return tz->ops->get_crit_temp && !tz->ops->get_crit_temp(tz, &temp); + } + +diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c +index a38c175..d3a42bf 100644 +--- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c ++++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c +@@ -76,14 +76,14 @@ static inline int ti_thermal_hotspot_temperature(int t, int s, int c) + + /* thermal zone ops */ + /* Get temperature callback function for thermal zone*/ +-static inline int __ti_thermal_get_temp(void *devdata, long *temp) ++static inline int __ti_thermal_get_temp(void *devdata, int *temp) + { + struct thermal_zone_device *pcb_tz = NULL; + struct ti_thermal_data *data = devdata; + struct ti_bandgap *bgp; + const struct ti_temp_sensor *s; + int ret, tmp, slope, constant; +- unsigned long pcb_temp; ++ int pcb_temp; + + if (!data) + return 0; +@@ -119,7 +119,7 @@ static inline int __ti_thermal_get_temp(void *devdata, long *temp) + } + + static inline int ti_thermal_get_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + struct ti_thermal_data *data = thermal->devdata; + +@@ -228,7 +228,7 @@ static int ti_thermal_get_trip_type(struct thermal_zone_device *thermal, + + /* Get trip temperature callback functions for thermal zone */ + static int ti_thermal_get_trip_temp(struct thermal_zone_device *thermal, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + if (!ti_thermal_is_valid_trip(trip)) + return -EINVAL; +@@ -279,7 +279,7 @@ static int ti_thermal_get_trend(struct thermal_zone_device *thermal, + + /* Get critical temperature callback functions for thermal zone */ + static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal, +- unsigned long *temp) ++ int *temp) + { + /* shutdown zone */ + return ti_thermal_get_trip_temp(thermal, OMAP_TRIP_NUMBER - 1, temp); +diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c +index 9ea3d9d..054c6d45 100644 +--- a/drivers/thermal/x86_pkg_temp_thermal.c ++++ b/drivers/thermal/x86_pkg_temp_thermal.c +@@ -164,7 +164,7 @@ err_ret: + return err; + } + +-static int sys_get_curr_temp(struct thermal_zone_device *tzd, unsigned long *temp) ++static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) + { + u32 eax, edx; + struct phy_dev_entry *phy_dev_entry; +@@ -175,7 +175,7 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd, unsigned long *tem + if (eax & 0x80000000) { + *temp = phy_dev_entry->tj_max - + ((eax >> 16) & 0x7f) * 1000; +- pr_debug("sys_get_curr_temp %ld\n", *temp); ++ pr_debug("sys_get_curr_temp %d\n", *temp); + return 0; + } + +@@ -183,7 +183,7 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd, unsigned long *tem + } + + static int sys_get_trip_temp(struct thermal_zone_device *tzd, +- int trip, unsigned long *temp) ++ int trip, int *temp) + { + u32 eax, edx; + struct phy_dev_entry *phy_dev_entry; +@@ -214,13 +214,13 @@ static int sys_get_trip_temp(struct thermal_zone_device *tzd, + *temp = phy_dev_entry->tj_max - thres_reg_value * 1000; + else + *temp = 0; +- pr_debug("sys_get_trip_temp %ld\n", *temp); ++ pr_debug("sys_get_trip_temp %d\n", *temp); + + return 0; + } + + static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, +- unsigned long temp) ++ int temp) + { + u32 l, h; + struct phy_dev_entry *phy_dev_entry; +diff --git a/include/linux/thermal.h b/include/linux/thermal.h +index 5eac316..e9f2863 100644 +--- a/include/linux/thermal.h ++++ b/include/linux/thermal.h +@@ -86,23 +86,19 @@ struct thermal_zone_device_ops { + struct thermal_cooling_device *); + int (*unbind) (struct thermal_zone_device *, + struct thermal_cooling_device *); +- int (*get_temp) (struct thermal_zone_device *, unsigned long *); ++ int (*get_temp) (struct thermal_zone_device *, int *); + int (*get_mode) (struct thermal_zone_device *, + enum thermal_device_mode *); + int (*set_mode) (struct thermal_zone_device *, + enum thermal_device_mode); + int (*get_trip_type) (struct thermal_zone_device *, int, + enum thermal_trip_type *); +- int (*get_trip_temp) (struct thermal_zone_device *, int, +- unsigned long *); +- int (*set_trip_temp) (struct thermal_zone_device *, int, +- unsigned long); +- int (*get_trip_hyst) (struct thermal_zone_device *, int, +- unsigned long *); +- int (*set_trip_hyst) (struct thermal_zone_device *, int, +- unsigned long); +- int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *); +- int (*set_emul_temp) (struct thermal_zone_device *, unsigned long); ++ int (*get_trip_temp) (struct thermal_zone_device *, int, int *); ++ int (*set_trip_temp) (struct thermal_zone_device *, int, int); ++ int (*get_trip_hyst) (struct thermal_zone_device *, int, int *); ++ int (*set_trip_hyst) (struct thermal_zone_device *, int, int); ++ int (*get_crit_temp) (struct thermal_zone_device *, int *); ++ int (*set_emul_temp) (struct thermal_zone_device *, int); + int (*get_trend) (struct thermal_zone_device *, int, + enum thermal_trend *); + int (*notify) (struct thermal_zone_device *, int, +@@ -272,9 +268,9 @@ struct thermal_genl_event { + * temperature. + */ + struct thermal_zone_of_device_ops { +- int (*get_temp)(void *, long *); ++ int (*get_temp)(void *, int *); + int (*get_trend)(void *, long *); +- int (*set_emul_temp)(void *, unsigned long); ++ int (*set_emul_temp)(void *, int); + }; + + /** +@@ -335,7 +331,7 @@ thermal_of_cooling_device_register(struct device_node *np, char *, void *, + const struct thermal_cooling_device_ops *); + void thermal_cooling_device_unregister(struct thermal_cooling_device *); + struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name); +-int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long *temp); ++int thermal_zone_get_temp(struct thermal_zone_device *tz, int *temp); + + int get_tz_trend(struct thermal_zone_device *, int); + struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, +@@ -378,7 +374,7 @@ static inline struct thermal_zone_device *thermal_zone_get_zone_by_name( + const char *name) + { return ERR_PTR(-ENODEV); } + static inline int thermal_zone_get_temp( +- struct thermal_zone_device *tz, unsigned long *temp) ++ struct thermal_zone_device *tz, int *temp) + { return -ENODEV; } + static inline int get_tz_trend(struct thermal_zone_device *tz, int trip) + { return -ENODEV; } +-- +1.7.10.4 + |