Message ID | 20230621074134.82781-1-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | [v2] hw/mips: Improve the default USB settings in the loongson3-virt machine | expand |
On 21/06/2023 09.41, 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 > USB devices first before instantiating them. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > v2: Use #ifdef instead of runtime check > > hw/mips/loongson3_virt.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c > index 216812f660..3094413eea 100644 > --- a/hw/mips/loongson3_virt.c > +++ b/hw/mips/loongson3_virt.c > @@ -51,6 +51,7 @@ > #include "sysemu/reset.h" > #include "sysemu/runstate.h" > #include "qemu/error-report.h" > +#include CONFIG_DEVICES > > #define PM_CNTL_MODE 0x10 > > @@ -447,11 +448,13 @@ static inline void loongson3_virt_devices_init(MachineState *machine, > > pci_vga_init(pci_bus); > > +#ifdef CONFIG_USB_OHCI_PCI > if (defaults_enabled()) { > 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"); > } > +#endif > > for (i = 0; i < nb_nics; i++) { > NICInfo *nd = &nd_table[i]; Ping? Thomas
Hi Thomas, On 21/6/23 09:41, 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 > USB devices first before instantiating them. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > v2: Use #ifdef instead of runtime check > > hw/mips/loongson3_virt.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c > index 216812f660..3094413eea 100644 > --- a/hw/mips/loongson3_virt.c > +++ b/hw/mips/loongson3_virt.c > @@ -51,6 +51,7 @@ > #include "sysemu/reset.h" > #include "sysemu/runstate.h" > #include "qemu/error-report.h" > +#include CONFIG_DEVICES I'm a but reluctant to include CONFIG_DEVICES. > +#ifdef CONFIG_USB_OHCI_PCI > if (defaults_enabled()) { What about: if (defaults_enabled() && object_class_by_name(TYPE_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"); > } > +#endif
13.07.2023 13:09, Philippe Mathieu-Daudé wrote: > Hi Thomas, > > On 21/6/23 09:41, 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 >> USB devices first before instantiating them. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> v2: Use #ifdef instead of runtime check >> >> hw/mips/loongson3_virt.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c >> index 216812f660..3094413eea 100644 >> --- a/hw/mips/loongson3_virt.c >> +++ b/hw/mips/loongson3_virt.c >> @@ -51,6 +51,7 @@ >> #include "sysemu/reset.h" >> #include "sysemu/runstate.h" >> #include "qemu/error-report.h" >> +#include CONFIG_DEVICES > > I'm a but reluctant to include CONFIG_DEVICES. > >> +#ifdef CONFIG_USB_OHCI_PCI >> if (defaults_enabled()) { > > What about: > > if (defaults_enabled() && object_class_by_name(TYPE_PCI_OHCI)) { I think it was a v1 like this :) /mjt
On 13/07/2023 13.47, Michael Tokarev wrote: > 13.07.2023 13:09, Philippe Mathieu-Daudé wrote: >> Hi Thomas, >> >> On 21/6/23 09:41, 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 >>> USB devices first before instantiating them. >>> >>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>> --- >>> v2: Use #ifdef instead of runtime check >>> >>> hw/mips/loongson3_virt.c | 3 +++ >>> 1 file changed, 3 insertions(+) >>> >>> diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c >>> index 216812f660..3094413eea 100644 >>> --- a/hw/mips/loongson3_virt.c >>> +++ b/hw/mips/loongson3_virt.c >>> @@ -51,6 +51,7 @@ >>> #include "sysemu/reset.h" >>> #include "sysemu/runstate.h" >>> #include "qemu/error-report.h" >>> +#include CONFIG_DEVICES >> >> I'm a but reluctant to include CONFIG_DEVICES. >> >>> +#ifdef CONFIG_USB_OHCI_PCI >>> if (defaults_enabled()) { >> >> What about: >> >> if (defaults_enabled() && object_class_by_name(TYPE_PCI_OHCI)) { > > I think it was a v1 like this :) Yes, that's how I did it in v1: https://lore.kernel.org/qemu-devel/20230525064731.1854107-1-thuth@redhat.com/ Thomas
diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c index 216812f660..3094413eea 100644 --- a/hw/mips/loongson3_virt.c +++ b/hw/mips/loongson3_virt.c @@ -51,6 +51,7 @@ #include "sysemu/reset.h" #include "sysemu/runstate.h" #include "qemu/error-report.h" +#include CONFIG_DEVICES #define PM_CNTL_MODE 0x10 @@ -447,11 +448,13 @@ static inline void loongson3_virt_devices_init(MachineState *machine, pci_vga_init(pci_bus); +#ifdef CONFIG_USB_OHCI_PCI if (defaults_enabled()) { 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"); } +#endif for (i = 0; i < nb_nics; i++) { NICInfo *nd = &nd_table[i];
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 USB devices first before instantiating them. Signed-off-by: Thomas Huth <thuth@redhat.com> --- v2: Use #ifdef instead of runtime check hw/mips/loongson3_virt.c | 3 +++ 1 file changed, 3 insertions(+)