> From: Li Zhang <
address@hidden>
>
> For pseries machine, it needs to enable usb
> to add kbd or usb mouse. -usb option won't
> be used in the future, and machine options
> is a better way to enable usb.
>
> So this patch is to add usb option to machine
> options (-machine type=psereis,usb=on/off)
> to enable/disable usb controller.
>
> In this patch, usb_opt is an global option
> which can be checked by machines. For example,
> on pseries, it will check if usb_opt is on, if
> it is on, it will create one usb ohci controller.
> As the following:
> if (usb_opts && strcmp(usb_opts, "on") == 0)
> pci_create_simple(bus, -1, "pci-ohci");
>
> In this patch, usb is on by default.
> So, for -nodefault, usb should be set off in the
> command line as the following:
> -machine type=pseries,usb=off.
>
> Signed-off-by: Li Zhang <
address@hidden>
> reviewed-by: Anthony Liguori <
address@hidden>
> reviewed-by: Benjamin Herrenschmidt <
address@hidden>
> ---
> qemu-config.c | 4 ++++
> sysemu.h | 1 +
> vl.c | 12 ++++++++++++
> 3 files changed, 17 insertions(+)
>
> diff --git a/qemu-config.c b/qemu-config.c
> index bb3bff4..258712a 100644
> --- a/qemu-config.c
> +++ b/qemu-config.c
> @@ -583,6 +583,10 @@ static QemuOptsList qemu_machine_opts = {
> .name = "dtb",
> .type = QEMU_OPT_STRING,
> .help = "Linux kernel device tree file",
> + }, {
> + .name = "usb",
> + .type = QEMU_OPT_BOOL,
> + .help = "Set on/off to enable/disable usb",
> },
> { /* End of list */ }
> },
> diff --git a/sysemu.h b/sysemu.h
> index bc2c788..c5ea10d 100644
> --- a/sysemu.h
> +++ b/sysemu.h
> @@ -13,6 +13,7 @@
> /* vl.c */
>
> extern const char *bios_name;
> +extern const char *usb_opt;
>
> extern const char *qemu_name;
> extern uint8_t qemu_uuid[];
> diff --git a/vl.c b/vl.c
> index 204d85b..10f8e4c 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -171,6 +171,7 @@ int main(int argc, char **argv)
>
> static const char *data_dir;
> const char *bios_name = NULL;
> +const char *usb_opt = NULL;
> enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
> DisplayType display_type = DT_DEFAULT;
> int display_remote = 0;