From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Thu, 25 Apr 2019 13:46:09 +0000 Subject: [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc In-Reply-To: References: <20190412080741.32412-1-peng.fan@nxp.com> <20190412080741.32412-6-peng.fan@nxp.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > --- > > 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 > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -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 > ============================================================== > =======