linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Andries Brouwer <aebr@win.tue.nl>
Cc: Jamie Lokier <jamie@shareable.org>,
	Neil Brown <neilb@cse.unsw.edu.au>,
	Vojtech Pavlik <vojtech@suse.cz>,
	linux-kernel@vger.kernel.org
Subject: Re: Input issues - key down with no key up
Date: Thu, 21 Aug 2003 10:01:45 +0200	[thread overview]
Message-ID: <20030821080145.GA11263@ucw.cz> (raw)
In-Reply-To: <20030821015258.A3180@pclin040.win.tue.nl>

On Thu, Aug 21, 2003 at 01:52:58AM +0200, Andries Brouwer wrote:

> > Synthesising an UP event after receiving a DOWN from the keyboard, and
> > nothing else for that key for > (repeat delay + a bit more) time looks
> > like a good plan to me, UNLESS there are keys which do report UP when
> > the key is released (as opposed to immediately after the DOWN), and
> > also don't repeat.
> 
> And there are keyboards with such keys.

Are there? Nevertheless the synthetic UP probably wouldn't hurt much,
because it will only happen some 270 ms after the press at which time
the user did probably already release the key, and if he did not, we
just ignore the real release event.

I have that logic running on my computer and so far it doesn't cause any
trouble.

> > Unrelated: I have some messages from my laptop, Toshiba Satellite 4070CDT:
> > 
> >   atkbd.c: Unknown key (set 2, scancode 0x94, in isa0060/serio0) pressed.
> >   atkbd.c: Unknown key (set 2, scancode 0xbf, in isa0060/serio0) pressed.
> >   atkbd.c: Unknown key (set 2, scancode 0xa1, in isa0060/serio0) pressed.
> 
> Do you know what keystrokes cause this?
> 
> It looks like this cannot come from i8042_unxlate_table[].
> Do you set i8042_direct?
> 
> Vojtech, this sounds like a bug in i8042.c:
> We do
> 	if (data > 0x7f) {
> 		index = (data & 0x7f);
> 		if (test_and_clear_bit(index, i8042_unxlate_seen)) {
> 			data = i8042_unxlate_table[data & 0x7f];
> 		}
> 	} else {
> 		data = i8042_unxlate_table[data];
> 	}
> 	serio_interrupt(&i8042_kbd_port, data, dfl, regs);
> 
> In other words, the keyboard sends something in translated Set 2,
> but we fake that it is untranslated, unless it was
> a key release and we didnt know that the key was down.
> Thus, atkbd.c gets a mixture of untranslated and translated codes.

It's not perfect, but it's the best what we can do if we don't want to
move translated mode support to atkbd, which I definitely don't.

The problem is that only data below 0x7f is translated, by a mostly 1:1
table (there are two exceptions, 0x83 and 0x84). Data above 0x80
inclusive is not translated.

So, if you get a 0x9f code, you need to decide whether it really was
0x9f coming from the wire, or if it was actually 0xf0 0x27 coming from
the wire.

The code has a slight problem with multiple key releases for a single
key without a press event inbetween (which is what the toshiba does, and
I've got another keyboard which does it, too). I already have a fix for
that.

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  parent reply	other threads:[~2003-08-21  8:02 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-15  5:16 Input issues - key down with no key up Neil Brown
2003-08-15  7:46 ` Andries Brouwer
2003-08-15 10:58   ` Vojtech Pavlik
2003-08-15 12:36     ` Andries Brouwer
2003-08-15 12:43       ` Vojtech Pavlik
2003-08-15 13:27         ` Jamie Lokier
2003-08-15 13:52           ` Vojtech Pavlik
2003-08-15 14:02             ` Jamie Lokier
2003-08-15 15:05         ` Jason Lunz
2003-08-15 13:04       ` Jamie Lokier
2003-08-15 13:10         ` Vojtech Pavlik
2003-08-15 13:33           ` Jamie Lokier
2003-08-15 13:53             ` Vojtech Pavlik
2003-08-16 13:02               ` Maciej W. Rozycki
2003-08-16 14:09                 ` Jamie Lokier
2003-08-17 21:54                   ` Vojtech Pavlik
2003-08-18 12:22                     ` Maciej W. Rozycki
2003-08-18 10:29                 ` Andries Brouwer
2003-08-19 13:04                   ` Maciej W. Rozycki
2003-08-19 17:48                     ` Andries Brouwer
2003-08-21 11:37                       ` Maciej W. Rozycki
2003-08-21 12:44                         ` Andries Brouwer
2003-08-21 13:45                           ` Maciej W. Rozycki
2003-08-21 14:28                             ` Andries Brouwer
2003-08-21 14:38                               ` Maciej W. Rozycki
2003-08-21 13:48                         ` Jamie Lokier
2003-08-21 14:08                           ` Maciej W. Rozycki
2003-08-21 14:14                             ` Vojtech Pavlik
2003-08-21 14:33                               ` Maciej W. Rozycki
2003-08-21 14:44                                 ` Andries Brouwer
2003-08-21 15:03                                   ` Maciej W. Rozycki
2003-08-21 15:29                                     ` Vojtech Pavlik
2003-08-16 13:01             ` Maciej W. Rozycki
2003-08-15 12:46     ` Neil Brown
2003-08-15 12:54       ` Vojtech Pavlik
2003-08-15 13:52       ` Andries Brouwer
2003-08-15 14:13         ` Vojtech Pavlik
2003-08-16  7:57           ` Neil Brown
2003-08-18 16:01             ` Vojtech Pavlik
2003-08-19 11:40               ` Neil Brown
2003-08-19 11:50                 ` Vojtech Pavlik
2003-08-19 23:59                   ` Neil Brown
2003-08-20 22:36             ` Andries Brouwer
2003-08-20 22:58               ` Jamie Lokier
2003-08-20 23:52                 ` Andries Brouwer
2003-08-21  0:03                   ` Jamie Lokier
2003-08-21  0:33                     ` Andries Brouwer
2003-08-21  1:36                       ` Jamie Lokier
2003-08-21  8:08                       ` Vojtech Pavlik
2003-08-21  8:06                     ` Vojtech Pavlik
2003-08-21 11:40                     ` Maciej W. Rozycki
2003-08-21 12:48                       ` Andries Brouwer
2003-08-21 13:22                         ` Jamie Lokier
2003-08-21 13:29                         ` Maciej W. Rozycki
2003-08-21  8:01                   ` Vojtech Pavlik [this message]
2003-08-22  0:27                     ` Andries Brouwer
2003-08-22  7:33                       ` Vojtech Pavlik
2003-08-25  4:22                         ` Jamie Lokier
2003-08-25  8:22                           ` Vojtech Pavlik
2003-08-25 19:36                             ` Jamie Lokier
2003-09-03  8:06                               ` Pavel Machek
2003-08-22 13:35                       ` Maciej W. Rozycki
2003-08-16 15:15 John Bradford
2003-08-18 11:53 ` Maciej W. Rozycki
2003-08-19 19:37 John Bradford
2003-08-19 23:58 ` Jamie Lokier
2003-08-20  5:59 John Bradford
2003-08-20 15:17 ` Jamie Lokier
2003-08-21 12:11 John Bradford
2003-08-21 12:26 ` Vojtech Pavlik
2003-08-23 12:30 Norman Diamond
2003-08-25  4:24 ` Jamie Lokier
2003-08-25 12:15   ` Norman Diamond
2003-08-25  8:45 John Bradford
2003-08-25 12:47 John Bradford

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=20030821080145.GA11263@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=aebr@win.tue.nl \
    --cc=jamie@shareable.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@cse.unsw.edu.au \
    /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;
as well as URLs for NNTP newsgroup(s).