Patchwork hpet: Init capability register only once

login
register
mail settings
Submitter Jan Kiszka
Date June 14, 2010, 6:40 a.m.
Message ID <4C15CEDD.8020104@web.de>
Download mbox | patch
Permalink /patch/55479/
State New
Headers show

Comments

Jan Kiszka - June 14, 2010, 6:40 a.m.
From: Jan Kiszka <jan.kiszka@siemens.com>

The capability register is read-only from guest POV, so we do not need
to update it on reset.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/hpet.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
Anthony Liguori - June 14, 2010, 4:27 p.m.
On 06/14/2010 01:40 AM, Jan Kiszka wrote:
> From: Jan Kiszka<jan.kiszka@siemens.com>
>
> The capability register is read-only from guest POV, so we do not need
> to update it on reset.
>
> Signed-off-by: Jan Kiszka<jan.kiszka@siemens.com>
>    

Applied.  Thanks.

Regards,

Anthony Liguori
> ---
>   hw/hpet.c |    9 +++++----
>   1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/hw/hpet.c b/hw/hpet.c
> index 93fc399..e9b585c 100644
> --- a/hw/hpet.c
> +++ b/hw/hpet.c
> @@ -648,10 +648,6 @@ static void hpet_reset(DeviceState *d)
>
>       s->hpet_counter = 0ULL;
>       s->hpet_offset = 0ULL;
> -    /* 64-bit main counter; LegacyReplacementRoute. */
> -    s->capability = 0x8086a001ULL;
> -    s->capability |= (s->num_timers - 1)<<  HPET_ID_NUM_TIM_SHIFT;
> -    s->capability |= ((HPET_CLK_PERIOD)<<  32);
>       s->config = 0ULL;
>       if (count>  0) {
>           /* we don't enable pit when hpet_reset is first called (by hpet_init)
> @@ -696,6 +692,11 @@ static int hpet_init(SysBusDevice *dev)
>           timer->state = s;
>       }
>
> +    /* 64-bit main counter; LegacyReplacementRoute. */
> +    s->capability = 0x8086a001ULL;
> +    s->capability |= (s->num_timers - 1)<<  HPET_ID_NUM_TIM_SHIFT;
> +    s->capability |= ((HPET_CLK_PERIOD)<<  32);
> +
>       isa_reserve_irq(RTC_ISA_IRQ);
>       qdev_init_gpio_in(&dev->qdev, hpet_handle_rtc_irq, 1);
>
>

Patch

diff --git a/hw/hpet.c b/hw/hpet.c
index 93fc399..e9b585c 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -648,10 +648,6 @@  static void hpet_reset(DeviceState *d)
 
     s->hpet_counter = 0ULL;
     s->hpet_offset = 0ULL;
-    /* 64-bit main counter; LegacyReplacementRoute. */
-    s->capability = 0x8086a001ULL;
-    s->capability |= (s->num_timers - 1) << HPET_ID_NUM_TIM_SHIFT;
-    s->capability |= ((HPET_CLK_PERIOD) << 32);
     s->config = 0ULL;
     if (count > 0) {
         /* we don't enable pit when hpet_reset is first called (by hpet_init)
@@ -696,6 +692,11 @@  static int hpet_init(SysBusDevice *dev)
         timer->state = s;
     }
 
+    /* 64-bit main counter; LegacyReplacementRoute. */
+    s->capability = 0x8086a001ULL;
+    s->capability |= (s->num_timers - 1) << HPET_ID_NUM_TIM_SHIFT;
+    s->capability |= ((HPET_CLK_PERIOD) << 32);
+
     isa_reserve_irq(RTC_ISA_IRQ);
     qdev_init_gpio_in(&dev->qdev, hpet_handle_rtc_irq, 1);