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)