From: Jamin Lin <jamin_lin@aspeedtech.com>
To: "Paolo Bonzini" <pbonzini@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Cédric Le Goater" <clg@kaod.org>,
"Steven Lee" <steven_lee@aspeedtech.com>,
"Troy Lee" <leetroy@gmail.com>,
"Andrew Jeffery" <andrew@codeconstruct.com.au>,
"Joel Stanley" <joel@jms.id.au>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"open list:All patches CC here" <qemu-devel@nongnu.org>,
"open list:ARM TCG CPUs" <qemu-arm@nongnu.org>
Cc: Jamin Lin <jamin_lin@aspeedtech.com>,
Troy Lee <troy_lee@aspeedtech.com>,
Kane Chen <kane_chen@aspeedtech.com>,
"nabihestefan@google.com" <nabihestefan@google.com>,
"komlodi@google.com" <komlodi@google.com>
Subject: [PATCH v7 02/22] hw/i3c/aspeed_i3c: Switch to DEFINE_TYPES() and align parent_obj naming
Date: Wed, 25 Feb 2026 02:12:02 +0000 [thread overview]
Message-ID: <20260225021158.1586584-3-jamin_lin@aspeedtech.com> (raw)
In-Reply-To: <20260225021158.1586584-1-jamin_lin@aspeedtech.com>
Following review feedback, update the Aspeed I3C device to use the
DEFINE_TYPES() macro instead of an explicit type registration function.
DEFINE_TYPES() is the currently recommended approach in QEMU for
registering multiple TypeInfo entries and avoids boilerplate
type_init() code.
Additionally, rename embedded SysBusDevice fields from "parent" to
"parent_obj" to comply with the QEMU coding style guidelines for QOM
objects.
No functional change.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
include/hw/i3c/aspeed_i3c.h | 16 ++++++----------
hw/i3c/aspeed_i3c.c | 35 +++++++++++++++--------------------
2 files changed, 21 insertions(+), 30 deletions(-)
diff --git a/include/hw/i3c/aspeed_i3c.h b/include/hw/i3c/aspeed_i3c.h
index 7a984e1f01..bd0ffc84ea 100644
--- a/include/hw/i3c/aspeed_i3c.h
+++ b/include/hw/i3c/aspeed_i3c.h
@@ -21,28 +21,24 @@ OBJECT_DECLARE_TYPE(AspeedI3CState, AspeedI3CClass, ASPEED_I3C)
#define ASPEED_I3C_NR_DEVICES 6
OBJECT_DECLARE_SIMPLE_TYPE(AspeedI3CDevice, ASPEED_I3C_DEVICE)
-typedef struct AspeedI3CDevice {
- /* <private> */
- SysBusDevice parent;
+struct AspeedI3CDevice {
+ SysBusDevice parent_obj;
- /* <public> */
MemoryRegion mr;
qemu_irq irq;
uint8_t id;
uint32_t regs[ASPEED_I3C_DEVICE_NR_REGS];
-} AspeedI3CDevice;
+};
-typedef struct AspeedI3CState {
- /* <private> */
- SysBusDevice parent;
+struct AspeedI3CState {
+ SysBusDevice parent_obj;
- /* <public> */
MemoryRegion iomem;
MemoryRegion iomem_container;
qemu_irq irq;
uint32_t regs[ASPEED_I3C_NR_REGS];
AspeedI3CDevice devices[ASPEED_I3C_NR_DEVICES];
-} AspeedI3CState;
+};
#endif /* ASPEED_I3C_H */
diff --git a/hw/i3c/aspeed_i3c.c b/hw/i3c/aspeed_i3c.c
index fff259ff66..e7cdfbfdbd 100644
--- a/hw/i3c/aspeed_i3c.c
+++ b/hw/i3c/aspeed_i3c.c
@@ -337,13 +337,6 @@ static void aspeed_i3c_device_class_init(ObjectClass *klass, const void *data)
device_class_set_props(dc, aspeed_i3c_device_properties);
}
-static const TypeInfo aspeed_i3c_device_info = {
- .name = TYPE_ASPEED_I3C_DEVICE,
- .parent = TYPE_SYS_BUS_DEVICE,
- .instance_size = sizeof(AspeedI3CDevice),
- .class_init = aspeed_i3c_device_class_init,
-};
-
static const VMStateDescription vmstate_aspeed_i3c = {
.name = TYPE_ASPEED_I3C,
.version_id = 1,
@@ -366,18 +359,20 @@ static void aspeed_i3c_class_init(ObjectClass *klass, const void *data)
dc->vmsd = &vmstate_aspeed_i3c;
}
-static const TypeInfo aspeed_i3c_info = {
- .name = TYPE_ASPEED_I3C,
- .parent = TYPE_SYS_BUS_DEVICE,
- .instance_init = aspeed_i3c_instance_init,
- .instance_size = sizeof(AspeedI3CState),
- .class_init = aspeed_i3c_class_init,
+static const TypeInfo aspeed_i3c_types[] = {
+ {
+ .name = TYPE_ASPEED_I3C,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_init = aspeed_i3c_instance_init,
+ .instance_size = sizeof(AspeedI3CState),
+ .class_init = aspeed_i3c_class_init,
+ },
+ {
+ .name = TYPE_ASPEED_I3C_DEVICE,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(AspeedI3CDevice),
+ .class_init = aspeed_i3c_device_class_init,
+ },
};
-static void aspeed_i3c_register_types(void)
-{
- type_register_static(&aspeed_i3c_device_info);
- type_register_static(&aspeed_i3c_info);
-}
-
-type_init(aspeed_i3c_register_types);
+DEFINE_TYPES(aspeed_i3c_types)
--
2.43.0
next prev parent reply other threads:[~2026-02-25 2:12 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-25 2:11 [PATCH v7 00/22] i3c: aspeed: Add I3C support Jamin Lin
2026-02-25 2:12 ` [PATCH v7 01/22] hw/misc/aspeed_i3c: Move to i3c directory Jamin Lin
2026-02-25 2:12 ` Jamin Lin [this message]
2026-02-25 10:47 ` [PATCH v7 02/22] hw/i3c/aspeed_i3c: Switch to DEFINE_TYPES() and align parent_obj naming Cédric Le Goater
2026-02-25 2:12 ` [PATCH v7 03/22] hw/i3c: Add bus support Jamin Lin
2026-02-27 2:23 ` Jithu Joseph
2026-02-27 7:51 ` Cédric Le Goater
2026-02-27 19:58 ` Jithu Joseph
2026-03-02 3:36 ` Jamin Lin
2026-02-27 9:47 ` Cédric Le Goater
2026-03-02 1:31 ` Jamin Lin
2026-02-27 20:27 ` Jithu Joseph
2026-02-25 2:12 ` [PATCH v7 04/22] hw/i3c: Split DesignWare I3C out of Aspeed I3C Jamin Lin
2026-02-25 2:12 ` [PATCH v7 05/22] hw/i3c/dw-i3c: Add more register fields Jamin Lin
2026-02-25 2:12 ` [PATCH v7 06/22] hw/i3c/aspeed_i3c: " Jamin Lin
2026-02-25 2:12 ` [PATCH v7 07/22] hw/i3c/dw-i3c: Add more reset values Jamin Lin
2026-02-25 2:12 ` [PATCH v7 08/22] hw/i3c/aspeed_i3c: Add register RO field masks Jamin Lin
2026-02-25 2:12 ` [PATCH v7 09/22] hw/i3c/dw-i3c: " Jamin Lin
2026-02-25 2:12 ` [PATCH v7 10/22] hw/i3c/dw-i3c: Treat more registers as read-as-zero Jamin Lin
2026-02-25 2:12 ` [PATCH v7 11/22] hw/i3c/dw-i3c: Use 32 bits on MMIO writes Jamin Lin
2026-02-25 2:12 ` [PATCH v7 12/22] hw/i3c/dw-i3c: Add IRQ MMIO behavior Jamin Lin
2026-02-25 2:12 ` [PATCH v7 13/22] hw/i3c/dw-i3c: Add data TX and RX Jamin Lin
2026-02-27 9:56 ` Cédric Le Goater
2026-03-02 3:33 ` Jamin Lin
2026-02-25 2:12 ` [PATCH v7 14/22] hw/i3c/dw-i3c: Add IBI handling Jamin Lin
2026-02-25 2:12 ` [PATCH v7 15/22] hw/i3c/dw-i3c: Add ctrl MMIO handling Jamin Lin
2026-02-25 2:12 ` [PATCH v7 16/22] hw/i3c/dw-i3c: Add controller resets Jamin Lin
2026-02-25 2:12 ` [PATCH v7 17/22] hw/i3c/aspeed: Add I3C bus get function Jamin Lin
2026-02-25 2:12 ` [PATCH v7 18/22] hw/i3c: Add Mock target Jamin Lin
2026-02-27 1:43 ` Jithu Joseph
2026-02-27 7:52 ` Cédric Le Goater
2026-02-27 19:49 ` Jithu Joseph
2026-02-28 6:30 ` Cédric Le Goater
2026-03-02 3:35 ` Jamin Lin
2026-02-27 9:58 ` Cédric Le Goater
2026-03-02 3:34 ` Jamin Lin
2026-02-27 20:28 ` Jithu Joseph
2026-02-25 2:12 ` [PATCH v7 19/22] hw/arm/aspeed: Build with I3C_DEVICES Jamin Lin
2026-02-25 2:12 ` [PATCH v7 20/22] hw/i3c: Add hotplug support Jamin Lin
2026-02-25 2:12 ` [PATCH v7 21/22] tests/functional/arm/test_aspeed_ast2600_sdk: Add i3c functional test Jamin Lin
2026-02-25 10:47 ` Cédric Le Goater
2026-02-25 2:12 ` [PATCH v7 22/22] MAINTAINERS: Add I3C maintainers and reviewer Jamin Lin
2026-02-27 2:33 ` [PATCH v7 00/22] i3c: aspeed: Add I3C support Jithu Joseph
2026-02-27 7:53 ` Cédric Le Goater
2026-02-27 20:03 ` Jithu Joseph
2026-02-28 6:32 ` Cédric Le Goater
2026-02-27 8:10 ` Cédric Le Goater
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260225021158.1586584-3-jamin_lin@aspeedtech.com \
--to=jamin_lin@aspeedtech.com \
--cc=andrew@codeconstruct.com.au \
--cc=berrange@redhat.com \
--cc=clg@kaod.org \
--cc=joel@jms.id.au \
--cc=kane_chen@aspeedtech.com \
--cc=komlodi@google.com \
--cc=leetroy@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=nabihestefan@google.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=steven_lee@aspeedtech.com \
--cc=troy_lee@aspeedtech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.