Patchwork [v4,4/6] hw/ds1338.c: Ensure state is properly initialized.

login
register
mail settings
Submitter Antoine Mathys
Date Dec. 12, 2012, 10:59 p.m.
Message ID <50C90C6B.5080504@gmail.com>
Download mbox | patch
Permalink /patch/205682/
State New
Headers show

Comments

Antoine Mathys - Dec. 12, 2012, 10:59 p.m.
Signed-off-by: Antoine Mathys <barsamin@gmail.com>
---
  hw/ds1338.c |   12 ++++++++++++
  1 file changed, 12 insertions(+)

Patch

diff --git a/hw/ds1338.c b/hw/ds1338.c
index 0f88720..d2f52fc 100644
--- a/hw/ds1338.c
+++ b/hw/ds1338.c
@@ -179,6 +179,17 @@  static int ds1338_init(I2CSlave *i2c)
      return 0;
  }

+static void ds1338_reset(DeviceState *dev)
+{
+    DS1338State *s = FROM_I2C_SLAVE(DS1338State, I2C_SLAVE_FROM_QDEV(dev));
+
+    /* The clock is running and synchronized with the host */
+    s->offset = 0;
+    memset(s->nvram, 0, NVRAM_SIZE);
+    s->ptr = 0;
+    s->addr_byte = false;
+}
+
  static void ds1338_class_init(ObjectClass *klass, void *data)
  {
      DeviceClass *dc = DEVICE_CLASS(klass);
@@ -188,6 +199,7 @@  static void ds1338_class_init(ObjectClass *klass, 
void *data)
      k->event = ds1338_event;
      k->recv = ds1338_recv;
      k->send = ds1338_send;
+    dc->reset = ds1338_reset;
      dc->vmsd = &vmstate_ds1338;
  }