[U-Boot] [PATCH] regmap: fix regmap_read_poll_timeout warning about sandbox_timer_add_offset

Simon Glass sjg at chromium.org
Fri Apr 12 13:09:27 UTC 2019


Hi,

On Thu, 11 Apr 2019 at 09:12, Neil Armstrong <narmstrong at baylibre.com> wrote:
>
> When fixing sandbox test for regmap_read_poll_timeout(), the
> sandbox_timer_add_offset was introduced but only defined in sandbox code
> thus generating warnings when used out of sandbox :
>
> include/regmap.h:289:2: note: in expansion of macro 'regmap_read_poll_timeout_test'
> regmap_read_poll_timeout_test(map, addr, val, cond, sleep_us, \
>   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/spi/meson_spifc.c:169:8: note: in expansion of macro 'regmap_read_poll_timeout'
> ret = regmap_read_poll_timeout(spifc->regmap, REG_SLAVE, data,
>         ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/spi/meson_spifc.c: In function 'meson_spifc_txrx':
> include/regmap.h:277:4: warning: implicit declaration of function 'sandbox_timer_add_offset' [-Wimplicit-function-declaration]
>
> This simply adds an empty static inline sandbox_timer_add_offset()
> implementation that will be dropped by the compiler optimization routines.
>
> Cc: Simon Glass <sjg at chromium.org>
> Reported-by: Tom Rini <trini at konsulko.com>
> Fixes: df9cf1cc08 ("test: dm: regmap: Fix the long test delay")
> Signed-off-by: Neil Armstrong <narmstrong at baylibre.com>
> ---
>  include/regmap.h | 4 ++++
>  1 file changed, 4 insertions(+)
>

This is OK with me, but I wonder if it would be better to change the code:

if (IS_ENABLED(CONFIG_SANDBOX) && test_add_time) \
   sandbox_timer_add_offset(test_add_time); \

to something like

   do_test_add_time(test_add_time);

where do_test_add_time() is defined above as either a sandbox call, or empty?

The reason I say this is it seems a bit weird to define a function
called sandbox_... in non-sandbox code.

> diff --git a/include/regmap.h b/include/regmap.h
> index 8359c511d2..144cffbcc0 100644
> --- a/include/regmap.h
> +++ b/include/regmap.h
> @@ -239,6 +239,10 @@ int regmap_raw_read_range(struct regmap *map, uint range_num, uint offset,
>  #define regmap_get(map, type, member, valp) \
>         regmap_range_get(map, 0, type, member, valp)
>
> +#ifndef CONFIG_SANDBOX
> +static inline void sandbox_timer_add_offset(unsigned long offset) { }
> +#endif
> +
>  /**
>   * regmap_read_poll_timeout - Poll until a condition is met or a timeout occurs
>   *
> --
> 2.21.0
>

Regards,
Simon


More information about the U-Boot mailing list