aboutsummaryrefslogtreecommitdiff
path: root/hw/audio/lm4549.c
diff options
context:
space:
mode:
authorMartin Kletzander <mkletzan@redhat.com>2023-10-02 16:27:57 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-10-03 10:29:40 +0200
commitcb94ff5f80c537e43c04fa4f071f1df784255310 (patch)
tree18907d34d44c8e344ea2174c5bd80e6fa8dc5169 /hw/audio/lm4549.c
parent9dcb64c96073e9898105cdbef6553cfef0fadcdb (diff)
downloadqemu-cb94ff5f80c537e43c04fa4f071f1df784255310.zip
qemu-cb94ff5f80c537e43c04fa4f071f1df784255310.tar.gz
qemu-cb94ff5f80c537e43c04fa4f071f1df784255310.tar.bz2
audio: propagate Error * out of audio_init
Starting from audio_driver_init, propagate errors via Error ** so that audio_init_audiodevs can simply pass &error_fatal, and AUD_register_card can signal faiure. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> [Reworked the audio/audio.c parts, while keeping Martin's hw/ changes. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/audio/lm4549.c')
-rw-r--r--hw/audio/lm4549.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/hw/audio/lm4549.c b/hw/audio/lm4549.c
index 418041b..e7bfcc4 100644
--- a/hw/audio/lm4549.c
+++ b/hw/audio/lm4549.c
@@ -281,6 +281,11 @@ void lm4549_init(lm4549_state *s, lm4549_callback data_req_cb, void* opaque,
{
struct audsettings as;
+ /* Register an audio card */
+ if (!AUD_register_card("lm4549", &s->card, errp)) {
+ return;
+ }
+
/* Store the callback and opaque pointer */
s->data_req_cb = data_req_cb;
s->opaque = opaque;
@@ -288,9 +293,6 @@ void lm4549_init(lm4549_state *s, lm4549_callback data_req_cb, void* opaque,
/* Init the registers */
lm4549_reset(s);
- /* Register an audio card */
- AUD_register_card("lm4549", &s->card);
-
/* Open a default voice */
as.freq = 48000;
as.nchannels = 2;