Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ebd051a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ Thermal zone device sys I/F, created once it's registered:
    |---temp:			Current temperature
    |---mode:			Working mode of the thermal 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-*]_type:	Trip point type
    |---trip_point_[0-*]_hyst:	Hysteresis value for this trip point
@@ -256,6 +257,10 @@ policy
	One of the various thermal governors used for a particular zone.
	RW, Required

available_policies
	Available thermal governors which can be used for a particular zone.
	RO, Required

trip_point_[0-*]_temp
	The temperature above which trip point will be fired.
	Unit: millidegree Celsius
@@ -417,6 +422,7 @@ method, the sys I/F structure will be built like this:
    |---temp:			37000
    |---mode:			enabled
    |---policy:			step_wise
    |---available_policies:	step_wise fair_share
    |---trip_point_0_temp:	100000
    |---trip_point_0_type:	critical
    |---trip_point_1_temp:	80000
+6 −6
Original line number Diff line number Diff line
@@ -525,8 +525,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;
@@ -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,
				 int trip, unsigned long *temp)
				 int trip, int *temp)
{
	struct acpi_thermal *tz = thermal->devdata;
	int i;
@@ -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,
				unsigned long *temperature) {
				int *temperature)
{
	struct acpi_thermal *tz = thermal->devdata;

	if (tz->trips.critical.flags.valid) {
@@ -709,8 +709,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;
+1 −1
Original line number Diff line number Diff line
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -477,7 +477,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;
+1 −1
Original line number Diff line number Diff line
@@ -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);

Loading