From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59576) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uei5d-00056d-Ci for qemu-devel@nongnu.org; Tue, 21 May 2013 04:38:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uei5Y-0005dc-Bu for qemu-devel@nongnu.org; Tue, 21 May 2013 04:38:37 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54478) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uei5Y-0005dU-43 for qemu-devel@nongnu.org; Tue, 21 May 2013 04:38:32 -0400 Message-ID: <519B3268.2060300@redhat.com> Date: Tue, 21 May 2013 10:38:00 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1368678651-3561-1-git-send-email-akong@redhat.com> <51948969.5050604@linux.vnet.ibm.com> <20130516073521.GE3785@t430s.nay.redhat.com> <5194A2DF.9010608@linux.vnet.ibm.com> <20130516203703.GB3045@t430s.nay.redhat.com> <5194F6C7.3020106@redhat.com> <5194F945.8040601@redhat.com> <20130521083356.GE3915@t430s.nay.redhat.com> In-Reply-To: <20130521083356.GE3915@t430s.nay.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] ps2: add support of auto-repeat List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amos Kong Cc: Peter Maydell , aliguori@us.ibm.com, Lei Li , qemu-devel@nongnu.org, lcapitulino@redhat.com, kraxel@redhat.com, lersek@redhat.com 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 wrote: >>>> ... In XWindows, you get a KeyRelease for every KeyPress Event. In X, >>>> it looks something like this: >>>> >>>> PRPRPRPRPRPRPRPR >>> >>> 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. Paolo > 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. >