sandbox: sdl: Improve error handling
authorSimon Glass <sjg@chromium.org>
Mon, 3 Feb 2020 14:36:09 +0000 (07:36 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 6 Feb 2020 02:33:46 +0000 (19:33 -0700)
A few errors are not checked. Fix these and use my preferred spelling for
init.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/sdl.c

index dad059f..ee62da2 100644 (file)
@@ -77,7 +77,7 @@ static int sandbox_sdl_ensure_init(void)
 {
        if (!sdl.inited) {
                if (SDL_Init(0) < 0) {
-                       printf("Unable to initialize SDL: %s\n",
+                       printf("Unable to initialise SDL: %s\n",
                               SDL_GetError());
                        return -EIO;
                }
@@ -100,7 +100,7 @@ int sandbox_sdl_init_display(int width, int height, int log2_bpp)
        if (err)
                return err;
        if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) {
-               printf("Unable to initialize SDL LCD: %s\n", SDL_GetError());
+               printf("Unable to initialise SDL LCD: %s\n", SDL_GetError());
                return -EPERM;
        }
        SDL_WM_SetCaption("U-Boot", "U-Boot");
@@ -298,7 +298,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len)
 
 int sandbox_sdl_sound_init(int rate, int channels)
 {
-       SDL_AudioSpec wanted;
+       SDL_AudioSpec wanted, have;
        int i;
 
        if (sandbox_sdl_ensure_init())
@@ -331,15 +331,19 @@ int sandbox_sdl_sound_init(int rate, int channels)
        }
 
        if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) {
-               printf("Unable to initialize SDL audio: %s\n", SDL_GetError());
+               printf("Unable to initialise SDL audio: %s\n", SDL_GetError());
                goto err;
        }
 
        /* Open the audio device, forcing the desired format */
-       if (SDL_OpenAudio(&wanted, NULL) < 0) {
+       if (SDL_OpenAudio(&wanted, &have) < 0) {
                printf("Couldn't open audio: %s\n", SDL_GetError());
                goto err;
        }
+       if (have.format != wanted.format) {
+               printf("Couldn't select required audio format\n");
+               goto err;
+       }
        sdl.audio_active = true;
        sdl.sample_rate = wanted.freq;
        sdl.cur_buf = 0;