[U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc

Peng Fan peng.fan at nxp.com
Thu Apr 25 13:46:09 UTC 2019


Hi Stefano.

> Subject: Re: [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
> 
> Hi Peng,
> 
> On 12/04/19 09:55, Peng Fan wrote:
> > Read the temperature when print cpu inforation.
> >
> > Signed-off-by: Peng Fan <peng.fan at nxp.com>
> > ---
> >  arch/arm/mach-imx/imx8/cpu.c | 35
> +++++++++++++++++++++++++++++++++--
> >  1 file changed, 33 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/imx8/cpu.c
> > b/arch/arm/mach-imx/imx8/cpu.c index 4bbc956f9d..25b010489b 100644
> > --- a/arch/arm/mach-imx/imx8/cpu.c
> > +++ b/arch/arm/mach-imx/imx8/cpu.c
> > @@ -11,6 +11,7 @@
> >  #include <dm/lists.h>
> >  #include <dm/uclass.h>
> >  #include <errno.h>
> > +#include <thermal.h>
> >  #include <asm/arch/sci/sci.h>
> >  #include <asm/arch/sys_proto.h>
> >  #include <asm/arch-imx/cpu.h>
> > @@ -571,15 +572,45 @@ const char *get_core_name(void)
> >  		return "?";
> >  }
> >
> > +#if defined(CONFIG_IMX_SCU_THERMAL)
> > +static int cpu_imx_get_temp(void)
> > +{
> 
> This generates a warning when CONFIG_IMX_SCU_THERMAL is not set,
> because it is called later:
> 
> > +	struct udevice *thermal_dev;
> > +	int cpu_tmp, ret;
> > +
> > +	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
> > +					&thermal_dev);
> > +
> > +	if (!ret) {
> > +		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
> > +		if (ret)
> > +			return 0xdeadbeef;
> > +	} else {
> > +		return 0xdeadbeef;
> > +	}
> > +
> > +	return cpu_tmp;
> > +}
> > +#endif
> > +
> >  int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)  {
> >  	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
> > +	int ret;
> >
> >  	if (size < 100)
> >  		return -ENOSPC;
> >
> > -	snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz\n",
> > -		 plat->type, plat->rev, plat->name, plat->freq_mhz);
> > +	ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
> > +		       plat->type, plat->rev, plat->name, plat->freq_mhz);
> > +
> > +	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
> > +		buf = buf + ret;
> > +		size = size - ret;
> > +		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
>                                                         ^---

I not able to connect my PC to verify. But just thinking,
When CONFIG_IMX_SCU_THERMAL not enabled, the compiler
should optimize the if block? Because it is just "if (0)"

Regards,
Peng.

> here it is referenced.
> 
> Regards,
> Stefano
> 
> > +	}
> > +
> > +	snprintf(buf + ret, size - ret, "\n");
> >
> >  	return 0;
> >  }
> >
> 
> 
> --
> ==============================================================
> =======
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
> ==============================================================
> =======


More information about the U-Boot mailing list