All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Amjad Ouled-Ameur <aouledameur@baylibre.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Amit Kucheria <amitk@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Zhang Rui <rui.zhang@intel.com>
Cc: AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	Fabien Parent <fparent@baylibre.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Markus Schneider-Pargmann <msp@baylibre.com>,
	linux-pm@vger.kernel.org, Rob Herring <robh@kernel.org>,
	Michael Kao <michael.kao@mediatek.com>,
	linux-kernel@vger.kernel.org, Hsin-Yi Wang <hsinyi@chromium.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v7 4/4] thermal: mediatek: add another get_temp ops for thermal sensors
Date: Wed, 25 Jan 2023 11:02:03 +0100	[thread overview]
Message-ID: <0df50d0f-de3a-a2be-9363-2b3c65599f96@linaro.org> (raw)
In-Reply-To: <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com>

On 24/01/2023 23:27, Amjad Ouled-Ameur wrote:
> 
> On 1/24/23 18:55, Daniel Lezcano wrote:
>> On 24/01/2023 18:46, Amjad Ouled-Ameur wrote:
>>>
>>> On 1/24/23 17:54, Daniel Lezcano wrote:
>>>>
>>>> Hi Amjad,
>>>>
>>>> On 24/01/2023 11:08, Amjad Ouled-Ameur wrote:
>>>>
>>>> [ ... ]
>>>>
>>>>>>>
>>>>>>> IIUC, there is a sensor per couple of cores. 1 x 2Bigs, 1 x 
>>>>>>> 2Bigs, 1 x 4 Little, right ?
>>>>>>
>>>>>> MT8365 SoC has 4 x A53 CPUs. The SoC has 4 thermal zones per 
>>>>>> sensor. Thermal zone 0 corresponds
>>>>>>
>>>>>> to all 4 x A53 CPUs, the other thermal zones (1, 2 and 3) has 
>>>>>> nothing to do with CPUs. The cooling device type
>>>>>>
>>>>>> used for CPUs is passive. FYI, thermal zones 1, 2 and 3 are 
>>>>>> present in the SoC for debug-purpose only, they are not supposed
>>>>>>
>>>>>> to be used for production.
>>>>>>
>>>>> After reconsidering the fact that zones 1, 2 and 3 are only used 
>>>>> for dev/debug, it might be best to avo >
>>>>> aggregation as you suggested, and keep only support for zone 0 in 
>>>>> this driver. Thus I suggest I send a V8
>>>>>
>>>>> where I keep only below fixes for this patch if that's okay with you:
>>>>>
>>>>> - Define "raw_to_mcelsius" function pointer for "struct 
>>>>> thermal_bank_cfg".
>>>>>
>>>>> - Fix "mtk_thermal" variable in mtk_read_temp().
>>>>>
>>>>> - Set "mt->raw_to_mcelsius" in probe().
>>>>>
>>>>>
>>>>> For zones 1, 2 and 3 we can later add a different driver specific 
>>>>> for dev/debug to probe them to
>>>>>
>>>>> avoid confusion.
>>>>
>>>> You can add them in the driver and in the device tree, but just add 
>>>> the cooling device for the thermal zone 0.
>>>
>>> Thermal zone 0 uses CPU{0..3} for passive cooling, in this case we 
>>> should register cooling device with
>>>
>>> cpufreq_cooling_register() for each CPU right ?
>>
>> No, the OF code device tree does already that. You just have to 
>> register the different thermal zones.
>>
>> Do you have a pointer to a device tree for this board and the thermal 
>> setup ?
> 
> Sure, here is a dtsi for MT8365 SoC which contains thermal nodes [0].

 From my POV, there are two different setup with the DT but only one 
implementation with the driver.

The driver should register all the thermal zones for each CPUs. For 
that, make things nice with the defines for the dt-bindings like [1].

Then the device tree:

setup1:

Describe all the thermal zones in the DT which will be similar to [2]. 
Each CPU has a thermal zone, trip points and the same cooling device.

The first thermal zone reaching the trip temperature threshold will 
start the mitigation. The thermal framework takes care of multiple 
thermal zones sharing the same cooling device.

The result will be the same as the max temperature aggregation you did 
previously.

setup2:

Describe all the thermal zones in the DT [3], but add the cooling device 
only on the sensor you are interested in mitigating.


And finally, if the sensors should be used to describe a kind of 
temperature gradient, a linear equation could be used but that is not 
implemented yet in the thermal framework.

Hope that helps

   -- Daniel

[1] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-3-bchihi::40baylibre.com:1include:dt-bindings:thermal:mediatek-lvts.h

[2] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#m303240c4da71f6f37831e5d1b6f3da771ae8dd90

[3] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-6-bchihi::40baylibre.com:1arch:arm64:boot:dts:mediatek:mt8195.dtsi


-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Amjad Ouled-Ameur <aouledameur@baylibre.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Amit Kucheria <amitk@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Zhang Rui <rui.zhang@intel.com>
Cc: AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Fabien Parent <fparent@baylibre.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Markus Schneider-Pargmann <msp@baylibre.com>,
	linux-pm@vger.kernel.org, Rob Herring <robh@kernel.org>,
	Michael Kao <michael.kao@mediatek.com>,
	linux-kernel@vger.kernel.org, Hsin-Yi Wang <hsinyi@chromium.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v7 4/4] thermal: mediatek: add another get_temp ops for thermal sensors
Date: Wed, 25 Jan 2023 11:02:03 +0100	[thread overview]
Message-ID: <0df50d0f-de3a-a2be-9363-2b3c65599f96@linaro.org> (raw)
In-Reply-To: <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com>

On 24/01/2023 23:27, Amjad Ouled-Ameur wrote:
> 
> On 1/24/23 18:55, Daniel Lezcano wrote:
>> On 24/01/2023 18:46, Amjad Ouled-Ameur wrote:
>>>
>>> On 1/24/23 17:54, Daniel Lezcano wrote:
>>>>
>>>> Hi Amjad,
>>>>
>>>> On 24/01/2023 11:08, Amjad Ouled-Ameur wrote:
>>>>
>>>> [ ... ]
>>>>
>>>>>>>
>>>>>>> IIUC, there is a sensor per couple of cores. 1 x 2Bigs, 1 x 
>>>>>>> 2Bigs, 1 x 4 Little, right ?
>>>>>>
>>>>>> MT8365 SoC has 4 x A53 CPUs. The SoC has 4 thermal zones per 
>>>>>> sensor. Thermal zone 0 corresponds
>>>>>>
>>>>>> to all 4 x A53 CPUs, the other thermal zones (1, 2 and 3) has 
>>>>>> nothing to do with CPUs. The cooling device type
>>>>>>
>>>>>> used for CPUs is passive. FYI, thermal zones 1, 2 and 3 are 
>>>>>> present in the SoC for debug-purpose only, they are not supposed
>>>>>>
>>>>>> to be used for production.
>>>>>>
>>>>> After reconsidering the fact that zones 1, 2 and 3 are only used 
>>>>> for dev/debug, it might be best to avo >
>>>>> aggregation as you suggested, and keep only support for zone 0 in 
>>>>> this driver. Thus I suggest I send a V8
>>>>>
>>>>> where I keep only below fixes for this patch if that's okay with you:
>>>>>
>>>>> - Define "raw_to_mcelsius" function pointer for "struct 
>>>>> thermal_bank_cfg".
>>>>>
>>>>> - Fix "mtk_thermal" variable in mtk_read_temp().
>>>>>
>>>>> - Set "mt->raw_to_mcelsius" in probe().
>>>>>
>>>>>
>>>>> For zones 1, 2 and 3 we can later add a different driver specific 
>>>>> for dev/debug to probe them to
>>>>>
>>>>> avoid confusion.
>>>>
>>>> You can add them in the driver and in the device tree, but just add 
>>>> the cooling device for the thermal zone 0.
>>>
>>> Thermal zone 0 uses CPU{0..3} for passive cooling, in this case we 
>>> should register cooling device with
>>>
>>> cpufreq_cooling_register() for each CPU right ?
>>
>> No, the OF code device tree does already that. You just have to 
>> register the different thermal zones.
>>
>> Do you have a pointer to a device tree for this board and the thermal 
>> setup ?
> 
> Sure, here is a dtsi for MT8365 SoC which contains thermal nodes [0].

 From my POV, there are two different setup with the DT but only one 
implementation with the driver.

The driver should register all the thermal zones for each CPUs. For 
that, make things nice with the defines for the dt-bindings like [1].

Then the device tree:

setup1:

Describe all the thermal zones in the DT which will be similar to [2]. 
Each CPU has a thermal zone, trip points and the same cooling device.

The first thermal zone reaching the trip temperature threshold will 
start the mitigation. The thermal framework takes care of multiple 
thermal zones sharing the same cooling device.

The result will be the same as the max temperature aggregation you did 
previously.

setup2:

Describe all the thermal zones in the DT [3], but add the cooling device 
only on the sensor you are interested in mitigating.


And finally, if the sensors should be used to describe a kind of 
temperature gradient, a linear equation could be used but that is not 
implemented yet in the thermal framework.

Hope that helps

   -- Daniel

[1] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-3-bchihi::40baylibre.com:1include:dt-bindings:thermal:mediatek-lvts.h

[2] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#m303240c4da71f6f37831e5d1b6f3da771ae8dd90

[3] 
https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-6-bchihi::40baylibre.com:1arch:arm64:boot:dts:mediatek:mt8195.dtsi


-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-01-25 10:02 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-18 11:04 [PATCH v7 0/4] thermal: mediatek: Add support for MT8365 SoC Amjad Ouled-Ameur
2022-11-18 11:04 ` Amjad Ouled-Ameur
2022-11-18 11:04 ` [PATCH v7 1/4] dt-bindings: thermal: mediatek: add binding documentation " Amjad Ouled-Ameur
2022-11-18 11:04   ` Amjad Ouled-Ameur
2022-11-18 11:04 ` [PATCH v7 2/4] thermal: mediatek: control buffer enablement tweaks Amjad Ouled-Ameur
2022-11-18 11:04   ` Amjad Ouled-Ameur
2022-11-18 11:04 ` [PATCH v7 3/4] thermal: mediatek: add support for MT8365 SoC Amjad Ouled-Ameur
2022-11-18 11:04   ` Amjad Ouled-Ameur
2022-11-18 11:04 ` [PATCH v7 4/4] thermal: mediatek: add another get_temp ops for thermal sensors Amjad Ouled-Ameur
2022-11-18 11:04   ` Amjad Ouled-Ameur
2022-12-04 17:26   ` Daniel Lezcano
2022-12-04 17:26     ` Daniel Lezcano
2022-12-05 10:41     ` Amjad Ouled-Ameur
2022-12-05 10:41       ` Amjad Ouled-Ameur
2022-12-05 19:39       ` Daniel Lezcano
2022-12-05 19:39         ` Daniel Lezcano
2022-12-06  9:18         ` Amjad Ouled-Ameur
2022-12-06  9:18           ` Amjad Ouled-Ameur
2022-12-26 10:27           ` Amjad Ouled-Ameur
2022-12-26 10:27             ` Amjad Ouled-Ameur
2022-12-29 15:49           ` Daniel Lezcano
2022-12-29 15:49             ` Daniel Lezcano
2023-01-19 17:03             ` Amjad Ouled-Ameur
2023-01-19 17:03               ` Amjad Ouled-Ameur
2023-01-24 10:08               ` Amjad Ouled-Ameur
2023-01-24 10:08                 ` Amjad Ouled-Ameur
2023-01-24 16:54                 ` Daniel Lezcano
2023-01-24 16:54                   ` Daniel Lezcano
2023-01-24 17:46                   ` Amjad Ouled-Ameur
2023-01-24 17:46                     ` Amjad Ouled-Ameur
2023-01-24 17:55                     ` Daniel Lezcano
2023-01-24 17:55                       ` Daniel Lezcano
2023-01-24 22:27                       ` Amjad Ouled-Ameur
2023-01-24 22:27                         ` Amjad Ouled-Ameur
2023-01-25 10:02                         ` Daniel Lezcano [this message]
2023-01-25 10:02                           ` Daniel Lezcano
2023-01-25 10:27                           ` Amjad Ouled-Ameur
2023-01-25 10:27                             ` Amjad Ouled-Ameur

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=0df50d0f-de3a-a2be-9363-2b3c65599f96@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=amitk@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=aouledameur@baylibre.com \
    --cc=devicetree@vger.kernel.org \
    --cc=fparent@baylibre.com \
    --cc=hsinyi@chromium.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=michael.kao@mediatek.com \
    --cc=msp@baylibre.com \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=rui.zhang@intel.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.