From: Disconnect <kernel@gotontheinter.net>
To: Torsten Foertsch <torsten.foertsch@gmx.net>
Cc: lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] to "Disable Trackpad while typing" patch
Date: 20 Jun 2003 12:54:40 -0400 [thread overview]
Message-ID: <1056128080.17756.38.camel@slappy> (raw)
In-Reply-To: <200306201818.40805.torsten.foertsch@gmx.net>
Is this a patch against a patch (instead of against modified pc_keyb.c)
or did the mailer just chew it up badly?
That is exactly the problem I had with that patch; what are the chances
of resending it as an attachment, patched against the modified
pc_keyb.c? That'd seriously speed its integration with -dis5 ;)
On Fri, 2003-06-20 at 12:18, Torsten Foertsch wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> see http://marc.theaimsgroup.com/?l=linux-kernel&m=105182586512456&w=2
>
> I have encountered problems with that patch. If the mouse is sending events
> while the delay timeout is being reached X11 reports spurious mouse events.
> I.e. you are moving the mouse continuously after hitting a key. My mouse
> often jumps to the right upper corner of the screen and reports some clicks
> there.
>
> Mouse events consist of sequences of 3-4 bytes (normal PS/2 mouses 3 bytes,
> wheel mouses 4 bytes) see
> http://panda.cs.ndsu.nodak.edu/%7Eachapwes/PICmicro/mouse/mouse.html
>
> But with the original patch the first accepted bytes after the timeout can be
> out of that order. So, X11 reads the 2nd or 3rd byte of the actual mouse
> movement as 1st byte.
>
> The patch below implements 2 solutions for the problem:
>
> 1. If TRACKPAD_RESET_IF_ACTIVITY_DURING_DELAY is defined it sends a RESET
> command to the mouse after the timeout if there were mouse events during the
> delay interval.
>
> 2. If TRACKPAD_RESET_IF_ACTIVITY_DURING_DELAY is not defined it skips chunks
> of 3*4=12 bytes of mouse input.
>
> I am not certain what the "right" solution is. Case 2 is the better one in my
> opinion because after a RESET even a wheel mouse will be in "normal" mode
> sending 3 bytes per event. Further case 2 seems to be more responsive.
>
> Torsten
>
> - --- drivers/char/pc_keyb.c.orig 2003-06-20 08:10:41.000000000 +0000
> +++ drivers/char/pc_keyb.c 2003-06-20 15:45:01.000000000 +0000
> @@ -18,6 +18,9 @@
> * notebooks with a PS/2 trackpad.
> * Hans-Georg Thien <1682-600@onlinehome.de> 2003-04-30.
> *
> + * Improvements to the "disable trackpad while typing" feature.
> + * Torsten Förtsch <torsten.foertsch@gmx.net> 2003-06-20.
> + *
> */
>
> #include <linux/config.h>
> @@ -109,6 +112,11 @@
>
> #ifdef CONFIG_DISABLE_TRACKPAD_WHILE_TYPING
>
> +# ifdef TRACKPAD_RESET_IF_ACTIVITY_DURING_DELAY
> +static int trackpad_activity_during_delay = 0;
> +# else
> +static int trackpad_skipped_events = 0;
> +# endif
> static int last_kbd_event = 0; /* timestamp of last kbd event */
> static int last_kbd_scancode = 0;
> static int trackpad_disable = 0;
> @@ -566,7 +574,12 @@
> mouse_reply_expected = 0;
> }
> else if(scancode == AUX_RECONNECT2 && prev_code == AUX_RECONNECT1
> - - && aux_reconnect) {
> +# ifdef TRACKPAD_RESET_IF_ACTIVITY_DURING_DELAY
> + && (aux_reconnect||trackpad_activity_during_delay)
> +# else
> + && aux_reconnect
> +# endif
> + ) {
> printk (KERN_INFO "PS/2 mouse reconnect detected\n");
> queue->head = queue->tail = 0; /* Flush input queue */
> __aux_write_ack(AUX_ENABLE_DEV); /* ping the mouse :) */
> @@ -577,8 +590,25 @@
> if (trackpad_disable) return;
>
> if (!test_bit(last_kbd_scancode, trackpad_escape)) {
> - - /* do nothing if time since last kbd event is less then
> trackpad_delay */
> - - if (abs(jiffies - last_kbd_event) < trackpad_delay) return;
> + /* do nothing if time since last kbd event is less then trackpad_delay */
> +# ifdef TRACKPAD_RESET_IF_ACTIVITY_DURING_DELAY
> + if (abs(jiffies - last_kbd_event) < trackpad_delay) {
> + trackpad_activity_during_delay=1;
> + return;
> + }
> + if( trackpad_activity_during_delay ) {
> + trackpad_activity_during_delay=0;
> + aux_write_ack(AUX_RESET);
> + return;
> + }
> +# else
> + if (abs(jiffies - last_kbd_event) < trackpad_delay ||
> + trackpad_skipped_events%12) {
> + trackpad_skipped_events++;
> + return;
> + }
> + trackpad_skipped_events=0;
> +# endif
> }
> #endif
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.7 (GNU/Linux)
>
> iD8DBQE+8zPgwicyCTir8T4RAnK4AJ47UCVKgWHl9lBCbgXxTQFa96wkhgCfSxLj
> g4kfxOe+q3hpCzaqkm4m2Cg=
> =8/AI
> -----END PGP SIGNATURE-----
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2003-06-20 16:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-20 16:18 [PATCH] to "Disable Trackpad while typing" patch Torsten Foertsch
2003-06-20 16:54 ` Disconnect [this message]
2003-06-20 18:34 ` Nicholas Wourms
2003-06-22 17:05 ` [PATCH] Disable Trackpad while typing Torsten Foertsch
2003-06-24 7:41 ` Torsten Foertsch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1056128080.17756.38.camel@slappy \
--to=kernel@gotontheinter.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torsten.foertsch@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.