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: Michael Tokarev
Subject: Re: [PATCH] hw/mips: Improve the default USB settings in the loongson3-virt machine
Date: Thu, 8 Jun 2023 21:31:55 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

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.

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

Notes:

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

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).

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

/mjt



reply via email to

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