Comment 10 for bug 92354

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

Looking at the way the evdev events are fed from kernel upto X, the data stream
has 3 core types of event

 - X axis update
 - Y axis update
 - Sync event

The kernel normally sends a sequence of

 - X axis update + Y axis update + sync event
 - X axis update + sync event
 - Y axis update + sync event

There is some extra code in the evdev driver, however, which does an explicit
sync after every individual X or Y axis event. This seems to be causing the X
axis update to be lost - resulting in the cursor travelling up the left-hand
side of the screen when moved diagonally. This manual sync looks unneccessary
since the kernel sends an explicit sync event whenever one ie needed.

So I wrote the attached patch which removed the two redundant calls to sync
pointer position. This resulted in smooth mouse movement expected.

I'm a little puzzelled why these explicit sync calls are in the driver at all -
not clear they could ever have worked correctly ?!?!