[PATCH] imx8m: fixup thermal trips

Andrejs Cainikovs andrejs.cainikovs at toradex.com
Wed May 25 14:28:15 CEST 2022


On Wed, 2022-05-25 at 07:26 -0500, Adam Ford wrote:
> On Wed, May 25, 2022 at 7:24 AM Andrejs Cainikovs
> <andrejs.cainikovs at toradex.com> wrote:
> > 
> > Adam,
> > 
> > So you want me to rebase this patch to upstream, update according
> > to
> > your review, and send this one instead of yours?
> 
> Go ahead.  Yours has all the requested improvements already applied.
> I'm still playing catch up from being away for 2 weeks.

Ok, will do. Thanks.

> 
> thanks
> 
> adam
> > 
> > Best regards,
> > Andrejs Cainikovs.
> > 
> > On Wed, 2022-05-25 at 07:21 -0500, Adam Ford wrote:
> > > On Wed, May 25, 2022 at 7:19 AM Andrejs Cainikovs
> > > <andrejs.cainikovs at toradex.com> wrote:
> > > > 
> > > > Hi Adam,
> > > > 
> > > > On Wed, 2022-05-25 at 06:41 -0500, Adam Ford wrote:
> > > > > On Thu, May 12, 2022 at 5:13 AM Andrejs Cainikovs
> > > > > <andrejs.cainikovs at toradex.com> wrote:
> > > > > > 
> > > > > > Fixup thermal trips in Linux device tree according to SoC
> > > > > > thermal
> > > > > > grade.
> > > > > > 
> > > > > > Signed-off-by: Andrejs Cainikovs
> > > > > > <andrejs.cainikovs at toradex.com>
> > > > > > ---
> > > > > >  arch/arm/mach-imx/imx8m/soc.c | 50
> > > > > > +++++++++++++++++++++++++++++++++++
> > > > > >  1 file changed, 50 insertions(+)
> > > > > > 
> > > > > > diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-
> > > > > > imx/imx8m/soc.c
> > > > > > index e93ecd2846..b451ece91f 100644
> > > > > > --- a/arch/arm/mach-imx/imx8m/soc.c
> > > > > > +++ b/arch/arm/mach-imx/imx8m/soc.c
> > > > > > @@ -1001,6 +1001,49 @@ static int disable_cpu_nodes(void
> > > > > > *blob,
> > > > > > u32
> > > > > > disabled_cores)
> > > > > >         return 0;
> > > > > >  }
> > > > > > 
> > > > > > +int fixup_thermal_trips(void *blob, const char *name)
> > > > > 
> > > > > Is there any reason this function cannot be static?
> > > > 
> > > > No, this function should be static indeed.
> > > 
> > > With that change:
> > > 
> > > Tested-by: Adam Ford <aford173 at gmail.com>
> > > 
> > > > 
> > > > > 
> > > > > > +{
> > > > > > +       int minc, maxc;
> > > > > > +       int node, trip;
> > > > > > +
> > > > > > +       node = fdt_path_offset(blob, "/thermal-zones");
> > > > > > +       if (node < 0)
> > > > > > +               return node;
> > > > > > +
> > > > > > +       node = fdt_subnode_offset(blob, node, name);
> > > > > > +       if (node < 0)
> > > > > > +               return node;
> > > > > > +
> > > > > > +       node = fdt_subnode_offset(blob, node, "trips");
> > > > > > +       if (node < 0)
> > > > > > +               return node;
> > > > > > +
> > > > > > +       get_cpu_temp_grade(&minc, &maxc);
> > > > > > +
> > > > > > +       fdt_for_each_subnode(trip, blob, node) {
> > > > > > +               const char *type;
> > > > > > +               int temp, ret;
> > > > > > +
> > > > > > +               type = fdt_getprop(blob, trip, "type",
> > > > > > NULL);
> > > > > > +               if (!type)
> > > > > > +                       continue;
> > > > > > +
> > > > > > +               temp = 0;
> > > > > > +               if (!strcmp(type, "critical")) {
> > > > > > +                       temp = 1000 * maxc;
> > > > > > +               } else if (!strcmp(type, "passive")) {
> > > > > > +                       temp = 1000 * (maxc - 10);
> > > > > > +               }
> > > > > > +               if (temp) {
> > > > > > +                       ret = fdt_setprop_u32(blob, trip,
> > > > > > "temperature", temp);
> > > > > > +                       if (ret)
> > > > > > +                               return ret;
> > > > > > +               }
> > > > > > +       }
> > > > > > +
> > > > > > +       return 0;
> > > > > > +}
> > > > > > +
> > > > > >  int ft_system_setup(void *blob, bd_t *bd)
> > > > > >  {
> > > > > >  #ifdef CONFIG_IMX8MQ
> > > > > > @@ -1128,6 +1171,13 @@ usb_modify_speed:
> > > > > >                 disable_cpu_nodes(blob, 2);
> > > > > >  #endif
> > > > > > 
> > > > > > +       if (fixup_thermal_trips(blob, "cpu-thermal"))
> > > > > > +               printf("Failed to update cpu-thermal
> > > > > > trip(s)");
> > > > > > +#ifdef CONFIG_IMX8MP
> > > > > > +       if (fixup_thermal_trips(blob, "soc-thermal"))
> > > > > > +               printf("Failed to update soc-thermal
> > > > > > trip(s)");
> > > > > > +#endif
> > > > > > +
> > > > > >         return ft_add_optee_node(blob, bd);
> > > > > >  }
> > > > > >  #endif
> > > > > > --
> > > > > > 2.34.1
> > > > > > 
> > > > > 
> > > > 
> > > 
> > 
> 



More information about the U-Boot mailing list