All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Andries Brouwer <aebr@win.tue.nl>
Cc: Vojtech Pavlik <vojtech@suse.cz>,
	Norman Diamond <ndiamond@wta.att.ne.jp>,
	linux-kernel@vger.kernel.org
Subject: Re: 2.6.0-test5 vs. Japanese keyboards [3]
Date: Sun, 21 Sep 2003 19:07:10 +0200	[thread overview]
Message-ID: <20030921170710.GA20856@ucw.cz> (raw)
In-Reply-To: <20030921164914.C11315@pclin040.win.tue.nl>

On Sun, Sep 21, 2003 at 04:49:14PM +0200, Andries Brouwer wrote:

> > > So, instead of requiring new ioctls and new loadkeys etc
> > > I would prefer to make NR_KEYS 256, if possible.
> > > So the question is: why did you require 512?
> > 
> > Excerpt from input.h:
> 
> > #define KEY_TEEN                0x19e
> > #define KEY_TWEN                0x19f
> > #define KEY_DEL_EOL             0x1c0
> > #define KEY_DEL_EOS             0x1c1
> > 
> > So far the last defined key is KEY_DEL_LINE, with a code of 0x1c3.
> > That's above 256. If there are other places that require less than 256,
> > well, then those will need to be fixed or we're heading for trouble.
> 
> Hmm. The kernel assumes today that keycodes have 8 bits:
> 
> In drivers/char/keyboard.c emulate_raw() tries to invent
> the codes that the keyboard probably sent and resulted in a given
> keycode. It starts out
> 	if (keycode > 255)
> 		return -1;

That's correct, because it can only emulate about 230 different
keycodes. Note that this is not 'invent what the keyboard sent', since
in many cases the keyboard did not send any keycodes (USB) or at least
not any AT-looking keycodes.

However XFree86 (and this hack is there ONLY because of XFree86) needs
AT-looking keycodes on most architectures.

If somebody could teach XFree86 to use at least the medium raw mode
here, we could get rid both of the emulate_raw() stuff and of the
limitation of what we can pass to XFree86.

Also, this causes trouble with the japanese keys in XFree86, since the
KEY_INTL* keys are in the e0 xx range because of the emulation.

> In drivers/input/keyboards/atkbd.c we have tables that convert
> scancodes to keycodes. The declaration is
> 	static unsigned char atkbd_set2_keycode[512];
> the unsigned char means that no keycodes larger than 255 can be returned.

We may need to change this to a u16, IF we'll ever need to load a
keycode above 256 for an AT keyboard. Keep in mind that AT keyboards are
not the whole world. So far all the keys on AT keyboards are within the
0..255 range. That's of course not true for other, more crazy keyboards.

> It really seems a pity to have to add new ioctls, and to have to release
> a new version of the kbd package, and to waste a lot of kernel space,
> while essentially nobody needs the resulting functionality.
 
We could do an audit of the key definitions, document which KEY_* symbol
means exactly what (and it'd be a good thing anyway), by that try to
remove duplicities and try to stuff everything in 0..255.

We'd lose te potential possibility to map keysyms to buttons, though
since that never was used, nobody would cry probably.

However, my experience tells me that whenever some range is tight, and
0..255 is in this case, we will very soon overflow as new weird devices
come into market.

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  reply	other threads:[~2003-09-21 17:07 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-14  3:51 2.6.0-test5 vs. Japanese keyboards Norman Diamond
2003-09-14 10:20 ` Andries Brouwer
2003-09-14 11:14   ` 2.6.0-test5 vs. Japanese keyboards [1] Norman Diamond
2003-09-14 11:15   ` 2.6.0-test5 vs. Japanese keyboards [2] Norman Diamond
2003-09-14 11:21   ` 2.6.0-test5 vs. Japanese keyboards [3] Norman Diamond
2003-09-16 13:43     ` Andries Brouwer
2003-09-17 12:35       ` OGAWA Hirofumi
2003-09-17 17:22         ` Andries Brouwer
2003-09-18 16:15           ` OGAWA Hirofumi
2003-09-21 11:06       ` Vojtech Pavlik
2003-09-21 12:39         ` Andries Brouwer
2003-09-21 12:48           ` Vojtech Pavlik
2003-09-21 14:49             ` Andries Brouwer
2003-09-21 17:07               ` Vojtech Pavlik [this message]
2003-09-21 17:42                 ` Andries Brouwer
2003-09-21 17:52                   ` Vojtech Pavlik
2003-09-22 12:22                 ` Norman Diamond
2003-09-24 10:02               ` Pavel Machek
     [not found]     ` <fa.gddv2je.1jk671u@ifi.uio.no>
2003-09-16 18:11       ` Junio C Hamano
2003-09-21 11:01 ` 2.6.0-test5 vs. Japanese keyboards Vojtech Pavlik
2003-09-21 13:26   ` Norman Diamond
2003-09-21 15:16     ` Andries Brouwer
2003-09-22 12:21       ` Norman Diamond
2003-09-22 20:14         ` Andries Brouwer
2003-09-23 11:44           ` Norman Diamond
2003-09-23 17:22             ` Andries Brouwer
2003-10-15 10:22               ` Norman Diamond
2003-09-21 16:00   ` Andries Brouwer

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=20030921170710.GA20856@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=aebr@win.tue.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ndiamond@wta.att.ne.jp \
    /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.