]> git.proxmox.com Git - mirror_qemu.git/commitdiff
hpet: Start/stop timer when HPET_TN_ENABLE is modified
authorJan Kiszka <jan.kiszka@siemens.com>
Sun, 13 Jun 2010 12:15:39 +0000 (14:15 +0200)
committerBlue Swirl <blauwirbel@gmail.com>
Sun, 13 Jun 2010 12:32:59 +0000 (15:32 +0300)
We have to update the qemu timer when the per-timer enable bit is
toggled, just like for HPET_CFG_ENABLE changes.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/hpet.c

index 697493573946dbb17ba5bbc379f8e224866f1c09..041dd84cfd6dd40274b16e0a90c21c5ef7375b84 100644 (file)
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -430,6 +430,11 @@ static void hpet_ram_writel(void *opaque, target_phys_addr_t addr,
                 printf("qemu: level-triggered hpet not supported\n");
                 exit (-1);
             }
+            if (activating_bit(old_val, new_val, HPET_TN_ENABLE)) {
+                hpet_set_timer(timer);
+            } else if (deactivating_bit(old_val, new_val, HPET_TN_ENABLE)) {
+                hpet_del_timer(timer);
+            }
             break;
         case HPET_TN_CFG + 4: // Interrupt capabilities
             DPRINTF("qemu: invalid HPET_TN_CFG+4 write\n");