[parisc-linux-cvs] HIL keymap and driver update

Helge Deller deller@gmx.de
Wed, 27 Jun 2001 20:38:32 +0200


--------------Boundary-00=_8GQLRAKN3Y90MJL2EK4O
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Subject: 



--------------Boundary-00=_8GQLRAKN3Y90MJL2EK4O
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="diff"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="diff"

Index: hilkbd.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/char/hilkbd.c,v
retrieving revision 1.8
diff -u -r1.8 hilkbd.c
--- hilkbd.c	2000/11/16 20:37:43	1.8
+++ hilkbd.c	2001/06/27 18:29:36
@@ -16,6 +16,7 @@
 #include <linux/kbd_ll.h>
 #include <linux/ioport.h>
 #include <linux/config.h>
+#include <linux/init.h>
 #include <asm/io.h>
 #include <asm/ptrace.h>
 #include <asm/irq.h>
@@ -67,155 +68,225 @@
 #define	HIL_READLPCTRL  	0xFB
 #define	HIL_WRITELPCTRL 	0xEB
 
-#define plain_map		hp_plain_map
-#define shift_map		hp_shift_map
-#define altgr_map		hp_altgr_map
-#define ctrl_map		hp_ctrl_map
-#define shift_ctrl_map		hp_shift_ctrl_map
-#define alt_map			hp_alt_map
-#define ctrl_alt_map		hp_ctrl_alt_map
+#define plain_map		__initdata hp_plain_map
+#define shift_map		__initdata hp_shift_map
+#define altgr_map		__initdata hp_altgr_map
+#define shift_altgr_map		__initdata hp_shift_altgr_map
+#define ctrl_map		__initdata hp_ctrl_map
+#define shift_ctrl_map		__initdata hp_shift_ctrl_map
+#define alt_map			__initdata hp_alt_map
+#define shift_alt_map		__initdata hp_shift_alt_map
+#define ctrl_alt_map		__initdata hp_ctrl_alt_map
 
 u_short plain_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
 	0xfb62,	0xfb76,	0xfb63,	0xfb78,	0xfb7a,	0xf200,	0xf200,	0xf01b,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf109,	0xf200,	0xf10a,	0xf200,	0xf108,	0xf200,	0xf10b,
 	0xfb68,	0xfb67,	0xfb66,	0xfb64,	0xfb73,	0xfb61,	0xf200,	0xf207,
 	0xfb75,	0xfb79,	0xfb74,	0xfb72,	0xfb65,	0xfb77,	0xfb71,	0xf009,
 	0xf037,	0xf036,	0xf035,	0xf034,	0xf033,	0xf032,	0xf031,	0xf060,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf209,	0xf200,
 	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
-	0xf038,	0xf039,	0xf030,	0xf02d,	0xf03d,	0xf008,	0xf200,	0xf200,
-	0xfb69,	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf05c,	0xf200,	0xf200,
-	0xfb6a,	0xfb6b,	0xfb6c,	0xf03b,	0xf027,	0xf201,	0xf200,	0xf200,
-	0xfb6d,	0xf02c,	0xf02e,	0xf02f,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf038,	0xf039,	0xf030,	0xf02d,	0xf03d,	0xf07f,	0xf200,	0xf200,
+	0xfb69,	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf05c,	0xf115,	0xf116,
+	0xfb6a,	0xfb6b,	0xfb6c,	0xf03b,	0xf027,	0xf201,	0xf114,	0xf118,
+	0xfb6d,	0xf02c,	0xf02e,	0xf02f,	0xf200,	0xf117,	0xf200,	0xf119,
 	0xfb6e,	0xf020,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short shift_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb42,	0xfb56,	0xfb43,	0xfb58,	0xfb5a,	0xf200,	0xf200,	0xf07f,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+static u_short shift_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf003,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf208,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
+	0xfb42,	0xfb56,	0xfb43,	0xfb58,	0xfb5a,	0xf200,	0xf200,	0xf87f,
+	0xf200,	0xf11f,	0xf200,	0xf120,	0xf200,	0xf11e,	0xf200,	0xf121,
 	0xfb48,	0xfb47,	0xfb46,	0xfb44,	0xfb53,	0xfb41,	0xf200,	0xf207,
 	0xfb55,	0xfb59,	0xfb54,	0xfb52,	0xfb45,	0xfb57,	0xfb51,	0xf009,
 	0xf026,	0xf05e,	0xf025,	0xf024,	0xf023,	0xf040,	0xf021,	0xf07e,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
-	0xf02a,	0xf028,	0xf029,	0xf05f,	0xf02b,	0xf200,	0xf200,	0xf200,
-	0xfb49,	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf07c,	0xf200,	0xf200,
-	0xfb4a,	0xfb4b,	0xfb4c,	0xf03a,	0xf022,	0xf201,	0xf200,	0xf200,
-	0xfb4d,	0xf03c,	0xf03e,	0xf03f,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf10f,	0xf10e,	0xf10d,	0xf10c,	0xf200,	0xf209,	0xf200,
+	0xf203,	0xf110,	0xf111,	0xf112,	0xf113,	0xf200,	0xf200,	0xf200,
+	0xf02a,	0xf028,	0xf029,	0xf05f,	0xf02b,	0xf07f,	0xf200,	0xf200,
+	0xfb49,	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf07c,	0xf115,	0xf116,
+	0xfb4a,	0xfb4b,	0xfb4c,	0xf03a,	0xf022,	0xf201,	0xf114,	0xf118,
+	0xfb4d,	0xf03c,	0xf03e,	0xf03f,	0xf200,	0xf117,	0xf200,	0xf119,
 	0xfb4e,	0xf020,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short altgr_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb62,	0xfb76,	0xfb63,	0xfb78,	0xfb7a,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb68,	0xfb67,	0xfb66,	0xfb64,	0xfb73,	0xfb61,	0xf200,	0xf207,
-	0xfb75,	0xfb79,	0xfb74,	0xfb72,	0xfb65,	0xfb77,	0xfb71,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf040,	0xf021,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
-	0xf02a,	0xf05b,	0xf05d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb69,	0xfb6f,	0xfb70,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb6a,	0xfb6b,	0xfb6c,	0xf200,	0xf200,	0xf201,	0xf200,	0xf200,
-	0xfb6d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xfb6e,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+static u_short altgr_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf07b,	0xf05b,	0xf05d,	0xf07d,	0xf05c,	0xf200,	0xf200,	0xf30c,
+	0xf90b,	0xfb77,	0xf918,	0xfb72,	0xfb74,	0xfb79,	0xf90a,	0xfb69,
+	0xfb6f,	0xfb70,	0xf200,	0xf07e,	0xf201,	0xf702,	0xf914,	0xf01b,
+	0xf917,	0xf515,	0xfb67,	0xf516,	0xfb6a,	0xf514,	0xfb6c,	0xf517,
+	0xf200,	0xf200,	0xf700,	0xf200,	0xfb7a,	0xfb78,	0xf916,	0xf207,
+	0xf915,	0xfb6e,	0xfb6d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf009,
+	0xf703,	0xf200,	0xf207,	0xf50c,	0xf50d,	0xf50e,	0xf50f,	0xf510,
+	0xf511,	0xf512,	0xf513,	0xf514,	0xf515,	0xf208,	0xf202,	0xf911,
+	0xf200,	0xf50f,	0xf50e,	0xf50d,	0xf50c,	0xf910,	0xf209,	0xf90b,
+	0xf202,	0xf510,	0xf511,	0xf512,	0xf513,	0xf200,	0xf07c,	0xf516,
+	0xf517,	0xf200,	0xf200,	0xf200,	0xf200,	0xf008,	0xf200,	0xf200,
+	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf115,	0xf116,
+	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf201,	0xf114,	0xf118,
+	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf117,	0xf311,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short ctrl_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
+static u_short shift_altgr_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf01b,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf207,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf002,	0xf016,	0xf003,	0xf018,	0xf01a,	0xf200,	0xf200,	0xf200,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf008,	0xf007,	0xf006,	0xf004,	0xf013,	0xf001,	0xf200,	0xf207,
-	0xf015,	0xf019,	0xf014,	0xf012,	0xf005,	0xf017,	0xf011,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf000,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf503,	0xf502,	0xf501,	0xf500,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf504,	0xf505,	0xf506,	0xf507,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf209,	0xf200,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf009,	0xf00f,	0xf010,	0xf200,	0xf200,	0xf01c,	0xf200,	0xf200,
-	0xf00a,	0xf00b,	0xf00c,	0xf200,	0xf007,	0xf201,	0xf200,	0xf200,
-	0xf00d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf00e,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf115,	0xf116,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf201,	0xf114,	0xf118,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf117,	0xf200,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short shift_ctrl_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf002,	0xf016,	0xf003,	0xf018,	0xf01a,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+static u_short ctrl_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
+	0xf002,	0xf016,	0xf003,	0xf018,	0xf01a,	0xf200,	0xf200,	0xf01b,
+	0xf200,	0xf12b,	0xf200,	0xf12c,	0xf200,	0xf12a,	0xf200,	0xf12d,
 	0xf008,	0xf007,	0xf006,	0xf004,	0xf013,	0xf001,	0xf200,	0xf207,
-	0xf015,	0xf019,	0xf014,	0xf012,	0xf005,	0xf017,	0xf011,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
+	0xf015,	0xf019,	0xf014,	0xf012,	0xf005,	0xf017,	0xf011,	0xf009,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf000,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf009,	0xf00f,	0xf010,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf00a,	0xf00b,	0xf00c,	0xf200,	0xf200,	0xf201,	0xf200,	0xf200,
-	0xf00d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf125,	0xf124,	0xf123,	0xf122,	0xf200,	0xf209,	0xf200,
+	0xf204,	0xf126,	0xf127,	0xf128,	0xf129,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf008,	0xf200,	0xf200,
+	0xf009,	0xf00f,	0xf010,	0xf200,	0xf200,	0xf01c,	0xf115,	0xf116,
+	0xf00a,	0xf00b,	0xf00c,	0xf200,	0xf007,	0xf201,	0xf114,	0xf118,
+	0xf00d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf117,	0xf200,	0xf119,
 	0xf00e,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short alt_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf862,	0xf876,	0xf863,	0xf878,	0xf87a,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf868,	0xf867,	0xf866,	0xf864,	0xf873,	0xf861,	0xf200,	0xf207,
-	0xf875,	0xf879,	0xf874,	0xf872,	0xf865,	0xf877,	0xf871,	0xf809,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf860,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf869,	0xf86f,	0xf870,	0xf200,	0xf200,	0xf85c,	0xf200,	0xf200,
-	0xf86a,	0xf86b,	0xf86c,	0xf83b,	0xf827,	0xf201,	0xf200,	0xf200,
-	0xf86d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf86e,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+static u_short shift_ctrl_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf300,	0xf009,
+	0xf00f,	0xf010,	0xf200,	0xf200,	0xf201,	0xf702,	0xf001,	0xf01b,
+	0xf004,	0xf109,	0xf007,	0xf10a,	0xf00a,	0xf108,	0xf00c,	0xf10b,
+	0xf200,	0xf200,	0xf700,	0xf200,	0xf01a,	0xf018,	0xf003,	0xf207,
+	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf009,
+	0xf703,	0xf200,	0xf207,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf208,	0xf200,	0xf307,
+	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf306,	0xf209,	0xf301,
+	0xf302,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf008,	0xf200,	0xf200,
+	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf115,	0xf116,
+	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf201,	0xf114,	0xf118,
+	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf117,	0xf311,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
-u_short ctrl_alt_map[NR_KEYS] = {
-	0xf200,	0xf200,	0xf703,	0xf703,	0xf700,	0xf700,	0xf702,	0xf200,
+static u_short altgr_ctrl_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf01b,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf207,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf009,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf802,	0xf816,	0xf803,	0xf818,	0xf81a,	0xf200,	0xf200,	0xf200,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf808,	0xf807,	0xf806,	0xf804,	0xf813,	0xf801,	0xf200,	0xf207,
-	0xf815,	0xf819,	0xf814,	0xf812,	0xf805,	0xf817,	0xf811,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf209,	0xf200,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf103,	0xf102,	0xf101,	0xf100,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf104,	0xf105,	0xf106,	0xf107,	0xf200,	0xf200,	0xf200,
-	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf809,	0xf80f,	0xf810,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf80a,	0xf80b,	0xf80c,	0xf200,	0xf200,	0xf201,	0xf200,	0xf200,
-	0xf80d,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
-	0xf80e,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf115,	0xf20c,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf201,	0xf114,	0xf118,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf117,	0xf200,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+};
+
+static u_short alt_map[NR_KEYS] = {
+	0xf200,	0xf81b,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf837,	0xf838,	0xf839,	0xf830,	0xf82d,	0xf83d,	0xf87f,	0xf30c,
+	0xf901,	0xf877,	0xf865,	0xf872,	0xf874,	0xf879,	0xf900,	0xf869,
+	0xf86f,	0xf870,	0xf85b,	0xf85d,	0xf80d,	0xf702,	0xf861,	0xf81b,
+	0xf864,	0xf509,	0xf867,	0xf50a,	0xf86a,	0xf508,	0xf86c,	0xf50b,
+	0xf827,	0xf860,	0xf700,	0xf85c,	0xf87a,	0xf878,	0xf863,	0xf207,
+	0xf862,	0xf86e,	0xf86d,	0xf82c,	0xf82e,	0xf82f,	0xf700,	0xf809,
+	0xf703,	0xf820,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
+	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf209,	0xf907,
+	0xf200,	0xf503,	0xf502,	0xf501,	0xf500,	0xf906,	0xf209,	0xf901,
+	0xf902,	0xf504,	0xf505,	0xf506,	0xf507,	0xf200,	0xf83c,	0xf50a,
+	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf87f,	0xf200,	0xf200,
+	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf115,	0xf116,
+	0xf118,	0xf210,	0xf211,	0xf117,	0xf600,	0xf80d,	0xf114,	0xf20b,
+	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf117,	0xf311,	0xf20a,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf210,	0xf600,	0xf212,	0xf211,
+};
+
+static u_short shift_alt_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf81b,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf207,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf809,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf209,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf87f,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf115,	0xf116,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf201,	0xf114,	0xf118,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf117,	0xf200,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
 };
 
+static u_short ctrl_alt_map[NR_KEYS] = {
+	0xf200,	0xf200,	0xf701,	0xf703,	0xf700,	0xf700,	0xf702,	0xf205,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf30c,
+	0xf301,	0xf817,	0xf805,	0xf812,	0xf814,	0xf819,	0xf300,	0xf809,
+	0xf80f,	0xf810,	0xf200,	0xf200,	0xf201,	0xf702,	0xf801,	0xf01b,
+	0xf804,	0xf509,	0xf807,	0xf50a,	0xf80a,	0xf508,	0xf80c,	0xf50b,
+	0xf200,	0xf200,	0xf700,	0xf200,	0xf81a,	0xf818,	0xf803,	0xf207,
+	0xf802,	0xf80e,	0xf80d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf009,
+	0xf703,	0xf200,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
+	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf200,	0xf307,
+	0xf200,	0xf503,	0xf502,	0xf501,	0xf500,	0xf306,	0xf209,	0xf301,
+	0xf302,	0xf504,	0xf505,	0xf506,	0xf507,	0xf200,	0xf200,	0xf50a,
+	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf008,	0xf200,	0xf200,
+	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf115,	0xf20c,
+	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf201,	0xf114,	0xf118,
+	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf117,	0xf311,	0xf119,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf601,	0xf600,	0xf603,	0xf602,
+};
 #undef plain_map
-#undef ctrl_alt_map
 #undef shift_map
 #undef altgr_map
+#undef shift_altgr_map
 #undef ctrl_map
 #undef shift_ctrl_map
 #undef alt_map
+#undef shift_alt_map
+#undef ctrl_alt_map
+
+
+/* standard HP specific HIL keymaps */
+static ushort * __initdata hp_key_maps[MAX_NR_KEYMAPS] = {
+	hp_plain_map, hp_shift_map, hp_altgr_map, hp_shift_altgr_map,
+	hp_ctrl_map, hp_shift_ctrl_map, 0, 0,
+	hp_alt_map, hp_shift_alt_map, 0, 0,
+	hp_ctrl_alt_map, 0
+};
 
+
 struct {
 	unsigned char s, c;
 	int valid;
@@ -285,9 +356,6 @@
 		break;
 	case 0x6:
 		handle_data(s, c);
-#if 0
-printk("HILKEYB: %d %d %c\n",(int)s,(int)c,c);
-#endif
 		break;
 	case 0x4:
 		hil_last.s = s;
@@ -318,7 +386,6 @@
 
 #if defined(CONFIG_PARISC)
 
-
 extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
 extern int pckbd_getkeycode(unsigned int scancode);
 extern int pckbd_pretranslate(unsigned char scancode, char raw_mode);
@@ -348,7 +415,6 @@
 static struct kbd_ops hil_kbd_ops = {
 	setkeycode:	pckbd_setkeycode,
 	getkeycode:	pckbd_getkeycode,
-//	pretranslate:	pckbd_pretranslate,
 	translate:	def_translate,	// pckbd_translate,	/* ?? */
 	unexpected_up:	def_unexpected_up, // pckbd_unexpected_up,
 	leds:		def_leds,	/* do we have LED's on HIL ? - me not ! */
@@ -357,7 +423,7 @@
 #ifdef CONFIG_MAGIC_SYSRQ
 	sysrq_key:	0x54,
 	sysrq_xlate:	hp_ps2kbd_sysrq_xlate,
-#endif
+#endif /* CONFIG_MAGIC_SYSRQ */
 };
 
 #endif	/* CONFIG_PARISC */
@@ -398,11 +464,12 @@
 	}
 
 	kbid = ffz(~c);
-	printk("HIL: keyboard found at id %d\n", kbid);
+	printk(KERN_INFO "HIL: keyboard found at id %d\n", kbid);
 
-	memcpy(key_maps[0], hp_plain_map, sizeof(plain_map));
-	memcpy(key_maps[1], hp_shift_map, sizeof(plain_map));
-	memcpy(key_maps[4], hp_ctrl_map, sizeof(plain_map));
+	for (n=0; n<MAX_NR_KEYMAPS; n++)
+		if (key_maps[n] && hp_key_maps[n])
+			memcpy(key_maps[n], hp_key_maps[n], sizeof(plain_map));
+	printk(KERN_INFO "HIL: keymap loaded.\n");
 
 #if defined(CONFIG_PARISC)
 	register_kbd_ops(&hil_kbd_ops);

--------------Boundary-00=_8GQLRAKN3Y90MJL2EK4O--