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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox