Re: [PATCH v2 00/11] thermal: add new flag irq-mode for trip point

From: Zhang Rui
Date: Wed Dec 05 2018 - 10:08:20 EST


On ä, 2018-11-07 at 18:09 +0100, Lukasz Luba wrote:
> Hi all,
>
> This patch set adds a new flag and mechanism in thermal trip points
> in
> DT.ÂÂThe old implementation in thermal zone in DT sets the same
> configuration for all internal trip points. It does not work for all
> HW.ÂÂThere are SoCs which support IRQs for some trip points (i.e.
> Exynos 4 has 4 trip points with IRQs). For additional one defined
> inside the thermal zone there is a need of 'polling'. When developer
> adds polling mode settings inside the thermal zone, all the trip
> points will be registered for polling, even those supporting IRQs,
> which does not make sense.

we have two timers, one for polling, and one for passive cooling.
I think we are talking about passive cooling timer only, right?
And the real problem is that we have multiple passive trip points and
only part of them support irq_mode, and we don't want to start the
passive polling timer for all of the passive trip points.

thanks,
rui

> Thus, developers create workarounds, which
> are confusing for some other developers.ÂÂTo workaround,Â
> people declare some trip points as 'active' (those with IRQ support).
> It allows to bypass polling mode in thermal framework applied forÂ
> all thermal zone's trip points.
>
> Thermal framework defines 4 types of trip points. The 'passive' means
> passive cooling using DVFS, 'active' is designed for fan and other
> devices actively changing the outside conditions. Therefore, a
> workaround
> mentioned earlier is confusing when someone does not know about the
> framework limitations.
>
> This patch set tries to solve the issue by adding one flag inside the
> trip point: 'irq-mode;'.ÂÂThe trip point 'passive' declared in DT
> with
> explicit flag 'irq-mode;' will not register itself as polling mode.
> Thermal framework will skip it during scheduling next read out work.
> The old global-polling-mode-configuration-inside-thermal-zone is
> still
> valid.ÂÂPatch set does not break existing design for trip points
> which
> do not have 'irq-mode' flag - they will use polling.
>
> As an example please check patch #10 for Exynos4 SoC family, where
> there
> is 4 HW supported trip points and there is a need of 6. The rest 2
> are
> declared as 'passive' without 'irq-mode;' flag, which means polling
> mode needed for them.
>
> Patch #1 is a small cleanup in thermal framework.
>
> Change log:
> v2
> - changed description in cover letter
> - change commit messages according to Krzysztof comments
> - rebase on top of current mainline (v4.20-rc1)
>
> Regards,
> Lukasz Luba
>
> Lukasz Luba (11):
> Â thermal: remove unused function parameter
> Â thermal: add irq-mode configuration for trip point
> Â thermal: add new sysfs file for irq-mode
> Â Doc: thermal: new irq-mode for trip point
> Â Doc: DT: thermal: new irq-mode for trip point
> Â arm64: dts: exynos5433: add support for thermal trip irq-mode
> Â arm64: dts: exynos7: add support for thermal trip irq-mode
> Â arm: dts: exynos4: add support for thermal trip irq-mode
> Â arm: dts: exynos5420: add support for thermal trip irq-mode
> Â arm: dts: exynos5422: add support for thermal trip irq-mode
> Â arm: dts: exynos5410: add support for thermal trip irq-mode
>
> Â.../devicetree/bindings/thermal/thermal.txtÂÂÂÂÂÂÂÂ|ÂÂÂ7 ++
> ÂDocumentation/thermal/sysfs-api.txtÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ9 ++
> Âarch/arm/boot/dts/exynos4-cpu-thermal.dtsiÂÂÂÂÂÂÂÂÂ|ÂÂ10 +-
> Âarch/arm/boot/dts/exynos5410-odroidxu.dtsÂÂÂÂÂÂÂÂÂÂ|ÂÂ10 +-
> Âarch/arm/boot/dts/exynos5420-trip-points.dtsiÂÂÂÂÂÂ|ÂÂ10 +-
> Âarch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |ÂÂ40 +++++---
> Âarch/arm64/boot/dts/exynos/exynos5433-tmu.dtsiÂÂÂÂÂ| 105
> ++++++++++++++-------
> Â.../arm64/boot/dts/exynos/exynos7-trip-points.dtsi |ÂÂÂ8 ++
> Âdrivers/thermal/of-thermal.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ17 ++++
> Âdrivers/thermal/thermal_core.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ16 ++--
> Âdrivers/thermal/thermal_sysfs.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ53 ++++++++++-
> Âinclude/linux/thermal.hÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂÂ5 +
> Â12 files changed, 226 insertions(+), 64 deletions(-)
>