All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Zhang Rui <rui.zhang@intel.com>
Cc: Jean Delvare <khali@linux-fr.org>,
	Eduardo Valentin <eduardo.valentin@ti.com>,
	<swarren@wwwdotorg.org>, <pawel.moll@arm.com>,
	<mark.rutland@arm.com>, <ian.campbell@citrix.com>,
	<rob.herring@calxeda.com>, <linux@roeck-us.net>,
	<devicetree@vger.kernel.org>, <wni@nvidia.com>,
	<linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<lm-sensors@lm-sensors.org>, <grant.likely@linaro.org>
Subject: Re: [lm-sensors] [PATCHv9 02/20] thermal: introduce device tree parser
Date: Mon, 18 Nov 2013 10:45:02 -0400	[thread overview]
Message-ID: <528A27EE.9090604@ti.com> (raw)
In-Reply-To: <1384754650.2316.32.camel@rzhang-lenovo>

[-- Attachment #1: Type: text/plain, Size: 7241 bytes --]

Hello Jean,

I will try to complement what Rui's already commented.

On 18-11-2013 02:04, Zhang Rui wrote:
> On 五, 2013-11-15 at 09:07 +0100, Jean Delvare wrote:
>> Hi Eduardo,
>>
>> On Tue, 12 Nov 2013 15:46:04 -0400, Eduardo Valentin wrote:
>>> This patch introduces a device tree bindings for
>>> describing the hardware thermal behavior and limits.
>>> Also a parser to read and interpret the data and feed
>>> it in the thermal framework is presented.
>>>
>>> This patch introduces a thermal data parser for device
>>> tree. The parsed data is used to build thermal zones
>>> and thermal binding parameters. The output data
>>> can then be used to deploy thermal policies.
>>>
>>> This patch adds also documentation regarding this
>>> API and how to define tree nodes to use
>>> this infrastructure.
>>>
>>> Note that, in order to be able to have control
>>> on the sensor registration on the DT thermal zone,
>>> it was required to allow changing the thermal zone
>>> .get_temp callback. For this reason, this patch
>>> also removes the 'const' modifier from the .ops
>>> field of thermal zone devices.
>>>
>>> Cc: Zhang Rui <rui.zhang@intel.com>
>>> Cc: linux-pm@vger.kernel.org
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: Mark Rutland <mark.rutland@arm.com>
>>> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
>>> ---
>>> (...)
>>> +static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip,
>>> +				enum thermal_trend *trend)
>>> +{
>>> +	struct __thermal_zone *data = tz->devdata;
>>> +	long dev_trend;
>>> +	int r;
>>> +
>>> +	if (!data->get_trend)
>>> +		return -EINVAL;
>>> +
>>> +	r = data->get_trend(data->sensor_data, &dev_trend);
>>> +	if (r)
>>> +		return r;
>>> +
>>> +	/* TODO: These intervals might have some thresholds, but in core code */
>>> +	if (dev_trend > 0)
>>> +		*trend = THERMAL_TREND_RAISING;
>>> +	else if (dev_trend < 0)
>>> +		*trend = THERMAL_TREND_DROPPING;
>>> +	else
>>> +		*trend = THERMAL_TREND_STABLE;
>>> +
>>> +	return 0;
>>> +}
>>
>> I don't like the whole trend thing.
>>
>> I've been writing hwmon drivers for the past decade and I've never seen
>> a thermal sensor device being able to report trends. And as a rule of
>> thumb, if the hardware can't do it then the (hardware-specific) drivers
>> should not report it.

In fact, I would agree with you that it is not common to see such
devices. What I've already seen is that HW provides is usually artifacts
that may help on computing such statistic data. And in that case it may
be the case that the data coming from the HW may have less noise, such
as system overhead, than that computed by the caller.

However, it is also the case that such artifacts do not work without a
proper platform dependent configuration step, such as update interval
and size of the history window.

> 
> I agree that a sensor device should not be able to report trends. But
> currently, the thermal zone driver is not only a sensor driver, it also
> owns the platform thermal cooling strategy.
> And some platforms do have this kind of knowledge, right?
> e.g. ACPI spec provides an equation for processor passive cooling (ACPI
> Spec 5.0 11.1.5).
> 

Just a complementary point here, The design of current thermal framework
is so that get_trend is zone specific, and thus, it has to consider the
cooling strategy owned by the driver, like the update interval. And
besides, in case the driver does not know how to compute the trend, the
framework, the caller of that callback, also provides default behavior.

The purpose of this series is to split the data that is platform
dependent and allow designers to write those data points in device tree.
That is why the "glue layer" still keeps the get_trend.


>>
>> Hwmon devices (and drivers) report temperature values, and sometimes
>> historical min/max. They can do that because these are facts that need
>> no interpretation.
>>
>> Defining a trend, however, requires care and, more importantly,
>> decisions.


Maybe your concern is the fact that it would be very hard to provide a
trend from a hwmon driver? And that I agree, unless the device provides
artifacts. But that is not the case for all users of this API. For
instance, some versions of TI SoC bandgap sensors may have historical
buffers and cumulative values. But obviously, these features would work
only if proper configuration is agreed.

> 
> We had the assumption that we will get an interrupt when the firmware
> thinks there is an temperature change that should be noticed by OS.
> 
>>  For example, consider a thermal sensor which reports 50°C at
>> time t, then 47°C at time t+3s,
> 
> does firmware thinks this should be noticed by OS?
> If no, there is no interrupt and this temperature change is totally
> transparent to the OS at all.
> If yes, the thermal core will check if the system is overheating, if
> yes, it throttles the devices, and if no, do nothing.
> 
>>  then 48°C at time t+6s. At t+7s someone
>> asks for the trend,
> 
> the trend is needed when platform thermal driver calls
> thermal_zone_device_update(), and mostly following a temperature change
> interrupt.
> 
>>  what should the driver reply?
>>  If you consider only
>> the last 5 seconds, temperature is raising. If you consider the last 10
>> seconds instead, temperature is dropping. How would the driver know
>> what time frame the caller is interested in?
>>
>> Another example: "small" temperature variations. If temperatures varies
>> by 1°C in my kitchen's oven, I'd call it stable. If my body temperature
>> varies by 1°C, I'd call it non-stable, and my doctor for an appointment
>> also ;-)
>>
> 
>> My point is that only the caller, and not the driver, knows how to
>> convert a series of measurements into a trend. So I don't think drivers

Agreed here. However, the caller can also instruct the device to help on
the computation based on historical values. And historical values can be
configured also by the caller.

>> should implement anything like get_trend(). Whatever piece of code
>> needs to establish a trend should call get_temp() repeatedly, store the
>> results and do its own analysis of the data.
>>
> I think the key problem is that,
> the thermal subsystem just provides a basic/minimum thermal control
> framework in kernel, and it is totally platform independent. And any
> platform driver can use this framework to do some basic thermal control
> easily but just telling thermal core if the thermal core should take
> some cooling actions (trip points + trend + current temperature) and how
> (by choosing thermal governors).
> 
> So if you want to do more precise thermal control, you'd better disable
> kernel thermal control and do it in userspace. In this case,
> the .get_trend() will never be invoked at all.
> Further more, I'm indeed considering introduce platform specific thermal
> governors, so that platform thermal driver can tell thermal core what to
> do at a certain point.
> 
> thanks,
> rui
> 
> 
> 


-- 
You have got to be excited about what you are doing. (L. Lamport)

Eduardo Valentin


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Zhang Rui <rui.zhang@intel.com>
Cc: Jean Delvare <khali@linux-fr.org>,
	Eduardo Valentin <eduardo.valentin@ti.com>,
	swarren@wwwdotorg.org, pawel.moll@arm.com, mark.rutland@arm.com,
	ian.campbell@citrix.com, rob.herring@calxeda.com,
	linux@roeck-us.net, devicetree@vger.kernel.org, wni@nvidia.com,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	lm-sensors@lm-sensors.org, grant.likely@linaro.org
Subject: Re: [lm-sensors] [PATCHv9 02/20] thermal: introduce device tree parser
Date: Mon, 18 Nov 2013 10:45:02 -0400	[thread overview]
Message-ID: <528A27EE.9090604@ti.com> (raw)
In-Reply-To: <1384754650.2316.32.camel@rzhang-lenovo>

[-- Attachment #1: Type: text/plain, Size: 7241 bytes --]

Hello Jean,

I will try to complement what Rui's already commented.

On 18-11-2013 02:04, Zhang Rui wrote:
> On 五, 2013-11-15 at 09:07 +0100, Jean Delvare wrote:
>> Hi Eduardo,
>>
>> On Tue, 12 Nov 2013 15:46:04 -0400, Eduardo Valentin wrote:
>>> This patch introduces a device tree bindings for
>>> describing the hardware thermal behavior and limits.
>>> Also a parser to read and interpret the data and feed
>>> it in the thermal framework is presented.
>>>
>>> This patch introduces a thermal data parser for device
>>> tree. The parsed data is used to build thermal zones
>>> and thermal binding parameters. The output data
>>> can then be used to deploy thermal policies.
>>>
>>> This patch adds also documentation regarding this
>>> API and how to define tree nodes to use
>>> this infrastructure.
>>>
>>> Note that, in order to be able to have control
>>> on the sensor registration on the DT thermal zone,
>>> it was required to allow changing the thermal zone
>>> .get_temp callback. For this reason, this patch
>>> also removes the 'const' modifier from the .ops
>>> field of thermal zone devices.
>>>
>>> Cc: Zhang Rui <rui.zhang@intel.com>
>>> Cc: linux-pm@vger.kernel.org
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: Mark Rutland <mark.rutland@arm.com>
>>> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
>>> ---
>>> (...)
>>> +static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip,
>>> +				enum thermal_trend *trend)
>>> +{
>>> +	struct __thermal_zone *data = tz->devdata;
>>> +	long dev_trend;
>>> +	int r;
>>> +
>>> +	if (!data->get_trend)
>>> +		return -EINVAL;
>>> +
>>> +	r = data->get_trend(data->sensor_data, &dev_trend);
>>> +	if (r)
>>> +		return r;
>>> +
>>> +	/* TODO: These intervals might have some thresholds, but in core code */
>>> +	if (dev_trend > 0)
>>> +		*trend = THERMAL_TREND_RAISING;
>>> +	else if (dev_trend < 0)
>>> +		*trend = THERMAL_TREND_DROPPING;
>>> +	else
>>> +		*trend = THERMAL_TREND_STABLE;
>>> +
>>> +	return 0;
>>> +}
>>
>> I don't like the whole trend thing.
>>
>> I've been writing hwmon drivers for the past decade and I've never seen
>> a thermal sensor device being able to report trends. And as a rule of
>> thumb, if the hardware can't do it then the (hardware-specific) drivers
>> should not report it.

In fact, I would agree with you that it is not common to see such
devices. What I've already seen is that HW provides is usually artifacts
that may help on computing such statistic data. And in that case it may
be the case that the data coming from the HW may have less noise, such
as system overhead, than that computed by the caller.

However, it is also the case that such artifacts do not work without a
proper platform dependent configuration step, such as update interval
and size of the history window.

> 
> I agree that a sensor device should not be able to report trends. But
> currently, the thermal zone driver is not only a sensor driver, it also
> owns the platform thermal cooling strategy.
> And some platforms do have this kind of knowledge, right?
> e.g. ACPI spec provides an equation for processor passive cooling (ACPI
> Spec 5.0 11.1.5).
> 

Just a complementary point here, The design of current thermal framework
is so that get_trend is zone specific, and thus, it has to consider the
cooling strategy owned by the driver, like the update interval. And
besides, in case the driver does not know how to compute the trend, the
framework, the caller of that callback, also provides default behavior.

The purpose of this series is to split the data that is platform
dependent and allow designers to write those data points in device tree.
That is why the "glue layer" still keeps the get_trend.


>>
>> Hwmon devices (and drivers) report temperature values, and sometimes
>> historical min/max. They can do that because these are facts that need
>> no interpretation.
>>
>> Defining a trend, however, requires care and, more importantly,
>> decisions.


Maybe your concern is the fact that it would be very hard to provide a
trend from a hwmon driver? And that I agree, unless the device provides
artifacts. But that is not the case for all users of this API. For
instance, some versions of TI SoC bandgap sensors may have historical
buffers and cumulative values. But obviously, these features would work
only if proper configuration is agreed.

> 
> We had the assumption that we will get an interrupt when the firmware
> thinks there is an temperature change that should be noticed by OS.
> 
>>  For example, consider a thermal sensor which reports 50°C at
>> time t, then 47°C at time t+3s,
> 
> does firmware thinks this should be noticed by OS?
> If no, there is no interrupt and this temperature change is totally
> transparent to the OS at all.
> If yes, the thermal core will check if the system is overheating, if
> yes, it throttles the devices, and if no, do nothing.
> 
>>  then 48°C at time t+6s. At t+7s someone
>> asks for the trend,
> 
> the trend is needed when platform thermal driver calls
> thermal_zone_device_update(), and mostly following a temperature change
> interrupt.
> 
>>  what should the driver reply?
>>  If you consider only
>> the last 5 seconds, temperature is raising. If you consider the last 10
>> seconds instead, temperature is dropping. How would the driver know
>> what time frame the caller is interested in?
>>
>> Another example: "small" temperature variations. If temperatures varies
>> by 1°C in my kitchen's oven, I'd call it stable. If my body temperature
>> varies by 1°C, I'd call it non-stable, and my doctor for an appointment
>> also ;-)
>>
> 
>> My point is that only the caller, and not the driver, knows how to
>> convert a series of measurements into a trend. So I don't think drivers

Agreed here. However, the caller can also instruct the device to help on
the computation based on historical values. And historical values can be
configured also by the caller.

>> should implement anything like get_trend(). Whatever piece of code
>> needs to establish a trend should call get_temp() repeatedly, store the
>> results and do its own analysis of the data.
>>
> I think the key problem is that,
> the thermal subsystem just provides a basic/minimum thermal control
> framework in kernel, and it is totally platform independent. And any
> platform driver can use this framework to do some basic thermal control
> easily but just telling thermal core if the thermal core should take
> some cooling actions (trip points + trend + current temperature) and how
> (by choosing thermal governors).
> 
> So if you want to do more precise thermal control, you'd better disable
> kernel thermal control and do it in userspace. In this case,
> the .get_trend() will never be invoked at all.
> Further more, I'm indeed considering introduce platform specific thermal
> governors, so that platform thermal driver can tell thermal core what to
> do at a certain point.
> 
> thanks,
> rui
> 
> 
> 


-- 
You have got to be excited about what you are doing. (L. Lamport)

Eduardo Valentin


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Zhang Rui <rui.zhang@intel.com>
Cc: Jean Delvare <khali@linux-fr.org>,
	Eduardo Valentin <eduardo.valentin@ti.com>,
	swarren@wwwdotorg.org, pawel.moll@arm.com, mark.rutland@arm.com,
	ian.campbell@citrix.com, rob.herring@calxeda.com,
	linux@roeck-us.net, devicetree@vger.kernel.org, wni@nvidia.com,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	lm-sensors@lm-sensors.org, grant.likely@linaro.org
Subject: Re: [lm-sensors] [PATCHv9 02/20] thermal: introduce device tree parser
Date: Mon, 18 Nov 2013 14:45:02 +0000	[thread overview]
Message-ID: <528A27EE.9090604@ti.com> (raw)
In-Reply-To: <1384754650.2316.32.camel@rzhang-lenovo>


[-- Attachment #1.1: Type: text/plain, Size: 7241 bytes --]

Hello Jean,

I will try to complement what Rui's already commented.

On 18-11-2013 02:04, Zhang Rui wrote:
> On 五, 2013-11-15 at 09:07 +0100, Jean Delvare wrote:
>> Hi Eduardo,
>>
>> On Tue, 12 Nov 2013 15:46:04 -0400, Eduardo Valentin wrote:
>>> This patch introduces a device tree bindings for
>>> describing the hardware thermal behavior and limits.
>>> Also a parser to read and interpret the data and feed
>>> it in the thermal framework is presented.
>>>
>>> This patch introduces a thermal data parser for device
>>> tree. The parsed data is used to build thermal zones
>>> and thermal binding parameters. The output data
>>> can then be used to deploy thermal policies.
>>>
>>> This patch adds also documentation regarding this
>>> API and how to define tree nodes to use
>>> this infrastructure.
>>>
>>> Note that, in order to be able to have control
>>> on the sensor registration on the DT thermal zone,
>>> it was required to allow changing the thermal zone
>>> .get_temp callback. For this reason, this patch
>>> also removes the 'const' modifier from the .ops
>>> field of thermal zone devices.
>>>
>>> Cc: Zhang Rui <rui.zhang@intel.com>
>>> Cc: linux-pm@vger.kernel.org
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: Mark Rutland <mark.rutland@arm.com>
>>> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
>>> ---
>>> (...)
>>> +static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip,
>>> +				enum thermal_trend *trend)
>>> +{
>>> +	struct __thermal_zone *data = tz->devdata;
>>> +	long dev_trend;
>>> +	int r;
>>> +
>>> +	if (!data->get_trend)
>>> +		return -EINVAL;
>>> +
>>> +	r = data->get_trend(data->sensor_data, &dev_trend);
>>> +	if (r)
>>> +		return r;
>>> +
>>> +	/* TODO: These intervals might have some thresholds, but in core code */
>>> +	if (dev_trend > 0)
>>> +		*trend = THERMAL_TREND_RAISING;
>>> +	else if (dev_trend < 0)
>>> +		*trend = THERMAL_TREND_DROPPING;
>>> +	else
>>> +		*trend = THERMAL_TREND_STABLE;
>>> +
>>> +	return 0;
>>> +}
>>
>> I don't like the whole trend thing.
>>
>> I've been writing hwmon drivers for the past decade and I've never seen
>> a thermal sensor device being able to report trends. And as a rule of
>> thumb, if the hardware can't do it then the (hardware-specific) drivers
>> should not report it.

In fact, I would agree with you that it is not common to see such
devices. What I've already seen is that HW provides is usually artifacts
that may help on computing such statistic data. And in that case it may
be the case that the data coming from the HW may have less noise, such
as system overhead, than that computed by the caller.

However, it is also the case that such artifacts do not work without a
proper platform dependent configuration step, such as update interval
and size of the history window.

> 
> I agree that a sensor device should not be able to report trends. But
> currently, the thermal zone driver is not only a sensor driver, it also
> owns the platform thermal cooling strategy.
> And some platforms do have this kind of knowledge, right?
> e.g. ACPI spec provides an equation for processor passive cooling (ACPI
> Spec 5.0 11.1.5).
> 

Just a complementary point here, The design of current thermal framework
is so that get_trend is zone specific, and thus, it has to consider the
cooling strategy owned by the driver, like the update interval. And
besides, in case the driver does not know how to compute the trend, the
framework, the caller of that callback, also provides default behavior.

The purpose of this series is to split the data that is platform
dependent and allow designers to write those data points in device tree.
That is why the "glue layer" still keeps the get_trend.


>>
>> Hwmon devices (and drivers) report temperature values, and sometimes
>> historical min/max. They can do that because these are facts that need
>> no interpretation.
>>
>> Defining a trend, however, requires care and, more importantly,
>> decisions.


Maybe your concern is the fact that it would be very hard to provide a
trend from a hwmon driver? And that I agree, unless the device provides
artifacts. But that is not the case for all users of this API. For
instance, some versions of TI SoC bandgap sensors may have historical
buffers and cumulative values. But obviously, these features would work
only if proper configuration is agreed.

> 
> We had the assumption that we will get an interrupt when the firmware
> thinks there is an temperature change that should be noticed by OS.
> 
>>  For example, consider a thermal sensor which reports 50°C at
>> time t, then 47°C at time t+3s,
> 
> does firmware thinks this should be noticed by OS?
> If no, there is no interrupt and this temperature change is totally
> transparent to the OS at all.
> If yes, the thermal core will check if the system is overheating, if
> yes, it throttles the devices, and if no, do nothing.
> 
>>  then 48°C at time t+6s. At t+7s someone
>> asks for the trend,
> 
> the trend is needed when platform thermal driver calls
> thermal_zone_device_update(), and mostly following a temperature change
> interrupt.
> 
>>  what should the driver reply?
>>  If you consider only
>> the last 5 seconds, temperature is raising. If you consider the last 10
>> seconds instead, temperature is dropping. How would the driver know
>> what time frame the caller is interested in?
>>
>> Another example: "small" temperature variations. If temperatures varies
>> by 1°C in my kitchen's oven, I'd call it stable. If my body temperature
>> varies by 1°C, I'd call it non-stable, and my doctor for an appointment
>> also ;-)
>>
> 
>> My point is that only the caller, and not the driver, knows how to
>> convert a series of measurements into a trend. So I don't think drivers

Agreed here. However, the caller can also instruct the device to help on
the computation based on historical values. And historical values can be
configured also by the caller.

>> should implement anything like get_trend(). Whatever piece of code
>> needs to establish a trend should call get_temp() repeatedly, store the
>> results and do its own analysis of the data.
>>
> I think the key problem is that,
> the thermal subsystem just provides a basic/minimum thermal control
> framework in kernel, and it is totally platform independent. And any
> platform driver can use this framework to do some basic thermal control
> easily but just telling thermal core if the thermal core should take
> some cooling actions (trip points + trend + current temperature) and how
> (by choosing thermal governors).
> 
> So if you want to do more precise thermal control, you'd better disable
> kernel thermal control and do it in userspace. In this case,
> the .get_trend() will never be invoked at all.
> Further more, I'm indeed considering introduce platform specific thermal
> governors, so that platform thermal driver can tell thermal core what to
> do at a certain point.
> 
> thanks,
> rui
> 
> 
> 


-- 
You have got to be excited about what you are doing. (L. Lamport)

Eduardo Valentin


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]

[-- Attachment #2: Type: text/plain, Size: 153 bytes --]

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

  reply	other threads:[~2013-11-18 14:46 UTC|newest]

Thread overview: 230+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-12 19:46 [PATCHv5 00/20] device thermal limits represented in device tree nodes (v5) Eduardo Valentin
2013-11-12 19:46 ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46 ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 01/20] thermal: allow registering without .get_temp Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv9 02/20] thermal: introduce device tree parser Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-13 16:57   ` Tomasz Figa
2013-11-13 16:57     ` [lm-sensors] " Tomasz Figa
2013-11-13 16:57     ` Tomasz Figa
2013-11-14 11:31     ` Eduardo Valentin
2013-11-14 11:31       ` [lm-sensors] " Eduardo Valentin
2013-11-14 11:31       ` Eduardo Valentin
2013-11-14 13:40       ` Tomasz Figa
2013-11-14 13:40         ` [lm-sensors] " Tomasz Figa
2013-11-15 13:19         ` Eduardo Valentin
2013-11-15 13:19           ` [lm-sensors] " Eduardo Valentin
2013-11-15 13:19           ` Eduardo Valentin
2013-11-21 14:57           ` Tomasz Figa
2013-11-21 14:57             ` [lm-sensors] " Tomasz Figa
2013-11-21 15:48             ` Eduardo Valentin
2013-11-21 15:48               ` [lm-sensors] " Eduardo Valentin
2013-11-21 15:48               ` Eduardo Valentin
2013-11-21 16:32               ` Tomasz Figa
2013-11-21 16:32                 ` [lm-sensors] " Tomasz Figa
2013-11-22 12:33                 ` Eduardo Valentin
2013-11-22 12:33                   ` [lm-sensors] " Eduardo Valentin
2013-11-22 12:33                   ` Eduardo Valentin
2013-11-25 15:31                   ` Mark Rutland
2013-11-25 15:31                     ` [lm-sensors] " Mark Rutland
2013-11-25 15:31                     ` Mark Rutland
2013-11-25 15:40                     ` Eduardo Valentin
2013-11-25 15:40                       ` [lm-sensors] " Eduardo Valentin
2013-11-25 15:40                       ` Eduardo Valentin
2013-11-25 15:41                     ` Eduardo Valentin
2013-11-25 15:41                       ` [lm-sensors] " Eduardo Valentin
2013-11-25 15:14             ` Mark Rutland
2013-11-25 15:14               ` [lm-sensors] " Mark Rutland
2013-11-25 15:14               ` Mark Rutland
2013-11-25 15:34               ` Eduardo Valentin
2013-11-25 15:34                 ` [lm-sensors] " Eduardo Valentin
2013-11-15  8:07   ` Jean Delvare
2013-11-15  8:07     ` Jean Delvare
2013-11-15  8:07     ` Jean Delvare
2013-11-18  6:04     ` Zhang Rui
2013-11-18  6:04       ` Zhang Rui
2013-11-18 14:45       ` Eduardo Valentin [this message]
2013-11-18 14:45         ` Eduardo Valentin
2013-11-18 14:45         ` Eduardo Valentin
2013-11-19 14:43         ` Jean Delvare
2013-11-19 14:43           ` Jean Delvare
2013-11-19 14:43           ` Jean Delvare
2013-11-25 15:37   ` Mark Rutland
2013-11-25 15:37     ` [lm-sensors] " Mark Rutland
2013-11-25 15:47     ` Eduardo Valentin
2013-11-25 15:47       ` [lm-sensors] " Eduardo Valentin
2013-11-25 15:47       ` Eduardo Valentin
2013-12-31 10:17   ` Wei Ni
2013-12-31 10:17     ` [lm-sensors] " Wei Ni
2013-12-31 10:17     ` Wei Ni
2014-01-07  2:48     ` Wei Ni
2014-01-07  2:48       ` [lm-sensors] " Wei Ni
2014-01-07  2:48       ` Wei Ni
2014-01-07 11:17       ` Eduardo Valentin
2014-01-07 11:17         ` [lm-sensors] " Eduardo Valentin
2014-01-07 11:17         ` Eduardo Valentin
2014-01-08  3:19         ` Wei Ni
2014-01-08  3:19           ` [lm-sensors] " Wei Ni
2014-01-08  3:24           ` Hu Yaohui
2014-01-08  3:24             ` [lm-sensors] " Hu Yaohui
2014-01-08  4:16             ` Wei Ni
2014-01-08  4:16               ` [lm-sensors] " Wei Ni
2014-01-08  4:16               ` Wei Ni
2014-01-02  2:55   ` Wei Ni
2014-01-02  2:55     ` [lm-sensors] " Wei Ni
2014-01-02  3:03     ` Wei Ni
2014-01-02  3:03       ` [lm-sensors] " Wei Ni
2014-01-02  2:59   ` Wei Ni
2014-01-02  2:59     ` [lm-sensors] " Wei Ni
2014-01-02  2:59     ` Wei Ni
2014-01-02 17:50     ` Matthew Longnecker
2014-01-02 17:50       ` [lm-sensors] " Matthew Longnecker
2014-01-02 17:50       ` Matthew Longnecker
2014-01-06 13:51       ` Mark Rutland
2014-01-06 13:51         ` [lm-sensors] " Mark Rutland
2014-01-06 14:54         ` Eduardo Valentin
2014-01-06 14:54           ` [lm-sensors] " Eduardo Valentin
2014-01-07  2:44           ` Wei Ni
2014-01-07  2:44             ` [lm-sensors] " Wei Ni
2014-01-07 12:02             ` Mark Rutland
2014-01-07 12:02               ` [lm-sensors] " Mark Rutland
2014-01-13 21:29             ` Eduardo Valentin
2014-01-13 21:29               ` [lm-sensors] " Eduardo Valentin
2014-01-14  2:54               ` Wei Ni
2014-01-14  2:54                 ` [lm-sensors] " Wei Ni
2014-01-14 18:48                 ` Eduardo Valentin
2014-01-14 18:48                   ` [lm-sensors] " Eduardo Valentin
2014-01-13 15:37       ` Eduardo Valentin
2014-01-13 15:37         ` [lm-sensors] " Eduardo Valentin
2014-01-13 15:37         ` Eduardo Valentin
2014-01-02 17:35   ` Matthew Longnecker
2014-01-02 17:35     ` [lm-sensors] " Matthew Longnecker
2014-01-02 17:35     ` Matthew Longnecker
2014-01-06 18:52     ` Eduardo Valentin
2014-01-06 18:52       ` [lm-sensors] " Eduardo Valentin
2014-01-06 18:52       ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 03/20] thermal: core: introduce thermal_of_cooling_device_register Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 04/20] thermal: cpu_cooling: introduce of_cpufreq_cooling_register Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device propertie Eduardo Valentin
2013-11-12 19:46   ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Eduardo Valentin
2013-11-14 13:17   ` Eduardo Valentin
2013-11-14 13:17     ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope Eduardo Valentin
2013-11-14 13:17     ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Eduardo Valentin
2013-11-14 22:04     ` Rafael J. Wysocki
2013-11-14 22:04       ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope Rafael J. Wysocki
2013-11-15  4:41   ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties viresh kumar
2013-11-15  4:53     ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope viresh kumar
2014-01-12 14:31   ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Zhang, Rui
2014-01-12 14:31     ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope Zhang, Rui
2014-01-12 14:31     ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Zhang, Rui
2014-01-13 15:08     ` Eduardo Valentin
2014-01-13 15:08       ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope Eduardo Valentin
2014-01-13 15:08       ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Eduardo Valentin
2014-01-14 19:07     ` Eduardo Valentin
2014-01-14 19:07       ` [lm-sensors] [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device prope Eduardo Valentin
2014-01-14 19:07       ` [PATCHv5 05/20] cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 06/20] hwmon: lm75: expose to thermal fw via DT nodes Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-15  7:43   ` Jean Delvare
2013-11-15  7:43     ` [lm-sensors] " Jean Delvare
2013-11-15  7:43     ` Jean Delvare
2013-11-18 14:27     ` Eduardo Valentin
2013-11-18 14:27       ` [lm-sensors] " Eduardo Valentin
2013-11-18 14:27       ` Eduardo Valentin
2013-11-18 16:25       ` Guenter Roeck
2013-11-18 16:25         ` [lm-sensors] " Guenter Roeck
2013-11-18 16:40         ` Eduardo Valentin
2013-11-18 16:40           ` [lm-sensors] " Eduardo Valentin
2013-11-18 16:40           ` Eduardo Valentin
2013-11-19  9:39       ` Jean Delvare
2013-11-19  9:39         ` [lm-sensors] " Jean Delvare
2013-11-19  9:39         ` Jean Delvare
2013-11-22 14:37         ` Eduardo Valentin
2013-11-22 14:37           ` [lm-sensors] " Eduardo Valentin
2013-11-22 14:37           ` Eduardo Valentin
2013-11-23 18:38           ` Jean Delvare
2013-11-23 18:38             ` [lm-sensors] " Jean Delvare
2013-11-23 18:38             ` Jean Delvare
2013-11-12 19:46 ` [PATCHv5 07/20] hwmon: tmp102: " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 08/20] thermal: ti-soc-thermal: use thermal DT infrastructure Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 09/20] arm: dts: add omap4 CPU thermal data Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 10/20] arm: dts: add omap4430 " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-20 12:32   ` Pavel Machek
2013-11-20 12:32     ` [lm-sensors] " Pavel Machek
2013-11-20 12:32     ` Pavel Machek
2013-11-21 15:36     ` Eduardo Valentin
2013-11-21 15:36       ` [lm-sensors] " Eduardo Valentin
2013-11-21 15:36       ` Eduardo Valentin
2013-11-21 15:36       ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 11/20] arm: dts: add omap4460 " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 12/20] arm: dts: add cooling properties on omap4430 cpu node Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 13/20] arm: dts: add cooling properties on omap4460 " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 14/20] arm: dts: add omap5 GPU thermal data Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 15/20] arm: dts: add omap5 CORE " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 16/20] arm: dts: add omap5 " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 17/20] arm: dts: add cooling properties on omap5 cpu node Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 18/20] arm: dts: make OMAP443x bandgap node to belong to OCP Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 19/20] arm: dts: make OMAP4460 " Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:46 ` [PATCHv5 20/20] MAINTAINERS: add maintainer entry for thermal bindings Eduardo Valentin
2013-11-12 19:46   ` [lm-sensors] " Eduardo Valentin
2013-11-12 19:46   ` Eduardo Valentin
2013-11-12 19:59   ` Olof Johansson
2013-11-12 19:59     ` [lm-sensors] " Olof Johansson
2013-11-12 20:14     ` Eduardo Valentin
2013-11-12 20:14       ` [lm-sensors] " Eduardo Valentin
2013-11-12 20:14       ` Eduardo Valentin
2013-11-13  9:42       ` Mark Rutland
2013-11-13  9:42         ` [lm-sensors] " Mark Rutland
2013-11-13 12:17         ` Eduardo Valentin
2013-11-13 12:17           ` [lm-sensors] " Eduardo Valentin
2013-11-13 14:46         ` Eduardo Valentin
2013-11-13 14:46           ` [lm-sensors] " Eduardo Valentin
2013-11-14 13:30         ` [PATCHv6 20/20] MAINTAINERS: add thermal bindings entry in thermal domain Eduardo Valentin
2013-11-14 13:30           ` [lm-sensors] " Eduardo Valentin
2013-11-14 13:30           ` Eduardo Valentin

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=528A27EE.9090604@ti.com \
    --to=eduardo.valentin@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=ian.campbell@citrix.com \
    --cc=khali@linux-fr.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lm-sensors@lm-sensors.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=rob.herring@calxeda.com \
    --cc=rui.zhang@intel.com \
    --cc=swarren@wwwdotorg.org \
    --cc=wni@nvidia.com \
    /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.