]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
audio: make audio_driver init() & fini() optional
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 16 Jan 2026 07:36:48 +0000 (11:36 +0400)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Mon, 23 Feb 2026 13:38:22 +0000 (14:38 +0100)
The next patches are going to remove usage of the driver callbacks in
favor of QOM realize/finalize.

Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
audio/audio-mixeng-be.c

index f906c84bf7c7d2c6a3375c42cccdbdac8ea5c028..45873646b3cc95a1f12a5b62fdd8293aadd8b60a 100644 (file)
@@ -1521,9 +1521,11 @@ static bool audio_mixeng_backend_realize(AudioBackend *abe,
     audio_driver *drv = AUDIO_MIXENG_BACKEND_GET_CLASS(be)->driver;
 
     be->dev = dev;
-    be->drv_opaque = drv->init(be->dev, errp);
-    if (!be->drv_opaque) {
-        return false;
+    if (drv->init != NULL) {
+        be->drv_opaque = drv->init(be->dev, errp);
+        if (!be->drv_opaque) {
+            return false;
+        }
     }
 
     if (!drv->pcm_ops->get_buffer_in) {
@@ -1664,7 +1666,9 @@ static void audio_mixeng_backend_finalize(Object *obj)
     }
 
     if (s->drv) {
-        s->drv->fini (s->drv_opaque);
+        if (s->drv->fini) {
+            s->drv->fini (s->drv_opaque);
+        }
         s->drv = NULL;
     }