qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc][PATCH v5 1/4] Add usb option in machine opti


From: Andreas Färber
Subject: Re: [Qemu-devel] [Qemu-ppc][PATCH v5 1/4] Add usb option in machine options
Date: Fri, 06 Jul 2012 18:08:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120601 Thunderbird/13.0

Am 06.07.2012 18:03, schrieb Alexander Graf:
> 
> On 06.07.2012, at 17:58, Andreas Färber wrote:
> 
>> Am 06.07.2012 15:43, schrieb Alexander Graf:
>>>
>>> On 02.07.2012, at 07:25, address@hidden wrote:
>>>
>>>> From: Li Zhang <address@hidden>
>>>>
>>>> pSeries machine needs to enable USB to add a USB
>>>> keyboard or USB mouse. -usb option won't be used in
>>>> the future, and machine options are a better way to
>>>> enable USB.
>>>>
>>>> So this patch is to add USB option to machine options
>>>> (-machine type=pseries,usb=on/off) to enable/disable
>>>> USB controller. And machines will get the machine option
>>>> and create a USB controller if USB is on.
>>>>
>>>> By the way, USB is on by default on pSeries machine.
>>>> So USB controller should be turned off explicitly through
>>>> the command line for "-nodefault" case as the following:
>>>> -machine type=pseries,usb=off.
>>>>
>>>> Signed-off-by: Li Zhang <address@hidden>
>>>> Reviewed-by: Andreas Färber <address@hidden>
>>>> ---
>>>> hw/spapr.c    |   11 +++++++++++
>>>> qemu-config.c |    4 ++++
>>>> 2 files changed, 15 insertions(+)
>>>>
>>>> diff --git a/hw/spapr.c b/hw/spapr.c
>>>> index 81c9343..973de1b 100644
>>>> --- a/hw/spapr.c
>>>> +++ b/hw/spapr.c
>> [...]
>>>> @@ -710,6 +712,15 @@ static void ppc_spapr_init(ram_addr_t ram_size,
>>>>        spapr_vscsi_create(spapr->vio_bus);
>>>>    }
>>>>
>>>> +    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
>>>> +    if (machine_opts) {
>>>> +        add_usb = qemu_opt_get_bool(machine_opts, "usb", true);
>>>> +    }
>>>> +
>>>> +    if (add_usb) {
>>>> +        pci_create_simple(QLIST_FIRST(&spapr->phbs)->host_state.bus,
>>>> +                          -1, "pci-ohci");
>>>> +    }
>>>
>>> Didn't I ask you to extract this out to generic code? I don't want to have 
>>> a "usb" machine opt that is only available for -M pseries.
>>
>> Isn't the mapping from "usb=on" to device-level actions
>> machine-specific? We have ohci, uhci, ehci, xhci to choose from. And the
>> bus to place it on is machine-specific, too.
>>
>> So did you rather mean adding usb= awareness to more machines? If we
>> generalize usb=on to usb=none/ohci/... plus some usbbus= we get -device.
> 
> I was thinking of replacing usb_enabled with
> 
> static inline int usb_enabled(bool default) {
>     machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
>     if (machine_opts) {
>         return qemu_opt_get_bool(machine_opts, "usb", default);
>     }
>     return default;
> }
> 
> Whereas -usb in vl.c would set machine.usb = on. Then all users of 
> usb_enabled would automatically be converted to the new syntax and we could 
> even use the same logic in spapr.c.

Oh sure, if we return bool and keep QemuOpts* locally it's perfect. :)

I understood you wanted to generalize the if (add_usb) {} that you
replied under. ;)

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg





reply via email to

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