diff options
| author | Gerd Hoffmann <kraxel@redhat.com> | 2011-11-07 16:33:09 +0100 |
|---|---|---|
| committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-11-07 10:57:37 -0600 |
| commit | 25a21c94c0055e078acb7f7455e66c8a15f32385 (patch) | |
| tree | 2e121785fdc62ac0652287924aa3eddf2b6fc8af /hw/ac97.c | |
| parent | 19857e625a8dc299b3fdfb8acdcbe1569745e290 (diff) | |
| download | focaccia-qemu-25a21c94c0055e078acb7f7455e66c8a15f32385.tar.gz focaccia-qemu-25a21c94c0055e078acb7f7455e66c8a15f32385.zip | |
ac97: don't override the pci subsystem id
This patch removes the code lines which set the subsystem id for the emulated ac97 card to 8086:0000. Due to the device id being zero the subsystem id isn't vaild anyway. With the patch applied the sound card gets the default qemu subsystem id (1af4:1100) instead. [ v2: old & broken id is maintained for -M pc-$oldqemuversion ] Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/ac97.c')
| -rw-r--r-- | hw/ac97.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/hw/ac97.c b/hw/ac97.c index 6800af43a4..0dbba3b54a 100644 --- a/hw/ac97.c +++ b/hw/ac97.c @@ -150,6 +150,7 @@ typedef struct AC97BusMasterRegs { typedef struct AC97LinkState { PCIDevice dev; QEMUSoundCard card; + uint32_t use_broken_id; uint32_t glob_cnt; uint32_t glob_sta; uint32_t cas; @@ -1305,11 +1306,12 @@ static int ac97_initfn (PCIDevice *dev) c[PCI_BASE_ADDRESS_0 + 6] = 0x00; c[PCI_BASE_ADDRESS_0 + 7] = 0x00; - c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86; /* svid subsystem vendor id rwo */ - c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80; - - c[PCI_SUBSYSTEM_ID] = 0x00; /* sid subsystem id rwo */ - c[PCI_SUBSYSTEM_ID + 1] = 0x00; + if (s->use_broken_id) { + c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86; + c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80; + c[PCI_SUBSYSTEM_ID] = 0x00; + c[PCI_SUBSYSTEM_ID + 1] = 0x00; + } c[PCI_INTERRUPT_LINE] = 0x00; /* intr_ln interrupt line rw */ c[PCI_INTERRUPT_PIN] = 0x01; /* intr_pn interrupt pin ro */ @@ -1350,6 +1352,10 @@ static PCIDeviceInfo ac97_info = { .device_id = PCI_DEVICE_ID_INTEL_82801AA_5, .revision = 0x01, .class_id = PCI_CLASS_MULTIMEDIA_AUDIO, + .qdev.props = (Property[]) { + DEFINE_PROP_UINT32("use_broken_id", AC97LinkState, use_broken_id, 0), + DEFINE_PROP_END_OF_LIST(), + } }; static void ac97_register (void) |