mirror of https://github.com/xqemu/xqemu.git
hw/audio/intel-hda: Fix MSI capability address
According to ICH9 spec, the MSI capability is located at 0x60. This is important for guest drivers that do not parse the capability chain and use absolute addresses instead. CC: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
f9f218730c
commit
d209c7440a
|
@ -187,6 +187,7 @@ struct IntelHDAState {
|
|||
/* properties */
|
||||
uint32_t debug;
|
||||
uint32_t msi;
|
||||
bool old_msi_addr;
|
||||
};
|
||||
|
||||
#define TYPE_INTEL_HDA_GENERIC "intel-hda-generic"
|
||||
|
@ -1141,7 +1142,7 @@ static int intel_hda_init(PCIDevice *pci)
|
|||
"intel-hda", 0x4000);
|
||||
pci_register_bar(&d->pci, 0, 0, &d->mmio);
|
||||
if (d->msi) {
|
||||
msi_init(&d->pci, 0x50, 1, true, false);
|
||||
msi_init(&d->pci, d->old_msi_addr ? 0x50 : 0x60, 1, true, false);
|
||||
}
|
||||
|
||||
hda_codec_bus_init(DEVICE(pci), &d->codecs, sizeof(d->codecs),
|
||||
|
@ -1236,6 +1237,7 @@ static const VMStateDescription vmstate_intel_hda = {
|
|||
static Property intel_hda_properties[] = {
|
||||
DEFINE_PROP_UINT32("debug", IntelHDAState, debug, 0),
|
||||
DEFINE_PROP_UINT32("msi", IntelHDAState, msi, 1),
|
||||
DEFINE_PROP_BOOL("old_msi_addr", IntelHDAState, old_msi_addr, false),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
|
|
@ -300,7 +300,12 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);
|
|||
int e820_get_num_entries(void);
|
||||
bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
|
||||
|
||||
#define PC_COMPAT_2_1
|
||||
#define PC_COMPAT_2_1 \
|
||||
{\
|
||||
.driver = "intel-hda",\
|
||||
.property = "old_msi_addr",\
|
||||
.value = "on",\
|
||||
}
|
||||
|
||||
#define PC_COMPAT_2_0 \
|
||||
PC_COMPAT_2_1, \
|
||||
|
|
Loading…
Reference in New Issue