[Letux-kernel] [RFC] ARM: dts: omap36xx: Enable thermal throttling

Adam Ford aford173 at gmail.com
Fri Sep 13 18:35:16 CEST 2019


On Fri, Sep 13, 2019 at 10:09 AM H. Nikolaus Schaller <hns at goldelico.com> wrote:
>
>
> > Am 13.09.2019 um 17:01 schrieb Adam Ford <aford173 at gmail.com>:
> >
> > On Fri, Sep 13, 2019 at 9:24 AM H. Nikolaus Schaller <hns at goldelico.com> wrote:
> >>
> >>
> >>> Am 13.09.2019 um 16:05 schrieb Adam Ford <aford173 at gmail.com>:
> >>>
> >>> On Fri, Sep 13, 2019 at 8:32 AM H. Nikolaus Schaller <hns at goldelico.com> wrote:
> >>>>
> >>>> Hi Adam,
> >>>>
> >>>>> Am 13.09.2019 um 13:07 schrieb Adam Ford <aford173 at gmail.com>:
> >>>>
> >>>>>>> +     cpu_cooling_maps: cooling-maps {
> >>>>>>> +             map0 {
> >>>>>>> +                     trip = <&cpu_alert0>;
> >>>>>>> +                     /* Only allow OPP50 and OPP100 */
> >>>>>>> +                     cooling-device = <&cpu 0 1>;
> >>>>>>
> >>>>>> omap4-cpu-thermal.dtsi uses THERMAL_NO_LIMIT constants but I do not
> >>>>>> understand their meaning (and how it relates to the opp list).
> >>>>>
> >>>>> I read through the documentation, but it wasn't completely clear to
> >>>>> me. AFAICT, the numbers after &cpu represent the min and max index in
> >>>>> the OPP table when the condition is hit.
> >>>>
> >>>> Ok. It seems to use "cooling state" for those and the first is minimum
> >>>> and the last is maximum. Using THERMAL_NO_LIMIT (-1UL) means to have
> >>>> no limits.
> >>>>
> >>>> Since here we use the &cpu node it is likely that the "cooling state"
> >>>> is the same as the OPP index currently in use.
> >>>>
> >>>> I have looked through the .dts which use cpu_crit and the picture is
> >>>> not unique...
> >>>>
> >>>> omap4           seems to only define it
> >>>> am57xx          has two different grade dtsi files
> >>>> dra7            overwrites critical temperature value
> >>>> am57xx-beagle   defines a gpio to control a fan
> >>>
> >
> > I am going to push a separate but related RFC with 2 patches in the
> > series.  This new one will setup the alerts and maps without any
> > throttling for all omap3's in the first patch.  The second patch will
> > consolidate the thermal references to omap3.dtsi so omap34, omap36 and
> > am35 can all use them without having to duplicate the entries.
> >
> > It will make the omap36xx changes simpler to manage, because we can
> > just modify a portion of the entries instead of having the whole
> > table.
> >
> > Once this parallel RFC gets comments/feedback, I'll re-integrate the
> > omap36xx throttling.
>
> Good idea. I have looked over them and they seem to be ok.

Rebasing my omap36xx throttling after the v2 RFC I pushed moving the
omap3-cpu thermal stuff, I modified the omap36xx accordingly to try
and force the alert condition:

&cpu_alert0 {
     temperature = <55000>; /* millicelsius */
};

&cpu_cooling_maps {
     map0 {
          /* OPP130 and OPP1G are not available above 90C */
          cooling-device = <&cpu 0 2>;
     };
};

I would expect that with the temperature set for 55C, it would have
done something, but it doesn't appear to be working as I would expect.

# cat /sys/devices/virtual/thermal/thermal_zone0/temp
58500

# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
300000 600000 800000
#

:-(


>
> >
> > adam
>
> BR and thanks,
> Nikolaus
>


More information about the Letux-kernel mailing list