From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695375977; cv=none; d=zohomail.com; s=zohoarc; b=IFtf7TZgJ7l4R05sj6PJKBcLfD4jCiEHCef1i75JUIEFph5rkzQxcZ54WgWCFGWbDkluFtjhfwOuQiyT1jgbat88dgNPDXIraixaQ3scukUtN/YLv3gPMOEJiweQjbbLmhtyoRQPuHr6krx7DNEMPAjEMqlRAQMnsHY5BHxrCKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695375977; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zCxmX/sA/KVkmCXBwpEBmXlLd6ry3Z+OC3PJAGREtq0=; b=ARGvPQqVrQysAAwkW9WCW33w/grItruGvAjSJkcaI6qpyw3rQ3NJRklGUGDA/ZrgL4wNX3Y1pAyFYlEQKo8UcmFNBc8Gkh+/sbj1jQi3VT4gdkvHwy2EZX9jsN+Aw9wDQLK4r6MWSOo5VQutZGcrFCbeVjZ3sRbXBg+a07LyQoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695375977841200.8775991356364; Fri, 22 Sep 2023 02:46:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjciq-00020L-Be; Fri, 22 Sep 2023 05:45:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcil-0001zg-Tu for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcii-000656-Pe for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:10 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-185-yAV8Dk1VPxG5n_D8p6HGaQ-1; Fri, 22 Sep 2023 05:45:05 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32153a4533eso1281827f8f.1 for ; Fri, 22 Sep 2023 02:45:05 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id p2-20020a5d68c2000000b0031431fb40fasm4004176wrw.89.2023.09.22.02.45.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zCxmX/sA/KVkmCXBwpEBmXlLd6ry3Z+OC3PJAGREtq0=; b=g+LNxsF8Z4Pw1I5n8w2pKwHIsJ5CCaoXiJVeBm8Wh9sbU1L+cUPnrIpS7Qx2t4GSVL5XP3 XJsCZNId0bjoIGe5IdrTRuuYxT/Mvyi/InYsseQogKDmM9enooyV0Nj0AbVrYSO7CqjA+k BqTeLhpI6M3J5PKsyw3OqvNlnq77fUc= X-MC-Unique: yAV8Dk1VPxG5n_D8p6HGaQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375904; x=1695980704; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zCxmX/sA/KVkmCXBwpEBmXlLd6ry3Z+OC3PJAGREtq0=; b=cAgNywWDPuljHtJ4+AMvBFlnZKS/ODe8nWiNHpa2l58iURU4VcRDeHbLUACqB/UuFv Qi2M93j7Rj3TWM3yEqYWKT7MYNEZL3HgfjmkYIJw2/a+LLBqQ4RjPqbRaJOQ2XnzTI5b bJgOegoOQAEw9Kefd7W4uGwtJagJc+K65W8iuRAYsrbjqQ62SAd37e5rJqGefJqRdXf5 z9wnzoaiJN/Q0kqK+gxeD3sEC+YSISdQpQtoyNDcyenRD3clDa0z6wBgIIRr8W1hYIxR T52S7oPqmHGToy8E6L7d+Y84L+mX/RFESIU5+2OxYOUgko83+oLLfgrR2aX85d/JDjrj h97Q== X-Gm-Message-State: AOJu0YwzAdS7hiEpvg6rywprZcQkicS97zAALsULfyxTHm1zAktvlWhQ qk4x63AWsJ1FES4DnhtOoE9T/Exfy7eBmrDHqlo7SpCOazuIFP4TAJGBaPL3pzwYZCFLyNaPF8n OisUtJ9dlFRzPO1QtMQEqDvkwAym/zTrYZy85BLhMDqdP/4S0Be8uni1QzrdNOR1/rxDjsMm1Qk A= X-Received: by 2002:a5d:4f84:0:b0:321:5b64:f744 with SMTP id d4-20020a5d4f84000000b003215b64f744mr6805790wru.20.1695375903747; Fri, 22 Sep 2023 02:45:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFAQAN/DwS1LkOYGvQ/BPhGRL0ROjVspExMz6lZUMb3dHS36qsP5fXn8FQXYCUkailhA3J/Qg== X-Received: by 2002:a5d:4f84:0:b0:321:5b64:f744 with SMTP id d4-20020a5d4f84000000b003215b64f744mr6805771wru.20.1695375903349; Fri, 22 Sep 2023 02:45:03 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 1/9] audio: Add easy dummy audio initialiser Date: Fri, 22 Sep 2023 11:44:51 +0200 Message-ID: <20230922094459.265509-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695375978701100001 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander In case of sound devices which are created by default (some of them even wi= th -nodefaults) it would not be nice to users if qemu required explicit: -audiodev driver=3Dnone,id=3Daudio0 -machine audiodev=3Daudio0 when they just want to run a VM and not care about any audio output. Inste= ad this little helper makes it easy to create a dummy audiodev (driver=3Dnone)= in case there is no audiodev specified for the machine. To make sure users are not surprised by no sound output a helping message is also printed out. Signed-off-by: Martin Kletzander Signed-off-by: Paolo Bonzini --- audio/audio.c | 34 ++++++++++++++++++++++++++++++++++ audio/audio.h | 2 ++ 2 files changed, 36 insertions(+) diff --git a/audio/audio.c b/audio/audio.c index d72e7db7fb9..8c74bc6b88c 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -41,6 +41,7 @@ #include "sysemu/runstate.h" #include "ui/qemu-spice.h" #include "trace.h" +#include "hw/boards.h" =20 #define AUDIO_CAP "audio" #include "audio_int.h" @@ -2174,6 +2175,39 @@ bool audio_init_audiodevs(void) return true; } =20 +static void audio_init_dummy(const char *id) +{ + Audiodev *dev =3D g_new0(Audiodev, 1); + AudiodevListEntry *e =3D g_new0(AudiodevListEntry, 1); + + dev->driver =3D AUDIODEV_DRIVER_NONE; + dev->id =3D g_strdup(id); + + audio_validate_opts(dev, &error_abort); + audio_init(dev, NULL); + + e->dev =3D dev; + QSIMPLEQ_INSERT_TAIL(&audiodevs, e, next); +} + +const char *audio_maybe_init_dummy(const char *default_id) +{ + MachineState *ms =3D MACHINE(qdev_get_machine()); + + if (ms->default_audiodev) { + return ms->default_audiodev; + } + + dolog("warning: No audiodev specified for implicit machine devices, " + "no audio output will be available for these. " + "For setting a backend audiodev for such devices try using " + "the audiodev machine option.\n"); + + audio_init_dummy(default_id); + + return default_id; +} + audsettings audiodev_to_audsettings(AudiodevPerDirectionOptions *pdo) { return (audsettings) { diff --git a/audio/audio.h b/audio/audio.h index a276ec13eba..81d39526625 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -176,6 +176,8 @@ void audio_help(void); AudioState *audio_state_by_name(const char *name); const char *audio_get_id(QEMUSoundCard *card); =20 +const char *audio_maybe_init_dummy(const char *default_id); + #define DEFINE_AUDIO_PROPERTIES(_s, _f) \ DEFINE_PROP_AUDIODEV("audiodev", _s, _f) =20 --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376008; cv=none; d=zohomail.com; s=zohoarc; b=dCnfjwOmGFD7bixOEspwfiQK9ZTo8ntCAyzk7GanRD/RMs0n7ZtJlK97m2Db6OQDIgZpkmhuRFgyIusUzN9V7Q1iws9zY4yngq7lIh17aFVqgZQc/+bnOmv4XMv3ghSLrZYz12Ulx/igO5oaEzVOpHa+sMVBnAd9KJkIz7KXPt4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376008; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3/uW7JqmfdvTEgpNRrC5GI+FBcbtRDs5b03TvjBCV5Y=; b=ESRhAg+QgPmF1glMUX25xMuZk1ZPUi+8jSZbkwFYZbPdGg+A0aourvkQt40AM9UobtCh0qgPCqRxjL3LvHIB6Y9dadnQsS4EKbEWSVx1aBLd4336vTu4JCuqpqdMHMyQ6P0EfR5sXDhun5+poM0bsFsgdpFdzh4aUjVJjufQWQM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16953760085241002.0698050587096; Fri, 22 Sep 2023 02:46:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjcis-000213-80; Fri, 22 Sep 2023 05:45:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcip-000201-W2 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcik-00065H-Ho for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:12 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-329-E96ArzKYMd--Usu7rfyzug-1; Fri, 22 Sep 2023 05:45:07 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3fbdf341934so14852845e9.3 for ; Fri, 22 Sep 2023 02:45:07 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id x14-20020a05600c21ce00b003fefcbe7fa8sm4175572wmj.28.2023.09.22.02.45.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3/uW7JqmfdvTEgpNRrC5GI+FBcbtRDs5b03TvjBCV5Y=; b=EfJjg5oB0PjMTIgSM3cljeAfoyWH7Bt+pEPU6rpo29V9qHZZRVLF8GDuEv65XDZ7JWrMcL jhXO/eXqoqJ1NhSIWwaNyLODdCbvehHKuXI3795rzFYvNiPorubj4pk+ud796IrGP4/nT4 CRZg9vqU+WpKotr0JH/E4t4H/3C9Ekc= X-MC-Unique: E96ArzKYMd--Usu7rfyzug-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375905; x=1695980705; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3/uW7JqmfdvTEgpNRrC5GI+FBcbtRDs5b03TvjBCV5Y=; b=W1urLm9sqJjfkGqccTqGe9ngfJynN2Y1eTLFXH5yq4XAy6GXWVQaMB8KLgL7KvZ+uF GUSZ7mH9bmsVCrMubdZfRtp9wn6MxuX1g9xfaXKZ50g82qthDhQpgIfYQHSHgOW17N+p IEsgScuyFQfju5eJ9AWW5sqpDoOOWC5RRIv8p26h+VMEaKHdcDhHsS1wqu8SuPg8wqxu xxdSYKLrQayFXqtsSPJYTJbkfrk3nDUFha6UqDN+SPq3iefvA2XvUpui0tQb6xvn1pVH hr49cyyCDFIP8PRRDuM2zWBOmtH9zhUlgxoK0GZqgxOizVW70+xUZlDte30EoOguddP3 RsCQ== X-Gm-Message-State: AOJu0YwXIKwecERzjI9CREV3R51GGbWNUA4HWR1IA/kLD9/Q8E1IwGme YXxzc5MpEzrXjT6iujFadV755sPzdeZ5wHSjfVl7MyYtSuqijRnWC7SnC4dz0Ryt1ooWtthj/Vl 0vOqFHHziP/K2WuLjit6b7jFn0qWDvlKHyTfi51B40Zng66jO68L8ZJX7jvgABwS2r6/i27KI+U 0= X-Received: by 2002:a05:600c:3654:b0:3f5:fff8:d4f3 with SMTP id y20-20020a05600c365400b003f5fff8d4f3mr6977134wmq.7.1695375905640; Fri, 22 Sep 2023 02:45:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGesIG9fvtIemulmGGJ9VIz71SzOE+mINu6DJt6b/Hat8DYOMTA2X5NHcgPPKupQ4MH11P6zw== X-Received: by 2002:a05:600c:3654:b0:3f5:fff8:d4f3 with SMTP id y20-20020a05600c365400b003f5fff8d4f3mr6977116wmq.7.1695375905254; Fri, 22 Sep 2023 02:45:05 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 2/9] Introduce machine property "audiodev" Date: Fri, 22 Sep 2023 11:44:52 +0200 Message-ID: <20230922094459.265509-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376009020100001 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander Many machine types have default audio devices with no way to set the underl= ying audiodev. Instead of adding an option for each and every one of them, this= new property can be used as a default during machine initialisation when creati= ng such devices. Signed-off-by: Martin Kletzander [Make the property optional, instead of including it in all machines. - Pao= lo] Signed-off-by: Paolo Bonzini --- audio/audio.c | 4 ++-- hw/core/machine.c | 28 ++++++++++++++++++++++++++++ include/hw/boards.h | 7 +++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 8c74bc6b88c..62047ea3069 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -2194,8 +2194,8 @@ const char *audio_maybe_init_dummy(const char *defaul= t_id) { MachineState *ms =3D MACHINE(qdev_get_machine()); =20 - if (ms->default_audiodev) { - return ms->default_audiodev; + if (ms->audiodev) { + return ms->audiodev; } =20 dolog("warning: No audiodev specified for implicit machine devices, " diff --git a/hw/core/machine.c b/hw/core/machine.c index da699cf4e14..f677e96a223 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -682,6 +682,22 @@ bool device_type_is_dynamic_sysbus(MachineClass *mc, c= onst char *type) return allowed; } =20 +static char *machine_get_audiodev(Object *obj, Error **errp) +{ + MachineState *ms =3D MACHINE(obj); + + return g_strdup(ms->audiodev); +} + +static void machine_set_audiodev(Object *obj, const char *value, + Error **errp) +{ + MachineState *ms =3D MACHINE(obj); + + g_free(ms->audiodev); + ms->audiodev =3D g_strdup(value); +} + HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine) { int i; @@ -927,6 +943,17 @@ out_free: qapi_free_BootConfiguration(config); } =20 +void machine_add_audiodev_property(MachineClass *mc) +{ + ObjectClass *oc =3D OBJECT_CLASS(mc); + + object_class_property_add_str(oc, "audiodev", + machine_get_audiodev, + machine_set_audiodev); + object_class_property_set_description(oc, "audiodev", + "Audiodev to use for default mac= hine devices"); +} + static void machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); @@ -1132,6 +1159,7 @@ static void machine_finalize(Object *obj) g_free(ms->device_memory); g_free(ms->nvdimms_state); g_free(ms->numa_state); + g_free(ms->audiodev); } =20 bool machine_usb(MachineState *machine) diff --git a/include/hw/boards.h b/include/hw/boards.h index 6c67af196a3..b5153f5f85b 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -24,6 +24,7 @@ OBJECT_DECLARE_TYPE(MachineState, MachineClass, MACHINE) =20 extern MachineState *current_machine; =20 +void machine_add_audiodev_property(MachineClass *mc); void machine_run_board_init(MachineState *machine, const char *mem_path, E= rror **errp); bool machine_usb(MachineState *machine); int machine_phandle_start(MachineState *machine); @@ -358,6 +359,12 @@ struct MachineState { MemoryRegion *ram; DeviceMemoryState *device_memory; =20 + /* + * Included in MachineState for simplicity, but not supported + * unless machine_add_audiodev_property is called. + */ + char *audiodev; + ram_addr_t ram_size; ram_addr_t maxram_size; uint64_t ram_slots; --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376028; cv=none; d=zohomail.com; s=zohoarc; b=Y1IUmMxxolkM709gknxyG/7SM3L85bvJmcFJHbsfaBHnmid0knqcScwNHbdm4bZtTAYqT7pIFtrOrOrelfgLUzlpJN6pn4VZ3J7lfJICU+25snnQ3SLb3LrzRPO3uiZBQ5Zj27W0Olg2wU3cg10iWoUkc7nBp+2kgOSoF+c3oNw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376028; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ItSI1WPmKkkEOk3tbrM3yYg3Xv+avjA6O69RCRPouRs=; b=A0m3cp5lI6RN3RktvQVDGwL6cHn4j4bcjbW8+WhmoHZvM9B5yynRUBZaeDTH+pwkRnHMhrF+qKQP5Ub98rwlBwtpKMvyI6qzUXc0lH3plEljHy92N8LkqE6+fMl2qfQOEJdYgecAgV7K6kODSMfVOkHdx5a2LtbyRPhZkHzwAss= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695376028153505.4276526040984; Fri, 22 Sep 2023 02:47:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjcir-00020i-FO; Fri, 22 Sep 2023 05:45:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcip-000202-Vt for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcil-00065s-F7 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:13 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-434-5D5tBuh2PjWDs8k1esuqrQ-1; Fri, 22 Sep 2023 05:45:09 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-40526a782f7so15022015e9.2 for ; Fri, 22 Sep 2023 02:45:08 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id k19-20020a05600c479300b00405391f485fsm2867742wmo.41.2023.09.22.02.45.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ItSI1WPmKkkEOk3tbrM3yYg3Xv+avjA6O69RCRPouRs=; b=DJblDA0btqFvUy1p6Ib8Co/yekvE8uZwEmV7MM0BfcKKGfm+OvWGSACLFhxHasf1UYXGVu RkLLAitWgp1+J9bzrVWQqXuFyjRQHbyfMXm2HRnuXl1RFyS7Gyjbdgz7H0EBkzehSSwC9o lDc8xn7kd99urE9t9nwzZW16MFNh2nc= X-MC-Unique: 5D5tBuh2PjWDs8k1esuqrQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375907; x=1695980707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ItSI1WPmKkkEOk3tbrM3yYg3Xv+avjA6O69RCRPouRs=; b=YKn783W9ChR2woUBzBXV3qqRX+9apf3GVTcroHcWE/qIbu0oeR8pJ1oVdFGM8jkzVg MGpTZJoxHRJNq5wm86NxrFhqUmyk/e52Q5ONlHI0+wgNwXUDixoBhPQhgbNXGiT95W4Q tOOZwrdZcukP+azvBDKm+IR6HnYeuj/LxcFVmVOt9ukrS55dtZAye/J2Y8niJ9NKn7oN X6Hdo+hHl6vEXp7csj+JJO8M+b3kEzezqbFuH+xh6cmTrz6cG6Mb6zEMtKVzmNpafkhy lh9+FJAkqffvkM3s4xNc9l0bq5W78VZ1mODW7sHk9gv8mU0pLEVvvzsL+hH78ZYAiLX/ 4aCw== X-Gm-Message-State: AOJu0YyAgQPg09AHC1zUyR5fUALCk+/pM3qPZNmb45tn8Ht+bhpXoWiV wcW92XD9a5OtgZ/citLKPJhGbS+c7SpR/eChszcj/JhxTTNxLXrhlXTT3BMvaxH32i2MeJD4uAM rvFMkrpxytfw3WtEpxjlKZJwCncakxz9T5Bg2d6sImtCEMoVMdoNwkDdvTqQL4AbfnGKw8rDI/5 M= X-Received: by 2002:a05:600c:4c14:b0:405:3cb7:b4ea with SMTP id d20-20020a05600c4c1400b004053cb7b4eamr1588263wmp.37.1695375907505; Fri, 22 Sep 2023 02:45:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IESExvccsAWVFpXum6EL8Oo4d3mDKTjZv4g8wmIVYUS/dnT/8mPEeWJLVB2tO87xY47rDvFpw== X-Received: by 2002:a05:600c:4c14:b0:405:3cb7:b4ea with SMTP id d20-20020a05600c4c1400b004053cb7b4eamr1588248wmp.37.1695375907129; Fri, 22 Sep 2023 02:45:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 3/9] vl: support -audio BACKEND without model Date: Fri, 22 Sep 2023 11:44:53 +0200 Message-ID: <20230922094459.265509-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376029999100003 Content-Type: text/plain; charset="utf-8" For machines with an embedded audio device, "-audio BACKEND" will set the audiodev property of the machine itself. Signed-off-by: Paolo Bonzini --- softmmu/vl.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/softmmu/vl.c b/softmmu/vl.c index 5a1413da2aa..70c9eb34dcf 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2933,11 +2933,12 @@ void qemu_init(int argc, char **argv) if (!qdict_haskey(dict, "id")) { qdict_put_str(dict, "id", "audiodev0"); } - if (!qdict_haskey(dict, "model")) { - error_setg(&error_fatal, "Parameter 'model' is missing= "); + if (qdict_haskey(dict, "model")) { + model =3D g_strdup(qdict_get_str(dict, "model")); + qdict_del(dict, "model"); + } else { + model =3D g_strdup("default"); } - model =3D g_strdup(qdict_get_str(dict, "model")); - qdict_del(dict, "model"); if (is_help_option(model)) { show_valid_soundhw(); exit(0); @@ -2947,7 +2948,11 @@ void qemu_init(int argc, char **argv) visit_type_Audiodev(v, NULL, &dev, &error_fatal); visit_free(v); audio_define(dev); - select_soundhw(model, dev->id); + if (g_str_equal(model, "default")) { + qdict_put_str(machine_opts_dict, "audiodev", dev->id); + } else { + select_soundhw(model, dev->id); + } g_free(model); break; } --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695375936; cv=none; d=zohomail.com; s=zohoarc; b=Dgrz498rS2WdoIJcLRWoI5/Cr7kBcRwzI/EIl6gytowm9uFRrY5NsyXrXdI3sO6r/3SNcjQkinQyjwAwIHqjpGIGJsnYwSE+yGuhZtU6BPunwR/4CgfBc4U98gTM7igXtHsKp+RoXsDYyWaw7F6NCCuBQwL83q9f2lNg5OVpQ/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695375936; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=f+/IzdcCqyhRDfnS7CuZQ6lu5gH9OTyud0DDd7vzUSw=; b=UVYCCYU9ovJmJs4aoFTkUPn/pARHW+E7qUFvM5cfUPcYjHapTZdXhRyUt8Lj/D10fCLJaSp5k2wHNAeIeIAPl05MWgdnD4lmTgloTHPy6hdtHgbuQsPSpj66cbevHnBHKm2CYKFYO0bK9BgNFToZkX0WAYOM5oaQ4X0a7bDAlKk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695375936298267.6562447745646; Fri, 22 Sep 2023 02:45:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjciv-00022E-VU; Fri, 22 Sep 2023 05:45:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcit-00021Q-Ha for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcip-00066h-Tr for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:18 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-356-Moo2DJadMneU6-G2jhs8pw-1; Fri, 22 Sep 2023 05:45:11 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-404fa5c1d99so14921665e9.3 for ; Fri, 22 Sep 2023 02:45:11 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id t10-20020adff60a000000b0031c5e9c2ed7sm3969386wrp.92.2023.09.22.02.45.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=f+/IzdcCqyhRDfnS7CuZQ6lu5gH9OTyud0DDd7vzUSw=; b=VICDDw688O28Jjn60rGndd2p2iqHjBFgo1rhX9s0vfpeC9jPfESf7mcDkkbxegvL8vEqpA jXpsTBVYHYSgyYMpUrpKcjRLl/7KaTE6YFdDm35rHe5UaOadFUe3Lg8+NfMe/DPxUl1hDM D6ex6nz3rjnFjhilmFusjLOWgILjgpw= X-MC-Unique: Moo2DJadMneU6-G2jhs8pw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375909; x=1695980709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f+/IzdcCqyhRDfnS7CuZQ6lu5gH9OTyud0DDd7vzUSw=; b=W+NRNxdbQ7JrVdu6g5831HEfiIgbZI6XBG/FxC4TXXBkUq34ufrmfh0MfTOMI+CU7k odK3WHLlEIU+KHc9s+WaxtRdRX2FMS6MSLZI9WLywoEE+SRzFLpVEAp2fCkxAbnBxtGA gqO8zotamWZYDGmfc2iwWlQueejEYqL9hS3V9jqjWs2vffLdzn95VaPwMdiuCZBwV+UU JxCXd+Bbxt/qxUMVpfWuUgTMNyHZFVoZoB/bCTydSlnaFOe8Q8eTGfnJNJ83hmk6ECzh vs4EHCjeqUX2/Pg8AbdcF3tPxKFgQslp7UEiFecOOeuxzG9/esQGu9bKjRNPk+6OpeM2 R23Q== X-Gm-Message-State: AOJu0YzIP3plXIF88GdSdl15kZ9EYxmXv/q7qS4fHALZCoTECRB5/52j 7GvKrmhKZ43Fl77wUB4oYl8tAAKteeMe4Hfhl0y5mkatg8leVuv2mX2l9GuZKPe10SyCZwWy6A5 uKK9SeIbSdWd4IVwVE+rqsCjVozax0T8N5ixrQgZZue8BqDL/GkXvIAOnmqH8CbmKp4hs19JR9O Y= X-Received: by 2002:a1c:f204:0:b0:401:bf87:9898 with SMTP id s4-20020a1cf204000000b00401bf879898mr7649152wmc.25.1695375909400; Fri, 22 Sep 2023 02:45:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHuLOvLVzbQBY5sMDjo3AHbjVc9LlNXdSkfUefsQ3YBEs0yicRVfVBiTNtRl7cI8QkjSNzeWA== X-Received: by 2002:a1c:f204:0:b0:401:bf87:9898 with SMTP id s4-20020a1cf204000000b00401bf879898mr7649128wmc.25.1695375908852; Fri, 22 Sep 2023 02:45:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 4/9] hw/arm: Support machine-default audiodev with fallback Date: Fri, 22 Sep 2023 11:44:54 +0200 Message-ID: <20230922094459.265509-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695375937861100003 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander Signed-off-by: Martin Kletzander Signed-off-by: Paolo Bonzini --- hw/arm/integratorcp.c | 10 +++++++++- hw/arm/musicpal.c | 11 +++++++++-- hw/arm/nseries.c | 4 ++++ hw/arm/omap2.c | 8 ++++++++ hw/arm/palm.c | 2 ++ hw/arm/realview.c | 11 +++++++++++ hw/arm/spitz.c | 12 +++++++++--- hw/arm/versatilepb.c | 7 +++++++ hw/arm/vexpress.c | 4 ++++ hw/arm/xlnx-zcu102.c | 5 +++++ hw/arm/z2.c | 14 +++++++++++++- hw/input/tsc210x.c | 8 ++++++++ 12 files changed, 89 insertions(+), 7 deletions(-) diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index b109ece3ae0..8b4f8a1a36a 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -27,6 +27,7 @@ #include "hw/irq.h" #include "hw/sd/sd.h" #include "qom/object.h" +#include "audio/audio.h" =20 #define TYPE_INTEGRATOR_CM "integrator_core" OBJECT_DECLARE_SIMPLE_TYPE(IntegratorCMState, INTEGRATOR_CM) @@ -660,7 +661,12 @@ static void integratorcp_init(MachineState *machine) &error_fatal); } =20 - sysbus_create_varargs("pl041", 0x1d000000, pic[25], NULL); + dev =3D qdev_new("pl041"); + qdev_prop_set_string(dev, "audiodev", + audio_maybe_init_dummy("integrator.defaudio")); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0x1d000000); + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[25]); =20 if (nd_table[0].used) smc91c111_init(&nd_table[0], 0xc8000000, pic[27]); @@ -678,6 +684,8 @@ static void integratorcp_machine_init(MachineClass *mc) mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm926"); mc->default_ram_id =3D "integrator.ram"; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("integratorcp", integratorcp_machine_init) diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index dc4e43e0ee2..05c3f621954 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -37,9 +37,9 @@ #include "qemu/cutils.h" #include "qom/object.h" #include "hw/net/mv88w8618_eth.h" +#include "audio/audio.h" #include "qemu/error-report.h" =20 - #define MP_MISC_BASE 0x80002000 #define MP_MISC_SIZE 0x00001000 =20 @@ -1326,7 +1326,12 @@ static void musicpal_init(MachineState *machine) qdev_connect_gpio_out(key_dev, i, qdev_get_gpio_in(dev, i + 15)); } =20 - wm8750_dev =3D i2c_slave_create_simple(i2c, TYPE_WM8750, MP_WM_ADDR); + wm8750_dev =3D i2c_slave_new(TYPE_WM8750, MP_WM_ADDR); + + qdev_prop_set_string(DEVICE(wm8750_dev), "audiodev", + audio_maybe_init_dummy("musicpal.defaudio")); + i2c_slave_realize_and_unref(wm8750_dev, i2c, &error_abort); + dev =3D qdev_new(TYPE_MV88W8618_AUDIO); s =3D SYS_BUS_DEVICE(dev); object_property_set_link(OBJECT(dev), "wm8750", OBJECT(wm8750_dev), @@ -1347,6 +1352,8 @@ static void musicpal_machine_init(MachineClass *mc) mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm926"); mc->default_ram_size =3D MP_RAM_DEFAULT_SIZE; mc->default_ram_id =3D "musicpal.ram"; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("musicpal", musicpal_machine_init) diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c index 9e49e9e1776..35aff46b4b4 100644 --- a/hw/arm/nseries.c +++ b/hw/arm/nseries.c @@ -1432,6 +1432,8 @@ static void n800_class_init(ObjectClass *oc, void *da= ta) /* Actually two chips of 0x4000000 bytes each */ mc->default_ram_size =3D 0x08000000; mc->default_ram_id =3D "omap2.dram"; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo n800_type =3D { @@ -1452,6 +1454,8 @@ static void n810_class_init(ObjectClass *oc, void *da= ta) /* Actually two chips of 0x4000000 bytes each */ mc->default_ram_size =3D 0x08000000; mc->default_ram_id =3D "omap2.dram"; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo n810_type =3D { diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index d5a2ae7af6e..8b65c0b8ad6 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -603,12 +603,20 @@ static struct omap_eac_s *omap_eac_init(struct omap_t= arget_agent_s *ta, qemu_irq irq, qemu_irq *drq, omap_clk fclk, omap_clk iclk) { struct omap_eac_s *s =3D g_new0(struct omap_eac_s, 1); + const char *audiodev_id =3D audio_maybe_init_dummy("eac.defaudio"); =20 s->irq =3D irq; s->codec.rxdrq =3D *drq ++; s->codec.txdrq =3D *drq; omap_eac_reset(s); =20 + s->codec.card.name =3D g_strdup(audiodev_id); + s->codec.card.state =3D audio_state_by_name(s->codec.card.name); + if (!s->codec.card.state) { + error_setg(&error_fatal, "Cannot find audiodev with id '%s'", + s->codec.card.name); + } + AUD_register_card("OMAP EAC", &s->codec.card); =20 memory_region_init_io(&s->iomem, NULL, &omap_eac_ops, s, "omap.eac", diff --git a/hw/arm/palm.c b/hw/arm/palm.c index 17c11ac4cec..b86f2c331bb 100644 --- a/hw/arm/palm.c +++ b/hw/arm/palm.c @@ -310,6 +310,8 @@ static void palmte_machine_init(MachineClass *mc) mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("ti925t"); mc->default_ram_size =3D 0x02000000; mc->default_ram_id =3D "omap1.dram"; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("cheetah", palmte_machine_init) diff --git a/hw/arm/realview.c b/hw/arm/realview.c index a5aa2f046ae..ad677dd4d81 100644 --- a/hw/arm/realview.c +++ b/hw/arm/realview.c @@ -29,6 +29,7 @@ #include "hw/irq.h" #include "hw/i2c/arm_sbcon_i2c.h" #include "hw/sd/sd.h" +#include "audio/audio.h" =20 #define SMP_BOOT_ADDR 0xe0000000 #define SMP_BOOTREG_ADDR 0x10000030 @@ -207,6 +208,8 @@ static void realview_init(MachineState *machine, =20 pl041 =3D qdev_new("pl041"); qdev_prop_set_uint32(pl041, "nc_fifo_depth", 512); + qdev_prop_set_string(pl041, "audiodev", + audio_maybe_init_dummy("realview.defaudio")); sysbus_realize_and_unref(SYS_BUS_DEVICE(pl041), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(pl041), 0, 0x10004000); sysbus_connect_irq(SYS_BUS_DEVICE(pl041), 0, pic[19]); @@ -412,6 +415,8 @@ static void realview_eb_class_init(ObjectClass *oc, voi= d *data) mc->block_default_type =3D IF_SCSI; mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm926"); + + machine_add_audiodev_property(mc); } =20 static const TypeInfo realview_eb_type =3D { @@ -430,6 +435,8 @@ static void realview_eb_mpcore_class_init(ObjectClass *= oc, void *data) mc->max_cpus =3D 4; mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm11mpcore"); + + machine_add_audiodev_property(mc); } =20 static const TypeInfo realview_eb_mpcore_type =3D { @@ -446,6 +453,8 @@ static void realview_pb_a8_class_init(ObjectClass *oc, = void *data) mc->init =3D realview_pb_a8_init; mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("cortex-a8"); + + machine_add_audiodev_property(mc); } =20 static const TypeInfo realview_pb_a8_type =3D { @@ -463,6 +472,8 @@ static void realview_pbx_a9_class_init(ObjectClass *oc,= void *data) mc->max_cpus =3D 4; mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("cortex-a9"); + + machine_add_audiodev_property(mc); } =20 static const TypeInfo realview_pbx_a9_type =3D { diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c index f732fe0acf9..3620bb63ea9 100644 --- a/hw/arm/spitz.c +++ b/hw/arm/spitz.c @@ -35,6 +35,7 @@ #include "exec/address-spaces.h" #include "cpu.h" #include "qom/object.h" +#include "audio/audio.h" =20 enum spitz_model_e { spitz, akita, borzoi, terrier }; =20 @@ -779,10 +780,13 @@ static void spitz_i2c_setup(PXA2xxState *cpu) /* Attach the CPU on one end of our I2C bus. */ I2CBus *bus =3D pxa2xx_i2c_bus(cpu->i2c[0]); =20 - DeviceState *wm; - /* Attach a WM8750 to the bus */ - wm =3D DEVICE(i2c_slave_create_simple(bus, TYPE_WM8750, 0)); + I2CSlave *i2c_dev =3D i2c_slave_new(TYPE_WM8750, 0); + DeviceState *wm =3D DEVICE(i2c_dev); + + qdev_prop_set_string(wm, "audiodev", + audio_maybe_init_dummy("spitz.defaudio")); + i2c_slave_realize_and_unref(i2c_dev, bus, &error_abort); =20 spitz_wm8750_addr(wm, 0, 0); qdev_connect_gpio_out(cpu->gpio, SPITZ_GPIO_WM, @@ -1037,6 +1041,8 @@ static void spitz_common_class_init(ObjectClass *oc, = void *data) mc->block_default_type =3D IF_IDE; mc->ignore_memory_transaction_failures =3D true; mc->init =3D spitz_common_init; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo spitz_common_info =3D { diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 05b9462a5b7..d10008dbd78 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -26,6 +26,7 @@ #include "hw/char/pl011.h" #include "hw/sd/sd.h" #include "qom/object.h" +#include "audio/audio.h" =20 #define VERSATILE_FLASH_ADDR 0x34000000 #define VERSATILE_FLASH_SIZE (64 * 1024 * 1024) @@ -343,6 +344,8 @@ static void versatile_init(MachineState *machine, int b= oard_id) /* Add PL041 AACI Interface to the LM4549 codec */ pl041 =3D qdev_new("pl041"); qdev_prop_set_uint32(pl041, "nc_fifo_depth", 512); + qdev_prop_set_string(pl041, "audiodev", + audio_maybe_init_dummy("versatilepb.defaudio")); sysbus_realize_and_unref(SYS_BUS_DEVICE(pl041), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(pl041), 0, 0x10004000); sysbus_connect_irq(SYS_BUS_DEVICE(pl041), 0, sic[24]); @@ -416,6 +419,8 @@ static void versatilepb_class_init(ObjectClass *oc, voi= d *data) mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm926"); mc->default_ram_id =3D "versatile.ram"; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo versatilepb_type =3D { @@ -434,6 +439,8 @@ static void versatileab_class_init(ObjectClass *oc, voi= d *data) mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("arm926"); mc->default_ram_id =3D "versatile.ram"; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo versatileab_type =3D { diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index 56abadd9b8b..4dde7cf631a 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -44,6 +44,7 @@ #include "hw/i2c/arm_sbcon_i2c.h" #include "hw/sd/sd.h" #include "qom/object.h" +#include "audio/audio.h" =20 #define VEXPRESS_BOARD_ID 0x8e0 #define VEXPRESS_FLASH_SIZE (64 * 1024 * 1024) @@ -613,6 +614,8 @@ static void vexpress_common_init(MachineState *machine) =20 pl041 =3D qdev_new("pl041"); qdev_prop_set_uint32(pl041, "nc_fifo_depth", 512); + qdev_prop_set_string(pl041, "audiodev", + audio_maybe_init_dummy("vexpress.defaudio")); sysbus_realize_and_unref(SYS_BUS_DEVICE(pl041), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(pl041), 0, map[VE_PL041]); sysbus_connect_irq(SYS_BUS_DEVICE(pl041), 0, pic[11]); @@ -776,6 +779,7 @@ static void vexpress_class_init(ObjectClass *oc, void *= data) mc->ignore_memory_transaction_failures =3D true; mc->default_ram_id =3D "vexpress.highmem"; =20 + machine_add_audiodev_property(mc); object_class_property_add_bool(oc, "secure", vexpress_get_secure, vexpress_set_secure); object_class_property_set_description(oc, "secure", diff --git a/hw/arm/xlnx-zcu102.c b/hw/arm/xlnx-zcu102.c index 21483f75fd9..d7ca2867fea 100644 --- a/hw/arm/xlnx-zcu102.c +++ b/hw/arm/xlnx-zcu102.c @@ -24,6 +24,7 @@ #include "sysemu/device_tree.h" #include "qom/object.h" #include "net/can_emu.h" +#include "audio/audio.h" =20 struct XlnxZCU102 { MachineState parent_obj; @@ -143,6 +144,9 @@ static void xlnx_zcu102_init(MachineState *machine) =20 object_initialize_child(OBJECT(machine), "soc", &s->soc, TYPE_XLNX_ZYN= QMP); =20 + qdev_prop_set_string(DEVICE(&s->soc.dp), "audiodev", + audio_maybe_init_dummy("zcu102.defaudio")); + object_property_set_link(OBJECT(&s->soc), "ddr-ram", OBJECT(machine->r= am), &error_abort); object_property_set_bool(OBJECT(&s->soc), "secure", s->secure, @@ -275,6 +279,7 @@ static void xlnx_zcu102_machine_class_init(ObjectClass = *oc, void *data) mc->default_cpus =3D XLNX_ZYNQMP_NUM_APU_CPUS; mc->default_ram_id =3D "ddr-ram"; =20 + machine_add_audiodev_property(mc); object_class_property_add_bool(oc, "secure", zcu102_get_secure, zcu102_set_secure); object_class_property_set_description(oc, "secure", diff --git a/hw/arm/z2.c b/hw/arm/z2.c index dc25304290a..745f5bfad94 100644 --- a/hw/arm/z2.c +++ b/hw/arm/z2.c @@ -27,6 +27,7 @@ #include "exec/address-spaces.h" #include "cpu.h" #include "qom/object.h" +#include "qapi/error.h" =20 #ifdef DEBUG_Z2 #define DPRINTF(fmt, ...) \ @@ -307,6 +308,7 @@ static void z2_init(MachineState *machine) void *z2_lcd; I2CBus *bus; DeviceState *wm; + I2CSlave *i2c_dev; =20 /* Setup CPU & memory */ mpu =3D pxa270_init(z2_binfo.ram_size, machine->cpu_type); @@ -328,8 +330,16 @@ static void z2_init(MachineState *machine) type_register_static(&aer915_info); z2_lcd =3D ssi_create_peripheral(mpu->ssp[1], TYPE_ZIPIT_LCD); bus =3D pxa2xx_i2c_bus(mpu->i2c[0]); + i2c_slave_create_simple(bus, TYPE_AER915, 0x55); - wm =3D DEVICE(i2c_slave_create_simple(bus, TYPE_WM8750, 0x1b)); + + i2c_dev =3D i2c_slave_new(TYPE_WM8750, 0x1b); + wm =3D DEVICE(i2c_dev); + + qdev_prop_set_string(wm, "audiodev", + audio_maybe_init_dummy("z2.defaudio")); + i2c_slave_realize_and_unref(i2c_dev, bus, &error_abort); + mpu->i2s->opaque =3D wm; mpu->i2s->codec_out =3D wm8750_dac_dat; mpu->i2s->codec_in =3D wm8750_adc_dat; @@ -348,6 +358,8 @@ static void z2_machine_init(MachineClass *mc) mc->init =3D z2_init; mc->ignore_memory_transaction_failures =3D true; mc->default_cpu_type =3D ARM_CPU_TYPE_NAME("pxa270-c5"); + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("z2", z2_machine_init) diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c index f568759e05a..08935424630 100644 --- a/hw/input/tsc210x.c +++ b/hw/input/tsc210x.c @@ -1097,6 +1097,14 @@ static void tsc210x_init(TSC210xState *s, =20 qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, 1, name); =20 + const char *audiodev_id =3D audio_maybe_init_dummy("tsc.defaudio"); + s->card.name =3D g_strdup(audiodev_id); + s->card.state =3D audio_state_by_name(s->card.name); + if (!s->card.state) { + error_setg(&error_fatal, "Cannot find audiodev with id '%s'", + s->card.name); + } + AUD_register_card(s->name, &s->card); =20 qemu_register_reset((void *) tsc210x_reset, s); --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376021; cv=none; d=zohomail.com; s=zohoarc; b=UVM+Kq7BDhQtMWIamvZTQmPyAGxJYDtI6rOkBRDDK7D+fjXAAGaRK8h1tfvXpxrr57MmLono/8wEa+y4IMCfi1t9L7vvBw6R3dHMs1cxKKDnhG0hlywc71z++3d6thfWvjjsv7QHulolLqmDcm8C8itG7uDezZFurJBNat1VTOM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376021; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3TCItK66JDIU77N/PqYhs/8wtyNXVpZ98siSsNIqjGs=; b=KGGyqE4E5DN5c8ni1RPs0lhH1vBVEae7VKjKxMRjnh2xPodYvLPMRKNZfKq+yh+5s51UtHi4MoWQeeOuJ5zYUySK4DlzIvA4oE45IUcurH+nniSDp3iAd8qQOxOB/8odfqwyr7UsZ3R3xgUd78WwGsfysgWyC6E5QavEfybwWWw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695376021251589.660716399657; Fri, 22 Sep 2023 02:47:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjcit-00021F-DW; Fri, 22 Sep 2023 05:45:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcir-00020d-7q for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcip-00066c-ML for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:16 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-466-_qIEVIYlN4u3f34KoPdd4g-1; Fri, 22 Sep 2023 05:45:12 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4053e4195c6so3194885e9.1 for ; Fri, 22 Sep 2023 02:45:12 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id z8-20020adfd0c8000000b00317a29af4b2sm3992269wrh.68.2023.09.22.02.45.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3TCItK66JDIU77N/PqYhs/8wtyNXVpZ98siSsNIqjGs=; b=VM+hT1LNb/LdEGtpcpdMchkUYb0bOxg4Azn7fkdAH6ayegUuLt/6H+wx8pX/Rsx8QrWCOY RVQJYwgEGMYt1boTuV+Z/cIKR3qd4lddpFA8HUKuhKrxsQZSnb7ECJCvu+q/S5vi/BGDzC aZreLRc7n7+LBUeJP5vIkjKOJhdsFUQ= X-MC-Unique: _qIEVIYlN4u3f34KoPdd4g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375910; x=1695980710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3TCItK66JDIU77N/PqYhs/8wtyNXVpZ98siSsNIqjGs=; b=NWv2uk6k8COYf0rPaTk9KQ6Vv6/QbkAYKLMcZGgz2TbX9yphriledSsC9BEdeBmOcC if5sOuxbNASqFshQAbVr8vwWwf7rR+q8JA477YJbddhxNfSJa6qh9cL9BO2wz2sWFfnO jStiq4uZz2G3Af6ACu2C3gZbJBjs6TavHvDvzeplWSInMkDNH9J5y8UhDOjlAM+wvdtk pcW2bvPK8otc/+IkQ74ejRffu+Actdlm+r8RujGGFKQKrqTMoYhQvcbmRhiQtv9IWm0r nS/EeLtkPtIuK4GuJxWhx6yAIJBH0XoS/IS7Jv51tz9omYM6MYFEh+5lWXsGN2tq61gm HNpA== X-Gm-Message-State: AOJu0Yy5yCkKpGG77q2TVBbu4PZMT790Dp8avA0XRq8X4my7lU1K2Qj5 lWHVlcumheAASfqy3vqvMS36jAMq+ONZJnEbFLQwAWTwRuu1Urgu9ankVfM7+Vcd5pKWLIuKgL/ 1aiN2cLnFF8YAErzhHX/yWzElXQgROUQVQ6B7RXtymnGlvKsf5NfWEbtKIR8Vdiwvj6yPESO8Ch o= X-Received: by 2002:a05:600c:444e:b0:405:3d04:5f53 with SMTP id v14-20020a05600c444e00b004053d045f53mr1286681wmn.39.1695375910642; Fri, 22 Sep 2023 02:45:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IENp6xX/eLcWGACqNm29esafxvr3Q76HIiTEF1F+5HphYAID6YnCg748KE+cF7PAZovSBn4hg== X-Received: by 2002:a05:600c:444e:b0:405:3d04:5f53 with SMTP id v14-20020a05600c444e00b004053d045f53mr1286661wmn.39.1695375910158; Fri, 22 Sep 2023 02:45:10 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 5/9] hw/ppc: Support machine-default audiodev with fallback Date: Fri, 22 Sep 2023 11:44:55 +0200 Message-ID: <20230922094459.265509-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376021571100001 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander Signed-off-by: Martin Kletzander Signed-off-by: Paolo Bonzini --- hw/ppc/prep.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index f6fd35fcb9e..739ff0ea8ad 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -45,6 +45,7 @@ #include "trace.h" #include "elf.h" #include "qemu/units.h" +#include "audio/audio.h" =20 /* SMP is not enabled, for now */ #define MAX_CPUS 1 @@ -310,6 +311,9 @@ static void ibm_40p_init(MachineState *machine) dev =3D DEVICE(isa_dev); qdev_prop_set_uint32(dev, "iobase", 0x830); qdev_prop_set_uint32(dev, "irq", 10); + + qdev_prop_set_string(dev, "audiodev", + audio_maybe_init_dummy("ppc.defaudio")); isa_realize_and_unref(isa_dev, isa_bus, &error_fatal); =20 isa_dev =3D isa_new("pc87312"); @@ -426,6 +430,8 @@ static void ibm_40p_machine_init(MachineClass *mc) mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("604"); mc->default_display =3D "std"; mc->default_nic =3D "pcnet"; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("40p", ibm_40p_machine_init) --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376002; cv=none; d=zohomail.com; s=zohoarc; b=C82lJJYrvdAWvnX7WbjTAr6k3A88RwyX80qMHWNx/7y26ytu9/k5wAwuXwCHId/HZF9Bt8dIgSxQrPFHRZ8Mq/aWVhQR9224AF+xZWtt4WE4QoiJUf5i4Q93zUeKldaF81gBFwSKkCccKz1a9p3afpVxMDYK5d15zxiw6BvguYM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376002; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mbDMyVOF+Ye0W0SxcmrxeQBRDTfkxy+h8RSyp7R+k7s=; b=YOV8WN07faQXoFELKkv4aT91RDxWoBksWQf4rpvdt1M3LS/CTstrKRnm8MM6sXBPq78IDjdzNn6tiPpY1irYybquCmNdhx1TkADnk4z03k4m0Sx/VfLGjgH1jbQa0z2LQdFpb/rJamnlWa1EXDN+QMGgGxuSqCwDyVrxfxaLzQU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695376002921975.0817968491957; Fri, 22 Sep 2023 02:46:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjcj7-000241-Lj; Fri, 22 Sep 2023 05:45:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcj6-00023s-Fo for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjciq-00067I-Rx for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:32 -0400 Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-556-RfdQx5cbNkiW5rtUHSb_Vg-1; Fri, 22 Sep 2023 05:45:14 -0400 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-5043eb2c436so394080e87.3 for ; Fri, 22 Sep 2023 02:45:14 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id n3-20020a05600c3b8300b004053a6b8c41sm2329390wms.12.2023.09.22.02.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mbDMyVOF+Ye0W0SxcmrxeQBRDTfkxy+h8RSyp7R+k7s=; b=AonPqEF9mo6fHtF22vQeNq+g1kJOLVeaF+9Wg/EI9J1o/KSew4bwa6JJwpcOKRGzuMUyss WvpldqhMtfElVrMzqr5geAbxn/cKP8P9IKOusmUVBKMsdfdxvBXRr+GfJgqapKlKUsDiVz pVhK/7WSzfIgCpAJVFRHijVOutNfkWc= X-MC-Unique: RfdQx5cbNkiW5rtUHSb_Vg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375912; x=1695980712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mbDMyVOF+Ye0W0SxcmrxeQBRDTfkxy+h8RSyp7R+k7s=; b=M1P9qOE5vr6uOsb3nCDXMNC7yZendGYqu39uVyu22AMegYyb5B6F/O9/gFRT5Ru7v0 gFl/azkewztqkxMTXT4e/9rya8jwZB3ZbaFd7PWN+vuhDrflUdQRLLKMFdetjrmqQCxm hMibAw74vxD++8BiAyDguOwgHVqTk+q0aFHPIIBGtBmWJ4otBKrFjUcCV8TcW3q3Xs+p rU1O89PkuxdU3JKEchVxE8sHcDj2hiFe1BBa8AQZcAS8LogBOf0BW3VOkOR2sHdV2axn byhVv+LivLkEOCwQIyrcrpcwgszrpjI7IbGu2Dfg8D4RezfcuOoaK0NGI+tnCGEgyLvb kc3g== X-Gm-Message-State: AOJu0YyME3V5rZH3f/URNcj37cIH84E8D3qXhBlnpl4qM9+2t3urkBmy RAjv0MyekBXg2fOlxKPRvZJ8+IhzZEB68tCuK3gkqbPIn+msCdafYeECk+nNn4D+y5TIUy3W0A9 nW7bYq8Xo/nw7LNEFl4eSrfLKGl8MNMOFo7cspn1g3Ts+527FdwbOaB3FWv7Z1ZhwQHdUbziuAa k= X-Received: by 2002:a05:6512:e86:b0:500:7e64:cff1 with SMTP id bi6-20020a0565120e8600b005007e64cff1mr9747345lfb.14.1695375912415; Fri, 22 Sep 2023 02:45:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFcJKPzUGiOeTF0u23loOkyLMTC9VoF1BTig4uNaaak9AbGdJyaMKVS/kTuPyUTWd2iRxunMg== X-Received: by 2002:a05:6512:e86:b0:500:7e64:cff1 with SMTP id bi6-20020a0565120e8600b005007e64cff1mr9747326lfb.14.1695375912042; Fri, 22 Sep 2023 02:45:12 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 6/9] vt82c686: Support machine-default audiodev with fallback Date: Fri, 22 Sep 2023 11:44:56 +0200 Message-ID: <20230922094459.265509-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376003592100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Paolo Bonzini --- hw/isa/vt82c686.c | 2 ++ hw/mips/fuloong2e.c | 12 +++++++++--- hw/ppc/pegasos2.c | 10 ++++++++-- hw/ppc/sam460ex.c | 2 ++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c index 57bdfb4e78c..3ec8e43708a 100644 --- a/hw/isa/vt82c686.c +++ b/hw/isa/vt82c686.c @@ -578,6 +578,8 @@ static void via_isa_init(Object *obj) object_initialize_child(obj, "uhci2", &s->uhci[1], TYPE_VT82C686B_USB_= UHCI); object_initialize_child(obj, "ac97", &s->ac97, TYPE_VIA_AC97); object_initialize_child(obj, "mc97", &s->mc97, TYPE_VIA_MC97); + + object_property_add_alias(obj, "audiodev", OBJECT(&s->ac97), "audiodev= "); } =20 static const TypeInfo via_isa_info =3D { diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c index c827f615f3b..d0671824f94 100644 --- a/hw/mips/fuloong2e.c +++ b/hw/mips/fuloong2e.c @@ -41,6 +41,7 @@ #include "sysemu/reset.h" #include "sysemu/sysemu.h" #include "qemu/error-report.h" +#include "audio/audio.h" =20 #define ENVP_PADDR 0x2000 #define ENVP_VADDR cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR) @@ -295,9 +296,12 @@ static void mips_fuloong2e_init(MachineState *machine) pci_bus =3D bonito_init((qemu_irq *)&(env->irq[2])); =20 /* South bridge -> IP5 */ - pci_dev =3D pci_create_simple_multifunction(pci_bus, - PCI_DEVFN(FULOONG2E_VIA_SLOT= , 0), - TYPE_VT82C686B_ISA); + pci_dev =3D pci_new_multifunction(PCI_DEVFN(FULOONG2E_VIA_SLOT, 0), + TYPE_VT82C686B_ISA); + qdev_prop_set_string(DEVICE(pci_dev), "audiodev", + audio_maybe_init_dummy("fuloong2e.defaudio")); + pci_realize_and_unref(pci_dev, pci_bus, &error_abort); + object_property_add_alias(OBJECT(machine), "rtc-time", object_resolve_path_component(OBJECT(pci_dev= ), "rtc"), @@ -337,6 +341,8 @@ static void mips_fuloong2e_machine_init(MachineClass *m= c) mc->default_ram_size =3D 256 * MiB; mc->default_ram_id =3D "fuloong2e.ram"; mc->minimum_page_bits =3D 14; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("fuloong2e", mips_fuloong2e_machine_init) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index bd397cf2b5c..45b94cab73a 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -37,6 +37,7 @@ #include "qemu/datadir.h" #include "sysemu/device_tree.h" #include "hw/ppc/vof.h" +#include "audio/audio.h" =20 #include =20 @@ -180,8 +181,11 @@ static void pegasos2_init(MachineState *machine) pci_bus_irqs(pci_bus, pegasos2_pci_irq, pm, PCI_NUM_PINS); =20 /* VIA VT8231 South Bridge (multifunction PCI device) */ - via =3D OBJECT(pci_create_simple_multifunction(pci_bus, PCI_DEVFN(12, = 0), - TYPE_VT8231_ISA)); + via =3D OBJECT(pci_new_multifunction(PCI_DEVFN(12, 0), TYPE_VT8231_ISA= )); + qdev_prop_set_string(DEVICE(via), "audiodev", + audio_maybe_init_dummy("pegasos2.defaudio")); + pci_realize_and_unref(PCI_DEVICE(via), pci_bus, &error_abort); + for (i =3D 0; i < PCI_NUM_PINS; i++) { pm->via_pirq[i] =3D qdev_get_gpio_in_named(DEVICE(via), "pirq", i); } @@ -564,6 +568,8 @@ static void pegasos2_machine_class_init(ObjectClass *oc= , void *data) vhc->encode_hpt_for_kvm_pr =3D vhyp_encode_hpt_for_kvm_pr; =20 vmc->setprop =3D pegasos2_setprop; + + machine_add_audiodev_property(mc); } =20 static const TypeInfo pegasos2_machine_info =3D { diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 1e615b8d355..8c3abc67131 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -530,6 +530,8 @@ static void sam460ex_machine_init(MachineClass *mc) mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("460exb"); mc->default_ram_size =3D 512 * MiB; mc->default_ram_id =3D "ppc4xx.sdram"; + + machine_add_audiodev_property(mc); } =20 DEFINE_MACHINE("sam460ex", sam460ex_machine_init) --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376014; cv=none; d=zohomail.com; s=zohoarc; b=Blra/FW0DrutAM1+y+4ZtDEAZtiUZKonH+aRtMy71OWDzWJG6cAVpNpQXamQDneZMzP1SGIqCL+Yoq91MA8CC8gDobQkv+knbBMEKeYZ3cf/W5uF+lm9zo9D+ldFB9VjKvDxy/ZxZCqrQrdmMpr1AUU0K/x2r4I58WFceQFU4z0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376014; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZJdEfzhhhMMfOiEf/g3p1aD8w9vzoQMGskLuj8de+qg=; b=F2VM42sxb+6uLz8ynmQkghIH+RnIbfmT7FOvxHHsfhRm7k+ZGWIEki1wtMcc9wXtYhWncNUInU26xrlnhRXDhvTBjkb5Mmeb5K0H2Hw19gnK3p55Sah1L0t4gOA27kRCXUP6T+dvuWZWnkFFbiYMTwIhw35318U6kqIC4+FWFAs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 169537601486963.1318124877406; Fri, 22 Sep 2023 02:46:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjciv-00022C-96; Fri, 22 Sep 2023 05:45:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcit-00021V-LI for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcis-00067k-5W for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:19 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-564-Ca9eaSKoM6GVlB_3T7Ms8A-1; Fri, 22 Sep 2023 05:45:16 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-31fe49c6bb1so1200673f8f.0 for ; Fri, 22 Sep 2023 02:45:16 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id z12-20020a5d654c000000b00317f29ad113sm3993038wrv.32.2023.09.22.02.45.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZJdEfzhhhMMfOiEf/g3p1aD8w9vzoQMGskLuj8de+qg=; b=CkfLo/dnEcgOK8pL3PId2hZuekliiNWkJLRRx9ZOyN9xEWngNZT+FkWMSAezZQ124zJMrV dgqmvBBD3i9tNSeVobzMbuubHkoykS6vH0bM2s33TQV7d2U/qN99tkbJdHUkVHPz3QQZpF BZFHWSWFab3qkDXaafUnyG2FGVIXTxQ= X-MC-Unique: Ca9eaSKoM6GVlB_3T7Ms8A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375914; x=1695980714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZJdEfzhhhMMfOiEf/g3p1aD8w9vzoQMGskLuj8de+qg=; b=Cj0FqhVz/WKIDyZ0OieU4Uj0Cy0ZLw/jWMkATUgB/GAmnlU6HLOKDE2xtSZMm3p4Nc McnRDOzAlwEPV13Z1yYkTih1HDxo+ITrXDvCCWSzxGnvM1F8z6FbQpN7fdFzZbdwKN2C PBwNwnMh0hV13sgZmXHEEBTVuIE6U7DbzNBbJwJFXnqhy99PfX5MNn3FunEXPaVEftDq ea5pb05uNfPoYq8HF3NHznVcy5qYY28WSmLJ6lQncKsGxw60uLDfugzlY1ZfFwEG7jQp XMPd38RhOrhZnkn63DKbXI0+MR2soveKgC6Ddc8F1yXUSp2Oyeilj5+8EkvbGXuY8UuA 9+vg== X-Gm-Message-State: AOJu0YxHXzHEamYJxrGGuJx11uzrJVFvL65C6JzZMG/DkaPhysCOUynM MFUWxiff5C3Vk0eR6ClPAUGtg5sNZaZYRj+nHKK+V0I8m9cEkVtKDyHtk/s7OYc95J4E+P6YnrF fg2V2YRl0kwgaADpGFRUf/ozeVv9sqbpIas2vzYCOYOtrfTssdnQy0Uu7jxseCBcFs3b+CaH38H I= X-Received: by 2002:a5d:6282:0:b0:321:4ca9:ee86 with SMTP id k2-20020a5d6282000000b003214ca9ee86mr8061536wru.53.1695375914693; Fri, 22 Sep 2023 02:45:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEW2F1M/z+Q9LaLE/vWhoLky2ZAoVASgH66r7h8G7zTx5PoSpqeIzvzmaDTbHHv91SwimLcoQ== X-Received: by 2002:a5d:6282:0:b0:321:4ca9:ee86 with SMTP id k2-20020a5d6282000000b003214ca9ee86mr8061520wru.53.1695375914319; Fri, 22 Sep 2023 02:45:14 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 7/9] vl: recognize audiodev groups in configuration files Date: Fri, 22 Sep 2023 11:44:57 +0200 Message-ID: <20230922094459.265509-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376017060100007 Content-Type: text/plain; charset="utf-8" This is necessary for the q35 configuration tests to pass, once audiodev becomes mandatory. Signed-off-by: Paolo Bonzini --- docs/config/q35-emulated.cfg | 4 ++++ docs/config/q35-virtio-graphical.cfg | 4 ++++ softmmu/vl.c | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/docs/config/q35-emulated.cfg b/docs/config/q35-emulated.cfg index c8806e6d362..b4bd7e858a9 100644 --- a/docs/config/q35-emulated.cfg +++ b/docs/config/q35-emulated.cfg @@ -288,3 +288,7 @@ driver =3D "hda-duplex" bus =3D "ich9-hda-audio.0" cad =3D "0" + audiodev =3D "audiodev0" + +[audiodev "audiodev0"] + driver =3D "none" # CHANGE ME diff --git a/docs/config/q35-virtio-graphical.cfg b/docs/config/q35-virtio-= graphical.cfg index 148b5d2c5e4..820860aefe0 100644 --- a/docs/config/q35-virtio-graphical.cfg +++ b/docs/config/q35-virtio-graphical.cfg @@ -248,3 +248,7 @@ driver =3D "hda-duplex" bus =3D "sound.0" cad =3D "0" + audiodev =3D "audiodev0" + +[audiodev "audiodev0"] + driver =3D "none" # CHANGE ME diff --git a/softmmu/vl.c b/softmmu/vl.c index 70c9eb34dcf..f74fc3d3e40 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2125,6 +2125,7 @@ static int global_init_func(void *opaque, QemuOpts *o= pts, Error **errp) static bool is_qemuopts_group(const char *group) { if (g_str_equal(group, "object") || + g_str_equal(group, "audiodev") || g_str_equal(group, "machine") || g_str_equal(group, "smp-opts") || g_str_equal(group, "boot-opts")) { @@ -2140,6 +2141,15 @@ static void qemu_record_config_group(const char *gro= up, QDict *dict, Visitor *v =3D qobject_input_visitor_new_keyval(QOBJECT(dict)); object_option_add_visitor(v); visit_free(v); + + } else if (g_str_equal(group, "audiodev")) { + Audiodev *dev =3D NULL; + Visitor *v =3D qobject_input_visitor_new_keyval(QOBJECT(dict)); + if (visit_type_Audiodev(v, NULL, &dev, errp)) { + audio_define(dev); + } + visit_free(v); + } else if (g_str_equal(group, "machine")) { /* * Cannot merge string-valued and type-safe dictionaries, so JSON --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695376001; cv=none; d=zohomail.com; s=zohoarc; b=WDI3ZLoXc+WnE2N3SJoCaN3MjIi5MXB5MCA8ZZ7nNpnstrx4hMfksFDRmNsgGEZ7zNIwUZ1NUU/FYJ2ojXzG8nXr8yd9+iR+5T6gmSjvacl1J6e60LMi0mIBk5SnmbuYAYrcmEkN0nZV7J8ory4gGof4A6YY+XYcqW2RrSzl8Ns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695376001; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=btFw6r7s/mwNXPAj4RBIvZroY4QN+49U9X9H2mpbW3I=; b=QX38rIgyatmsTVbeXz6xmhmoOsfuOEf26f7BE0Vn/eeydIKd5ke5VZzTYbzKFw2wQg/2fuVTxm7ZS0E8JNHD8xgLVCWpygOzHrbJI6xqrSieKuzUJPMGso20rwz8q90IsuS9oVcPMde1lvQ3bqTLogLGtKOvEun2zhUimJ7Xs/8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695376001439569.7994127357006; Fri, 22 Sep 2023 02:46:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjciy-00022y-Nl; Fri, 22 Sep 2023 05:45:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjcix-00022l-39 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjciu-00068D-Pu for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:22 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-587-tstvTtJrOn2nXEedrZA1ug-1; Fri, 22 Sep 2023 05:45:18 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4011f56165eso16119415e9.0 for ; Fri, 22 Sep 2023 02:45:18 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id w12-20020a5d608c000000b003179d5aee67sm4002379wrt.94.2023.09.22.02.45.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=btFw6r7s/mwNXPAj4RBIvZroY4QN+49U9X9H2mpbW3I=; b=BwPdB20L7H6G7E8eKQhiHcVRxEgLrekYjN7/WHR1RUZnVnU1o3vYqridu++HZLUWJdPrEm 7iIyWUyF/TuMjEbeIu341vadr7TKzXl0U0u32XFf/q6GBxwEe94JtRLuDp/+bDPUWsnzi4 mF7G/VXMLtXwI1QjaEdsAQa/9e1i0M8= X-MC-Unique: tstvTtJrOn2nXEedrZA1ug-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375916; x=1695980716; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=btFw6r7s/mwNXPAj4RBIvZroY4QN+49U9X9H2mpbW3I=; b=HRHmfy+t8+UpDNdiOZwvousEGrbB0PuQdeX1Xp9en1a+KhjT+hiuJ2vhS9xUYUeEni wR/9tgiw6K1Sq5NpRbmbYXjrxwR7FHVMsdb6uEn+zeX+UJR0P2IOnG4w4LeF/jZvJvLn mil8nWYwAMjWsD5qZx0WVcGSmFcnrWendlzlk3NoSAQt4kT7m+dzB4pu9deoWu/mExl6 rKGLnY+X+PdU3WgwB3TJ2Rj3+ToBE67De5ikhsx/rh6dltmIPWc2CAjpXE8AqHph8ZUq LBNMW7R0qpDhsRP5FsgugjmcScYWbe+QldiLcIRWaH7duVpzOAX5hbGYqd03aNX4jlW2 uMRw== X-Gm-Message-State: AOJu0YzvgVGkgL2IVZbuBvDj5qvWjZoenSn4Cz0iUzuiUXFi6kHy5KjQ tBeWM2Yt8Wxnh68GNZPVXAHOjopT3kHOyF0hJ0TfG10rJPQCVgqY4E0xuhqGYqQAjBNkEatNVBO ipS91h5yQ92wTJcKlixwVNwSieh3UZWTnwDMa9paZEkF6k0xe/Kq6qWZN7X2GoG3myp19hnEAML w= X-Received: by 2002:adf:f18b:0:b0:31f:d50e:a14f with SMTP id h11-20020adff18b000000b0031fd50ea14fmr1674981wro.10.1695375916332; Fri, 22 Sep 2023 02:45:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE8Q8GFlrG5IiWRzfzwqtDG6NbiQ20aOwmfR/KrdyduqlCaI8/v0H19Hy6DyBQnHKEtBAVWNA== X-Received: by 2002:adf:f18b:0:b0:31f:d50e:a14f with SMTP id h11-20020adff18b000000b0031fd50ea14fmr1674970wro.10.1695375915977; Fri, 22 Sep 2023 02:45:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 8/9] audio: Make AUD_register_card fallible and require audiodev= Date: Fri, 22 Sep 2023 11:44:58 +0200 Message-ID: <20230922094459.265509-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695376003650100005 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander Now that all callers support error reporting with errp and all machine-defa= ult devices use an explicit audiodev, this can be changed. To make the detecti= on easier make AUD_register_card() return false on error. Signed-off-by: Martin Kletzander Signed-off-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- audio/audio.c | 7 +++++-- audio/audio.h | 2 +- hw/arm/omap2.c | 2 +- hw/audio/ac97.c | 6 +++++- hw/audio/adlib.c | 6 ++++-- hw/audio/cs4231a.c | 6 ++++-- hw/audio/es1370.c | 5 ++++- hw/audio/gus.c | 6 ++++-- hw/audio/hda-codec.c | 5 ++++- hw/audio/lm4549.c | 8 +++++--- hw/audio/pcspk.c | 4 +--- hw/audio/sb16.c | 6 ++++-- hw/audio/via-ac97.c | 6 ++++-- hw/audio/wm8750.c | 5 ++++- hw/display/xlnx_dp.c | 6 ++++-- hw/input/tsc210x.c | 2 +- hw/usb/dev-audio.c | 5 ++++- 17 files changed, 59 insertions(+), 28 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 62047ea3069..4fd27309cf8 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1825,15 +1825,18 @@ void audio_free_audiodev_list(AudiodevListHead *hea= d) } } =20 -void AUD_register_card (const char *name, QEMUSoundCard *card) +bool AUD_register_card (const char *name, QEMUSoundCard *card, Error **err= p) { if (!card->state) { - card->state =3D audio_init(NULL, name); + error_setg(errp, "No audiodev specified for %s", name); + return false; } =20 card->name =3D g_strdup (name); memset (&card->entries, 0, sizeof (card->entries)); QLIST_INSERT_HEAD(&card->state->card_head, card, entries); + + return true; } =20 void AUD_remove_card (QEMUSoundCard *card) diff --git a/audio/audio.h b/audio/audio.h index 81d39526625..44b7547caba 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -94,7 +94,7 @@ typedef struct QEMUAudioTimeStamp { void AUD_vlog (const char *cap, const char *fmt, va_list ap) G_GNUC_PRINTF= (2, 0); void AUD_log (const char *cap, const char *fmt, ...) G_GNUC_PRINTF(2, 3); =20 -void AUD_register_card (const char *name, QEMUSoundCard *card); +bool AUD_register_card (const char *name, QEMUSoundCard *card, Error **err= p); void AUD_remove_card (QEMUSoundCard *card); CaptureVoiceOut *AUD_add_capture( AudioState *s, diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index 8b65c0b8ad6..53c741bbb3b 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -617,7 +617,7 @@ static struct omap_eac_s *omap_eac_init(struct omap_tar= get_agent_s *ta, s->codec.card.name); } =20 - AUD_register_card("OMAP EAC", &s->codec.card); + AUD_register_card("OMAP EAC", &s->codec.card, &error_abort); =20 memory_region_init_io(&s->iomem, NULL, &omap_eac_ops, s, "omap.eac", omap_l4_region_size(ta, 0)); diff --git a/hw/audio/ac97.c b/hw/audio/ac97.c index c2a5ce062a1..6a7a2dc80c4 100644 --- a/hw/audio/ac97.c +++ b/hw/audio/ac97.c @@ -1273,6 +1273,10 @@ static void ac97_realize(PCIDevice *dev, Error **err= p) AC97LinkState *s =3D AC97(dev); uint8_t *c =3D s->dev.config; =20 + if (!AUD_register_card ("ac97", &s->card, errp)) { + return; + } + /* TODO: no need to override */ c[PCI_COMMAND] =3D 0x00; /* pcicmd pci command rw, ro */ c[PCI_COMMAND + 1] =3D 0x00; @@ -1306,7 +1310,7 @@ static void ac97_realize(PCIDevice *dev, Error **errp) "ac97-nabm", 256); pci_register_bar(&s->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io_nam); pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_IO, &s->io_nabm); - AUD_register_card("ac97", &s->card); + ac97_on_reset(DEVICE(s)); } =20 diff --git a/hw/audio/adlib.c b/hw/audio/adlib.c index 5f979b1487d..bd73806d83a 100644 --- a/hw/audio/adlib.c +++ b/hw/audio/adlib.c @@ -255,6 +255,10 @@ static void adlib_realizefn (DeviceState *dev, Error *= *errp) AdlibState *s =3D ADLIB(dev); struct audsettings as; =20 + if (!AUD_register_card ("adlib", &s->card, errp)) { + return; + } + s->opl =3D OPLCreate (3579545, s->freq); if (!s->opl) { error_setg (errp, "OPLCreate %d failed", s->freq); @@ -270,8 +274,6 @@ static void adlib_realizefn (DeviceState *dev, Error **= errp) as.fmt =3D AUDIO_FORMAT_S16; as.endianness =3D AUDIO_HOST_ENDIANNESS; =20 - AUD_register_card ("adlib", &s->card); - s->voice =3D AUD_open_out ( &s->card, s->voice, diff --git a/hw/audio/cs4231a.c b/hw/audio/cs4231a.c index 5c6d6437320..3aa105748d3 100644 --- a/hw/audio/cs4231a.c +++ b/hw/audio/cs4231a.c @@ -678,13 +678,15 @@ static void cs4231a_realizefn (DeviceState *dev, Erro= r **errp) return; } =20 + if (!AUD_register_card ("cs4231a", &s->card, errp)) { + return; + } + s->pic =3D isa_bus_get_irq(bus, s->irq); k =3D ISADMA_GET_CLASS(s->isa_dma); k->register_channel(s->isa_dma, s->dma, cs_dma_read, s); =20 isa_register_ioport (d, &s->ioports, s->port); - - AUD_register_card ("cs4231a", &s->card); } =20 static Property cs4231a_properties[] =3D { diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c index 4f738a0ad88..90f73d4c23d 100644 --- a/hw/audio/es1370.c +++ b/hw/audio/es1370.c @@ -853,6 +853,10 @@ static void es1370_realize(PCIDevice *dev, Error **err= p) ES1370State *s =3D ES1370(dev); uint8_t *c =3D s->dev.config; =20 + if (!AUD_register_card ("es1370", &s->card, errp)) { + return; + } + c[PCI_STATUS + 1] =3D PCI_STATUS_DEVSEL_SLOW >> 8; =20 #if 0 @@ -868,7 +872,6 @@ static void es1370_realize(PCIDevice *dev, Error **errp) memory_region_init_io (&s->io, OBJECT(s), &es1370_io_ops, s, "es1370",= 256); pci_register_bar (&s->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io); =20 - AUD_register_card ("es1370", &s->card); es1370_reset (s); } =20 diff --git a/hw/audio/gus.c b/hw/audio/gus.c index 787345ce543..6c2b586ca71 100644 --- a/hw/audio/gus.c +++ b/hw/audio/gus.c @@ -241,14 +241,16 @@ static void gus_realizefn (DeviceState *dev, Error **= errp) IsaDmaClass *k; struct audsettings as; =20 + if (!AUD_register_card ("gus", &s->card, errp)) { + return; + } + s->isa_dma =3D isa_bus_get_dma(bus, s->emu.gusdma); if (!s->isa_dma) { error_setg(errp, "ISA controller does not support DMA"); return; } =20 - AUD_register_card ("gus", &s->card); - as.freq =3D s->freq; as.nchannels =3D 2; as.fmt =3D AUDIO_FORMAT_S16; diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c index a26048cf15e..b9ad1f4c39e 100644 --- a/hw/audio/hda-codec.c +++ b/hw/audio/hda-codec.c @@ -685,11 +685,14 @@ static void hda_audio_init(HDACodecDevice *hda, const desc_param *param; uint32_t i, type; =20 + if (!AUD_register_card("hda", &a->card, errp)) { + return; + } + a->desc =3D desc; a->name =3D object_get_typename(OBJECT(a)); dprint(a, 1, "%s: cad %d\n", __func__, a->hda.cad); =20 - AUD_register_card("hda", &a->card); for (i =3D 0; i < a->desc->nnodes; i++) { node =3D a->desc->nodes + i; param =3D hda_codec_find_param(node, AC_PAR_AUDIO_WIDGET_CAP); diff --git a/hw/audio/lm4549.c b/hw/audio/lm4549.c index 418041bc9c6..e7bfcc4b9fe 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; =20 + /* Register an audio card */ + if (!AUD_register_card("lm4549", &s->card, errp)) { + return; + } + /* Store the callback and opaque pointer */ s->data_req_cb =3D data_req_cb; s->opaque =3D opaque; @@ -288,9 +293,6 @@ void lm4549_init(lm4549_state *s, lm4549_callback data_= req_cb, void* opaque, /* Init the registers */ lm4549_reset(s); =20 - /* Register an audio card */ - AUD_register_card("lm4549", &s->card); - /* Open a default voice */ as.freq =3D 48000; as.nchannels =3D 2; diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c index daf92a4ce11..fe7f07ced21 100644 --- a/hw/audio/pcspk.c +++ b/hw/audio/pcspk.c @@ -123,8 +123,6 @@ static int pcspk_audio_init(PCSpkState *s) return 0; } =20 - AUD_register_card(s_spk, &s->card); - s->voice =3D AUD_open_out(&s->card, s->voice, s_spk, s, pcspk_callback= , &as); if (!s->voice) { AUD_log(s_spk, "Could not open voice\n"); @@ -191,7 +189,7 @@ static void pcspk_realizefn(DeviceState *dev, Error **e= rrp) =20 isa_register_ioport(isadev, &s->ioport, s->iobase); =20 - if (s->card.state) { + if (s->card.state && AUD_register_card(s_spk, &s->card, errp)) { pcspk_audio_init(s); } =20 diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c index 535ccccdc98..18f6d252db3 100644 --- a/hw/audio/sb16.c +++ b/hw/audio/sb16.c @@ -1402,6 +1402,10 @@ static void sb16_realizefn (DeviceState *dev, Error = **errp) SB16State *s =3D SB16 (dev); IsaDmaClass *k; =20 + if (!AUD_register_card ("sb16", &s->card, errp)) { + return; + } + s->isa_hdma =3D isa_bus_get_dma(bus, s->hdma); s->isa_dma =3D isa_bus_get_dma(bus, s->dma); if (!s->isa_dma || !s->isa_hdma) { @@ -1434,8 +1438,6 @@ static void sb16_realizefn (DeviceState *dev, Error *= *errp) k->register_channel(s->isa_dma, s->dma, SB_read_DMA, s); =20 s->can_write =3D 1; - - AUD_register_card ("sb16", &s->card); } =20 static Property sb16_properties[] =3D { diff --git a/hw/audio/via-ac97.c b/hw/audio/via-ac97.c index 676254b7a40..30095a4c7aa 100644 --- a/hw/audio/via-ac97.c +++ b/hw/audio/via-ac97.c @@ -426,6 +426,10 @@ static void via_ac97_realize(PCIDevice *pci_dev, Error= **errp) ViaAC97State *s =3D VIA_AC97(pci_dev); Object *o =3D OBJECT(s); =20 + if (!AUD_register_card ("via-ac97", &s->card, errp)) { + return; + } + /* * Command register Bus Master bit is documented to be fixed at 0 but = it's * needed for PCI DMA to work in QEMU. The pegasos2 firmware writes 0 = here @@ -445,8 +449,6 @@ static void via_ac97_realize(PCIDevice *pci_dev, Error = **errp) pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_SPACE_IO, &s->fm); memory_region_init_io(&s->midi, o, &midi_ops, s, "via-ac97.midi", 4); pci_register_bar(pci_dev, 2, PCI_BASE_ADDRESS_SPACE_IO, &s->midi); - - AUD_register_card ("via-ac97", &s->card); } =20 static void via_ac97_exit(PCIDevice *dev) diff --git a/hw/audio/wm8750.c b/hw/audio/wm8750.c index b5722b37c36..57954a63144 100644 --- a/hw/audio/wm8750.c +++ b/hw/audio/wm8750.c @@ -624,7 +624,10 @@ static void wm8750_realize(DeviceState *dev, Error **e= rrp) { WM8750State *s =3D WM8750(dev); =20 - AUD_register_card(CODEC, &s->card); + if (!AUD_register_card(CODEC, &s->card, errp)) { + return; + } + wm8750_reset(I2C_SLAVE(s)); } =20 diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c index 341e91e886f..eee8f33a584 100644 --- a/hw/display/xlnx_dp.c +++ b/hw/display/xlnx_dp.c @@ -1302,6 +1302,10 @@ static void xlnx_dp_realize(DeviceState *dev, Error = **errp) DisplaySurface *surface; struct audsettings as; =20 + if (!AUD_register_card("xlnx_dp.audio", &s->aud_card, errp)) { + return; + } + aux_bus_realize(s->aux_bus); =20 qdev_realize(DEVICE(s->dpcd), BUS(s->aux_bus), &error_fatal); @@ -1320,8 +1324,6 @@ static void xlnx_dp_realize(DeviceState *dev, Error *= *errp) as.fmt =3D AUDIO_FORMAT_S16; as.endianness =3D 0; =20 - AUD_register_card("xlnx_dp.audio", &s->aud_card); - s->amixer_output_stream =3D AUD_open_out(&s->aud_card, s->amixer_output_stream, "xlnx_dp.audio.out", diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c index 08935424630..67b0780c2c7 100644 --- a/hw/input/tsc210x.c +++ b/hw/input/tsc210x.c @@ -1105,7 +1105,7 @@ static void tsc210x_init(TSC210xState *s, s->card.name); } =20 - AUD_register_card(s->name, &s->card); + AUD_register_card(s->name, &s->card, &error_abort); =20 qemu_register_reset((void *) tsc210x_reset, s); vmstate_register(NULL, 0, vmsd, s); diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c index 8748c1ba040..d5ac1f8962e 100644 --- a/hw/usb/dev-audio.c +++ b/hw/usb/dev-audio.c @@ -944,12 +944,15 @@ static void usb_audio_realize(USBDevice *dev, Error *= *errp) USBAudioState *s =3D USB_AUDIO(dev); int i; =20 + if (!AUD_register_card(TYPE_USB_AUDIO, &s->card, errp)) { + return; + } + dev->usb_desc =3D s->multi ? &desc_audio_multi : &desc_audio; =20 usb_desc_create_serial(dev); usb_desc_init(dev); s->dev.opaque =3D s; - AUD_register_card(TYPE_USB_AUDIO, &s->card); =20 s->out.altset =3D ALTSET_OFF; s->out.vol.mute =3D false; --=20 2.41.0 From nobody Sat May 18 07:48:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695375989; cv=none; d=zohomail.com; s=zohoarc; b=FaW2gPpmicIKpXXpsFBh2ANEm5UXC+M9VNcLAqFQNilmDRxN8erLJ683RGG96DoL/x/6Bsg5MFPKHiD6RyH9MsaZnnuMuniGs2U9+mjssRJFDjj5XpQAsUJmKpnReMLVDYhCgGZZ+r+9dSWvD+U4X93vLWyaKMZMXy6g1kMLUbg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695375989; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qpWC6/0Jm78+OaEnMqFuG7DdN+EaDH9nTsStIrhmEEs=; b=kOYJyULlPc2IOzJwXCDtAAXxO5GOJBaA6v5nqGXgfbiJLbSX9gATWWWXWVCB0l/LnStRZtuzMdHYNTq0Qv39CI66Nd962VZAR3395vw3a3rLjDk5agAsr3IKD9dxklK8ueaQ+Gl5Idiwqd0SFGMBLwR0geIvoi5I5Uu1uDN3n2o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695375988661541.6402153821223; Fri, 22 Sep 2023 02:46:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjcj0-00023c-U2; Fri, 22 Sep 2023 05:45:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjciy-00022z-R5 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjciw-00068O-K8 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 05:45:24 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-218-Tnnh9tEJOi--66Y2NJoiuA-1; Fri, 22 Sep 2023 05:45:20 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-2f2981b8364so1209403f8f.1 for ; Fri, 22 Sep 2023 02:45:20 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id x17-20020a5d6511000000b0031fd849e797sm4003863wru.105.2023.09.22.02.45.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 02:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695375922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qpWC6/0Jm78+OaEnMqFuG7DdN+EaDH9nTsStIrhmEEs=; b=FpUMDfAIx3l3z9wluePSH4nScsCsdiLRQDA+nnlbjd32GlXdEX8e9g3pzJ1QBF9yfvZWHm IhxVa9xa7YPTz8yiYriy+Xb4XrL0sxypUq8LfaCvS/ui4pCxS++pWSLrJBbUcFPjlyiE0I FU0SbdQ/BFmRHz9B41sLLaLk0vP3flA= X-MC-Unique: Tnnh9tEJOi--66Y2NJoiuA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695375918; x=1695980718; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qpWC6/0Jm78+OaEnMqFuG7DdN+EaDH9nTsStIrhmEEs=; b=SVK8QblRndWX28Hm5XYMNy6zSZRmoLxlvNpzyTOZSAzK93il2/8ffGxLJXhvqwoot1 i8cl7UsnotVuSzuyk7O1vDI0zyktRCNZ2Q/QWtpHWADspowfuV+wYRY7+X0l0zsplJN/ 6BxGfiGXuB8shrSo6KohEp8L7di0Mr90S1TqfpD+ArvH7UIvxWwsYACvyTnrHJmhJfji yKySeSsI2iCH5M5RjsJws3n3L0Oi9el1KdTzibE8Qf1oYj67EEuMwpET+NX5M1Mf2sTy x3/vymZWkIwyYw17y0aV8/OqxM/HjZGhKxwJm6nkK8BfHQdzABBTmn7JphlLNBQE6Iok 8HGg== X-Gm-Message-State: AOJu0Yxw6eOVp42d6LarpIzq9xf0kNBkkDvvxSavWHfXXcUkp423NhHN KL4QYoNBYSbo9YrPEy0ax0rIyN/CfFRKOLu7mbTx9gGrPZFW9jhd63uuHLzR9DGRdCsFpg2O+ao eC5hG+MYw4EpvM/rxJn8eIU3k3okYsKGzvkE9SGr2Dwc/FTuJ3t/0p8B5ofY3Bdcw1mvuRa49ZV 4= X-Received: by 2002:a5d:6911:0:b0:319:7abf:d8e2 with SMTP id t17-20020a5d6911000000b003197abfd8e2mr6885715wru.24.1695375918561; Fri, 22 Sep 2023 02:45:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEqCKYNRP53no26kwXEPATnedlITWq/wQI2QpWaAm+mG/TwrOVjXOyT48FvvLanFGtrXqLUBQ== X-Received: by 2002:a5d:6911:0:b0:319:7abf:d8e2 with SMTP id t17-20020a5d6911000000b003197abfd8e2mr6885697wru.24.1695375918138; Fri, 22 Sep 2023 02:45:18 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: mkletzan@redhat.com Subject: [PATCH 9/9] audio: Be more strict during audio backend initialisation Date: Fri, 22 Sep 2023 11:44:59 +0200 Message-ID: <20230922094459.265509-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230922094459.265509-1-pbonzini@redhat.com> References: <20230922094459.265509-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695375991171100003 Content-Type: text/plain; charset="utf-8" From: Martin Kletzander Now that audiodev=3D is required and audio_init() will not be called without and AudioDev we can remove the fallback functionality and error out in case audio drivers fail initialisation or when the driver does not exist. Signed-off-by: Martin Kletzander Signed-off-by: Paolo Bonzini --- audio/audio.c | 138 ++++++++------------------------ docs/about/deprecated.rst | 6 -- docs/about/removed-features.rst | 11 ++- 3 files changed, 42 insertions(+), 113 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 4fd27309cf8..31e3195c8d7 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -74,10 +74,9 @@ void audio_driver_register(audio_driver *drv) QLIST_INSERT_HEAD(&audio_drivers, drv, next); } =20 -static audio_driver *audio_driver_lookup(const char *name) +static audio_driver *audio_driver_lookup(const char *name, Error **errp) { struct audio_driver *d; - Error *local_err =3D NULL; int rv; =20 QLIST_FOREACH(d, &audio_drivers, next) { @@ -85,15 +84,19 @@ static audio_driver *audio_driver_lookup(const char *na= me) return d; } } - rv =3D audio_module_load(name, &local_err); + rv =3D audio_module_load(name, errp); if (rv > 0) { QLIST_FOREACH(d, &audio_drivers, next) { if (strcmp(name, d->name) =3D=3D 0) { return d; } } - } else if (rv < 0) { - error_report_err(local_err); + } + + if (rv < 0) { + error_prepend(errp, "Cannot load audio driver `%s': ", name); + } else { + error_setg(errp, "Unknown audio driver `%s'", name); } return NULL; } @@ -1551,31 +1554,27 @@ size_t audio_generic_read(HWVoiceIn *hw, void *buf,= size_t size) return total; } =20 -static int audio_driver_init(AudioState *s, struct audio_driver *drv, - bool msg, Audiodev *dev) +static void audio_driver_init(AudioState *s, struct audio_driver *drv, + Audiodev *dev) { s->drv_opaque =3D drv->init(dev); =20 - if (s->drv_opaque) { - if (!drv->pcm_ops->get_buffer_in) { - drv->pcm_ops->get_buffer_in =3D audio_generic_get_buffer_in; - drv->pcm_ops->put_buffer_in =3D audio_generic_put_buffer_in; - } - if (!drv->pcm_ops->get_buffer_out) { - drv->pcm_ops->get_buffer_out =3D audio_generic_get_buffer_out; - drv->pcm_ops->put_buffer_out =3D audio_generic_put_buffer_out; - } - - audio_init_nb_voices_out(s, drv); - audio_init_nb_voices_in(s, drv); - s->drv =3D drv; - return 0; - } else { - if (msg) { - dolog("Could not init `%s' audio driver\n", drv->name); - } - return -1; + if (!s->drv_opaque) { + error_setg(&error_fatal, "Could not init `%s' audio driver", drv->= name); } + + if (!drv->pcm_ops->get_buffer_in) { + drv->pcm_ops->get_buffer_in =3D audio_generic_get_buffer_in; + drv->pcm_ops->put_buffer_in =3D audio_generic_put_buffer_in; + } + if (!drv->pcm_ops->get_buffer_out) { + drv->pcm_ops->get_buffer_out =3D audio_generic_get_buffer_out; + drv->pcm_ops->put_buffer_out =3D audio_generic_put_buffer_out; + } + + audio_init_nb_voices_out(s, drv); + audio_init_nb_voices_in(s, drv); + s->drv =3D drv; } =20 static void audio_vm_change_state_handler (void *opaque, bool running, @@ -1680,59 +1679,26 @@ static const VMStateDescription vmstate_audio =3D { =20 static void audio_validate_opts(Audiodev *dev, Error **errp); =20 -static AudiodevListEntry *audiodev_find( - AudiodevListHead *head, const char *drvname) -{ - AudiodevListEntry *e; - QSIMPLEQ_FOREACH(e, head, next) { - if (strcmp(AudiodevDriver_str(e->dev->driver), drvname) =3D=3D 0) { - return e; - } - } - - return NULL; -} - /* * if we have dev, this function was called because of an -audiodev argume= nt =3D> * initialize a new state with it * if dev =3D=3D NULL =3D> legacy implicit initialization, return the alre= ady created * state or create a new one */ -static AudioState *audio_init(Audiodev *dev, const char *name) +static AudioState *audio_init(Audiodev *dev) { static bool atexit_registered; - size_t i; - int done =3D 0; const char *drvname =3D NULL; VMChangeStateEntry *e; AudioState *s; - struct audio_driver *driver; - /* silence gcc warning about uninitialized variable */ - AudiodevListHead head =3D QSIMPLEQ_HEAD_INITIALIZER(head); =20 - if (dev) { - /* -audiodev option */ - drvname =3D AudiodevDriver_str(dev->driver); - } else { - if (!QTAILQ_EMPTY(&audio_states)) { - dev =3D QTAILQ_FIRST(&audio_states)->dev; - if (!g_str_equal(dev->id, "#none")) { - dolog("Device %s: audiodev default parameter is deprecated= , please " - "specify audiodev=3D%s\n", name, - dev->id); - } - return QTAILQ_FIRST(&audio_states); - } - - dolog("No audio device specified\n"); - dev =3D g_new0(Audiodev, 1); - dev->id =3D g_strdup("#none"); - dev->driver =3D AUDIODEV_DRIVER_NONE; - dev->u.none.in =3D g_new0(AudiodevPerDirectionOptions, 1); - dev->u.none.out =3D g_new0(AudiodevPerDirectionOptions, 1); + if (!dev) { + error_setg(&error_abort, "Mandatory audiodev parameter required"); } =20 + /* -audiodev option */ + drvname =3D AudiodevDriver_str(dev->driver); + s =3D g_new0(AudioState, 1); s->dev =3D dev; =20 @@ -1761,41 +1727,7 @@ static AudioState *audio_init(Audiodev *dev, const c= har *name) s->nb_hw_voices_in =3D 0; } =20 - if (drvname) { - driver =3D audio_driver_lookup(drvname); - if (driver) { - done =3D !audio_driver_init(s, driver, true, dev); - } else { - dolog ("Unknown audio driver `%s'\n", drvname); - } - if (!done) { - free_audio_state(s); - return NULL; - } - } else { - for (i =3D 0; audio_prio_list[i]; i++) { - AudiodevListEntry *e =3D audiodev_find(&head, audio_prio_list[= i]); - driver =3D audio_driver_lookup(audio_prio_list[i]); - - if (e && driver) { - s->dev =3D dev =3D e->dev; - audio_validate_opts(dev, &error_abort); - done =3D !audio_driver_init(s, driver, false, dev); - if (done) { - e->dev =3D NULL; - break; - } - } - } - } - audio_free_audiodev_list(&head); - - if (!done) { - driver =3D audio_driver_lookup("none"); - done =3D !audio_driver_init(s, driver, false, dev); - assert(done); - dolog("warning: Using timer based audio emulation\n"); - } + audio_driver_init(s, audio_driver_lookup(drvname, &error_fatal), dev); =20 if (dev->timer_period <=3D 0) { s->period_ticks =3D 1; @@ -2132,7 +2064,7 @@ void audio_help(void) printf("Available audio drivers:\n"); =20 for (i =3D 0; i < AUDIODEV_DRIVER__MAX; i++) { - audio_driver *driver =3D audio_driver_lookup(AudiodevDriver_str(i)= ); + audio_driver *driver =3D audio_driver_lookup(AudiodevDriver_str(i)= , NULL); if (driver) { printf("%s\n", driver->name); } @@ -2170,7 +2102,7 @@ bool audio_init_audiodevs(void) AudiodevListEntry *e; =20 QSIMPLEQ_FOREACH(e, &audiodevs, next) { - if (!audio_init(e->dev, NULL)) { + if (!audio_init(e->dev)) { return false; } } @@ -2187,7 +2119,7 @@ static void audio_init_dummy(const char *id) dev->id =3D g_strdup(id); =20 audio_validate_opts(dev, &error_abort); - audio_init(dev, NULL); + audio_init(dev); =20 e->dev =3D dev; QSIMPLEQ_INSERT_TAIL(&audiodevs, e, next); diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 2f51cf770ae..d59bcf36230 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -37,12 +37,6 @@ coverage. System emulator command line arguments -------------------------------------- =20 -Creating sound card devices without ``audiodev=3D`` property (since 4.2) -'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' - -When not using the deprecated legacy audio config, each sound card -should specify an ``audiodev=3D`` property. - Short-form boolean options (since 6.0) '''''''''''''''''''''''''''''''''''''' =20 diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.= rst index e75e1b9ac31..56e078ad126 100644 --- a/docs/about/removed-features.rst +++ b/docs/about/removed-features.rst @@ -442,11 +442,13 @@ line using a ``secret`` object instance. The ``-audiodev`` and ``-audio`` command line options are now the only way to specify audio backend settings. =20 -Creating vnc without ``audiodev=3D`` property (removed in 8.2) -'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +Creating sound card devices and vnc without ``audiodev=3D`` property (remo= ved in 8.2) +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''= ''''''''' =20 -When using vnc, you should specify an ``audiodev=3D`` property if -you plan to transmit audio through the VNC protocol. +Each sound card has to specify an ``audiodev=3D`` property, unless the +machine defines an ``audiodev=3D`` property. Additionally, when using vnc, +you should specify an ``audiodev=3D`` property if you plan to transmit aud= io +through the VNC protocol. =20 QEMU Machine Protocol (QMP) commands ------------------------------------ --=20 2.41.0