[libvirt] [PATCH v4 0/4] qemu: Add support for -device hda-output (disable line-in)

Add support for hda 'output' codec for ich6 and ich9 sound devices, which allow us to disable line-in for guest. 'hda-output' codec is available since 0.14 version of qemu. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1126641 v1: https://www.redhat.com/archives/libvir-list/2018-May/msg01311.html v2: https://www.redhat.com/archives/libvir-list/2018-May/msg01450.html - Split patch into series of patches - Add description of feature in docs/news.xml - Improve the documentation in docs/formatdomain.html.in - Fixes coding standard errors/inconsistencies v3: https://www.redhat.com/archives/libvir-list/2018-May/msg01506.html - Moved all tests to third patch - Made possible to compile every patch by alone except fourth which depends on the first and on the second patch. v4: - Moved some qemu_command and qemu_capabilities hunks from the first patch into second patch. Filip Alac (4): conf: Introduce codec type 'output' tests: Extend qemu_capabilities with 'hda-output' codec tests: qemu: Extends tests for 'output' codec docs: news: Describe 'output' codec docs/formatdomain.html.in | 15 ++++++++++++--- docs/news.xml | 8 ++++++++ docs/schemas/domaincommon.rng | 1 + src/conf/domain_conf.c | 3 ++- src/conf/domain_conf.h | 1 + src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 5 ++++- tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + .../migration-in-params-in.xml | 1 + .../migration-out-nbd-in.xml | 1 + .../migration-out-nbd-out.xml | 1 + .../migration-out-params-in.xml | 1 + tests/qemustatusxml2xmldata/modern-in.xml | 1 + tests/qemuxml2argvdata/sound-device.args | 2 ++ tests/qemuxml2argvdata/sound-device.xml | 2 ++ tests/qemuxml2argvtest.c | 1 + tests/qemuxml2xmloutdata/sound-device.xml | 2 ++ 36 files changed, 62 insertions(+), 5 deletions(-) -- 2.17.0

Introduce 'output' codec for ich6 and ich9 sound devices, which allow us to disable line-in for guest. Available in qemu since version 0.14. Signed-off-by: Filip Alac <filipalac@gmail.com> --- docs/formatdomain.html.in | 15 ++++++++++++--- docs/schemas/domaincommon.rng | 1 + src/conf/domain_conf.c | 3 ++- src/conf/domain_conf.h | 1 + src/qemu/qemu_command.c | 3 ++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 0d0fd3b..665d0f2 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -7387,9 +7387,18 @@ qemu-kvm -net nic,model=? /dev/null with <code>ich6</code> model can have optional sub-elements <code><codec></code> to attach various audio codecs to the audio device. If not specified, a default codec - will be attached to allow playback and recording. Valid values - are 'duplex' (advertise a line-in and a line-out) and 'micro' - (advertise a speaker and a microphone). + will be attached to allow playback and recording. + </p> + <p> + Valid values are: + </p> + <p> + <ul> + <li>'duplex' - advertise a line-in and a line-out </li> + <li>'micro' - advertise a speaker and a microphone </li> + <li>'output' - advertise a line-out + <span class="since">Since 4.4.0</span></li> + </ul> </p> <pre> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 71ac3d0..f16e157 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -3824,6 +3824,7 @@ <choice> <value>duplex</value> <value>micro</value> + <value>output</value> </choice> </attribute> </element> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3689ac0..f12c87d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -529,7 +529,8 @@ VIR_ENUM_IMPL(virDomainSmartcard, VIR_DOMAIN_SMARTCARD_TYPE_LAST, VIR_ENUM_IMPL(virDomainSoundCodec, VIR_DOMAIN_SOUND_CODEC_TYPE_LAST, "duplex", - "micro") + "micro", + "output") VIR_ENUM_IMPL(virDomainSoundModel, VIR_DOMAIN_SOUND_MODEL_LAST, "sb16", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index a78fdee..ee3285a 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1335,6 +1335,7 @@ struct _virDomainInputDef { typedef enum { VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX, VIR_DOMAIN_SOUND_CODEC_TYPE_MICRO, + VIR_DOMAIN_SOUND_CODEC_TYPE_OUTPUT, VIR_DOMAIN_SOUND_CODEC_TYPE_LAST } virDomainSoundCodecType; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9da2d60..3b929c5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -139,7 +139,8 @@ VIR_ENUM_DECL(qemuSoundCodec) VIR_ENUM_IMPL(qemuSoundCodec, VIR_DOMAIN_SOUND_CODEC_TYPE_LAST, "hda-duplex", - "hda-micro"); + "hda-micro", + "hda-output"); VIR_ENUM_DECL(qemuControllerModelUSB) -- 2.17.0

Signed-off-by: Filip Alac <filipalac@gmail.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 2 ++ tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + 22 files changed, 24 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index bface72..fda1630 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -487,6 +487,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, /* 300 */ "sdl-gl", "screendump_device", + "hda-output", ); @@ -1117,6 +1118,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { { "pr-manager-helper", QEMU_CAPS_PR_MANAGER_HELPER }, { "virtual-css-bridge", QEMU_CAPS_CCW }, { "vfio-ccw", QEMU_CAPS_DEVICE_VFIO_CCW }, + { "hda-output", QEMU_CAPS_HDA_OUTPUT }, }; static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioBalloon[] = { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 6f99534..c0b497a 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -471,6 +471,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ /* 300 */ QEMU_CAPS_SDL_GL, /* -sdl gl */ QEMU_CAPS_SCREENDUMP_DEVICE, /* screendump command accepts device & head */ + QEMU_CAPS_HDA_OUTPUT, /* -device hda-output */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3b929c5..cda8c06 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4137,6 +4137,8 @@ qemuSoundCodecTypeToCaps(int type) return QEMU_CAPS_HDA_DUPLEX; case VIR_DOMAIN_SOUND_CODEC_TYPE_MICRO: return QEMU_CAPS_HDA_MICRO; + case VIR_DOMAIN_SOUND_CODEC_TYPE_OUTPUT: + return QEMU_CAPS_HDA_OUTPUT; default: return -1; } diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml index e7c2e9a..2b13ebc 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml @@ -105,6 +105,7 @@ <flag name='query-cpu-definitions'/> <flag name='kernel-irqchip'/> <flag name='isa-serial'/> + <flag name='hda-output'/> <version>1005003</version> <kvmVersion>0</kvmVersion> <microcodeVersion>46523</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml index e57dec3..ecd3129 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml @@ -110,6 +110,7 @@ <flag name='query-cpu-definitions'/> <flag name='kernel-irqchip'/> <flag name='isa-serial'/> + <flag name='hda-output'/> <version>1006000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>44752</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml index 39ec8f9..c31a972 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml @@ -112,6 +112,7 @@ <flag name='query-cpu-definitions'/> <flag name='kernel-irqchip'/> <flag name='isa-serial'/> + <flag name='hda-output'/> <version>1007000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>50196</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml index afe0882..07cb2a3 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml @@ -128,6 +128,7 @@ <flag name='query-named-block-nodes'/> <flag name='kernel-irqchip'/> <flag name='isa-serial'/> + <flag name='hda-output'/> <version>2001001</version> <kvmVersion>0</kvmVersion> <microcodeVersion>58992</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml index 5904306..e11c112 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml @@ -155,6 +155,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2010000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>303541</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml index 2912c8d..21d91c8 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml @@ -154,6 +154,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2010000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>382824</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml index 77ca301..7821144 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -197,6 +197,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2010000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>344938</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml index de41d96..7bdae5b 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml @@ -163,6 +163,7 @@ <flag name='memory-backend-file.discard-data'/> <flag name='sdl-gl'/> <flag name='screendump_device'/> + <flag name='hda-output'/> <version>2011090</version> <kvmVersion>0</kvmVersion> <microcodeVersion>343099</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml index fc26f93..1c7fc51 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -160,6 +160,7 @@ <flag name='memory-backend-file.discard-data'/> <flag name='sdl-gl'/> <flag name='screendump_device'/> + <flag name='hda-output'/> <version>2011090</version> <kvmVersion>0</kvmVersion> <microcodeVersion>419968</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml index 820b3ef..b97b15e 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -201,6 +201,7 @@ <flag name='memory-backend-file.discard-data'/> <flag name='sdl-gl'/> <flag name='screendump_device'/> + <flag name='hda-output'/> <version>2011090</version> <kvmVersion>0</kvmVersion> <microcodeVersion>390813</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index 871eb5e..5686172 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -154,6 +154,7 @@ <flag name='virtio-gpu.max_outputs'/> <flag name='isa-serial'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2004000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>75406</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index 90dce5a..e86fce9 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -160,6 +160,7 @@ <flag name='virtio-gpu.max_outputs'/> <flag name='isa-serial'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2005000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>216528</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml index 4298548..e5268ed 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml @@ -142,6 +142,7 @@ <flag name='dump-completed'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>228241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml index 07cdc49..7e514be 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml @@ -137,6 +137,7 @@ <flag name='dump-completed'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>263005</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index 4c6371a..0d542b8 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -172,6 +172,7 @@ <flag name='dump-completed'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2006000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>227332</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index c322d18..5795bc9 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -177,6 +177,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2007000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>239029</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index 7c329ad..bd467d2 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -179,6 +179,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2008000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>255684</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml index cfc9405..1e6d0cc 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml @@ -146,6 +146,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2009000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>346538</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml index 0701c24..7e45b31 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -192,6 +192,7 @@ <flag name='disk-write-cache'/> <flag name='nbd-tls'/> <flag name='sdl-gl'/> + <flag name='hda-output'/> <version>2009000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>320947</microcodeVersion> -- 2.17.0

Signed-off-by: Filip Alac <filipalac@gmail.com> --- tests/qemustatusxml2xmldata/migration-in-params-in.xml | 1 + tests/qemustatusxml2xmldata/migration-out-nbd-in.xml | 1 + tests/qemustatusxml2xmldata/migration-out-nbd-out.xml | 1 + tests/qemustatusxml2xmldata/migration-out-params-in.xml | 1 + tests/qemustatusxml2xmldata/modern-in.xml | 1 + tests/qemuxml2argvdata/sound-device.args | 2 ++ tests/qemuxml2argvdata/sound-device.xml | 2 ++ tests/qemuxml2argvtest.c | 1 + tests/qemuxml2xmloutdata/sound-device.xml | 2 ++ 9 files changed, 12 insertions(+) diff --git a/tests/qemustatusxml2xmldata/migration-in-params-in.xml b/tests/qemustatusxml2xmldata/migration-in-params-in.xml index b0caa34..03f18b4 100644 --- a/tests/qemustatusxml2xmldata/migration-in-params-in.xml +++ b/tests/qemustatusxml2xmldata/migration-in-params-in.xml @@ -236,6 +236,7 @@ <flag name='iscsi.password-secret'/> <flag name='isa-serial'/> <flag name='dump-completed'/> + <flag name='hda-output'/> </qemuCaps> <job type='none' async='migration in' phase='prepare' flags='0x900'> <migParams> diff --git a/tests/qemustatusxml2xmldata/migration-out-nbd-in.xml b/tests/qemustatusxml2xmldata/migration-out-nbd-in.xml index 6d87c1e..636accf 100644 --- a/tests/qemustatusxml2xmldata/migration-out-nbd-in.xml +++ b/tests/qemustatusxml2xmldata/migration-out-nbd-in.xml @@ -229,6 +229,7 @@ <flag name='iscsi.password-secret'/> <flag name='isa-serial'/> <flag name='dump-completed'/> + <flag name='hda-output'/> </qemuCaps> <job type='none' async='migration out' phase='perform3'> <disk dev='vdb' migrating='yes'/> diff --git a/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml b/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml index 05da1f8..315d8e4 100644 --- a/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml +++ b/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml @@ -229,6 +229,7 @@ <flag name='iscsi.password-secret'/> <flag name='isa-serial'/> <flag name='dump-completed'/> + <flag name='hda-output'/> </qemuCaps> <job type='none' async='migration out' phase='perform3' flags='0x0'> <disk dev='vdb' migrating='yes'/> diff --git a/tests/qemustatusxml2xmldata/migration-out-params-in.xml b/tests/qemustatusxml2xmldata/migration-out-params-in.xml index 1764979..ae20648 100644 --- a/tests/qemustatusxml2xmldata/migration-out-params-in.xml +++ b/tests/qemustatusxml2xmldata/migration-out-params-in.xml @@ -236,6 +236,7 @@ <flag name='iscsi.password-secret'/> <flag name='isa-serial'/> <flag name='dump-completed'/> + <flag name='hda-output'/> </qemuCaps> <job type='none' async='migration out' phase='perform3' flags='0x802'> <disk dev='vda' migrating='no'/> diff --git a/tests/qemustatusxml2xmldata/modern-in.xml b/tests/qemustatusxml2xmldata/modern-in.xml index d63fcf7..5b7e2a3 100644 --- a/tests/qemustatusxml2xmldata/modern-in.xml +++ b/tests/qemustatusxml2xmldata/modern-in.xml @@ -232,6 +232,7 @@ <flag name='iscsi.password-secret'/> <flag name='isa-serial'/> <flag name='dump-completed'/> + <flag name='hda-output'/> </qemuCaps> <devices> <device alias='rng0'/> diff --git a/tests/qemuxml2argvdata/sound-device.args b/tests/qemuxml2argvdata/sound-device.args index ee8313b..f97050a 100644 --- a/tests/qemuxml2argvdata/sound-device.args +++ b/tests/qemuxml2argvdata/sound-device.args @@ -33,10 +33,12 @@ server,nowait \ -device intel-hda,id=sound5,bus=pci.0,addr=0x6 \ -device hda-micro,id=sound5-codec0,bus=sound5.0,cad=0 \ -device hda-duplex,id=sound5-codec1,bus=sound5.0,cad=1 \ +-device hda-output,id=sound5-codec2,bus=sound5.0,cad=2 \ -device ich9-intel-hda,id=sound6,bus=pci.0,addr=0x7 \ -device hda-duplex,id=sound6-codec0,bus=sound6.0,cad=0 \ -device ich9-intel-hda,id=sound7,bus=pci.0,addr=0x8 \ -device hda-micro,id=sound7-codec0,bus=sound7.0,cad=0 \ -device hda-duplex,id=sound7-codec1,bus=sound7.0,cad=1 \ +-device hda-output,id=sound7-codec2,bus=sound7.0,cad=2 \ -device usb-audio,id=sound8,bus=usb.0,port=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x9 diff --git a/tests/qemuxml2argvdata/sound-device.xml b/tests/qemuxml2argvdata/sound-device.xml index bceb9d1..c544e93 100644 --- a/tests/qemuxml2argvdata/sound-device.xml +++ b/tests/qemuxml2argvdata/sound-device.xml @@ -32,11 +32,13 @@ <sound model='ich6'> <codec type='micro'/> <codec type='duplex'/> + <codec type='output'/> </sound> <sound model='ich9'/> <sound model='ich9'> <codec type='micro'/> <codec type='duplex'/> + <codec type='output'/> </sound> <sound model='usb'/> <memballoon model='virtio'/> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 78454ac..e2eec96 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1515,6 +1515,7 @@ mymain(void) DO_TEST("sound", NONE); DO_TEST("sound-device", QEMU_CAPS_HDA_DUPLEX, QEMU_CAPS_HDA_MICRO, + QEMU_CAPS_HDA_OUTPUT, QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, QEMU_CAPS_OBJECT_USB_AUDIO); DO_TEST("fs9p", NONE); diff --git a/tests/qemuxml2xmloutdata/sound-device.xml b/tests/qemuxml2xmloutdata/sound-device.xml index 62336a8..cbf4d17 100644 --- a/tests/qemuxml2xmloutdata/sound-device.xml +++ b/tests/qemuxml2xmloutdata/sound-device.xml @@ -43,6 +43,7 @@ <sound model='ich6'> <codec type='micro'/> <codec type='duplex'/> + <codec type='output'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </sound> <sound model='ich9'> @@ -51,6 +52,7 @@ <sound model='ich9'> <codec type='micro'/> <codec type='duplex'/> + <codec type='output'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </sound> <sound model='usb'/> -- 2.17.0

Signed-off-by: Filip Alac <filipalac@gmail.com> --- docs/news.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/news.xml b/docs/news.xml index 7d40e85..4432811 100644 --- a/docs/news.xml +++ b/docs/news.xml @@ -65,6 +65,14 @@ OpenGL accelerated rendering. </description> </change> + <change> + <summary> + qemu: Add support for 'output' codec + </summary> + <description> + Support the 'output' codec which advertise only a line-out for a guest. + </description> + </change> </section> <section title="Bug fixes"> </section> -- 2.17.0

On Tue, May 22, 2018 at 01:12:31PM +0200, Filip Alac wrote:
Add support for hda 'output' codec for ich6 and ich9 sound devices, which allow us to disable line-in for guest. 'hda-output' codec is available since 0.14 version of qemu.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1126641
v1: https://www.redhat.com/archives/libvir-list/2018-May/msg01311.html
v2: https://www.redhat.com/archives/libvir-list/2018-May/msg01450.html - Split patch into series of patches - Add description of feature in docs/news.xml - Improve the documentation in docs/formatdomain.html.in - Fixes coding standard errors/inconsistencies
v3: https://www.redhat.com/archives/libvir-list/2018-May/msg01506.html - Moved all tests to third patch - Made possible to compile every patch by alone except fourth which depends on the first and on the second patch.
v4: - Moved some qemu_command and qemu_capabilities hunks from the first patch into second patch.
Reviewed-by: Erik Skultety <eskultet@redhat.com> I tweaked the commit messages a tiny bit as well as the news feature description and pushed the series. Thanks, Erik
participants (2)
-
Erik Skultety
-
Filip Alac