Message ID | 20240223124406.234509-8-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | usb cleanups: remove usb_bus_find(), extract sysbus-ohci to a separate file | expand |
On 23/2/24 13:44, Paolo Bonzini wrote: > With --without-default-devices it is 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 on the machine. > > Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/ppc/spapr.c | 7 +++---- > hw/ppc/Kconfig | 1 + > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 0d72d286d80..44d339982da 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -3024,10 +3024,9 @@ static void spapr_machine_init(MachineState *machine) > } > > if (has_vga) { Pre-existing, don't we want defaults_enabled() instead of has_vga here? > - USBBus *usb_bus = usb_bus_find(-1); > - > - usb_create_simple(usb_bus, "usb-kbd"); > - usb_create_simple(usb_bus, "usb-mouse"); > + 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-mouse"); > } > } > > diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig > index 9841c2c9690..d497fa2b825 100644 > --- a/hw/ppc/Kconfig > +++ b/hw/ppc/Kconfig > @@ -1,5 +1,6 @@ > config PSERIES > bool > + imply USB_OHCI_PCI > imply PCI_DEVICES > imply TEST_DEVICES > imply VIRTIO_VGA Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On Fri, Feb 23, 2024 at 6:33 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > On 23/2/24 13:44, Paolo Bonzini wrote: > > With --without-default-devices it is 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 on the machine. > > > > Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > > --- > > hw/ppc/spapr.c | 7 +++---- > > hw/ppc/Kconfig | 1 + > > 2 files changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 0d72d286d80..44d339982da 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -3024,10 +3024,9 @@ static void spapr_machine_init(MachineState *machine) > > } > > > > if (has_vga) { > > Pre-existing, don't we want defaults_enabled() instead of has_vga here? Yeah, but I am not sure it can be changed since pseries machine types are versioned. Paolo
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 0d72d286d80..44d339982da 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3024,10 +3024,9 @@ static void spapr_machine_init(MachineState *machine) } if (has_vga) { - USBBus *usb_bus = usb_bus_find(-1); - - usb_create_simple(usb_bus, "usb-kbd"); - usb_create_simple(usb_bus, "usb-mouse"); + 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-mouse"); } } diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig index 9841c2c9690..d497fa2b825 100644 --- a/hw/ppc/Kconfig +++ b/hw/ppc/Kconfig @@ -1,5 +1,6 @@ config PSERIES bool + imply USB_OHCI_PCI imply PCI_DEVICES imply TEST_DEVICES imply VIRTIO_VGA
With --without-default-devices it is 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 on the machine. Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/ppc/spapr.c | 7 +++---- hw/ppc/Kconfig | 1 + 2 files changed, 4 insertions(+), 4 deletions(-)