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 <ge...@hostfission.com> > > > --- > > > 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