mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
pci: Eliminate redundant PCIDevice::bus pointer
The bus pointer in PCIDevice is basically redundant with QOM information. It's always initialized to the qdev_get_parent_bus(), the only difference is the type. Therefore this patch eliminates the field, instead creating a pci_get_bus() helper to do the type mangling to derive it conveniently from the QOM Device object underneath. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
cdc57472dc
commit
fd56e0612b
20 changed files with 102 additions and 92 deletions
|
@ -162,7 +162,7 @@ static void ich9_cc_write(void *opaque, hwaddr addr,
|
|||
|
||||
ich9_cc_addr_len(&addr, &len);
|
||||
memcpy(lpc->chip_config + addr, &val, len);
|
||||
pci_bus_fire_intx_routing_notifier(lpc->d.bus);
|
||||
pci_bus_fire_intx_routing_notifier(pci_get_bus(&lpc->d));
|
||||
ich9_cc_update(lpc);
|
||||
}
|
||||
|
||||
|
@ -218,7 +218,7 @@ static void ich9_lpc_update_pic(ICH9LPCState *lpc, int gsi)
|
|||
int tmp_dis;
|
||||
ich9_lpc_pic_irq(lpc, i, &tmp_irq, &tmp_dis);
|
||||
if (!tmp_dis && tmp_irq == gsi) {
|
||||
pic_level |= pci_bus_get_irq_level(lpc->d.bus, i);
|
||||
pic_level |= pci_bus_get_irq_level(pci_get_bus(&lpc->d), i);
|
||||
}
|
||||
}
|
||||
if (gsi == lpc->sci_gsi) {
|
||||
|
@ -246,7 +246,7 @@ static void ich9_lpc_update_apic(ICH9LPCState *lpc, int gsi)
|
|||
|
||||
assert(gsi >= ICH9_LPC_PIC_NUM_PINS);
|
||||
|
||||
level |= pci_bus_get_irq_level(lpc->d.bus, ich9_gsi_to_pirq(gsi));
|
||||
level |= pci_bus_get_irq_level(pci_get_bus(&lpc->d), ich9_gsi_to_pirq(gsi));
|
||||
if (gsi == lpc->sci_gsi) {
|
||||
level |= lpc->sci_level;
|
||||
}
|
||||
|
@ -524,10 +524,10 @@ static void ich9_lpc_config_write(PCIDevice *d,
|
|||
ich9_lpc_rcba_update(lpc, rcba_old);
|
||||
}
|
||||
if (ranges_overlap(addr, len, ICH9_LPC_PIRQA_ROUT, 4)) {
|
||||
pci_bus_fire_intx_routing_notifier(lpc->d.bus);
|
||||
pci_bus_fire_intx_routing_notifier(pci_get_bus(&lpc->d));
|
||||
}
|
||||
if (ranges_overlap(addr, len, ICH9_LPC_PIRQE_ROUT, 4)) {
|
||||
pci_bus_fire_intx_routing_notifier(lpc->d.bus);
|
||||
pci_bus_fire_intx_routing_notifier(pci_get_bus(&lpc->d));
|
||||
}
|
||||
if (ranges_overlap(addr, len, ICH9_LPC_GEN_PMCON_1, 8)) {
|
||||
ich9_lpc_pmcon_update(lpc);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue