Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- hw/arm/stellaris.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index afbc83f1e6..284b95005f 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -607,8 +607,11 @@ static void stellaris_i2c_write(void *opaque, hwaddr offset, stellaris_i2c_update(s); } -static void stellaris_i2c_reset(stellaris_i2c_state *s) +static void stellaris_i2c_reset_exit(Object *obj) { + stellaris_i2c_state *s = STELLARIS_I2C(obj); + + /* ??? For now we only implement the master interface. */ if (s->mcs & STELLARIS_I2C_MCS_BUSBSY) i2c_end_transfer(s->bus); @@ -658,8 +661,6 @@ static void stellaris_i2c_init(Object *obj) memory_region_init_io(&s->iomem, obj, &stellaris_i2c_ops, s, "i2c", 0x1000); sysbus_init_mmio(sbd, &s->iomem); - /* ??? For now we only implement the master interface. */ - stellaris_i2c_reset(s); } /* Analogue to Digital Converter. This is only partially implemented, @@ -1382,7 +1383,9 @@ type_init(stellaris_machine_init) static void stellaris_i2c_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); + rc->phases.exit = stellaris_i2c_reset_exit; dc->vmsd = &vmstate_stellaris_i2c; } -- 2.41.0