1
From a0913860252bacaf78c05cc08c808c2a82dcde60 Mon Sep 17 00:00:00 2001
2
From: Peter Maydell <peter.maydell@linaro.org>
3
Date: Mon, 18 Feb 2013 16:58:26 +0000
4
Subject: [PATCH 19/70] omap_i2c: add vmstate
6
XXX shouldn't be using vmstate_register
8
hw/i2c/omap_i2c.c | 35 +++++++++++++++++++++++++++++++++++
9
1 file changed, 35 insertions(+)
11
diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c
12
index 565a3cd..521bd5c 100644
13
--- a/hw/i2c/omap_i2c.c
14
+++ b/hw/i2c/omap_i2c.c
15
@@ -574,6 +574,40 @@ static const MemoryRegionOps omap_i2c_ops = {
16
.endianness = DEVICE_NATIVE_ENDIAN,
19
+static int omap_i2c_bus_post_load(void *opaque, int version_id)
21
+ OMAPI2CState *s = opaque;
22
+ omap_i2c_interrupts_update(s);
26
+static const VMStateDescription vmstate_omap_i2c = {
29
+ .minimum_version_id = 1,
30
+ .post_load = omap_i2c_bus_post_load,
31
+ .fields = (VMStateField[]) {
32
+ VMSTATE_UINT16(mask, OMAPI2CState),
33
+ VMSTATE_UINT16(stat, OMAPI2CState),
34
+ VMSTATE_UINT16(we, OMAPI2CState),
35
+ VMSTATE_UINT16(dma, OMAPI2CState),
36
+ VMSTATE_UINT16(count, OMAPI2CState),
37
+ VMSTATE_INT32(count_cur, OMAPI2CState),
38
+ VMSTATE_UINT16(sysc, OMAPI2CState),
39
+ VMSTATE_UINT16(control, OMAPI2CState),
40
+ VMSTATE_UINT16_ARRAY(own_addr, OMAPI2CState, 4),
41
+ VMSTATE_UINT16(slave_addr, OMAPI2CState),
42
+ VMSTATE_UINT8(sblock, OMAPI2CState),
43
+ VMSTATE_UINT8(divider, OMAPI2CState),
44
+ VMSTATE_UINT16_ARRAY(times, OMAPI2CState, 2),
45
+ VMSTATE_UINT16(test, OMAPI2CState),
46
+ VMSTATE_INT32(fifostart, OMAPI2CState),
47
+ VMSTATE_INT32(fifolen, OMAPI2CState),
48
+ VMSTATE_UINT8_ARRAY(fifo, OMAPI2CState, I2C_MAX_FIFO_SIZE),
49
+ VMSTATE_END_OF_LIST()
53
static int omap_i2c_init(SysBusDevice *sbd)
55
DeviceState *dev = DEVICE(sbd);
56
@@ -611,6 +645,7 @@ static void omap_i2c_class_init(ObjectClass *klass, void *data)
57
k->init = omap_i2c_init;
58
dc->props = omap_i2c_properties;
59
dc->reset = omap_i2c_reset;
60
+ dc->vmsd = &vmstate_omap_i2c;
63
static const TypeInfo omap_i2c_info = {