diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-11-01 13:05:32 +0100 |
---|---|---|
committer | malc <av1474@comtv.ru> | 2010-11-01 17:57:22 +0300 |
commit | d61a4ce8f01ac9f1810380e043db467d536eeb6b (patch) | |
tree | eb969474b2664b7da2ed991631985900c3567f2c /arch_init.c | |
parent | cdae5cfbd3a61a5d4de79b829fb41188073d3002 (diff) | |
download | hqemu-d61a4ce8f01ac9f1810380e043db467d536eeb6b.zip hqemu-d61a4ce8f01ac9f1810380e043db467d536eeb6b.tar.gz |
Add Intel HD Audio support to qemu.
This patch adds three devices to qemu:
intel-hda
Intel HD Audio Controller, the PCI device. Provides a HDA bus.
Emulates ICH6 at the moment. Adding a ICH9 PCIE
variant shouldn't be hard.
hda-duplex
HDA Codec. Attaches to the HDA bus. Supports 16bit stereo,
rates 16k -> 96k, playback, recording and volume control
(with CONFIG_MIXEMU=y).
hda-output
HDA Codec without recording support. Subset of the hda-duplex
codec. Use this if you don't want your guests access your mic.
Usage: add '-device intel-hda -device hda-duplex' to your command line.
Tested guests:
* Linux works.
* Win7 works.
* DOS (mpxplay) works.
* WinXP doesn't work.
[ v2 changes ]
* Fixed endianess, big endian hosts work now.
* Fixed some emulation bugs.
* Added immediate command emulation.
* Added vmstate support.
* Make it behave like all other sound card drivers:
- can be configured via '--audio-card-list=hda'
- can be added to a VM using '-soundhw hda'
* Code style fixups.
* Zapped guest-triggerable asserts.
* Handle partial reads/writes of audio data correctly.
Cc: malc <av1474@comtv.ru>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'arch_init.c')
-rw-r--r-- | arch_init.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch_init.c b/arch_init.c index a910033..cea3c8b 100644 --- a/arch_init.c +++ b/arch_init.c @@ -499,6 +499,16 @@ struct soundhw soundhw[] = { }, #endif +#ifdef CONFIG_HDA + { + "hda", + "Intel HD Audio", + 0, + 0, + { .init_pci = intel_hda_and_codec_init } + }, +#endif + #endif /* HAS_AUDIO_CHOICE */ { NULL, NULL, 0, 0, { NULL } } |