On 9/23/24 11:30, Bernhard Beschow wrote:
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/usb/hcd-ehci-sysbus.c | 118 +++++++++++++++++----------------------
> 1 file changed, 50 insertions(+), 68 deletions(-)
>
> diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c
> index 2b1652f7a8..87a3bebe3e 100644
> --- a/hw/usb/hcd-ehci-sysbus.c
> +++ b/hw/usb/hcd-ehci-sysbus.c
> @@ -19,7 +19,6 @@
> #include "hw/qdev-properties.h"
> #include "hw/usb/hcd-ehci.h"
> #include "migration/vmstate.h"
> -#include "qemu/module.h"
>
> static const VMStateDescription vmstate_ehci_sysbus = {
> .name = "ehci-sysbus",
> @@ -97,17 +96,6 @@ static void ehci_sysbus_class_init(ObjectClass *klass, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_type_info = {
> - .name = TYPE_SYS_BUS_EHCI,
> - .parent = TYPE_SYS_BUS_DEVICE,
> - .instance_size = sizeof(EHCISysBusState),
> - .instance_init = ehci_sysbus_init,
> - .instance_finalize = ehci_sysbus_finalize,
> - .abstract = true,
> - .class_init = ehci_sysbus_class_init,
> - .class_size = sizeof(SysBusEHCIClass),
> -};
> -
> static void ehci_platform_class_init(ObjectClass *oc, void *data)
> {
> SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
> @@ -118,12 +106,6 @@ static void ehci_platform_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_platform_type_info = {
> - .name = TYPE_PLATFORM_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_platform_class_init,
> -};
> -
> static void ehci_exynos4210_class_init(ObjectClass *oc, void *data)
> {
> SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
> @@ -134,12 +116,6 @@ static void ehci_exynos4210_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_exynos4210_type_info = {
> - .name = TYPE_EXYNOS4210_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_exynos4210_class_init,
> -};
> -
> static void ehci_aw_h3_class_init(ObjectClass *oc, void *data)
> {
> SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
> @@ -150,12 +126,6 @@ static void ehci_aw_h3_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_aw_h3_type_info = {
> - .name = TYPE_AW_H3_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_aw_h3_class_init,
> -};
> -
> static void ehci_npcm7xx_class_init(ObjectClass *oc, void *data)
> {
> SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
> @@ -168,12 +138,6 @@ static void ehci_npcm7xx_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_npcm7xx_type_info = {
> - .name = TYPE_NPCM7XX_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_npcm7xx_class_init,
> -};
> -
> static void ehci_tegra2_class_init(ObjectClass *oc, void *data)
> {
> SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
> @@ -184,12 +148,6 @@ static void ehci_tegra2_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_tegra2_type_info = {
> - .name = TYPE_TEGRA2_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_tegra2_class_init,
> -};
> -
> static void ehci_ppc4xx_init(Object *o)
> {
> EHCISysBusState *s = SYS_BUS_EHCI(o);
> @@ -207,13 +165,6 @@ static void ehci_ppc4xx_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_ppc4xx_type_info = {
> - .name = TYPE_PPC4xx_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .class_init = ehci_ppc4xx_class_init,
> - .instance_init = ehci_ppc4xx_init,
> -};
> -
> /*
> * Faraday FUSBH200 USB 2.0 EHCI
> */
> @@ -282,24 +233,55 @@ static void fusbh200_ehci_class_init(ObjectClass *oc, void *data)
> set_bit(DEVICE_CATEGORY_USB, dc->categories);
> }
>
> -static const TypeInfo ehci_fusbh200_type_info = {
> - .name = TYPE_FUSBH200_EHCI,
> - .parent = TYPE_SYS_BUS_EHCI,
> - .instance_size = sizeof(FUSBH200EHCIState),
> - .instance_init = fusbh200_ehci_init,
> - .class_init = fusbh200_ehci_class_init,
> +static const TypeInfo types[] = {
> + {
> + .name = TYPE_SYS_BUS_EHCI,
> + .parent = TYPE_SYS_BUS_DEVICE,
> + .instance_size = sizeof(EHCISysBusState),
> + .instance_init = ehci_sysbus_init,
> + .instance_finalize = ehci_sysbus_finalize,
> + .abstract = true,
> + .class_init = ehci_sysbus_class_init,
> + .class_size = sizeof(SysBusEHCIClass),
> + },
> + {
> + .name = TYPE_PLATFORM_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_platform_class_init,
> + },
> + {
> + .name = TYPE_EXYNOS4210_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_exynos4210_class_init,
> + },
> + {
> + .name = TYPE_AW_H3_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_aw_h3_class_init,
> + },
> + {
> + .name = TYPE_NPCM7XX_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_npcm7xx_class_init,
> + },
> + {
> + .name = TYPE_TEGRA2_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_tegra2_class_init,
> + },
> + {
> + .name = TYPE_PPC4xx_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .class_init = ehci_ppc4xx_class_init,
> + .instance_init = ehci_ppc4xx_init,
> + },
> + {
> + .name = TYPE_FUSBH200_EHCI,
> + .parent = TYPE_SYS_BUS_EHCI,
> + .instance_size = sizeof(FUSBH200EHCIState),
> + .instance_init = fusbh200_ehci_init,
> + .class_init = fusbh200_ehci_class_init,
> + },
> };
>
> -static void ehci_sysbus_register_types(void)
> -{
> - type_register_static(&ehci_type_info);
> - type_register_static(&ehci_platform_type_info);
> - type_register_static(&ehci_exynos4210_type_info);
> - type_register_static(&ehci_aw_h3_type_info);
> - type_register_static(&ehci_npcm7xx_type_info);
> - type_register_static(&ehci_tegra2_type_info);
> - type_register_static(&ehci_ppc4xx_type_info);
> - type_register_static(&ehci_fusbh200_type_info);
> -}
> -
> -type_init(ehci_sysbus_register_types)
> +DEFINE_TYPES(types)