From: Hans de Goede <j.w.r.degoede@hhs.nl>
To: "Zhang, Rui" <rui.zhang@intel.com>
Cc: linux-acpi <linux-acpi@vger.kernel.org>,
lm-sensors <lm-sensors@lm-sensors.org>,
Jean Delvare <khali@linux-fr.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Thomas Renninger <trenn@suse.de>,
"Thomas, Sujith" <sujith.thomas@intel.com>,
"Mark M. Hoffman" <mhoffman@lightlink.com>,
Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
Len Brown <lenb@kernel.org>, Richard Hughes <hughsient@gmail.com>
Subject: Re: [PATCH 1/2] thermal: add hwmon sys I/F for thermal device
Date: Tue, 26 Feb 2008 09:39:42 +0100 [thread overview]
Message-ID: <47C3D04E.6090609@hhs.nl> (raw)
In-Reply-To: <1203975102.10256.82.camel@acpi-hp-zz.sh.intel.com>
Zhang, Rui wrote:
> Add hwmon sys I/F for the generic thermal device.
>
Great!
But I have several remarks:
1) Looking at the new code, you only add temp1_input, so I'm guessing that you
are registering a seperate hwmon class entry per zone? Please don't do that,
please register one hwmon class entry, and add multiple temp#_input attr to it
(and the same for crit).
2) I see that temp_crit may not be always available:
> +static ssize_t
> +crit_trip_temp_show(struct device *dev, struct device_attribute *attr,
> + char *buf)
> +{
> + struct device *device = dev->parent;
> + struct thermal_zone_device *tz = to_thermal_zone(device);
> + int result;
> +
> + if (!tz->ops->get_trip_temp )
> + return -EPERM;
> +
> + /* assume trip 0 to be the critical trip point by default */
> + if (tz->ops->get_trip_type) {
> + result = tz->ops->get_trip_type(tz, 0, buf);
> + if (result < 0)
> + return result;
> + if (strcmp(buf, "critical\n"))
> + return -ENODEV;
> + }
> +
> + return tz->ops->get_trip_temp(tz, 0, buf);
> +}
But you do always register a temp#_crit sysfs attr, it would be much much
better to only add this if reading it actually has a chance of returning a
value, so if tz->ops->get_trip_temp != NULL and tz->ops->get_trip_type(tz, 0,
buf) returns "critical" in buf.
Thanks & Regards,
Hans
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> ---
> Documentation/thermal/sysfs-api.txt | 22 +++++----
> drivers/thermal/Kconfig | 1
> drivers/thermal/thermal.c | 86 ++++++++++++++++++++++++++++++++----
> include/linux/thermal.h | 1
> 4 files changed, 92 insertions(+), 18 deletions(-)
>
> Index: linux-2.6.25-rc2/Documentation/thermal/sysfs-api.txt
> ===================================================================
> --- linux-2.6.25-rc2.orig/Documentation/thermal/sysfs-api.txt 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/Documentation/thermal/sysfs-api.txt 2008-02-25 22:43:38.000000000 -0500
> @@ -141,12 +141,14 @@
>
> type Strings which represent the thermal zone type.
> This is given by thermal zone driver as part of registration.
> + In order to keep the compatibility with hwmon,
> + it should not contain any spaces or dashes.
> Eg: "ACPI thermal zone" indicates it's a ACPI thermal device
> RO
> - Optional
> + Required
>
> temp Current temperature as reported by thermal zone (sensor)
> - Unit: degree Celsius
> + Unit: millidegree Celsius
> RO
> Required
>
> @@ -163,7 +165,7 @@
> charge of the thermal management.
>
> trip_point_[0-*]_temp The temperature above which trip point will be fired
> - Unit: degree Celsius
> + Unit: millidegree Celsius
> RO
> Optional
>
> @@ -219,16 +221,16 @@
>
> |thermal_zone1:
> |-----type: ACPI thermal zone
> - |-----temp: 37
> + |-----temp: 37000
> |-----mode: kernel
> - |-----trip_point_0_temp: 100
> + |-----trip_point_0_temp: 100000
> |-----trip_point_0_type: critical
> - |-----trip_point_1_temp: 80
> + |-----trip_point_1_temp: 80000
> |-----trip_point_1_type: passive
> - |-----trip_point_2_temp: 70
> - |-----trip_point_2_type: active[0]
> - |-----trip_point_3_temp: 60
> - |-----trip_point_3_type: active[1]
> + |-----trip_point_2_temp: 70000
> + |-----trip_point_2_type: active0
> + |-----trip_point_3_temp: 60000
> + |-----trip_point_3_type: active1
> |-----cdev0: --->/sys/class/thermal/cooling_device0
> |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */
> |-----cdev1: --->/sys/class/thermal/cooling_device3
> Index: linux-2.6.25-rc2/drivers/thermal/Kconfig
> ===================================================================
> --- linux-2.6.25-rc2.orig/drivers/thermal/Kconfig 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/drivers/thermal/Kconfig 2008-02-25 22:43:38.000000000 -0500
> @@ -4,6 +4,7 @@
>
> menuconfig THERMAL
> bool "Generic Thermal sysfs driver"
> + select HWMON
> default y
> help
> Generic Thermal Sysfs driver offers a generic mechanism for
> Index: linux-2.6.25-rc2/drivers/thermal/thermal.c
> ===================================================================
> --- linux-2.6.25-rc2.orig/drivers/thermal/thermal.c 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/drivers/thermal/thermal.c 2008-02-26 00:37:57.000000000 -0500
> @@ -30,8 +30,9 @@
> #include <linux/idr.h>
> #include <linux/thermal.h>
> #include <linux/spinlock.h>
> +#include <linux/hwmon.h>
>
> -MODULE_AUTHOR("Zhang Rui")
> +MODULE_AUTHOR("Zhang Rui");
> MODULE_DESCRIPTION("Generic thermal management sysfs support");
> MODULE_LICENSE("GPL");
>
> @@ -171,6 +172,47 @@
> return tz->ops->get_trip_temp(tz, trip, buf);
> }
>
> +static ssize_t
> +hwmon_type_show(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> + struct device *device = dev->parent;
> + return type_show(device, attr, buf);
> +}
> +
> +static ssize_t
> +hwmon_temp_show(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> + struct device *device = dev->parent;
> + return temp_show(device, attr, buf);
> +}
> +
> +static ssize_t
> +crit_trip_temp_show(struct device *dev, struct device_attribute *attr,
> + char *buf)
> +{
> + struct device *device = dev->parent;
> + struct thermal_zone_device *tz = to_thermal_zone(device);
> + int result;
> +
> + if (!tz->ops->get_trip_temp )
> + return -EPERM;
> +
> + /* assume trip 0 to be the critical trip point by default */
> + if (tz->ops->get_trip_type) {
> + result = tz->ops->get_trip_type(tz, 0, buf);
> + if (result < 0)
> + return result;
> + if (strcmp(buf, "critical\n"))
> + return -ENODEV;
> + }
> +
> + return tz->ops->get_trip_temp(tz, 0, buf);
> +}
> +
> +static DEVICE_ATTR(name, 0444, hwmon_type_show, NULL);
> +static DEVICE_ATTR(temp1_input, 0444, hwmon_temp_show, NULL);
> +static DEVICE_ATTR(temp1_crit, 0444, crit_trip_temp_show, NULL);
> +
> static DEVICE_ATTR(type, 0444, type_show, NULL);
> static DEVICE_ATTR(temp, 0444, temp_show, NULL);
> static DEVICE_ATTR(mode, 0644, mode_show, mode_store);
> @@ -569,6 +611,9 @@
> int result;
> int count;
>
> + if (!type)
> + return ERR_PTR(-EINVAL);
> +
> if (strlen(type) >= THERMAL_NAME_LENGTH)
> return NULL;
>
> @@ -604,13 +649,33 @@
> return NULL;
> }
>
> - /* sys I/F */
> - if (type) {
> - result = device_create_file(&tz->device, &dev_attr_type);
> - if (result)
> - goto unregister;
> + /* hwmon sys I/F */
> + tz->hwmon = hwmon_device_register(&tz->device);
> + if (IS_ERR(tz->hwmon)) {
> + result = PTR_ERR(tz->hwmon);
> + tz->hwmon = NULL;
> + printk(KERN_ERR PREFIX
> + "unable to register hwmon device\n");
> + goto unregister;
> }
>
> + result = device_create_file(tz->hwmon, &dev_attr_name);
> + if (result)
> + goto unregister;
> +
> + result = device_create_file(tz->hwmon, &dev_attr_temp1_input);
> + if (result)
> + goto unregister;
> +
> + result = device_create_file(tz->hwmon, &dev_attr_temp1_crit);
> + if (result)
> + goto unregister;
> +
> + /* sys I/F */
> + result = device_create_file(&tz->device, &dev_attr_type);
> + if (result)
> + goto unregister;
> +
> result = device_create_file(&tz->device, &dev_attr_temp);
> if (result)
> goto unregister;
> @@ -676,8 +741,13 @@
> tz->ops->unbind(tz, cdev);
> mutex_unlock(&thermal_list_lock);
>
> - if (tz->type[0])
> - device_remove_file(&tz->device, &dev_attr_type);
> + device_remove_file(&tz->device, &dev_attr_name);
> + device_remove_file(&tz->device, &dev_attr_temp1_input);
> + device_remove_file(&tz->device, &dev_attr_temp1_crit);
> + hwmon_device_unregister(tz->hwmon);
> + tz->hwmon = NULL;
> +
> + device_remove_file(&tz->device, &dev_attr_type);
> device_remove_file(&tz->device, &dev_attr_temp);
> if (tz->ops->get_mode)
> device_remove_file(&tz->device, &dev_attr_mode);
> Index: linux-2.6.25-rc2/include/linux/thermal.h
> ===================================================================
> --- linux-2.6.25-rc2.orig/include/linux/thermal.h 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/include/linux/thermal.h 2008-02-25 22:43:38.000000000 -0500
> @@ -69,6 +69,7 @@
> int id;
> char type[THERMAL_NAME_LENGTH];
> struct device device;
> + struct device *hwmon;
> void *devdata;
> int trips;
> struct thermal_zone_device_ops *ops;
>
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Hans de Goede <j.w.r.degoede@hhs.nl>
To: "Zhang, Rui" <rui.zhang@intel.com>
Cc: linux-acpi <linux-acpi@vger.kernel.org>,
lm-sensors <lm-sensors@lm-sensors.org>,
Jean Delvare <khali@linux-fr.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Thomas Renninger <trenn@suse.de>,
"Thomas, Sujith" <sujith.thomas@intel.com>,
"Mark M. Hoffman" <mhoffman@lightlink.com>,
Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
Len Brown <lenb@kernel.org>, Richard Hughes <hughsient@gmail.com>
Subject: Re: [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal
Date: Tue, 26 Feb 2008 08:39:42 +0000 [thread overview]
Message-ID: <47C3D04E.6090609@hhs.nl> (raw)
In-Reply-To: <1203975102.10256.82.camel@acpi-hp-zz.sh.intel.com>
Zhang, Rui wrote:
> Add hwmon sys I/F for the generic thermal device.
>
Great!
But I have several remarks:
1) Looking at the new code, you only add temp1_input, so I'm guessing that you
are registering a seperate hwmon class entry per zone? Please don't do that,
please register one hwmon class entry, and add multiple temp#_input attr to it
(and the same for crit).
2) I see that temp_crit may not be always available:
> +static ssize_t
> +crit_trip_temp_show(struct device *dev, struct device_attribute *attr,
> + char *buf)
> +{
> + struct device *device = dev->parent;
> + struct thermal_zone_device *tz = to_thermal_zone(device);
> + int result;
> +
> + if (!tz->ops->get_trip_temp )
> + return -EPERM;
> +
> + /* assume trip 0 to be the critical trip point by default */
> + if (tz->ops->get_trip_type) {
> + result = tz->ops->get_trip_type(tz, 0, buf);
> + if (result < 0)
> + return result;
> + if (strcmp(buf, "critical\n"))
> + return -ENODEV;
> + }
> +
> + return tz->ops->get_trip_temp(tz, 0, buf);
> +}
But you do always register a temp#_crit sysfs attr, it would be much much
better to only add this if reading it actually has a chance of returning a
value, so if tz->ops->get_trip_temp != NULL and tz->ops->get_trip_type(tz, 0,
buf) returns "critical" in buf.
Thanks & Regards,
Hans
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> ---
> Documentation/thermal/sysfs-api.txt | 22 +++++----
> drivers/thermal/Kconfig | 1
> drivers/thermal/thermal.c | 86 ++++++++++++++++++++++++++++++++----
> include/linux/thermal.h | 1
> 4 files changed, 92 insertions(+), 18 deletions(-)
>
> Index: linux-2.6.25-rc2/Documentation/thermal/sysfs-api.txt
> =================================> --- linux-2.6.25-rc2.orig/Documentation/thermal/sysfs-api.txt 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/Documentation/thermal/sysfs-api.txt 2008-02-25 22:43:38.000000000 -0500
> @@ -141,12 +141,14 @@
>
> type Strings which represent the thermal zone type.
> This is given by thermal zone driver as part of registration.
> + In order to keep the compatibility with hwmon,
> + it should not contain any spaces or dashes.
> Eg: "ACPI thermal zone" indicates it's a ACPI thermal device
> RO
> - Optional
> + Required
>
> temp Current temperature as reported by thermal zone (sensor)
> - Unit: degree Celsius
> + Unit: millidegree Celsius
> RO
> Required
>
> @@ -163,7 +165,7 @@
> charge of the thermal management.
>
> trip_point_[0-*]_temp The temperature above which trip point will be fired
> - Unit: degree Celsius
> + Unit: millidegree Celsius
> RO
> Optional
>
> @@ -219,16 +221,16 @@
>
> |thermal_zone1:
> |-----type: ACPI thermal zone
> - |-----temp: 37
> + |-----temp: 37000
> |-----mode: kernel
> - |-----trip_point_0_temp: 100
> + |-----trip_point_0_temp: 100000
> |-----trip_point_0_type: critical
> - |-----trip_point_1_temp: 80
> + |-----trip_point_1_temp: 80000
> |-----trip_point_1_type: passive
> - |-----trip_point_2_temp: 70
> - |-----trip_point_2_type: active[0]
> - |-----trip_point_3_temp: 60
> - |-----trip_point_3_type: active[1]
> + |-----trip_point_2_temp: 70000
> + |-----trip_point_2_type: active0
> + |-----trip_point_3_temp: 60000
> + |-----trip_point_3_type: active1
> |-----cdev0: --->/sys/class/thermal/cooling_device0
> |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */
> |-----cdev1: --->/sys/class/thermal/cooling_device3
> Index: linux-2.6.25-rc2/drivers/thermal/Kconfig
> =================================> --- linux-2.6.25-rc2.orig/drivers/thermal/Kconfig 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/drivers/thermal/Kconfig 2008-02-25 22:43:38.000000000 -0500
> @@ -4,6 +4,7 @@
>
> menuconfig THERMAL
> bool "Generic Thermal sysfs driver"
> + select HWMON
> default y
> help
> Generic Thermal Sysfs driver offers a generic mechanism for
> Index: linux-2.6.25-rc2/drivers/thermal/thermal.c
> =================================> --- linux-2.6.25-rc2.orig/drivers/thermal/thermal.c 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/drivers/thermal/thermal.c 2008-02-26 00:37:57.000000000 -0500
> @@ -30,8 +30,9 @@
> #include <linux/idr.h>
> #include <linux/thermal.h>
> #include <linux/spinlock.h>
> +#include <linux/hwmon.h>
>
> -MODULE_AUTHOR("Zhang Rui")
> +MODULE_AUTHOR("Zhang Rui");
> MODULE_DESCRIPTION("Generic thermal management sysfs support");
> MODULE_LICENSE("GPL");
>
> @@ -171,6 +172,47 @@
> return tz->ops->get_trip_temp(tz, trip, buf);
> }
>
> +static ssize_t
> +hwmon_type_show(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> + struct device *device = dev->parent;
> + return type_show(device, attr, buf);
> +}
> +
> +static ssize_t
> +hwmon_temp_show(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> + struct device *device = dev->parent;
> + return temp_show(device, attr, buf);
> +}
> +
> +static ssize_t
> +crit_trip_temp_show(struct device *dev, struct device_attribute *attr,
> + char *buf)
> +{
> + struct device *device = dev->parent;
> + struct thermal_zone_device *tz = to_thermal_zone(device);
> + int result;
> +
> + if (!tz->ops->get_trip_temp )
> + return -EPERM;
> +
> + /* assume trip 0 to be the critical trip point by default */
> + if (tz->ops->get_trip_type) {
> + result = tz->ops->get_trip_type(tz, 0, buf);
> + if (result < 0)
> + return result;
> + if (strcmp(buf, "critical\n"))
> + return -ENODEV;
> + }
> +
> + return tz->ops->get_trip_temp(tz, 0, buf);
> +}
> +
> +static DEVICE_ATTR(name, 0444, hwmon_type_show, NULL);
> +static DEVICE_ATTR(temp1_input, 0444, hwmon_temp_show, NULL);
> +static DEVICE_ATTR(temp1_crit, 0444, crit_trip_temp_show, NULL);
> +
> static DEVICE_ATTR(type, 0444, type_show, NULL);
> static DEVICE_ATTR(temp, 0444, temp_show, NULL);
> static DEVICE_ATTR(mode, 0644, mode_show, mode_store);
> @@ -569,6 +611,9 @@
> int result;
> int count;
>
> + if (!type)
> + return ERR_PTR(-EINVAL);
> +
> if (strlen(type) >= THERMAL_NAME_LENGTH)
> return NULL;
>
> @@ -604,13 +649,33 @@
> return NULL;
> }
>
> - /* sys I/F */
> - if (type) {
> - result = device_create_file(&tz->device, &dev_attr_type);
> - if (result)
> - goto unregister;
> + /* hwmon sys I/F */
> + tz->hwmon = hwmon_device_register(&tz->device);
> + if (IS_ERR(tz->hwmon)) {
> + result = PTR_ERR(tz->hwmon);
> + tz->hwmon = NULL;
> + printk(KERN_ERR PREFIX
> + "unable to register hwmon device\n");
> + goto unregister;
> }
>
> + result = device_create_file(tz->hwmon, &dev_attr_name);
> + if (result)
> + goto unregister;
> +
> + result = device_create_file(tz->hwmon, &dev_attr_temp1_input);
> + if (result)
> + goto unregister;
> +
> + result = device_create_file(tz->hwmon, &dev_attr_temp1_crit);
> + if (result)
> + goto unregister;
> +
> + /* sys I/F */
> + result = device_create_file(&tz->device, &dev_attr_type);
> + if (result)
> + goto unregister;
> +
> result = device_create_file(&tz->device, &dev_attr_temp);
> if (result)
> goto unregister;
> @@ -676,8 +741,13 @@
> tz->ops->unbind(tz, cdev);
> mutex_unlock(&thermal_list_lock);
>
> - if (tz->type[0])
> - device_remove_file(&tz->device, &dev_attr_type);
> + device_remove_file(&tz->device, &dev_attr_name);
> + device_remove_file(&tz->device, &dev_attr_temp1_input);
> + device_remove_file(&tz->device, &dev_attr_temp1_crit);
> + hwmon_device_unregister(tz->hwmon);
> + tz->hwmon = NULL;
> +
> + device_remove_file(&tz->device, &dev_attr_type);
> device_remove_file(&tz->device, &dev_attr_temp);
> if (tz->ops->get_mode)
> device_remove_file(&tz->device, &dev_attr_mode);
> Index: linux-2.6.25-rc2/include/linux/thermal.h
> =================================> --- linux-2.6.25-rc2.orig/include/linux/thermal.h 2008-02-25 22:43:29.000000000 -0500
> +++ linux-2.6.25-rc2/include/linux/thermal.h 2008-02-25 22:43:38.000000000 -0500
> @@ -69,6 +69,7 @@
> int id;
> char type[THERMAL_NAME_LENGTH];
> struct device device;
> + struct device *hwmon;
> void *devdata;
> int trips;
> struct thermal_zone_device_ops *ops;
>
>
>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next prev parent reply other threads:[~2008-02-26 8:40 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-25 21:31 [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-02-25 21:31 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-02-26 8:39 ` Hans de Goede [this message]
2008-02-26 8:39 ` Hans de Goede
2008-02-26 21:40 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-02-26 21:40 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-02-27 8:32 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Hans de Goede
2008-02-27 8:32 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Hans de Goede
2008-03-17 12:37 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Jean Delvare
2008-03-17 12:37 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Jean Delvare
2008-03-17 12:55 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Hans de Goede
2008-03-17 12:55 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Hans de Goede
2008-03-17 13:48 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Jean Delvare
2008-03-17 13:48 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Jean Delvare
2008-03-18 3:45 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-03-18 3:45 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-03-18 10:06 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Jean Delvare
2008-03-18 10:06 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Jean Delvare
2008-03-20 14:58 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Henrique de Moraes Holschuh
2008-03-20 14:58 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Henrique de Moraes Holschuh
2008-03-18 5:12 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Len Brown
2008-03-18 5:12 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Len Brown
2008-03-18 9:44 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Jean Delvare
2008-03-18 9:44 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Jean Delvare
2008-03-18 3:11 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-03-18 3:11 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-03-18 1:59 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-03-18 1:59 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-03-18 9:25 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Hans de Goede
2008-03-18 9:25 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Hans de Goede
2008-03-18 9:40 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Jean Delvare
2008-03-18 9:40 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Jean Delvare
-- strict thread matches above, loose matches on Subject: below --
2008-02-27 0:37 [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-02-27 0:37 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-03-12 4:29 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Len Brown
2008-03-12 4:29 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Len Brown
2008-03-13 5:09 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Len Brown
2008-03-13 5:09 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Len Brown
2008-03-13 8:46 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Zhang, Rui
2008-03-13 8:46 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Zhang, Rui
2008-03-18 4:59 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Len Brown
2008-03-18 4:59 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Len Brown
2008-03-13 10:59 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Thomas Renninger
2008-03-13 10:59 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Thomas Renninger
2008-03-13 23:09 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Henrique de Moraes Holschuh
2008-03-13 23:09 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Henrique de Moraes Holschuh
2008-03-14 9:03 ` [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Thomas Renninger
2008-03-14 9:03 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Thomas Renninger
2008-03-15 4:25 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal device Henrique de Moraes Holschuh
2008-03-15 4:25 ` [lm-sensors] [PATCH 1/2] thermal: add hwmon sys I/F for thermal Henrique de Moraes Holschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47C3D04E.6090609@hhs.nl \
--to=j.w.r.degoede@hhs.nl \
--cc=hmh@hmh.eng.br \
--cc=hughsient@gmail.com \
--cc=khali@linux-fr.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=mhoffman@lightlink.com \
--cc=mjg59@srcf.ucam.org \
--cc=rui.zhang@intel.com \
--cc=sujith.thomas@intel.com \
--cc=trenn@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.