[PATCH 2.5.59] support japanese JP106 keyboard on new console.

Hiroshi Miura (miura@da-cha.org)
Fri, 24 Jan 2003 12:14:53 +0900 (JST)


Hi,

After re-writting a console layer, a japanese keyboard is not supported (or degraded).
This patch fixs it.

A USB keyboard driver may have same problem, but I don't have one.

--- linux-2.5.59/drivers/input/keyboard/atkbd.c 2002-12-03 07:59:41.000000000 +0900
+++ edited/linux-2.5.59/drivers/input/keyboard/atkbd.c 2003-01-24 09:13:11.000000000 +0900
@@ -309,6 +309,12 @@
if (atkbd_command(atkbd, &atkbd->oldset, ATKBD_CMD_GSCANSET))
atkbd->oldset = 2;

+ if (atkbd->id == 0xab02) {
+ printk("atkbd: jp109(106) keyboard found\n");
+ param[0] = atkbd_set;
+ atkbd_command(atkbd, param, ATKBD_CMD_SSCANSET);
+ return 5;
+ }
/*
* For known special keyboards we can go ahead and set the correct set.
* We check for NCD PS/2 Sun, NorthGate OmniKey 101 and
@@ -531,6 +537,12 @@
else
memcpy(atkbd->keycode, atkbd_set2_keycode, sizeof(atkbd->keycode));

+ if (atkbd->set == 5) {
+ atkbd->keycode[0x13] = 0x70; /* Hiragana/Katakana */
+ atkbd->keycode[0x6a] = 0x7c; /* Yen, pipe 124*/
+ atkbd->set = 2;
+ }
+
atkbd->dev.name = atkbd->name;
atkbd->dev.phys = atkbd->phys;
atkbd->dev.id.bustype = BUS_I8042;
@@ -544,7 +556,7 @@

input_register_device(&atkbd->dev);

- printk(KERN_INFO "input: %s on %s\n", atkbd->name, serio->phys);
+ printk(KERN_INFO "input: %s (0x%x) on %s\n", atkbd->name, atkbd->id, serio->phys);
}


-- 
Hiroshi Miura  --- http://www.da-cha.org/ 
NTTDATA Corp. Marketing & Business Strategy Planning Dept. --- miurahr@nttdata.co.jp 
Key fingerprint = 9117 9407 5684 FBF1 4063  15B4 401D D077 04AB 8617
-- My hacking life is happy as the day is long

- 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/