I committed this change to CVS.
Now the serialmouse driver works on my desktop machine, cool :)
I had tried the original serialmouse driver on my desktop and couldn't 
get it to work, but didn't have time to debug it.

Thanks!

On 2002.01.08 07:06 Arnd Bergmann wrote:
> I've had trouble with the serial mouse driver on a k6/400/linux-2.4.16
> box, the patch below fixes this.
> The problem is that the second read() would always fail silently
> with EAGAIN when there is no new data on /dev/ttyS0 yet.
> Instead of waiting for the packet to complete, I chose to return to
> the select loop, like the other mouse drivers do.
> Tested on one machine with both MS and logitech compatible
> mouses.
> 
> Arnd <><
> 
> --- input/serialmouse.c.orig    Tue Jan  8 14:30:41 2002
> +++ input/serialmouse.c Tue Jan  8 14:50:46 2002
> @@ -89,22 +89,26 @@
>  int serialmouse_fd_activate(int fd) {
>    u8 buttons;
>    s8 dx,dy;
> -  u8 packet[3];
> +  static u8 packet[3];
> +  static int pos;
>    s16 cursorx,cursory;
> 
>    if (fd != mouse_fd)
>      return 0;
> 
>    /* Read a correctly-aligned mouse packet. If the first byte isn't
> 0x40,
> -   * it isn't correctly aligned. The mouse packet is 4 bytes long.
> +   * it isn't correctly aligned. The mouse packet is 3 or 4 bytes
> long.
> +   * On fast machines, we can't read a whole packet at once, so we
> have
> +   * to maintain the state in a static variable.
>     */
> 
> -  if (!read(mouse_fd,packet,1))
> +  if (read(mouse_fd,packet+pos,1) != 1)
>      return 1;
>    if (!(packet[0] & 0x40))
>      return 1;
> -  if (!read(mouse_fd,packet+1,2))
> +  if (pos++ < 2)
>      return 1;
> +  pos = 0;
> 
>    /* Get the cursor position in physical coordinates */
>    cursorx = cursor->x;
> 
> 
> _______________________________________________
> Pgui-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/pgui-devel
> 

_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to