The patch titled m68k: restore amikbd compatibility with 2.4 has been added to the -mm tree. Its filename is m68k-restore-amikbd-compatibility-with-24.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: m68k: restore amikbd compatibility with 2.4 From: Roman Zippel <zippel@xxxxxxxxxxxxxx> 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. Signed-off-by: Roman Zippel <zippel@xxxxxxxxxxxxxx> Cc: Dmitry Torokhov <dtor_core@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/input/keyboard/amikbd.c | 32 +++++++++++++++++++----------- 1 files changed, 21 insertions(+), 11 deletions(-) diff -puN drivers/input/keyboard/amikbd.c~m68k-restore-amikbd-compatibility-with-24 drivers/input/keyboard/amikbd.c --- devel/drivers/input/keyboard/amikbd.c~m68k-restore-amikbd-compatibility-with-24 2006-05-24 18:32:31.000000000 -0700 +++ devel-akpm/drivers/input/keyboard/amikbd.c 2006-05-24 18:32:31.000000000 -0700 @@ -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_AUTHOR("Vojtech Pavlik <vojtech@u 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 @@ static irqreturn_t amikbd_interrupt(int 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 irqreturn_t amikbd_interrupt(int static int __init amikbd_init(void) { - int i; + int i, j; if (!AMIGAHW_PRESENT(AMI_KEYBOARD)) return -EIO; @@ -214,14 +212,26 @@ static int __init amikbd_init(void) 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); _ Patches currently in -mm which might be from zippel@xxxxxxxxxxxxxx are kconfig-improve-config-load-save-output.patch kconfig-fix-config-dependencies.patch kconfig-remove-symbol_yesmodno.patch kconfig-allow-multiple-default-values-per-symbol.patch kconfig-allow-loading-multiple-configurations.patch kconfig-integrate-split-config-into-silentoldconfig.patch kconfig-move-kernelrelease.patch kconfig-add-symbol-option-config-syntax.patch kconfig-add-defconfig_list-module-option.patch kconfig-add-search-option-for-xconfig.patch kconfig-finer-customization-via-popup-menus.patch kconfig-create-links-in-info-window.patch kconfig-jump-to-linked-menu-prompt.patch kconfig-warn-about-leading-whitespace-for-menu-prompts.patch kconfig-remove-leading-whitespace-in-menu-prompts.patch config-exit-if-no-beginning-filename.patch make-kernelrelease-speedup.patch kconfig-kconfig_overwriteconfig.patch m68k-completely-initialize-hw_regs_t-in-ide_setup_ports.patch m68k-atyfb_base-compile-fix-for-config_pci=n.patch m68k-cleanup-unistdh.patch m68k-remove-some-unused-definitions-in-zorroh.patch m68k-use-c99-initializer.patch m68k-print-correct-stack-trace.patch m68k-restore-amikbd-compatibility-with-24.patch m68k-extra-delay.patch m68k-use-proper-defines-for-zone-initialization.patch m68k-adjust-to-changed-hardirq_mask.patch m68k-m68k-mac-via2-fixes-and-cleanups.patch fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch adjust-handle_irr_event-return-type.patch fix-kbuild-dependencies-for-synclink-drivers.patch time-use-clocksource-abstraction-for-ntp-adjustments-optimize-out-some-mults-since-gcc-cant-avoid-them.patch time-rename-clocksource-functions.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html