diff mbox series

[v2] hw/mips: Improve the default USB settings in the loongson3-virt machine

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

Commit Message

Thomas Huth June 21, 2023, 7:41 a.m. UTC
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(+)

Comments

Thomas Huth July 13, 2023, 8:46 a.m. UTC | #1
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
Philippe Mathieu-Daudé July 13, 2023, 10:09 a.m. UTC | #2
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
Michael Tokarev July 13, 2023, 11:47 a.m. UTC | #3
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
Thomas Huth July 13, 2023, 11:51 a.m. UTC | #4
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 mbox series

Patch

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];