diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index 47b706513e4c298c00f11250de1655842beb29eb..f668f5379a4d648dc0cba4586da8ec72e93e2252 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -9,10 +9,6 @@ #include #include -enum { - SAMPLE_RATE = 22050, -}; - /** * struct buf_info - a data buffer holding audio data * @@ -285,7 +281,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len) } } -int sandbox_sdl_sound_init(void) +int sandbox_sdl_sound_init(int rate, int channels) { SDL_AudioSpec wanted; int i; @@ -297,9 +293,9 @@ int sandbox_sdl_sound_init(void) return 0; /* Set the audio format */ - wanted.freq = SAMPLE_RATE; + wanted.freq = rate; wanted.format = AUDIO_S16; - wanted.channels = 1; /* 1 = mono, 2 = stereo */ + wanted.channels = channels; wanted.samples = 1024; /* Good low-latency value for callback */ wanted.callback = sandbox_sdl_fill_audio; wanted.userdata = NULL; diff --git a/arch/sandbox/include/asm/sdl.h b/arch/sandbox/include/asm/sdl.h index 2799a8bee0690ba1e0ceb4d6b6bbcd61216e1e90..1027b59e7326b8d99e5748ceb514e1dff4460452 100644 --- a/arch/sandbox/include/asm/sdl.h +++ b/arch/sandbox/include/asm/sdl.h @@ -71,9 +71,11 @@ int sandbox_sdl_sound_stop(void); /** * sandbox_sdl_sound_init() - set up the sound system * + * @rate: Sample rate to use + * @channels: Number of channels to use (1=mono, 2=stereo) * @return 0 if OK, -ENODEV if no sound is available */ -int sandbox_sdl_sound_init(void); +int sandbox_sdl_sound_init(int rate, int channels); #else static inline int sandbox_sdl_init_display(int width, int height, @@ -112,7 +114,7 @@ static inline int sandbox_sdl_sound_stop(void) return -ENODEV; } -static inline int sandbox_sdl_sound_init(void) +int sandbox_sdl_sound_init(int rate, int channels) { return -ENODEV; } diff --git a/drivers/sound/sandbox.c b/drivers/sound/sandbox.c index 089d830972731cfeb0555e3a74da4beda6eae24f..b0b07f3239ba86cb1a97bcd33499db3a2e86f6e5 100644 --- a/drivers/sound/sandbox.c +++ b/drivers/sound/sandbox.c @@ -102,7 +102,7 @@ static int sandbox_i2s_probe(struct udevice *dev) uc_priv->id = 1; /* Ignore any error here - we'll just have no sound */ - sandbox_sdl_sound_init(); + sandbox_sdl_sound_init(uc_priv->samplingrate, uc_priv->channels); return 0; }