Re: [PATCH 2/6] thermal: add new get_crit_temp callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rui,

On Thu, 10 Apr 2008 16:13:10 +0800, Zhang, Rui wrote:
> 
> Add a new callback so that the generic thermal can get
> the critical trip point info of a thermal zone,
> which is needed for building the tempX_crit hwmon sysfs attribute.
> 
> Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
> ---
>  drivers/acpi/thermal.c  |   13 +++++++++++++
>  include/linux/thermal.h |    1 +
>  2 files changed, 14 insertions(+)
> 
> Index: linux-2.6/drivers/acpi/thermal.c
> ===================================================================
> --- linux-2.6.orig/drivers/acpi/thermal.c
> +++ linux-2.6/drivers/acpi/thermal.c
> @@ -1012,6 +1012,18 @@ static int thermal_get_trip_temp(struct 
>  	return -EINVAL;
>  }
>  
> +static int thermal_get_crit_temp(struct thermal_zone_device *thermal,
> +				unsigned long *temperature) {
> +	struct acpi_thermal *tz = thermal->devdata;
> +
> +	if (tz->trips.critical.flags.valid) {
> +		*temperature = KELVIN_TO_MILLICELSIUS(
> +				tz->trips.critical.temperature);
> +		return 0;
> +	} else
> +		return -EINVAL;
> +}
> +
>  typedef int (*cb)(struct thermal_zone_device *, int,
>  		  struct thermal_cooling_device *);
>  static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
> @@ -1103,6 +1115,7 @@ static struct thermal_zone_device_ops ac
>  	.set_mode = thermal_set_mode,
>  	.get_trip_type = thermal_get_trip_type,
>  	.get_trip_temp = thermal_get_trip_temp,
> +	.get_crit_temp = thermal_get_crit_temp,
>  };
>  
>  static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
> Index: linux-2.6/include/linux/thermal.h
> ===================================================================
> --- linux-2.6.orig/include/linux/thermal.h
> +++ linux-2.6/include/linux/thermal.h
> @@ -41,6 +41,7 @@ struct thermal_zone_device_ops {
>  	int (*set_mode) (struct thermal_zone_device *, const char *);
>  	int (*get_trip_type) (struct thermal_zone_device *, int, char *);
>  	int (*get_trip_temp) (struct thermal_zone_device *, int, char *);
> +	int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *);
>  };
>  
>  struct thermal_cooling_device_ops {
> 
> 

I like this a lot, it's much cleaner and more efficient than using
get_trip_temp + get_trip_type as the previous patchset was doing. Well
done!

Acked-by: Jean Delvare <khali@xxxxxxxxxxxx>

-- 
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux