diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index b60a832c0ae885dd2b2ab9178071d57ab452855b..8ba94996953e3b7e98c64e877e0e97c5251515b6 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -417,7 +417,8 @@ static void ppc_core99_init(MachineState *machine) dev = qdev_create(adb_bus, TYPE_ADB_MOUSE); qdev_init_nofail(dev); - if (usb_enabled(machine_arch == ARCH_MAC99_U3)) { + if ((machine_arch == ARCH_MAC99_U3 && defaults_enabled()) || + usb_enabled(false)) { pci_create_simple(pci_bus, -1, "pci-ohci"); /* U3 needs to use USB for input because Linux doesn't support via-cuda on PPC64 */ diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2850624942d48da2b9b9ded550a84121e6909fd7..2b2cc0cfc791fbb37d3ae61f9ef5d36e7a760f19 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1530,7 +1530,7 @@ static void ppc_spapr_init(MachineState *machine) spapr->has_graphics = true; } - if (usb_enabled(spapr->has_graphics)) { + if ((spapr->has_graphics && defaults_enabled()) || usb_enabled(false)) { pci_create_simple(phb->bus, -1, "pci-ohci"); if (spapr->has_graphics) { usbdevice_create("keyboard"); diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 503e5a48a70b6b3ae3084379ab89b14b723a5c0f..a31044c2712cf21bea8b02ee7fcdb7bca36328c3 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -227,6 +227,7 @@ void qemu_boot_set(const char *boot_order, Error **errp); QemuOpts *qemu_get_machine_opts(void); +bool defaults_enabled(void); bool usb_enabled(bool default_usb); extern QemuOptsList qemu_legacy_drive_opts; diff --git a/vl.c b/vl.c index bea96562326258e1fc49943f0e6c7f25bfe1e941..415535fb46861b83e7a21079d3a7348dfc10ee38 100644 --- a/vl.c +++ b/vl.c @@ -997,10 +997,15 @@ static int parse_name(QemuOpts *opts, void *opaque) return 0; } +bool defaults_enabled(void) +{ + return has_defaults; +} + bool usb_enabled(bool default_usb) { return qemu_opt_get_bool(qemu_get_machine_opts(), "usb", - has_defaults && default_usb); + default_usb); } #ifndef _WIN32