qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/mips: Improve the default USB settings in the loongson3-v


From: Thomas Huth
Subject: Re: [PATCH] hw/mips: Improve the default USB settings in the loongson3-virt machine
Date: Wed, 21 Jun 2023 09:24:16 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

On 08/06/2023 20.31, Michael Tokarev wrote:
07.06.2023 13:26, Thomas Huth wrote:
On 25/05/2023 08.47, Thomas Huth wrote:
It's possible to compile QEMU without the USB devices (e.g. when using
"--without-default-devices" as option for the "configure" script).
To be still able to run the loongson3-virt machine in default mode with
such a QEMU binary, we have to check here for the availability of the
devices first before instantiating them.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
  The alternative would be to use a "#ifdef CONFIG_USB_OHCI_PCI" etc.
  ... not sure what is nicer ... what do you think?

  hw/mips/loongson3_virt.c | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c
index 216812f660..a0afb17030 100644
--- a/hw/mips/loongson3_virt.c
+++ b/hw/mips/loongson3_virt.c
@@ -447,10 +447,14 @@ static inline void loongson3_virt_devices_init(MachineState *machine,
      pci_vga_init(pci_bus);
-    if (defaults_enabled()) {
+    if (defaults_enabled() && module_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");
+        if (module_object_class_by_name("usb-kbd")) {
+            usb_create_simple(usb_bus_find(-1), "usb-kbd");
+        }
+        if (module_object_class_by_name("usb-tablet")) {
+            usb_create_simple(usb_bus_find(-1), "usb-tablet");
+        }

It looks like kbd/tablet don't need to have an if around, because
hw/usb/usb-hid.c is always compiled when CONFIG_USB is enabled,
and enabling CONFIG_USB_OHCI automatically selects CONFIG_USB.

Oh, right! So this can be simplified, indeed.

I guess this whole code can be guarded by #if CONFIG_USB_OHCI..#endif,
instead of using runtime checking of device availability.

Yes, that's the alternative ... I'll respin the patch with that to see how it looks like.

Notes:

Other places don't check if ohci or other usb controllers are available.

Those likely use "select" instead of "imply" in their Kconfig, so the OHCI controller is always included.

We have TYPE_PCI_OHCI #define which isn't used in places where pci-ohci
is requested, - probably need to move it to a common header (it is
defined in hw/usb/hcd-ohci-pci.c now).

Yes, sounds like a cleanup that could be done in an additional patch.

roms/config.seabios-128k turns USB_OHCI off.

That's the config of the seabios ROM - not (directly) related to the config of the QEMU binaries.

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]