summaryrefslogtreecommitdiffstats
path: root/hw/acpi_piix4.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-12-11 09:40:45 +0100
committerGerd Hoffmann <kraxel@redhat.com>2013-01-04 08:51:56 +0100
commit56e5b2a1a655b9158c0d274a6f630927c9a5fb4b (patch)
treebc691a50f38952a830097946b615bc875feb4ada /hw/acpi_piix4.c
parentf7e4dd6c18ccfbaf6cd2f5eaaed2b77cabc8a406 (diff)
downloadhqemu-56e5b2a1a655b9158c0d274a6f630927c9a5fb4b.zip
hqemu-56e5b2a1a655b9158c0d274a6f630927c9a5fb4b.tar.gz
apci: assign memory regions to piix4 acpi device
Get rid of get_system_io() usage. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/acpi_piix4.c')
-rw-r--r--hw/acpi_piix4.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index f53b969..06a8aca 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -57,6 +57,7 @@ struct pci_status {
typedef struct PIIX4PMState {
PCIDevice dev;
+
MemoryRegion io;
MemoryRegion io_gpe;
MemoryRegion io_pci;
@@ -83,7 +84,8 @@ typedef struct PIIX4PMState {
uint8_t s4_val;
} PIIX4PMState;
-static void piix4_acpi_system_hot_add_init(PCIBus *bus, PIIX4PMState *s);
+static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
+ PCIBus *bus, PIIX4PMState *s);
#define ACPI_ENABLE 0xf1
#define ACPI_DISABLE 0xf0
@@ -406,11 +408,13 @@ static int piix4_pm_initfn(PCIDevice *dev)
pci_conf[0xd2] = 0x09;
pm_smbus_init(&s->dev.qdev, &s->smb);
memory_region_set_enabled(&s->smb.io, pci_conf[0xd2] & 1);
- memory_region_add_subregion(get_system_io(), s->smb_io_base, &s->smb.io);
+ memory_region_add_subregion(pci_address_space_io(dev),
+ s->smb_io_base, &s->smb.io);
memory_region_init(&s->io, "piix4-pm", 64);
memory_region_set_enabled(&s->io, false);
- memory_region_add_subregion(get_system_io(), 0, &s->io);
+ memory_region_add_subregion(pci_address_space_io(dev),
+ 0, &s->io);
acpi_pm_tmr_init(&s->ar, pm_tmr_timer, &s->io);
acpi_pm1_evt_init(&s->ar, pm_tmr_timer, &s->io);
@@ -423,7 +427,8 @@ static int piix4_pm_initfn(PCIDevice *dev)
s->machine_ready.notify = piix4_pm_machine_ready;
qemu_add_machine_init_done_notifier(&s->machine_ready);
qemu_register_reset(piix4_reset, s);
- piix4_acpi_system_hot_add_init(dev->bus, s);
+
+ piix4_acpi_system_hot_add_init(pci_address_space_io(dev), dev->bus, s);
return 0;
}
@@ -593,15 +598,16 @@ static const MemoryRegionOps piix4_pci_ops = {
static int piix4_device_hotplug(DeviceState *qdev, PCIDevice *dev,
PCIHotplugState state);
-static void piix4_acpi_system_hot_add_init(PCIBus *bus, PIIX4PMState *s)
+static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
+ PCIBus *bus, PIIX4PMState *s)
{
memory_region_init_io(&s->io_gpe, &piix4_gpe_ops, s, "apci-gpe0",
GPE_LEN);
- memory_region_add_subregion(get_system_io(), GPE_BASE, &s->io_gpe);
+ memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
memory_region_init_io(&s->io_pci, &piix4_pci_ops, s, "apci-pci-hotplug",
PCI_HOTPLUG_SIZE);
- memory_region_add_subregion(get_system_io(), PCI_HOTPLUG_ADDR,
+ memory_region_add_subregion(parent, PCI_HOTPLUG_ADDR,
&s->io_pci);
pci_bus_hotplug(bus, piix4_device_hotplug, &s->dev.qdev);
}
OpenPOWER on IntegriCloud