[libvirt] [PATCH] qemu: sound: Support intel 'hda' model

Gerd Hoffmann kraxel at redhat.com
Tue Jan 11 10:46:14 UTC 2011


On 01/10/11 18:19, Cole Robinson wrote:
> In QEMU, the card itself is a PCI device, but it requires
> -device hda-output in order to actually get sound to the host. AIUI this
> is just HDA configuration and does not require stable addressing, so
> is not presently represented in the XML.

It isn't that simple.  There are actually multiple devices involved. 
Each audio codec (yes, there can be multiple of these, up to 15) is 
connected via HDA Link to the pci controller.  Each audio codec has a 
codec address (HDA bus property: cad=[0..14]).

So you can specify "-device intel-hda -device hda-duplex -device 
hda-output" and the guest has multiple audio devices.  Win7 even handles 
this correctly, whereas alsa uses only the first codec it finds (lowest 
codec address).  Not that this buys you much today, qemu mixes all 
channels together before sending them off to the hosts sound system, 
i.e. you don't see a stream per sound card in pulseaudio.  That might 
change in the future though.

We also might see more hda codecs in the future.  Maybe to pass through 
digital audio interfaces from the host?  Not investigated yet in detail 
though.

The HDA Links are even hot-pluggable (new audio codec can be linked up 
when putting the laptop into the docking station for example), although 
the qemu emulation doesn't support that today.

cheers,
   Gerd




More information about the libvir-list mailing list