Revision 0211364d

b/hw/pxa2xx.c
1452 1452
    pxa2xx_i2c_write,
1453 1453
};
1454 1454

  
1455
static void pxa2xx_i2c_save(QEMUFile *f, void *opaque)
1456
{
1457
    PXA2xxI2CState *s = (PXA2xxI2CState *) opaque;
1458

  
1459
    qemu_put_be16s(f, &s->control);
1460
    qemu_put_be16s(f, &s->status);
1461
    qemu_put_8s(f, &s->ibmr);
1462
    qemu_put_8s(f, &s->data);
1463

  
1464
    i2c_slave_save(f, &s->slave->i2c);
1465
}
1466

  
1467
static int pxa2xx_i2c_load(QEMUFile *f, void *opaque, int version_id)
1468
{
1469
    PXA2xxI2CState *s = (PXA2xxI2CState *) opaque;
1470

  
1471
    if (version_id != 1)
1472
        return -EINVAL;
1473

  
1474
    qemu_get_be16s(f, &s->control);
1475
    qemu_get_be16s(f, &s->status);
1476
    qemu_get_8s(f, &s->ibmr);
1477
    qemu_get_8s(f, &s->data);
1455
static const VMStateDescription vmstate_pxa2xx_i2c_slave = {
1456
    .name = "pxa2xx_i2c_slave",
1457
    .version_id = 1,
1458
    .minimum_version_id = 1,
1459
    .minimum_version_id_old = 1,
1460
    .fields      = (VMStateField []) {
1461
        VMSTATE_I2C_SLAVE(i2c, PXA2xxI2CSlaveState),
1462
        VMSTATE_END_OF_LIST()
1463
    }
1464
};
1478 1465

  
1479
    i2c_slave_load(f, &s->slave->i2c);
1480
    return 0;
1481
}
1466
static const VMStateDescription vmstate_pxa2xx_i2c = {
1467
    .name = "pxa2xx_i2c",
1468
    .version_id = 1,
1469
    .minimum_version_id = 1,
1470
    .minimum_version_id_old = 1,
1471
    .fields      = (VMStateField []) {
1472
        VMSTATE_UINT16(control, PXA2xxI2CState),
1473
        VMSTATE_UINT16(status, PXA2xxI2CState),
1474
        VMSTATE_UINT8(ibmr, PXA2xxI2CState),
1475
        VMSTATE_UINT8(data, PXA2xxI2CState),
1476
        VMSTATE_STRUCT_POINTER(slave, PXA2xxI2CState,
1477
                               vmstate_pxa2xx_i2c, PXA2xxI2CSlaveState *),
1478
        VMSTATE_END_OF_LIST()
1479
    }
1480
};
1482 1481

  
1483 1482
static int pxa2xx_i2c_slave_init(i2c_slave *i2c)
1484 1483
{
......
1516 1515
    cpu_register_physical_memory(base & ~region_size,
1517 1516
                    region_size + 1, iomemtype);
1518 1517

  
1519
    register_savevm("pxa2xx_i2c", base, 1,
1520
                    pxa2xx_i2c_save, pxa2xx_i2c_load, s);
1518
    vmstate_register(base, &vmstate_pxa2xx_i2c, s);
1521 1519

  
1522 1520
    return s;
1523 1521
}

Also available in: Unified diff