[PATCH v2] sandbox: fix a compilation error

Tom Rini trini at konsulko.com
Tue Jun 13 17:00:57 CEST 2023


On Tue, Jun 13, 2023 at 03:58:25PM +0100, Simon Glass wrote:
> Hi Sergei,
> 
> On Mon, 12 Jun 2023 at 22:19, Sergei Antonov <saproj at gmail.com> wrote:
> >
> > With sandbox and sandbox64 configurations:
> >
> > In file included from .../u-boot/include/test/test.h:156,
> >                  from .../u-boot/include/test/lib.h:9,
> >                  from .../u-boot/test/lib/test_crc8.c:8:
> > .../u-boot/arch/sandbox/include/asm/test.h: In function ‘sandbox_sdl_set_bpp’:
> > .../u-boot/arch/sandbox/include/asm/test.h:323:17: error: ‘ENOSYS’ undeclared (first use in this function)
> >   323 |         return -ENOSYS;
> >       |                 ^~~~~~
> >
> > Per Tom Rini's suggestion:
> > move that function prototype over to arch/sandbox/include/asm/sdl.h
> > and make test/dm/video.c include <asm/sdl.h>
> >
> > Cc: Simon Glass <sjg at chromium.org>
> > Suggested-by: Tom Rini <trini at konsulko.com>
> > Signed-off-by: Sergei Antonov <saproj at gmail.com>
> > ---
> >
> > v2:
> > * move the function to another file instead of including <errno.h>
> >
> >  arch/sandbox/include/asm/sdl.h  | 23 +++++++++++++++++++++++
> >  arch/sandbox/include/asm/test.h | 25 -------------------------
> >  test/dm/video.c                 |  1 +
> >  3 files changed, 24 insertions(+), 25 deletions(-)
> >
> > diff --git a/arch/sandbox/include/asm/sdl.h b/arch/sandbox/include/asm/sdl.h
> > index 56dcb84803d3..ee4991f7c24a 100644
> > --- a/arch/sandbox/include/asm/sdl.h
> > +++ b/arch/sandbox/include/asm/sdl.h
> > @@ -7,6 +7,7 @@
> >  #define __SANDBOX_SDL_H
> >
> >  #include <errno.h>
> > +#include <video.h>
> >
> >  #ifdef CONFIG_SANDBOX_SDL
> >
> > @@ -87,6 +88,22 @@ int sandbox_sdl_sound_stop(void);
> >   */
> >  int sandbox_sdl_sound_init(int rate, int channels);
> >
> > +/**
> > + * sandbox_sdl_set_bpp() - Set the depth of the sandbox display
> > + *
> > + * The device must not be active when this function is called. It activiates it
> > + * before returning.
> > + *
> > + * This updates the depth value and adjusts a few other settings accordingly.
> > + * It must be called before the display is probed.
> > + *
> > + * @dev: Device to adjust
> > + * @l2bpp: depth to set
> > + * Return: 0 if the device was already active, other error if it fails to probe
> > + * after the change
> > + */
> > +int sandbox_sdl_set_bpp(struct udevice *dev, enum video_log2_bpp l2bpp);
> > +
> >  #else
> >  static inline int sandbox_sdl_init_display(int width, int height, int log2_bpp,
> >                                            bool double_size)
> > @@ -134,6 +151,12 @@ static inline int sandbox_sdl_sound_init(int rate, int channels)
> >         return -ENODEV;
> >  }
> >
> > +static inline int sandbox_sdl_set_bpp(struct udevice *dev,
> > +                                     enum video_log2_bpp l2bpp)
> > +{
> > +       return -ENOSYS;
> > +}
> > +
> >  #endif
> >
> >  #endif
> > diff --git a/arch/sandbox/include/asm/test.h b/arch/sandbox/include/asm/test.h
> > index e482271fe975..17159f8d674a 100644
> > --- a/arch/sandbox/include/asm/test.h
> > +++ b/arch/sandbox/include/asm/test.h
> > @@ -8,7 +8,6 @@
> >  #ifndef __ASM_TEST_H
> >  #define __ASM_TEST_H
> >
> > -#include <video.h>
> >  #include <pci_ids.h>
> >
> >  struct unit_test_state;
> > @@ -300,30 +299,6 @@ void sandbox_cros_ec_set_test_flags(struct udevice *dev, uint flags);
> >   */
> >  int sandbox_cros_ec_get_pwm_duty(struct udevice *dev, uint index, uint *duty);
> >
> > -#if IS_ENABLED(CONFIG_SANDBOX_SDL)
> > -/**
> > - * sandbox_sdl_set_bpp() - Set the depth of the sandbox display
> > - *
> > - * The device must not be active when this function is called. It activiates it
> > - * before returning.
> > - *
> > - * This updates the depth value and adjusts a few other settings accordingly.
> > - * It must be called before the display is probed.
> > - *
> > - * @dev: Device to adjust
> > - * @l2bpp: depth to set
> > - * Return: 0 if the device was already active, other error if it fails to probe
> > - * after the change
> > - */
> > -int sandbox_sdl_set_bpp(struct udevice *dev, enum video_log2_bpp l2bpp);
> > -#else
> > -static inline int sandbox_sdl_set_bpp(struct udevice *dev,
> > -                                     enum video_log2_bpp l2bpp)
> > -{
> > -       return -ENOSYS;
> > -}
> > -#endif
> > -
> >  /**
> >   * sandbox_set_fake_efi_mgr_dev() - Control EFI bootmgr producing valid bootflow
> >   *
> > diff --git a/test/dm/video.c b/test/dm/video.c
> > index 30778157d940..1c63d16bd28b 100644
> > --- a/test/dm/video.c
> > +++ b/test/dm/video.c
> > @@ -15,6 +15,7 @@
> >  #include <video.h>
> >  #include <video_console.h>
> >  #include <asm/test.h>
> > +#include <asm/sdl.h>
> 
> The problem with this is it then cannot be built on non-sandbox
> boards. I think v1 was OK.

I suggested this since the test is sandbox specific (the code itself is
full of sandbox_foo).

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230613/fcf6bfa5/attachment.sig>


More information about the U-Boot mailing list