[U-Boot] [PATCH v1 1/1] lib/display_options: Fix print_freq
Heiko Schocher
hs at denx.de
Tue Aug 25 06:40:36 CEST 2015
Hello Suriyan,
Am 25.08.2015 um 00:14 schrieb Suriyan Ramasami:
> Hello Heiko/Simon,
>
> On Sun, Aug 23, 2015 at 10:37 PM, Heiko Schocher <hs at denx.de <mailto:hs at denx.de>> wrote:
>
> Hello Simon, Suriyan Ramasami,
>
> Am 22.08.2015 um 02:36 schrieb Simon Glass:
>
> Hi,
>
> On 18 August 2015 at 10:25, Suriyan Ramasami <suriyan.r at gmail.com
> <mailto:suriyan.r at gmail.com>> wrote:
>
> Build without CONFIG_SPL_SERIAL_SUPPORT does not print the cpu freq.
> I have seen this in the odroid U3 board, where on boot one sees this:
> CPU: Exynos4412 @ GHz
> instead of:
> CPU: Exynos4412 @ 1 GHz
>
> I am assuming that this change was done to get rid of compiler
> warnings related to unused variables when building with
> CONFIG_SPL_SERIAL_SUPPORT not being defined in an SPL build.
>
> Signed-off-by: Suriyan Ramasami <suriyan.r at gmail.com <mailto:suriyan.r at gmail.com>>
> ---
> lib/display_options.c | 6 ------
> 1 file changed, 6 deletions(-)
>
>
> Acked-by: Simon Glass <sjg at chromium.org <mailto:sjg at chromium.org>>
>
> That's strange. Your patch looks correct to me.
>
>
> Yes, strange, how this slipped me ...
>
> This patch leads in the following compiler warning for the smartweb
> board:
>
> CC spl/lib/display_options.o
> /home/hs/zug/u-boot/lib/display_options.c: In function 'print_freq':
> /home/hs/zug/u-boot/lib/display_options.c:29:16: warning: variable 'n' set but not used
> [-Wunused-but-set-variable]
>
> @Suriyan Ramasami:
> Could you add to your patch the following:
>
> diff --git a/lib/display_options.c b/lib/display_options.c
> index 80316a4..a4a5032 100644
> --- a/lib/display_options.c
> +++ b/lib/display_options.c
> @@ -23,6 +23,8 @@ int display_options (void)
> return 0;
> }
>
> +#if !defined(CONFIG_SPL_BUILD) || \
> + defined(CONFIG_SPL_SERIAL_SUPPORT)
> void print_freq(uint64_t freq, const char *s)
> {
> unsigned long m = 0;
> @@ -185,3 +187,4 @@ int print_buffer(ulong addr, const void *data, uint width, uint count,
>
> return 0;
> }
> +#endif
>
> I am trying to understand this a bit. The compiler warning seems to stem from the fact that printf()
> is eradicated with CONFIG_SPL_BUILD being set, and hence results in the 'n being set but not used'
> situation.
> As its just one variable 'n' causing this, would it be more readable if we do not have the #ifdef
> you suggested, but rather just have this instead:
> 1. We get rid of:
> unsigned long n;
> 2. We substitute this:
> n = freq;
> printf("%lu", n);
> with:
> printf("%lu", (unsigned long) freq);
>
> Comments and thoughts welcome! Thanks!
Sounds better!
bye,
Heiko
>
> Thanks!
>
> bye,
> Heiko
> --
> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list