On Tue, Mar 6, 2018 at 8:40 AM, Gerd Hoffmann <kra...@redhat.com> wrote: > Make audio_driver_lookup() try load the module in case it doesn't find > the driver in the registry. Also load all modules for -audio-help, so > the help output includes the help text for modular audio drivers. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > include/qemu/module.h | 1 + > audio/audio.c | 20 ++++++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/include/qemu/module.h b/include/qemu/module.h > index 9fea75aaeb..54300ab6e5 100644 > --- a/include/qemu/module.h > +++ b/include/qemu/module.h > @@ -54,6 +54,7 @@ typedef enum { > > #define block_module_load_one(lib) module_load_one("block-", lib) > #define ui_module_load_one(lib) module_load_one("ui-", lib) > +#define audio_module_load_one(lib) module_load_one("audio-", lib) > > void register_module_init(void (*fn)(void), module_init_type type); > void register_dso_module_init(void (*fn)(void), module_init_type type); > diff --git a/audio/audio.c b/audio/audio.c > index 2384612b87..6eccdb17ee 100644 > --- a/audio/audio.c > +++ b/audio/audio.c > @@ -68,9 +68,26 @@ audio_driver *audio_driver_lookup(const char *name) > return d; > } > } > + > + audio_module_load_one(name); > + QLIST_FOREACH(d, &audio_drivers, next) { > + if (strcmp(name, d->name) == 0) { > + return d; > + } > + } > + > return NULL; > } > > +static void audio_module_load_all(void) > +{ > + int i; > + > + for (i = 0; i < ARRAY_SIZE(audio_prio_list); i++) { > + audio_driver_lookup(audio_prio_list[i]); > + } > +} > + > struct fixed_settings { > int enabled; > int nb_voices; > @@ -1675,6 +1692,9 @@ void AUD_help (void) > { > struct audio_driver *d; > > + /* make sure we print the help text for modular drivers too */ > + audio_module_load_all(); > + > audio_process_options ("AUDIO", audio_options); > QLIST_FOREACH(d, &audio_drivers, next) { > if (d->options) { > -- > 2.9.3 > > -- Marc-André Lureau