@samitouri / QOSamiQemu / commits / 43aa089b89

hw/i2c/aspeed_i2c: Convert to DEFINE_TYPES() with inlined TypeInfo

Replace the legacy type_register_static()/type_init() registration pattern with the modern DEFINE_TYPES() macro. Inline 9 standalone TypeInfo variables (aspeed_i2c_bus_info, aspeed_i2c_bus_slave_info, aspeed_i2c_info as abstract base, aspeed_2400_i2c_info, aspeed_2500_i2c_info, aspeed_2600_i2c_info, aspeed_1030_i2c_info and aspeed_2700_i2c_info) directly into the 'aspeed_i2c_types[]' array, removing the need for separate declarations. No functional change. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260601024959.2347639-23-jamin_lin@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com>

Jamin Lin committed Jun 1, 2026 at 02:50 UTC 43aa089b89d6e36e84013e348fbbcd10e69186dc
1 file changed +48 -65
hw/i2c/aspeed_i2c.c
+48 -65
@@ -1372,16 +1372,6 @@ static void aspeed_i2c_class_init(ObjectClass *klass, const void *data)
1372 dc->desc = "Aspeed I2C Controller";
1373 }
1374
1375 -static const TypeInfo aspeed_i2c_info = {
1376 - .name = TYPE_ASPEED_I2C,
1377 - .parent = TYPE_SYS_BUS_DEVICE,
1378 - .instance_init = aspeed_i2c_instance_init,
1379 - .instance_size = sizeof(AspeedI2CState),
1380 - .class_init = aspeed_i2c_class_init,
1381 - .class_size = sizeof(AspeedI2CClass),
1382 - .abstract = true,
1383 -};
1384 -
1375 static int aspeed_i2c_bus_new_slave_event(AspeedI2CBus *bus,
1376 enum i2c_event event)
1377 {
@@ -1500,13 +1490,6 @@ static void aspeed_i2c_bus_slave_class_init(ObjectClass *klass,
1490 sc->send_async = aspeed_i2c_bus_slave_send_async;
1491 }
1492
1503 -static const TypeInfo aspeed_i2c_bus_slave_info = {
1504 - .name = TYPE_ASPEED_I2C_BUS_SLAVE,
1505 - .parent = TYPE_I2C_SLAVE,
1506 - .instance_size = sizeof(AspeedI2CBusSlave),
1507 - .class_init = aspeed_i2c_bus_slave_class_init,
1508 -};
1509 -
1493 static void aspeed_i2c_bus_reset_hold(Object *obj, ResetType type)
1494 {
1495 AspeedI2CBus *s = ASPEED_I2C_BUS(obj);
@@ -1565,13 +1548,6 @@ static void aspeed_i2c_bus_class_init(ObjectClass *klass, const void *data)
1548 device_class_set_props(dc, aspeed_i2c_bus_properties);
1549 }
1550
1568 -static const TypeInfo aspeed_i2c_bus_info = {
1569 - .name = TYPE_ASPEED_I2C_BUS,
1570 - .parent = TYPE_SYS_BUS_DEVICE,
1571 - .instance_size = sizeof(AspeedI2CBus),
1572 - .class_init = aspeed_i2c_bus_class_init,
1573 -};
1574 -
1551 static qemu_irq aspeed_2400_i2c_bus_get_irq(AspeedI2CBus *bus)
1552 {
1553 return bus->controller->irq;
@@ -1605,12 +1581,6 @@ static void aspeed_2400_i2c_class_init(ObjectClass *klass, const void *data)
1581 aic->mem_size = 0x1000;
1582 }
1583
1608 -static const TypeInfo aspeed_2400_i2c_info = {
1609 - .name = TYPE_ASPEED_2400_I2C,
1610 - .parent = TYPE_ASPEED_I2C,
1611 - .class_init = aspeed_2400_i2c_class_init,
1612 -};
1613 -
1584 static qemu_irq aspeed_2500_i2c_bus_get_irq(AspeedI2CBus *bus)
1585 {
1586 return bus->controller->irq;
@@ -1640,12 +1610,6 @@ static void aspeed_2500_i2c_class_init(ObjectClass *klass, const void *data)
1610 aic->mem_size = 0x1000;
1611 }
1612
1643 -static const TypeInfo aspeed_2500_i2c_info = {
1644 - .name = TYPE_ASPEED_2500_I2C,
1645 - .parent = TYPE_ASPEED_I2C,
1646 - .class_init = aspeed_2500_i2c_class_init,
1647 -};
1648 -
1613 static qemu_irq aspeed_2600_i2c_bus_get_irq(AspeedI2CBus *bus)
1614 {
1615 return bus->irq;
@@ -1669,12 +1633,6 @@ static void aspeed_2600_i2c_class_init(ObjectClass *klass, const void *data)
1633 aic->mem_size = 0x1000;
1634 }
1635
1672 -static const TypeInfo aspeed_2600_i2c_info = {
1673 - .name = TYPE_ASPEED_2600_I2C,
1674 - .parent = TYPE_ASPEED_I2C,
1675 - .class_init = aspeed_2600_i2c_class_init,
1676 -};
1677 -
1636 static void aspeed_1030_i2c_class_init(ObjectClass *klass, const void *data)
1637 {
1638 DeviceClass *dc = DEVICE_CLASS(klass);
@@ -1693,12 +1651,6 @@ static void aspeed_1030_i2c_class_init(ObjectClass *klass, const void *data)
1651 aic->mem_size = 0x10000;
1652 }
1653
1696 -static const TypeInfo aspeed_1030_i2c_info = {
1697 - .name = TYPE_ASPEED_1030_I2C,
1698 - .parent = TYPE_ASPEED_I2C,
1699 - .class_init = aspeed_1030_i2c_class_init,
1700 -};
1701 -
1654 static void aspeed_2700_i2c_class_init(ObjectClass *klass, const void *data)
1655 {
1656 DeviceClass *dc = DEVICE_CLASS(klass);
@@ -1720,25 +1672,56 @@ static void aspeed_2700_i2c_class_init(ObjectClass *klass, const void *data)
1672 aic->has_dma64 = true;
1673 }
1674
1723 -static const TypeInfo aspeed_2700_i2c_info = {
1724 - .name = TYPE_ASPEED_2700_I2C,
1725 - .parent = TYPE_ASPEED_I2C,
1726 - .class_init = aspeed_2700_i2c_class_init,
1675 +static const TypeInfo aspeed_i2c_types[] = {
1676 + {
1677 + .name = TYPE_ASPEED_I2C_BUS,
1678 + .parent = TYPE_SYS_BUS_DEVICE,
1679 + .instance_size = sizeof(AspeedI2CBus),
1680 + .class_init = aspeed_i2c_bus_class_init,
1681 + },
1682 + {
1683 + .name = TYPE_ASPEED_I2C_BUS_SLAVE,
1684 + .parent = TYPE_I2C_SLAVE,
1685 + .instance_size = sizeof(AspeedI2CBusSlave),
1686 + .class_init = aspeed_i2c_bus_slave_class_init,
1687 + },
1688 + {
1689 + .name = TYPE_ASPEED_I2C,
1690 + .parent = TYPE_SYS_BUS_DEVICE,
1691 + .instance_init = aspeed_i2c_instance_init,
1692 + .instance_size = sizeof(AspeedI2CState),
1693 + .class_init = aspeed_i2c_class_init,
1694 + .class_size = sizeof(AspeedI2CClass),
1695 + .abstract = true,
1696 + },
1697 + {
1698 + .name = TYPE_ASPEED_1030_I2C,
1699 + .parent = TYPE_ASPEED_I2C,
1700 + .class_init = aspeed_1030_i2c_class_init,
1701 + },
1702 + {
1703 + .name = TYPE_ASPEED_2400_I2C,
1704 + .parent = TYPE_ASPEED_I2C,
1705 + .class_init = aspeed_2400_i2c_class_init,
1706 + },
1707 + {
1708 + .name = TYPE_ASPEED_2500_I2C,
1709 + .parent = TYPE_ASPEED_I2C,
1710 + .class_init = aspeed_2500_i2c_class_init,
1711 + },
1712 + {
1713 + .name = TYPE_ASPEED_2600_I2C,
1714 + .parent = TYPE_ASPEED_I2C,
1715 + .class_init = aspeed_2600_i2c_class_init,
1716 + },
1717 + {
1718 + .name = TYPE_ASPEED_2700_I2C,
1719 + .parent = TYPE_ASPEED_I2C,
1720 + .class_init = aspeed_2700_i2c_class_init,
1721 + }
1722 };
1723
1729 -static void aspeed_i2c_register_types(void)
1730 -{
1731 - type_register_static(&aspeed_i2c_bus_info);
1732 - type_register_static(&aspeed_i2c_bus_slave_info);
1733 - type_register_static(&aspeed_i2c_info);
1734 - type_register_static(&aspeed_2400_i2c_info);
1735 - type_register_static(&aspeed_2500_i2c_info);
1736 - type_register_static(&aspeed_2600_i2c_info);
1737 - type_register_static(&aspeed_1030_i2c_info);
1738 - type_register_static(&aspeed_2700_i2c_info);
1739 -}
1740 -
1741 -type_init(aspeed_i2c_register_types)
1724 +DEFINE_TYPES(aspeed_i2c_types)
1725
1726
1727 I2CBus *aspeed_i2c_get_bus(AspeedI2CState *s, int busnr)