qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/2] ps2: Clear the queue on PS/2 mouse reset an


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH 1/2] ps2: Clear the queue on PS/2 mouse reset and obey device disable
Date: Mon, 7 May 2018 14:41:08 +0200
User-agent: NeoMutt/20180323

On Mon, May 07, 2018 at 10:26:24PM +1000, geoff--- via Qemu-devel wrote:
> On 2018-05-07 22:21, Gerd Hoffmann wrote:
> > On Mon, May 07, 2018 at 10:00:22PM +1000, geoff--- via Qemu-devel wrote:
> > > This allows guest's to correctly reinitialize and identify the mouse
> > > should the guest decide to re-scan or reset during mouse input events.
> > > 
> > > Signed-off-by: Geoffrey McRae <address@hidden>
> > > ---
> > >  hw/input/ps2.c | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > > 
> > > diff --git a/hw/input/ps2.c b/hw/input/ps2.c
> > > index 06f5d2ac4a..6edf046820 100644
> > > --- a/hw/input/ps2.c
> > > +++ b/hw/input/ps2.c
> > > @@ -673,6 +673,9 @@ static void ps2_mouse_sync(DeviceState *dev)
> > >  {
> > >      PS2MouseState *s = (PS2MouseState *)dev;
> > > 
> > > +    if (!(s->mouse_status & MOUSE_STATUS_ENABLED))
> > > +        return;
> > > +
> > 
> > Why this is needed?
> 
> To quote: 
> https://wiki.osdev.org/%228042%22_PS/2_Controller#Detecting_PS.2F2_Device_Types
> 
> The device should respond to the "identify" command by sending a sequence of
> none, one or two identification bytes. However, if you just send the
> "identify" command you can't prevent the response from the "identify"
> command from being mixed up with keyboard/mouse data. To fix this problem,
> you need to send the "disable scanning" command first. Disabling scanning
> means that the device ignores the user (e.g. keyboards ignore keypresses,
> mice ignore mouse movement and button presses, etc) and won't send data to
> mess your device identification code up.

Ok.  Same check should be added to ps2_keyboard_event() then I guess?

cheers,
  Gerd




reply via email to

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