mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
i2c:smbus_slave: Add an SMBus vmstate structure
There is no vmstate handling for SMBus, so no device sitting on SMBus can have a state transfer that works reliably. So add it. Signed-off-by: Corey Minyard <cminyard@mvista.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
4ab2f2a8aa
commit
547db24a17
2 changed files with 39 additions and 3 deletions
|
@ -201,6 +201,24 @@ static void smbus_device_class_init(ObjectClass *klass, void *data)
|
|||
sc->send = smbus_i2c_send;
|
||||
}
|
||||
|
||||
bool smbus_vmstate_needed(SMBusDevice *dev)
|
||||
{
|
||||
return dev->mode != SMBUS_IDLE;
|
||||
}
|
||||
|
||||
const VMStateDescription vmstate_smbus_device = {
|
||||
.name = TYPE_SMBUS_DEVICE,
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_I2C_SLAVE(i2c, SMBusDevice),
|
||||
VMSTATE_INT32(mode, SMBusDevice),
|
||||
VMSTATE_INT32(data_len, SMBusDevice),
|
||||
VMSTATE_UINT8_ARRAY(data_buf, SMBusDevice, SMBUS_DATA_MAX_LEN),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
static const TypeInfo smbus_device_type_info = {
|
||||
.name = TYPE_SMBUS_DEVICE,
|
||||
.parent = TYPE_I2C_SLAVE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue