diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/i386/acpi-build.c | 4 | ||||
-rw-r--r-- | hw/timer/hpet.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index b34d927..a5d3fbf 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -841,7 +841,7 @@ static void build_pci_bus_end(PCIBus *bus, void *bus_state) pc = PCI_DEVICE_GET_CLASS(pdev); dc = DEVICE_GET_CLASS(pdev); - if (pc->class_id == PCI_CLASS_BRIDGE_ISA) { + if (pc->class_id == PCI_CLASS_BRIDGE_ISA || pc->is_bridge) { set_bit(slot, slot_device_system); } @@ -882,7 +882,7 @@ static void build_pci_bus_end(PCIBus *bus, void *bus_state) memcpy(pcihp, ACPI_PCIVGA_AML, ACPI_PCIVGA_SIZEOF); patch_pcivga(i, pcihp); } else if (system) { - /* Nothing to do: system devices are in DSDT. */ + /* Nothing to do: system devices are in DSDT or in SSDT above. */ } else if (present) { void *pcihp = acpi_data_push(bus_table, ACPI_PCINOHP_SIZEOF); diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c index 1264dfd..e15d6bc 100644 --- a/hw/timer/hpet.c +++ b/hw/timer/hpet.c @@ -506,7 +506,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr, timer->cmp = (uint32_t)timer->cmp; timer->period = (uint32_t)timer->period; } - if (activating_bit(old_val, new_val, HPET_TN_ENABLE)) { + if (activating_bit(old_val, new_val, HPET_TN_ENABLE) && + hpet_enabled(s)) { hpet_set_timer(timer); } else if (deactivating_bit(old_val, new_val, HPET_TN_ENABLE)) { hpet_del_timer(timer); |