hw/i2c/aspeed_i2c: convert to use Resettable interface
Replace the legacy reset callback registered via device_class_set_legacy_reset() with the Resettable interface. Signed-off-by: Kane Chen <kane_chen@aspeedtech.com> Reviewed-by: Jamin Lin <jamin_lin@aspeedtech.com> Link: https://lore.kernel.org/qemu-devel/20260525044129.3133916-24-kane_chen@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
Kane Chen committed
May 25, 2026 at 04:42 UTC
da8c8eb4664b995f82fc8c2ce3c0406be08cd63b
1 file changed
+8
-6
hw/i2c/aspeed_i2c.c
+8
-6
@@ -1160,9 +1160,9 @@ static const VMStateDescription aspeed_i2c_vmstate = {
1160
}
1161
};
1162
1163
-static void aspeed_i2c_reset(DeviceState *dev)
1163
+static void aspeed_i2c_reset_hold(Object *obj, ResetType type)
1164
{
1165
- AspeedI2CState *s = ASPEED_I2C(dev);
1165
+ AspeedI2CState *s = ASPEED_I2C(obj);
1166
1167
s->intr_status = 0;
1168
}
@@ -1363,9 +1363,10 @@ static const Property aspeed_i2c_properties[] = {
1363
static void aspeed_i2c_class_init(ObjectClass *klass, const void *data)
1364
{
1365
DeviceClass *dc = DEVICE_CLASS(klass);
1366
+ ResettableClass *rc = RESETTABLE_CLASS(klass);
1367
1368
dc->vmsd = &aspeed_i2c_vmstate;
1368
- device_class_set_legacy_reset(dc, aspeed_i2c_reset);
1369
+ rc->phases.hold = aspeed_i2c_reset_hold;
1370
device_class_set_props(dc, aspeed_i2c_properties);
1371
dc->realize = aspeed_i2c_realize;
1372
dc->desc = "Aspeed I2C Controller";
@@ -1506,9 +1507,9 @@ static const TypeInfo aspeed_i2c_bus_slave_info = {
1507
.class_init = aspeed_i2c_bus_slave_class_init,
1508
};
1509
1509
-static void aspeed_i2c_bus_reset(DeviceState *dev)
1510
+static void aspeed_i2c_bus_reset_hold(Object *obj, ResetType type)
1511
{
1511
- AspeedI2CBus *s = ASPEED_I2C_BUS(dev);
1512
+ AspeedI2CBus *s = ASPEED_I2C_BUS(obj);
1513
1514
memset(s->regs, 0, sizeof(s->regs));
1515
s->pending_intr_sts = 0;
@@ -1556,10 +1557,11 @@ static const Property aspeed_i2c_bus_properties[] = {
1557
static void aspeed_i2c_bus_class_init(ObjectClass *klass, const void *data)
1558
{
1559
DeviceClass *dc = DEVICE_CLASS(klass);
1560
+ ResettableClass *rc = RESETTABLE_CLASS(klass);
1561
1562
dc->desc = "Aspeed I2C Bus";
1563
dc->realize = aspeed_i2c_bus_realize;
1562
- device_class_set_legacy_reset(dc, aspeed_i2c_bus_reset);
1564
+ rc->phases.hold = aspeed_i2c_bus_reset_hold;
1565
device_class_set_props(dc, aspeed_i2c_bus_properties);
1566
}
1567