Message ID | 20240223124406.234509-5-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | usb cleanups: remove usb_bus_find(), extract sysbus-ohci to a separate file | expand |
On 23/02/2024 13.44, Paolo Bonzini wrote: > Once the Kconfig for hw/mips is cleaned up, it will be possible to build a > binary that does not include any USB host controller and therefore that > does not include the code guarded by CONFIG_USB. While the simpler > creation functions such as usb_create_simple can be inlined, this is not > true of usb_bus_find(). Remove it, replacing it with a search of the > single USB bus created by loongson3_virt_devices_init(). > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/mips/loongson3_virt.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c > index caedde2df00..b2a8b22b4ea 100644 > --- a/hw/mips/loongson3_virt.c > +++ b/hw/mips/loongson3_virt.c > @@ -447,8 +447,9 @@ static inline void loongson3_virt_devices_init(MachineState *machine, > > if (defaults_enabled() && object_class_by_name("pci-ohci")) { > pci_create_simple(pci_bus, -1, "pci-ohci"); > - usb_create_simple(usb_bus_find(-1), "usb-kbd"); > - usb_create_simple(usb_bus_find(-1), "usb-tablet"); > + Object *usb_bus = object_resolve_type_unambiguous(TYPE_USB_BUS, &error_abort); Please swap the "Object *usb_bus" and the "pci_create_simple" lines, so that the declaration is at the beginning of the block. Thomas
Paolo Bonzini <pbonzini@redhat.com> writes: > Once the Kconfig for hw/mips is cleaned up, it will be possible to build a > binary that does not include any USB host controller and therefore that > does not include the code guarded by CONFIG_USB. While the simpler > creation functions such as usb_create_simple can be inlined, this is not > true of usb_bus_find(). Remove it, replacing it with a search of the > single USB bus created by loongson3_virt_devices_init(). > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/mips/loongson3_virt.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c > index caedde2df00..b2a8b22b4ea 100644 > --- a/hw/mips/loongson3_virt.c > +++ b/hw/mips/loongson3_virt.c > @@ -447,8 +447,9 @@ static inline void loongson3_virt_devices_init(MachineState *machine, > > if (defaults_enabled() && object_class_by_name("pci-ohci")) { > pci_create_simple(pci_bus, -1, "pci-ohci"); > - usb_create_simple(usb_bus_find(-1), "usb-kbd"); > - usb_create_simple(usb_bus_find(-1), "usb-tablet"); > + Object *usb_bus = object_resolve_type_unambiguous(TYPE_USB_BUS, &error_abort); > + usb_create_simple(USB_BUS(usb_bus), "usb-kbd"); > + usb_create_simple(USB_BUS(usb_bus), "usb-tablet"); In the previous patches, you cast just once, like this: USBBus *usb_bus = USB_BUS(object_resolve_type_unambiguous(TYPE_USB_BUS, &error_abort)); usb_create_simple(usb_bus, "usb-kbd"); usb_create_simple(usb_bus, "usb-tablet"); Could you do that here, too? Same for the next few patches. > } > > pci_init_nic_devices(pci_bus, mc->default_nic);
diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c index caedde2df00..b2a8b22b4ea 100644 --- a/hw/mips/loongson3_virt.c +++ b/hw/mips/loongson3_virt.c @@ -447,8 +447,9 @@ static inline void loongson3_virt_devices_init(MachineState *machine, if (defaults_enabled() && object_class_by_name("pci-ohci")) { pci_create_simple(pci_bus, -1, "pci-ohci"); - usb_create_simple(usb_bus_find(-1), "usb-kbd"); - usb_create_simple(usb_bus_find(-1), "usb-tablet"); + Object *usb_bus = object_resolve_type_unambiguous(TYPE_USB_BUS, &error_abort); + usb_create_simple(USB_BUS(usb_bus), "usb-kbd"); + usb_create_simple(USB_BUS(usb_bus), "usb-tablet"); } pci_init_nic_devices(pci_bus, mc->default_nic);
Once the Kconfig for hw/mips is cleaned up, it will be possible to build a binary that does not include any USB host controller and therefore that does not include the code guarded by CONFIG_USB. While the simpler creation functions such as usb_create_simple can be inlined, this is not true of usb_bus_find(). Remove it, replacing it with a search of the single USB bus created by loongson3_virt_devices_init(). Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/mips/loongson3_virt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)