@samitouri / QOSamiQemu / commits / da8c8eb466

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