[kernel] r5811 - in dists/sid/linux-2.6/debian: . patches
patches/series
Christian T. Steigies
cts at costa.debian.org
Fri Feb 10 14:51:38 UTC 2006
Author: cts
Date: Fri Feb 10 14:51:37 2006
New Revision: 5811
Added:
dists/sid/linux-2.6/debian/patches/m68k-amikbd.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/6-extra
Log:
amiga keyboard patch
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog (original)
+++ dists/sid/linux-2.6/debian/changelog Fri Feb 10 14:51:37 2006
@@ -35,6 +35,7 @@
[ Christian T. Steigies ]
* [m68k] Add fix for m68k/buddha IDE and m68k/mac SCSI driver
* [m68k] Patch by Peter Krummrich to stop flickering pixels with PicassoII
+ * [m68k] make Amiga keyboard usable again, patch by Roman Zippel
-- Christian T. Steigies <cts at debian.org> Fri, 10 Feb 2006 12:31:55 +0100
Added: dists/sid/linux-2.6/debian/patches/m68k-amikbd.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/m68k-amikbd.patch Fri Feb 10 14:51:37 2006
@@ -0,0 +1,94 @@
+Log message:
+Dump the extra mapping in the amikbd interrupt handler, so old Amiga
+keymaps work again. Amigas need a special keymap anyway, standard
+keymaps are not usable and recreating all keymaps is simply not worth
+the trouble.
+
+Modified files:
+ linux/drivers/input/keyboard:
+ amikbd.c
+
+
+Index: linux/drivers/input/keyboard/amikbd.c
+Stats: 17 insertions, 6 deletions, 9 modifications
+http://linux-m68k-cvs.ubb.ca/c/cvsweb/linux/drivers/input/keyboard/amikbd%2ec.diff?r1=1.1.1.13&r2=1.12
+========================================================================
+--- linux/drivers/input/keyboard/amikbd.c 14 Jan 2006 23:10:37 -0000 1.1.1.13
++++ linux/drivers/input/keyboard/amikbd.c 28 Jan 2006 21:27:33 -0000 1.12
+@@ -36,6 +36,7 @@
+ #include <linux/input.h>
+ #include <linux/delay.h>
+ #include <linux/interrupt.h>
++#include <linux/keyboard.h>
+
+ #include <asm/amigaints.h>
+ #include <asm/amigahw.h>
+@@ -45,7 +46,7 @@
+ MODULE_DESCRIPTION("Amiga keyboard driver");
+ MODULE_LICENSE("GPL");
+
+-static unsigned char amikbd_keycode[0x78] = {
++static unsigned char amikbd_keycode[0x78] __initdata = {
+ [0] = KEY_GRAVE,
+ [1] = KEY_1,
+ [2] = KEY_2,
+@@ -170,12 +171,9 @@
+ scancode >>= 1;
+
+ if (scancode < 0x78) { /* scancodes < 0x78 are keys */
+-
+- scancode = amikbd_keycode[scancode];
+-
+ input_regs(amikbd_dev, fp);
+
+- if (scancode == KEY_CAPSLOCK) { /* CapsLock is a toggle switch key on Amiga */
++ if (scancode == 98) { /* CapsLock is a toggle switch key on Amiga */
+ input_report_key(amikbd_dev, scancode, 1);
+ input_report_key(amikbd_dev, scancode, 0);
+ } else {
+@@ -191,7 +189,7 @@
+
+ static int __init amikbd_init(void)
+ {
+- int i;
++ int i, j;
+
+ if (!AMIGAHW_PRESENT(AMI_KEYBOARD))
+ return -EIO;
+@@ -214,14 +212,26 @@
+ amikbd_dev->id.version = 0x0100;
+
+ amikbd_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
+- amikbd_dev->keycode = amikbd_keycode;
+- amikbd_dev->keycodesize = sizeof(unsigned char);
+- amikbd_dev->keycodemax = ARRAY_SIZE(amikbd_keycode);
+
+ for (i = 0; i < 0x78; i++)
+- if (amikbd_keycode[i])
+- set_bit(amikbd_keycode[i], amikbd_dev->keybit);
++ set_bit(i, amikbd_dev->keybit);
+
++ for (i = 0; i < MAX_NR_KEYMAPS; i++) {
++ static u_short temp_map[NR_KEYS] __initdata;
++ if (!key_maps[i])
++ continue;
++ memset(temp_map, 0, sizeof(temp_map));
++ for (j = 0; j < 0x78; j++) {
++ if (!amikbd_keycode[j])
++ continue;
++ temp_map[j] = key_maps[i][amikbd_keycode[j]];
++ }
++ for (j = 0; j < NR_KEYS; j++) {
++ if (!temp_map[j])
++ temp_map[j] = 0xf200;
++ }
++ memcpy(key_maps[i], temp_map, sizeof(temp_map));
++ }
+ ciaa.cra &= ~0x41; /* serial data in, turn off TA */
+ request_irq(IRQ_AMIGA_CIAA_SP, amikbd_interrupt, 0, "amikbd", amikbd_interrupt);
+
+-
+To unsubscribe from this list: send the line "unsubscribe linux-m68k-cvscommit" in
+the body of a message to majordomo at vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
Modified: dists/sid/linux-2.6/debian/patches/series/6-extra
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/6-extra (original)
+++ dists/sid/linux-2.6/debian/patches/series/6-extra Fri Feb 10 14:51:37 2006
@@ -1,3 +1,4 @@
+ m68k-buddha.patch m68k
+ m68k-mac68k_cvs_via_cleanup_and_fix2.patch m68k
+ m68k-cirrusfb.patch m68k
++ m68k-amikbd.patch m68k
More information about the Kernel-svn-changes
mailing list