提交 25a21c94 编写于 作者: G Gerd Hoffmann 提交者: Anthony Liguori

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: NGerd Hoffmann <kraxel@redhat.com>
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 19857e62
...@@ -150,6 +150,7 @@ typedef struct AC97BusMasterRegs { ...@@ -150,6 +150,7 @@ typedef struct AC97BusMasterRegs {
typedef struct AC97LinkState { typedef struct AC97LinkState {
PCIDevice dev; PCIDevice dev;
QEMUSoundCard card; QEMUSoundCard card;
uint32_t use_broken_id;
uint32_t glob_cnt; uint32_t glob_cnt;
uint32_t glob_sta; uint32_t glob_sta;
uint32_t cas; uint32_t cas;
...@@ -1305,11 +1306,12 @@ static int ac97_initfn (PCIDevice *dev) ...@@ -1305,11 +1306,12 @@ static int ac97_initfn (PCIDevice *dev)
c[PCI_BASE_ADDRESS_0 + 6] = 0x00; c[PCI_BASE_ADDRESS_0 + 6] = 0x00;
c[PCI_BASE_ADDRESS_0 + 7] = 0x00; c[PCI_BASE_ADDRESS_0 + 7] = 0x00;
c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86; /* svid subsystem vendor id rwo */ if (s->use_broken_id) {
c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80; c[PCI_SUBSYSTEM_VENDOR_ID] = 0x86;
c[PCI_SUBSYSTEM_VENDOR_ID + 1] = 0x80;
c[PCI_SUBSYSTEM_ID] = 0x00; /* sid subsystem id rwo */ c[PCI_SUBSYSTEM_ID] = 0x00;
c[PCI_SUBSYSTEM_ID + 1] = 0x00; c[PCI_SUBSYSTEM_ID + 1] = 0x00;
}
c[PCI_INTERRUPT_LINE] = 0x00; /* intr_ln interrupt line rw */ c[PCI_INTERRUPT_LINE] = 0x00; /* intr_ln interrupt line rw */
c[PCI_INTERRUPT_PIN] = 0x01; /* intr_pn interrupt pin ro */ c[PCI_INTERRUPT_PIN] = 0x01; /* intr_pn interrupt pin ro */
...@@ -1350,6 +1352,10 @@ static PCIDeviceInfo ac97_info = { ...@@ -1350,6 +1352,10 @@ static PCIDeviceInfo ac97_info = {
.device_id = PCI_DEVICE_ID_INTEL_82801AA_5, .device_id = PCI_DEVICE_ID_INTEL_82801AA_5,
.revision = 0x01, .revision = 0x01,
.class_id = PCI_CLASS_MULTIMEDIA_AUDIO, .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) static void ac97_register (void)
......
...@@ -347,6 +347,10 @@ static QEMUMachine pc_machine_v0_13 = { ...@@ -347,6 +347,10 @@ static QEMUMachine pc_machine_v0_13 = {
.driver = "virtio-net-pci", .driver = "virtio-net-pci",
.property = "event_idx", .property = "event_idx",
.value = "off", .value = "off",
},{
.driver = "AC97",
.property = "use_broken_id",
.value = stringify(1),
}, },
{ /* end of list */ } { /* end of list */ }
}, },
...@@ -390,6 +394,10 @@ static QEMUMachine pc_machine_v0_12 = { ...@@ -390,6 +394,10 @@ static QEMUMachine pc_machine_v0_12 = {
.driver = "virtio-net-pci", .driver = "virtio-net-pci",
.property = "event_idx", .property = "event_idx",
.value = "off", .value = "off",
},{
.driver = "AC97",
.property = "use_broken_id",
.value = stringify(1),
}, },
{ /* end of list */ } { /* end of list */ }
} }
...@@ -441,6 +449,10 @@ static QEMUMachine pc_machine_v0_11 = { ...@@ -441,6 +449,10 @@ static QEMUMachine pc_machine_v0_11 = {
.driver = "virtio-net-pci", .driver = "virtio-net-pci",
.property = "event_idx", .property = "event_idx",
.value = "off", .value = "off",
},{
.driver = "AC97",
.property = "use_broken_id",
.value = stringify(1),
}, },
{ /* end of list */ } { /* end of list */ }
} }
...@@ -504,6 +516,10 @@ static QEMUMachine pc_machine_v0_10 = { ...@@ -504,6 +516,10 @@ static QEMUMachine pc_machine_v0_10 = {
.driver = "virtio-net-pci", .driver = "virtio-net-pci",
.property = "event_idx", .property = "event_idx",
.value = "off", .value = "off",
},{
.driver = "AC97",
.property = "use_broken_id",
.value = stringify(1),
}, },
{ /* end of list */ } { /* end of list */ }
}, },
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册