hw/ac97: Mask out unused bits of volume controls
authorHans de Goede <hdegoede@redhat.com>
Mon, 7 May 2012 07:24:37 +0000 (09:24 +0200)
committermalc <av1474@comtv.ru>
Mon, 7 May 2012 12:31:40 +0000 (16:31 +0400)
commit7873bfb866c89f9e6eab28b14d0c2007b361150c
tree52fae75f15b2fbdabc29f5c08e5d9964f487a6b3
parentf94e9b9b3535ea977c5a919f88adf36da95a8292
hw/ac97: Mask out unused bits of volume controls

The Linux ac97 drivers does a number of register read/write tests to
see how much resolution a volume control actually has.

This patch takes this into account by masking out any bits written to
a volume control reg which should not be there according to the spec.

After this the Linux ac97 driver correctly uses a range of 0 - 0x1f for
the PCM out volume, as stated in the spec, and we can fix the FIXME
in update_combined_volume_out().

This patch was also tested with a Windows XP guest without any issues.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
hw/ac97.c