Commit 9ebd051a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux

Pull thermal updates from Zhang Rui:

 - use int instead of unsigned long to represent temperature to avoid
   bogus overheat detection when negative temperature reported.  From
   Sascha Hauer.

 - export available thermal governors information to user space via
   sysfs.  From Wei Ni.

 - introduce new thermal driver for Wildcat Point platform controller
   hub, which uses PCH thermal sensor and associated critical and hot
   trip points.  From Tushar Dave.

 - add suuport for Intel Skylake and Denlow platforms in powerclamp
   driver.

 - some small cleanups in thermal core.

* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
  thermal: Add Intel PCH thermal driver
  thermal: Add comment explaining test for critical temperature
  thermal: Use IS_ENABLED instead of #ifdef
  thermal: remove unnecessary call to thermal_zone_device_set_polling
  thermal: trivial: fix typo in comment
  thermal: consistently use int for temperatures
  thermal: add available policies sysfs attribute
  thermal/powerclamp: add cpu id for denlow platform
  thermal/powerclamp: add cpu id for Skylake u/y
  thermal/powerclamp: add cpu id for skylake h/s
parents 51a73ba5 5a924a07
...@@ -180,6 +180,7 @@ Thermal zone device sys I/F, created once it's registered: ...@@ -180,6 +180,7 @@ Thermal zone device sys I/F, created once it's registered:
|---temp: Current temperature |---temp: Current temperature
|---mode: Working mode of the thermal zone |---mode: Working mode of the thermal zone
|---policy: Thermal governor used for this zone |---policy: Thermal governor used for this zone
|---available_policies: Available thermal governors for this zone
|---trip_point_[0-*]_temp: Trip point temperature |---trip_point_[0-*]_temp: Trip point temperature
|---trip_point_[0-*]_type: Trip point type |---trip_point_[0-*]_type: Trip point type
|---trip_point_[0-*]_hyst: Hysteresis value for this trip point |---trip_point_[0-*]_hyst: Hysteresis value for this trip point
...@@ -256,6 +257,10 @@ policy ...@@ -256,6 +257,10 @@ policy
One of the various thermal governors used for a particular zone. One of the various thermal governors used for a particular zone.
RW, Required RW, Required
available_policies
Available thermal governors which can be used for a particular zone.
RO, Required
trip_point_[0-*]_temp trip_point_[0-*]_temp
The temperature above which trip point will be fired. The temperature above which trip point will be fired.
Unit: millidegree Celsius Unit: millidegree Celsius
...@@ -417,6 +422,7 @@ method, the sys I/F structure will be built like this: ...@@ -417,6 +422,7 @@ method, the sys I/F structure will be built like this:
|---temp: 37000 |---temp: 37000
|---mode: enabled |---mode: enabled
|---policy: step_wise |---policy: step_wise
|---available_policies: step_wise fair_share
|---trip_point_0_temp: 100000 |---trip_point_0_temp: 100000
|---trip_point_0_type: critical |---trip_point_0_type: critical
|---trip_point_1_temp: 80000 |---trip_point_1_temp: 80000
......
...@@ -525,8 +525,7 @@ static void acpi_thermal_check(void *data) ...@@ -525,8 +525,7 @@ static void acpi_thermal_check(void *data)
/* sys I/F for generic thermal sysfs support */ /* sys I/F for generic thermal sysfs support */
static int thermal_get_temp(struct thermal_zone_device *thermal, static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
unsigned long *temp)
{ {
struct acpi_thermal *tz = thermal->devdata; struct acpi_thermal *tz = thermal->devdata;
int result; int result;
...@@ -633,7 +632,7 @@ static int thermal_get_trip_type(struct thermal_zone_device *thermal, ...@@ -633,7 +632,7 @@ static int thermal_get_trip_type(struct thermal_zone_device *thermal,
} }
static int thermal_get_trip_temp(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; struct acpi_thermal *tz = thermal->devdata;
int i; int i;
...@@ -686,7 +685,8 @@ static int thermal_get_trip_temp(struct thermal_zone_device *thermal, ...@@ -686,7 +685,8 @@ static int thermal_get_trip_temp(struct thermal_zone_device *thermal,
} }
static int thermal_get_crit_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; struct acpi_thermal *tz = thermal->devdata;
if (tz->trips.critical.flags.valid) { if (tz->trips.critical.flags.valid) {
...@@ -709,8 +709,8 @@ static int thermal_get_trend(struct thermal_zone_device *thermal, ...@@ -709,8 +709,8 @@ static int thermal_get_trend(struct thermal_zone_device *thermal,
return -EINVAL; return -EINVAL;
if (type == THERMAL_TRIP_ACTIVE) { if (type == THERMAL_TRIP_ACTIVE) {
unsigned long trip_temp; int trip_temp;
unsigned long temp = DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET( int temp = DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET(
tz->temperature, tz->kelvin_offset); tz->temperature, tz->kelvin_offset);
if (thermal_get_trip_temp(thermal, trip, &trip_temp)) if (thermal_get_trip_temp(thermal, trip, &trip_temp))
return -EINVAL; return -EINVAL;
......
...@@ -104,7 +104,7 @@ static inline long lm75_reg_to_mc(s16 temp, u8 resolution) ...@@ -104,7 +104,7 @@ static inline long lm75_reg_to_mc(s16 temp, u8 resolution)
/* sysfs attributes for hwmon */ /* 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); struct lm75_data *data = lm75_update_device(dev);
......
...@@ -477,7 +477,7 @@ static int ntc_thermistor_get_ohm(struct ntc_data *data) ...@@ -477,7 +477,7 @@ static int ntc_thermistor_get_ohm(struct ntc_data *data)
return -EINVAL; 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); struct ntc_data *data = dev_get_drvdata(dev);
int ohm; int ohm;
......
...@@ -98,7 +98,7 @@ static struct tmp102 *tmp102_update_device(struct device *dev) ...@@ -98,7 +98,7 @@ static struct tmp102 *tmp102_update_device(struct device *dev)
return tmp102; 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); struct tmp102 *tmp102 = tmp102_update_device(dev);
......
...@@ -191,7 +191,7 @@ static void sun4i_ts_close(struct input_dev *dev) ...@@ -191,7 +191,7 @@ static void sun4i_ts_close(struct input_dev *dev)
writel(TEMP_IRQ_EN(1), ts->base + TP_INT_FIFOC); 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 */ /* No temp_data until the first irq */
if (ts->temp_data == -1) if (ts->temp_data == -1)
...@@ -202,7 +202,7 @@ static int sun4i_get_temp(const struct sun4i_ts_data *ts, long *temp) ...@@ -202,7 +202,7 @@ static int sun4i_get_temp(const struct sun4i_ts_data *ts, long *temp)
return 0; 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); return sun4i_get_temp(data, temp);
} }
...@@ -215,14 +215,14 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *devattr, ...@@ -215,14 +215,14 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *devattr,
char *buf) char *buf)
{ {
struct sun4i_ts_data *ts = dev_get_drvdata(dev); struct sun4i_ts_data *ts = dev_get_drvdata(dev);
long temp; int temp;
int error; int error;
error = sun4i_get_temp(ts, &temp); error = sun4i_get_temp(ts, &temp);
if (error) if (error)
return error; return error;
return sprintf(buf, "%ld\n", temp); return sprintf(buf, "%d\n", temp);
} }
static ssize_t show_temp_label(struct device *dev, static ssize_t show_temp_label(struct device *dev,
......
...@@ -346,8 +346,7 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal) ...@@ -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 * as late as the polling interval is since we can't do that in the respective
* accessors of the module parameters. * accessors of the module parameters.
*/ */
static int acerhdf_get_ec_temp(struct thermal_zone_device *thermal, static int acerhdf_get_ec_temp(struct thermal_zone_device *thermal, int *t)
unsigned long *t)
{ {
int temp, err = 0; int temp, err = 0;
...@@ -453,7 +452,7 @@ static int acerhdf_get_trip_type(struct thermal_zone_device *thermal, int trip, ...@@ -453,7 +452,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, static int acerhdf_get_trip_hyst(struct thermal_zone_device *thermal, int trip,
unsigned long *temp) int *temp)
{ {
if (trip != 0) if (trip != 0)
return -EINVAL; return -EINVAL;
...@@ -464,7 +463,7 @@ static int acerhdf_get_trip_hyst(struct thermal_zone_device *thermal, int trip, ...@@ -464,7 +463,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, static int acerhdf_get_trip_temp(struct thermal_zone_device *thermal, int trip,
unsigned long *temp) int *temp)
{ {
if (trip == 0) if (trip == 0)
*temp = fanon; *temp = fanon;
...@@ -477,7 +476,7 @@ static int acerhdf_get_trip_temp(struct thermal_zone_device *thermal, int trip, ...@@ -477,7 +476,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, static int acerhdf_get_crit_temp(struct thermal_zone_device *thermal,
unsigned long *temperature) int *temperature)
{ {
*temperature = ACERHDF_TEMP_CRIT; *temperature = ACERHDF_TEMP_CRIT;
return 0; return 0;
......
...@@ -132,7 +132,7 @@ static int is_valid_adc(uint16_t adc_val, uint16_t min, uint16_t max) ...@@ -132,7 +132,7 @@ static int is_valid_adc(uint16_t adc_val, uint16_t min, uint16_t max)
* to achieve very close approximate temp value with less than * to achieve very close approximate temp value with less than
* 0.5C error * 0.5C error
*/ */
static int adc_to_temp(int direct, uint16_t adc_val, unsigned long *tp) static int adc_to_temp(int direct, uint16_t adc_val, int *tp)
{ {
int temp; int temp;
...@@ -174,14 +174,13 @@ static int adc_to_temp(int direct, uint16_t adc_val, unsigned long *tp) ...@@ -174,14 +174,13 @@ static int adc_to_temp(int direct, uint16_t adc_val, unsigned long *tp)
* *
* Can sleep * Can sleep
*/ */
static int mid_read_temp(struct thermal_zone_device *tzd, unsigned long *temp) static int mid_read_temp(struct thermal_zone_device *tzd, int *temp)
{ {
struct thermal_device_info *td_info = tzd->devdata; struct thermal_device_info *td_info = tzd->devdata;
uint16_t adc_val, addr; uint16_t adc_val, addr;
uint8_t data = 0; uint8_t data = 0;
int ret; int ret;
unsigned long curr_temp; int curr_temp;
addr = td_info->chnl_addr; addr = td_info->chnl_addr;
...@@ -453,7 +452,7 @@ static SIMPLE_DEV_PM_OPS(mid_thermal_pm, ...@@ -453,7 +452,7 @@ static SIMPLE_DEV_PM_OPS(mid_thermal_pm,
* *
* Can sleep * Can sleep
*/ */
static int read_curr_temp(struct thermal_zone_device *tzd, unsigned long *temp) static int read_curr_temp(struct thermal_zone_device *tzd, int *temp)
{ {
WARN_ON(tzd == NULL); WARN_ON(tzd == NULL);
return mid_read_temp(tzd, temp); return mid_read_temp(tzd, temp);
......
...@@ -619,7 +619,7 @@ static int cm_get_battery_temperature(struct charger_manager *cm, ...@@ -619,7 +619,7 @@ static int cm_get_battery_temperature(struct charger_manager *cm,
#ifdef CONFIG_THERMAL #ifdef CONFIG_THERMAL
if (cm->tzd_batt) { if (cm->tzd_batt) {
ret = thermal_zone_get_temp(cm->tzd_batt, (unsigned long *)temp); ret = thermal_zone_get_temp(cm->tzd_batt, temp);
if (!ret) if (!ret)
/* Calibrate temperature unit */ /* Calibrate temperature unit */
*temp /= 100; *temp /= 100;
......
...@@ -557,7 +557,7 @@ EXPORT_SYMBOL_GPL(power_supply_unreg_notifier); ...@@ -557,7 +557,7 @@ EXPORT_SYMBOL_GPL(power_supply_unreg_notifier);
#ifdef CONFIG_THERMAL #ifdef CONFIG_THERMAL
static int power_supply_read_temp(struct thermal_zone_device *tzd, static int power_supply_read_temp(struct thermal_zone_device *tzd,
unsigned long *temp) int *temp)
{ {
struct power_supply *psy; struct power_supply *psy;
union power_supply_propval val; union power_supply_propval val;
......
...@@ -340,6 +340,14 @@ config ACPI_THERMAL_REL ...@@ -340,6 +340,14 @@ config ACPI_THERMAL_REL
tristate tristate
depends on ACPI depends on ACPI
config INTEL_PCH_THERMAL
tristate "Intel PCH Thermal Reporting Driver"
depends on X86 && PCI
help
Enable this to support thermal reporting on certain intel PCHs.
Thermal reporting device will provide temperature reading,
programmable trip points and other information.
menu "Texas Instruments thermal drivers" menu "Texas Instruments thermal drivers"
source "drivers/thermal/ti-soc-thermal/Kconfig" source "drivers/thermal/ti-soc-thermal/Kconfig"
endmenu endmenu
......
...@@ -41,6 +41,7 @@ obj-$(CONFIG_INTEL_SOC_DTS_THERMAL) += intel_soc_dts_thermal.o ...@@ -41,6 +41,7 @@ obj-$(CONFIG_INTEL_SOC_DTS_THERMAL) += intel_soc_dts_thermal.o
obj-$(CONFIG_INTEL_QUARK_DTS_THERMAL) += intel_quark_dts_thermal.o obj-$(CONFIG_INTEL_QUARK_DTS_THERMAL) += intel_quark_dts_thermal.o
obj-$(CONFIG_TI_SOC_THERMAL) += ti-soc-thermal/ obj-$(CONFIG_TI_SOC_THERMAL) += ti-soc-thermal/
obj-$(CONFIG_INT340X_THERMAL) += int340x_thermal/ obj-$(CONFIG_INT340X_THERMAL) += int340x_thermal/
obj-$(CONFIG_INTEL_PCH_THERMAL) += intel_pch_thermal.o
obj-$(CONFIG_ST_THERMAL) += st/ obj-$(CONFIG_ST_THERMAL) += st/
obj-$(CONFIG_TEGRA_SOCTHERM) += tegra_soctherm.o obj-$(CONFIG_TEGRA_SOCTHERM) += tegra_soctherm.o
obj-$(CONFIG_HISI_THERMAL) += hisi_thermal.o obj-$(CONFIG_HISI_THERMAL) += hisi_thermal.o
...@@ -155,7 +155,7 @@ static bool armada_is_valid(struct armada_thermal_priv *priv) ...@@ -155,7 +155,7 @@ static bool armada_is_valid(struct armada_thermal_priv *priv)
} }
static int armada_get_temp(struct thermal_zone_device *thermal, static int armada_get_temp(struct thermal_zone_device *thermal,
unsigned long *temp) int *temp)
{ {
struct armada_thermal_priv *priv = thermal->devdata; struct armada_thermal_priv *priv = thermal->devdata;
unsigned long reg; unsigned long reg;
......
...@@ -107,8 +107,7 @@ static int db8500_cdev_unbind(struct thermal_zone_device *thermal, ...@@ -107,8 +107,7 @@ static int db8500_cdev_unbind(struct thermal_zone_device *thermal,
} }
/* Callback to get current temperature */ /* Callback to get current temperature */
static int db8500_sys_get_temp(struct thermal_zone_device *thermal, static int db8500_sys_get_temp(struct thermal_zone_device *thermal, int *temp)
unsigned long *temp)
{ {
struct db8500_thermal_zone *pzone = thermal->devdata; struct db8500_thermal_zone *pzone = thermal->devdata;
...@@ -180,7 +179,7 @@ static int db8500_sys_get_trip_type(struct thermal_zone_device *thermal, ...@@ -180,7 +179,7 @@ static int db8500_sys_get_trip_type(struct thermal_zone_device *thermal,
/* Callback to get trip point temperature */ /* Callback to get trip point temperature */
static int db8500_sys_get_trip_temp(struct thermal_zone_device *thermal, 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_thermal_zone *pzone = thermal->devdata;
struct db8500_thsens_platform_data *ptrips = pzone->trip_tab; 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, ...@@ -195,7 +194,7 @@ static int db8500_sys_get_trip_temp(struct thermal_zone_device *thermal,
/* Callback to get critical trip point temperature */ /* Callback to get critical trip point temperature */
static int db8500_sys_get_crit_temp(struct thermal_zone_device *thermal, 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_thermal_zone *pzone = thermal->devdata;
struct db8500_thsens_platform_data *ptrips = pzone->trip_tab; struct db8500_thsens_platform_data *ptrips = pzone->trip_tab;
......
...@@ -93,7 +93,7 @@ static int dove_init_sensor(const struct dove_thermal_priv *priv) ...@@ -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, static int dove_get_temp(struct thermal_zone_device *thermal,
unsigned long *temp) int *temp)
{ {
unsigned long reg; unsigned long reg;
struct dove_thermal_priv *priv = thermal->devdata; struct dove_thermal_priv *priv = thermal->devdata;
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
static int get_trip_level(struct thermal_zone_device *tz) static int get_trip_level(struct thermal_zone_device *tz)
{ {
int count = 0; int count = 0;
unsigned long trip_temp; int trip_temp;
enum thermal_trip_type trip_type; enum thermal_trip_type trip_type;
if (tz->trips == 0 || !tz->ops->get_trip_temp) if (tz->trips == 0 || !tz->ops->get_trip_temp)
......
...@@ -25,14 +25,13 @@ ...@@ -25,14 +25,13 @@
static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip)
{ {
long trip_temp; int trip_temp, trip_hyst;
unsigned long trip_hyst;
struct thermal_instance *instance; struct thermal_instance *instance;
tz->ops->get_trip_temp(tz, trip, &trip_temp); tz->ops->get_trip_temp(tz, trip, &trip_temp);
tz->ops->get_trip_hyst(tz, trip, &trip_hyst); 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, trip_temp, tz->temperature,
trip_hyst); trip_hyst);
......
...@@ -155,7 +155,7 @@ static void hisi_thermal_disable_sensor(struct hisi_thermal_data *data) ...@@ -155,7 +155,7 @@ static void hisi_thermal_disable_sensor(struct hisi_thermal_data *data)
mutex_unlock(&data->thermal_lock); mutex_unlock(&data->thermal_lock);
} }
static int hisi_thermal_get_temp(void *_sensor, long *temp) static int hisi_thermal_get_temp(void *_sensor, int *temp)
{ {
struct hisi_thermal_sensor *sensor = _sensor; struct hisi_thermal_sensor *sensor = _sensor;
struct hisi_thermal_data *data = sensor->thermal; struct hisi_thermal_data *data = sensor->thermal;
...@@ -178,7 +178,7 @@ static int hisi_thermal_get_temp(void *_sensor, long *temp) ...@@ -178,7 +178,7 @@ static int hisi_thermal_get_temp(void *_sensor, long *temp)
data->irq_bind_sensor = sensor_id; data->irq_bind_sensor = sensor_id;
mutex_unlock(&data->thermal_lock); mutex_unlock(&data->thermal_lock);
dev_dbg(&data->pdev->dev, "id=%d, irq=%d, temp=%ld, thres=%d\n", dev_dbg(&data->pdev->dev, "id=%d, irq=%d, temp=%d, thres=%d\n",
sensor->id, data->irq_enabled, *temp, sensor->thres_temp); sensor->id, data->irq_enabled, *temp, sensor->thres_temp);
/* /*
* Bind irq to sensor for two cases: * Bind irq to sensor for two cases:
......
...@@ -98,10 +98,10 @@ struct imx_thermal_data { ...@@ -98,10 +98,10 @@ struct imx_thermal_data {
enum thermal_device_mode mode; enum thermal_device_mode mode;
struct regmap *tempmon; struct regmap *tempmon;
u32 c1, c2; /* See formula in imx_get_sensor_data() */ u32 c1, c2; /* See formula in imx_get_sensor_data() */
unsigned long temp_passive; int temp_passive;
unsigned long temp_critical; int temp_critical;
unsigned long alarm_temp; int alarm_temp;
unsigned long last_temp; int last_temp;
bool irq_enabled; bool irq_enabled;
int irq; int irq;
struct clk *thermal_clk; struct clk *thermal_clk;
...@@ -109,7 +109,7 @@ struct imx_thermal_data { ...@@ -109,7 +109,7 @@ struct imx_thermal_data {
}; };
static void imx_set_panic_temp(struct imx_thermal_data *data, static void imx_set_panic_temp(struct imx_thermal_data *data,
signed long panic_temp) int panic_temp)
{ {
struct regmap *map = data->tempmon; struct regmap *map = data->tempmon;
int critical_value; int critical_value;
...@@ -121,7 +121,7 @@ static void imx_set_panic_temp(struct imx_thermal_data *data, ...@@ -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, static void imx_set_alarm_temp(struct imx_thermal_data *data,
signed long alarm_temp) int alarm_temp)
{ {
struct regmap *map = data->tempmon; struct regmap *map = data->tempmon;
int alarm_value; int alarm_value;
...@@ -133,7 +133,7 @@ static void imx_set_alarm_temp(struct imx_thermal_data *data, ...@@ -133,7 +133,7 @@ static void imx_set_alarm_temp(struct imx_thermal_data *data,
TEMPSENSE0_ALARM_VALUE_SHIFT); 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 imx_thermal_data *data = tz->devdata;
struct regmap *map = data->tempmon; struct regmap *map = data->tempmon;
...@@ -189,13 +189,13 @@ static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp) ...@@ -189,13 +189,13 @@ static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp)
if (data->alarm_temp == data->temp_critical && if (data->alarm_temp == data->temp_critical &&
*temp < data->temp_passive) { *temp < data->temp_passive) {
imx_set_alarm_temp(data, 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); data->alarm_temp / 1000);
} }
} }
if (*temp != data->last_temp) { 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; data->last_temp = *temp;
} }
...@@ -262,8 +262,7 @@ static int imx_get_trip_type(struct thermal_zone_device *tz, int trip, ...@@ -262,8 +262,7 @@ static int imx_get_trip_type(struct thermal_zone_device *tz, int trip,
return 0; return 0;
} }
static int imx_get_crit_temp(struct thermal_zone_device *tz, static int imx_get_crit_temp(struct thermal_zone_device *tz, int *temp)
unsigned long *temp)
{ {
struct imx_thermal_data *data = tz->devdata; struct imx_thermal_data *data = tz->devdata;
...@@ -272,7 +271,7 @@ static int imx_get_crit_temp(struct thermal_zone_device *tz, ...@@ -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, 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; struct imx_thermal_data *data = tz->devdata;
...@@ -282,7 +281,7 @@ static int imx_get_trip_temp(struct thermal_zone_device *tz, int trip, ...@@ -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, 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; struct imx_thermal_data *data = tz->devdata;
...@@ -434,7 +433,7 @@ static irqreturn_t imx_thermal_alarm_irq_thread(int irq, void *dev) ...@@ -434,7 +433,7 @@ static irqreturn_t imx_thermal_alarm_irq_thread(int irq, void *dev)
{ {
struct imx_thermal_data *data = 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); data->alarm_temp / 1000);
thermal_zone_device_update(data->tz); thermal_zone_device_update(data->tz);
......
...@@ -186,7 +186,7 @@ static int int3400_thermal_run_osc(acpi_handle handle, ...@@ -186,7 +186,7 @@ static int int3400_thermal_run_osc(acpi_handle handle,
} }
static int int3400_thermal_get_temp(struct thermal_zone_device *thermal, static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
unsigned long *temp) int *temp)
{ {
*temp = 20 * 1000; /* faked temp sensor with 20C */ *temp = 20 * 1000; /* faked temp sensor with 20C */
return 0; return 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment