Re: Proposal: change keycode for scancode e0 32 from 150 to 172

From: Hans de Goede
Date: Wed Jun 13 2007 - 01:53:28 EST

H. Peter Anvin wrote:
Hans de Goede wrote:
In order to be able to better test / develop this I've bought 2 cheap
such keyboards today, one ps2 and one both usb and ps2 capable.

When comparing usb vs ps2 / testing the keycodes generated for the easy
keys on my trust (microsoft compatible) keyboard. I noticed the homepage
key sends keycode 150 with ps2 and 172 with USB, or for those who don't
know the keycodes by head with ps2 it sends KEY_WWW and with usb it

I just tested this using Microsoft Natural Keyboard Pro, which is a
dual-mode (USB-PS/2) keyboard.

This key is labelled Web/Home and has a picture of a house on the keycap.

In PS/2 mode it reports E0 32 which gets converted to keycode 150.
In USB mode it reports E0 02 which gets converted to keycode 172.

Thanks, that confirms that the ps/2 translation (which assumes a microsoft or compatible keyboard) is wrong.

I don't know if it's the keyboard itself that's being inconsistent, or
if it is the table in usbkbd.c that's broken (in which case it should be
fixed to be consistent with the keyboard in PS/2 mode.)

See below.

I personally believe that the usb behaviour is correct and that the ps/2
code should be modified to match for consistency. The ps/2 scancode to
keycode mapping is set up to handle easy access / internet keys for
microsoft compatible keyboards. So what is the right code to send here,
tricky, see:

The logo on the key is a homepage logo, the text below is www/homepage.
So what to send? I believe that for consistency with the usb codes send
it should be KEY_HOMEPAGE, but thats based on a sample of 1 usb
keyboard. Input on what other usb keyboards send for the key with the
homepage iocn is very much welcome.

You seem to be of the opinion that "usb behaviour is correct", but don't
give any motivation why usb should take precedence. Offhand, I would
expect there to be fewer translation layers for PS/2 and would therefore
assume PS/2 is more inherently correct.

I'm of the opinion that the USB behaviour is correct, because usb generates the 172 / KEY_HOMEPAGE in accordance with:
Page 84

Where as in the ps2 world there is no official scancode mapping for these special keys, hence I talk about microsoft and compatibles. Also the number of layers of translation in both cases is just 1: one table (ps2) versus one switch statement (usb)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at