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 <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] +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 _______________________________________________ Kernel-svn-changes mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

