[Top][All Lists]

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

Re: [Qemu-devel] [PATCH] ps2: add support of auto-repeat

From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] ps2: add support of auto-repeat
Date: Tue, 21 May 2013 10:38:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

Il 21/05/2013 10:33, Amos Kong ha scritto:
> On Thu, May 16, 2013 at 05:20:37PM +0200, Paolo Bonzini wrote:
>> Il 16/05/2013 17:17, Peter Maydell ha scritto:
>>> On 16 May 2013 16:09, Paolo Bonzini <address@hidden> wrote:
>>>> ...  In XWindows, you get a KeyRelease for every KeyPress Event. In X,
>>>> it looks something like this:
>>> Shouldn't we be abstracting this platform difference
>>> out in the ui layer, rather than having to deal with it
>>> in the ps2 device model? That is, we should define what
>>> our key-repeat model is for the QEMU keyboard-event-handler
>>> API, and then make sure all our UI frontends (gtk, sdl,
>>> cocoa, etc) do what we require...
>> Yes, I am asking Amos to check which of our frontends comply.
>> It needs to be checked in the host, because Linux guests emulate
>> autorepeat anyway.  Or you can test with FreeDOS.
> Please correct me if something is wrong, thanks.
> When we use VNC/SPICE/SDL, vm Window will captured the key events,
> then qemu process the events and transfer to guest through emulated PS2
> device.
> When we hold the key in keyboard of host, real keyboard or host OS will
> do auto-repeat. vm Window will transfer repeated events to guest.
> In this case, it seems the auto-repeat of emulated PS2 device doesn't
> needed.

If you can make emulated autorepeat work also with VNC/SDL/SPICE, it
would be much better, because then the guest can choose to enable or
disable the autorepeat as desired.

That's why I mentioned testing with FreeDOS, which does no emulation.
You can find DOS programs to change the typematic rate.


> But when keyboard/host os doesn't support auto-repeat, or we directly
> send event from monitor by 'sendkey'. held key could not be repeated
> without auto-repeat support of emulated PS2 device.
> When I use (Lenovo t430s & Fedoar 18 host), when I hold the real key,
> qemu will get PPPPPPPR style events queue from host.
> Guest (RHEL6/Win7/WinXp) & (SDL & VNC & SPICE) works well.
> Others:
> 1. I read the keyboard driver in linux kernel, soft_auto-repeat was
>    implemented in linux ps2 driver is PPPPPPPR style.
> 2. PPPPPPPPR style is described in freescale hardware manual:
>    http://www.freescale.com/files/microcontrollers/doc/ref_manual/DRM014.pdf
>    """
>      1.5.9  PS/2 Scan Codes
>      Make code or break code is sent when any key is pressed or released.
>      While a key is pressed, its _make code_ is sent out repeatedly and the
>      rate depends on the typematic repeat value.
>    """
> I will update patches to fix other problem, keep using PPPPPPPR style.

reply via email to

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