]> git.neil.brown.name Git - history.git/commitdiff
Franz Sirl's ADB/PPC keyboard handling update - move fully
authorVojtech Pavlik <vojtech@twilight.ucw.cz>
Sat, 13 Jul 2002 17:26:38 +0000 (19:26 +0200)
committerVojtech Pavlik <vojtech@twilight.ucw.cz>
Sat, 13 Jul 2002 17:26:38 +0000 (19:26 +0200)
to using the input core

21 files changed:
arch/ppc/4xx_io/stb_kb.c
arch/ppc/Config.help
arch/ppc/config.in
arch/ppc/kernel/m8260_setup.c
arch/ppc/kernel/m8xx_setup.c
arch/ppc/kernel/ppc4xx_setup.c
arch/ppc/kernel/setup.c
arch/ppc/platforms/apus_setup.c
arch/ppc/platforms/chrp_setup.c
arch/ppc/platforms/gemini_setup.c
arch/ppc/platforms/iSeries_setup.c
arch/ppc/platforms/oak_setup.c
arch/ppc/platforms/pmac_setup.c
arch/ppc/platforms/pplus_setup.c
arch/ppc/platforms/prep_setup.c
arch/ppc/platforms/sandpoint_setup.c
arch/ppc/platforms/spruce_setup.c
drivers/macintosh/adbhid.c
drivers/macintosh/mac_hid.c
include/asm-ppc/keyboard.h
include/asm-ppc/machdep.h

index ccb2cd83420d0327d2f9656a730c2e2b9adf35ca..6de3b94ff84b8ac88ef5ef0544ce2c9dcd84e5bd 100644 (file)
@@ -283,11 +283,7 @@ void redwood_irkb_init(void)
 {
        extern struct machdep_calls ppc_md;
 
-       ppc_md.kbd_setkeycode           = rawirkbd_setkeycode;
-       ppc_md.kbd_getkeycode           = rawirkbd_getkeycode;
        ppc_md.kbd_translate            = rawirkbd_translate;
        ppc_md.kbd_unexpected_up        = rawirkbd_unexpected_up;
-       ppc_md.kbd_leds                 = NULL; /*rawirkbd_leds;*/
-       ppc_md.kbd_init_hw              = rawirkbd_init_hw;
 }
 
index f570362e43e4540d006635540d32eceb24557c73..68dc2325f09a8f35e7478e28cfaa8617128e5336 100644 (file)
@@ -321,19 +321,6 @@ CONFIG_CD_NO_IDESCSI
   answer will get "defaulted" for you if you enable any of the Linux
   CD-ROM drivers).
 
-CONFIG_INPUT_ADBHID
-  Say Y here if you want to have ADB (Apple Desktop Bus) HID devices
-  such as keyboards, mice, joysticks, or graphic tablets handled by
-  the input layer.  If you say Y here, make sure to say Y to the
-  corresponding drivers "Keyboard support" (CONFIG_INPUT_KEYBDEV),
-  "Mouse Support" (CONFIG_INPUT_MOUSEDEV) and "Event interface
-  support" (CONFIG_INPUT_EVDEV) as well.
-
-  If you say N here, you still have the option of using the old ADB
-  keyboard and mouse drivers.
-
-  If unsure, say Y.
-
 CONFIG_PREP_RESIDUAL
   Some PReP systems have residual data passed to the kernel by the
   firmware.  This allows detection of memory size, devices present and
@@ -382,14 +369,26 @@ CONFIG_ADB_MACIO
   also includes a MESH II SCSI controller, DBDMA controller, VIA chip,
   OpenPIC controller and two RS422/Geoports.)
 
-CONFIG_ADB_KEYBOARD
-  This option allows you to use an ADB keyboard attached to your
-  machine. Note that this disables any other (ie. PS/2) keyboard
-  support, even if your machine is physically capable of using both at
-  the same time.
+CONFIG_INPUT_ADBHID
+  Say Y here if you want to have ADB (Apple Desktop Bus) HID devices
+  such as keyboards, mice, joysticks, trackpads  or graphic tablets
+  handled by the input layer.  If you say Y here, make sure to say Y to
+  the corresponding drivers "Keyboard support" (CONFIG_INPUT_KEYBDEV),
+  "Mouse Support" (CONFIG_INPUT_MOUSEDEV) and "Event interface
+  support" (CONFIG_INPUT_EVDEV) as well.
+
+  If unsure, say Y.
+
+CONFIG_MAC_EMUMOUSEBTN
+  This provides generic support for emulating the 2nd and 3rd mouse
+  button with keypresses.  If you say Y here, the emulation is still
+  disabled by default.  The emulation is controlled by these sysctl
+  entries:
+      /proc/sys/dev/mac_hid/mouse_button_emulation
+      /proc/sys/dev/mac_hid/mouse_button2_keycode
+      /proc/sys/dev/mac_hid/mouse_button3_keycode
 
-  If you use an ADB keyboard (4 pin connector), say Y here.
-  If you use a PS/2 keyboard (6 pin connector), say N here.
+  If you have an Apple machine with a 1-button mouse, say Y here.
 
 CONFIG_SERIAL_CONSOLE
   If you say Y here, it will be possible to use a serial port as the
@@ -886,28 +885,6 @@ CONFIG_EST8260
     End of life: -
     URL: <http://www.microsys.de/html/cu824.html>
 
-CONFIG_MAC_ADBKEYCODES
-  This provides support for sending ADB keycodes to console devices in
-  raw mode, rather than generic "Linux" keycodes.  This is the default
-  up to 2.4.0, but in future this may be phased out in favor of
-  generic Linux keycodes.  If you say Y here, you can dynamically
-  switch via the /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
-  sysctl and with the "keyboard_sends_linux_keycodes=" kernel
-  argument.
-
-  If unsure, say Y here.
-
-CONFIG_MAC_EMUMOUSEBTN
-  This provides generic support for emulating the 2nd and 3rd mouse
-  button with keypresses.  If you say Y here, the emulation is still
-  disabled by default.  The emulation is controlled by these sysctl
-  entries:
-      /proc/sys/dev/mac_hid/mouse_button_emulation
-      /proc/sys/dev/mac_hid/mouse_button2_keycode
-      /proc/sys/dev/mac_hid/mouse_button3_keycode
-
-  If you have an Apple machine with a 1-button mouse, say Y here.
-
 CONFIG_PPC_RTC
   If you say Y here and create a character special file /dev/rtc with
   major number 10 and minor number 135 using mknod ("man mknod"), you
index dddff7e6c876683379606c0820fb68862dee4d83..71c362b18343af4525f28442bce1bf8a52e1adde 100644 (file)
@@ -536,12 +536,9 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
    bool 'Apple Desktop Bus (ADB) support' CONFIG_ADB
    if [ "$CONFIG_ADB" = "y" ]; then
       bool '   Include MacIO (CHRP) ADB driver' CONFIG_ADB_MACIO
-      dep_bool '   Use input layer for ADB devices' CONFIG_INPUT_ADBHID $CONFIG_INPUT
+      dep_bool '   Support for ADB input devices (keyboard, mice, ...)' CONFIG_INPUT_ADBHID $CONFIG_INPUT
       if [ "$CONFIG_INPUT_ADBHID" = "y" ]; then
-         bool '     Support for ADB raw keycodes' CONFIG_MAC_ADBKEYCODES
          bool '     Support for mouse button 2+3 emulation' CONFIG_MAC_EMUMOUSEBTN
-      else
-         bool '   Support for ADB keyboard (old driver)' CONFIG_ADB_KEYBOARD
       fi
    fi
    # This is for drivers/macintosh/mac_hid.o, which is needed if the input
index a05530474cfde5840bde50ddae6285e85ba94906..8a4fb7f61b43ca0b11366761b4dfbbcaf190b5d6 100644 (file)
@@ -266,14 +266,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 
        ppc_md.find_end_of_memory       = m8260_find_end_of_memory;
        ppc_md.setup_io_mappings        = m8260_map_io;
-
-       ppc_md.kbd_setkeycode           = NULL;
-       ppc_md.kbd_getkeycode           = NULL;
-       ppc_md.kbd_translate            = NULL;
-       ppc_md.kbd_unexpected_up        = NULL;
-       ppc_md.kbd_leds                 = NULL;
-       ppc_md.kbd_init_hw              = NULL;
-       ppc_md.ppc_kbd_sysrq_xlate      = NULL;
 }
 
 /* Mainly for ksyms.
index bb5baa630d4f5bdcd085d8de0aad6a29b3006cff..d523047de080f975f859c97e4ea9f47531f797ba 100644 (file)
@@ -396,14 +396,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.find_end_of_memory       = m8xx_find_end_of_memory;
        ppc_md.setup_io_mappings        = m8xx_map_io;
 
-       ppc_md.kbd_setkeycode           = NULL;
-       ppc_md.kbd_getkeycode           = NULL;
-       ppc_md.kbd_translate            = NULL;
-       ppc_md.kbd_unexpected_up        = NULL;
-       ppc_md.kbd_leds                 = NULL;
-       ppc_md.kbd_init_hw              = NULL;
-       ppc_md.ppc_kbd_sysrq_xlate      = NULL;
-
 #if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
        m8xx_ide_init();
 #endif
index ad30ccaeff807ac65442e050070b32830ab5c5a7..7bb7baf9978173480eca82ab0d59d11b6f18bbdd 100755 (executable)
 extern void abort(void);
 extern void ppc4xx_find_bridges(void);
 
-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);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-                          char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern void pckbd_leds(unsigned char leds);
-extern void pckbd_init_hw(void);
-
 extern void ppc4xx_wdt_heartbeat(void);
 extern int wdt_enable;
 extern unsigned long wdt_period;
@@ -357,13 +348,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 #if defined(CONFIG_VT) && defined(CONFIG_PC_KEYBOARD)
 #if defined(CONFIG_REDWOOD_4) && defined(CONFIG_STB_KB)
        redwood_irkb_init();
-#else
-       ppc_md.kbd_setkeycode = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode = pckbd_getkeycode;
-       ppc_md.kbd_translate = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds = pckbd_leds;
-       ppc_md.kbd_init_hw = pckbd_init_hw;
 #endif
 #endif
 
index 8f86820e5debc538fe25fd51da7e0aabe1df36bc..f510b23caa40d7f81edf0ed2d58c23d3734fa827 100644 (file)
@@ -83,7 +83,7 @@ extern void chrp_init(unsigned long r3, unsigned long r4,
 #endif /* CONFIG_ALL_PPC */
 
 #ifdef CONFIG_MAGIC_SYSRQ
-unsigned long SYSRQ_KEY;
+unsigned long SYSRQ_KEY = 0x54;
 #endif /* CONFIG_MAGIC_SYSRQ */
 
 #ifdef CONFIG_VGA_CONSOLE
index a7904e35fb4c0a044279946a5e1f064f707729fd..34b237292822f63c33d2a7cb1313e479f0e210c9 100644 (file)
@@ -854,13 +854,6 @@ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 
        /* These should not be used for the APUS yet, since it uses
           the M68K keyboard now. */
-       ppc_md.kbd_setkeycode    = apus_kbd_setkeycode;
-       ppc_md.kbd_getkeycode    = apus_kbd_getkeycode;
        ppc_md.kbd_translate     = amiga_kbd_translate;
        ppc_md.kbd_unexpected_up = apus_kbd_unexpected_up;
-       ppc_md.kbd_init_hw       = apus_kbd_init_hw;
-#ifdef CONFIG_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate = amiga_sysrq_xlate;
-       SYSRQ_KEY                = 0xff;
-#endif
 }
index a531cfdbf25410a6013fcba6614055b5efeec991..37d92db09aa4e6f0767c4d666596ecf0c8147c52 100644 (file)
@@ -69,14 +69,6 @@ void rtas_indicator_progress(char *, unsigned short);
 void btext_progress(char *, unsigned short);
 
 extern unsigned long pmac_find_end_of_memory(void);
-extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int pckbd_getkeycode(unsigned int scancode);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-                          char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern void pckbd_leds(unsigned char leds);
-extern void pckbd_init_hw(void);
-extern unsigned char pckbd_sysrq_xlate[128];
 extern void select_adb_keyboard(void);
 extern int of_show_percpuinfo(struct seq_file *, int);
 
@@ -389,7 +381,7 @@ void __init chrp_init_IRQ(void)
        int i;
        unsigned long chrp_int_ack;
        unsigned char init_senses[NR_IRQS - NUM_8259_INTERRUPTS];
-#if defined(CONFIG_VT) && defined(CONFIG_ADB_KEYBOARD) && defined(XMON)        
+#if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON)        
        struct device_node *kbd;
 #endif
 
@@ -417,7 +409,7 @@ void __init chrp_init_IRQ(void)
                irq_desc[i].handler = &i8259_pic;
        i8259_init(chrp_int_ack);
 
-#if defined(CONFIG_VT) && defined(CONFIG_ADB_KEYBOARD) && defined(XMON)
+#if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON)
        /* see if there is a keyboard in the device tree
           with a parent of type "adb" */
        for (kbd = find_devices("keyboard"); kbd; kbd = kbd->next)
@@ -447,7 +439,7 @@ chrp_init2(void)
        if (ppc_md.progress)
                ppc_md.progress("  Have fun!    ", 0x7777);
 
-#if defined(CONFIG_VT) && (defined(CONFIG_ADB_KEYBOARD) || defined(CONFIG_INPUT))
+#if defined(CONFIG_VT) && defined(CONFIG_INPUT)
        /* see if there is a keyboard in the device tree
           with a parent of type "adb" */
        {
@@ -461,7 +453,7 @@ chrp_init2(void)
                        }
                }
        }
-#endif /* CONFIG_VT && (CONFIG_ADB_KEYBOARD || CONFIG_INPUT) */
+#endif /* CONFIG_VT && CONFIG_INPUT */
 }
 
 void __init
@@ -502,20 +494,6 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
 
        ppc_md.find_end_of_memory = pmac_find_end_of_memory;
 
-#ifdef CONFIG_VT
-       /* these are adjusted in chrp_init2 if we have an ADB keyboard */
-       ppc_md.kbd_setkeycode    = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode    = pckbd_getkeycode;
-       ppc_md.kbd_translate     = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds          = pckbd_leds;
-       ppc_md.kbd_init_hw       = pckbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate       = pckbd_sysrq_xlate;
-       SYSRQ_KEY = 0x54;
-#endif /* CONFIG_MAGIC_SYSRQ */
-#endif /* CONFIG_VT */
-
        if (rtas_data) {
                struct device_node *rtas;
                unsigned int *p;
index 621eec4934f8443622f0f347d2d838167297983b..206f613f8eecf21d5c8a55d3095cc4a2e3316b9b 100644 (file)
@@ -576,14 +576,6 @@ void __init platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.find_end_of_memory = gemini_find_end_of_memory;
        ppc_md.setup_io_mappings = gemini_map_io;
 
-       /* no keyboard/mouse/video stuff yet.. */
-       ppc_md.kbd_setkeycode = NULL;
-       ppc_md.kbd_getkeycode = NULL;
-       ppc_md.kbd_translate = NULL;
-       ppc_md.kbd_unexpected_up = NULL;
-       ppc_md.kbd_leds = NULL;
-       ppc_md.kbd_init_hw = NULL;
-       ppc_md.ppc_kbd_sysrq_xlate = NULL;
        ppc_md.pcibios_fixup_bus = gemini_pcibios_fixup;
 
 #ifdef CONFIG_SMP
index 71e262ccaa7c121382c946d58d13f48ea21ed5fb..550abe7096b3fc3aadd6cb46d7c5587b684e4d46 100644 (file)
@@ -216,12 +216,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.progress                 = iSeries_progress;
        ppc_md.find_end_of_memory       = iSeries_find_end_of_memory;
 
-       ppc_md.kbd_setkeycode           = NULL;
-       ppc_md.kbd_getkeycode           = NULL;
-       ppc_md.kbd_translate            = NULL;
-       ppc_md.kbd_unexpected_up        = NULL;
-       ppc_md.kbd_leds                 = NULL;
-       ppc_md.kbd_init_hw              = NULL;
 #ifdef CONFIG_PCI
        ppc_md.pcibios_fixup_bus        = iSeries_fixup_bus;
        ppc_md.pcibios_fixup            = iSeries_fixup;
@@ -230,10 +224,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.pcibios_fixup            = NULL;
 #endif /* CONFIG_PCI         */
 
-#if defined(CONFIG_MAGIC_SYSRQ)
-       ppc_md.ppc_kbd_sysrq_xlate      = NULL;
-#endif
-
 #ifdef CONFIG_SMP
        ppc_md.smp_ops                  = &iSeries_smp_ops;
 #endif /* CONFIG_SMP */
index 4ad64b9b6432256c014dad55eed9b5afade94b1f..10140a75b7c63a34e6af267d47d05a3177923842 100644 (file)
@@ -117,14 +117,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.set_rtc_time             = oak_set_rtc_time;
        ppc_md.get_rtc_time             = oak_get_rtc_time;
        ppc_md.calibrate_decr           = oak_calibrate_decr;
-
-       ppc_md.kbd_setkeycode           = NULL;
-       ppc_md.kbd_getkeycode           = NULL;
-       ppc_md.kbd_translate            = NULL;
-       ppc_md.kbd_unexpected_up        = NULL;
-       ppc_md.kbd_leds                 = NULL;
-       ppc_md.kbd_init_hw              = NULL;
-       ppc_md.ppc_kbd_sysrq_xlate      = NULL;
 }
 
 /*
index 8a4e7c8cb7da7384ed1c7a40ebcaa153cb5b0739..2cf08483340732cc911aa85cc30b4af2d8a6fc9a 100644 (file)
@@ -88,26 +88,6 @@ extern void pmac_find_bridges(void);
 extern int pmac_ide_check_base(ide_ioreg_t base);
 extern ide_ioreg_t pmac_ide_get_base(int index);
 
-extern int mackbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int mackbd_getkeycode(unsigned int scancode);
-extern int mackbd_translate(unsigned char keycode, unsigned char *keycodep,
-                    char raw_mode);
-extern char mackbd_unexpected_up(unsigned char keycode);
-extern void mackbd_leds(unsigned char leds);
-extern void __init mackbd_init_hw(void);
-extern int mac_hid_kbd_translate(unsigned char scancode, unsigned char *keycode,
-                                char raw_mode);
-extern char mac_hid_kbd_unexpected_up(unsigned char keycode);
-extern void mac_hid_init_hw(void);
-extern unsigned char mac_hid_kbd_sysrq_xlate[];
-extern unsigned char pckbd_sysrq_xlate[];
-extern unsigned char mackbd_sysrq_xlate[];
-extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int pckbd_getkeycode(unsigned int scancode);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-                          char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern int keyboard_sends_linux_keycodes;
 extern void pmac_nvram_update(void);
 extern unsigned char pmac_nvram_read_byte(int addr);
 extern void pmac_nvram_write_byte(int addr, unsigned char val);
@@ -641,37 +621,8 @@ void __init
 select_adb_keyboard(void)
 {
 #ifdef CONFIG_VT
-#ifdef CONFIG_INPUT
-       ppc_md.kbd_init_hw       = mac_hid_init_hw;
        ppc_md.kbd_translate     = mac_hid_kbd_translate;
        ppc_md.kbd_unexpected_up = mac_hid_kbd_unexpected_up;
-       ppc_md.kbd_setkeycode    = 0;
-       ppc_md.kbd_getkeycode    = 0;
-       ppc_md.kbd_leds          = 0;
-#ifdef CONFIG_MAGIC_SYSRQ
-#ifdef CONFIG_MAC_ADBKEYCODES
-       if (!keyboard_sends_linux_keycodes) {
-               ppc_md.ppc_kbd_sysrq_xlate = mac_hid_kbd_sysrq_xlate;
-               SYSRQ_KEY = 0x69;
-       } else
-#endif /* CONFIG_MAC_ADBKEYCODES */
-       {
-               ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate;
-               SYSRQ_KEY = 0x54;
-       }
-#endif /* CONFIG_MAGIC_SYSRQ */
-#elif defined(CONFIG_ADB_KEYBOARD)
-       ppc_md.kbd_setkeycode       = mackbd_setkeycode;
-       ppc_md.kbd_getkeycode       = mackbd_getkeycode;
-       ppc_md.kbd_translate        = mackbd_translate;
-       ppc_md.kbd_unexpected_up    = mackbd_unexpected_up;
-       ppc_md.kbd_leds             = mackbd_leds;
-       ppc_md.kbd_init_hw          = mackbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate  = mackbd_sysrq_xlate;
-       SYSRQ_KEY = 0x69;
-#endif /* CONFIG_MAGIC_SYSRQ */
-#endif /* CONFIG_INPUT_ADBHID/CONFIG_ADB_KEYBOARD */
 #endif /* CONFIG_VT */
 }
 
index 3da7b0375a5e32798a4fe795fe76d4cc4bd51064..74d2aac096bd9f58b4e069bfd9b45be490c6673b 100644 (file)
 
 TODC_ALLOC();
 
-extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int pckbd_getkeycode(unsigned int scancode);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-               char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern void pckbd_leds(unsigned char leds);
-extern void pckbd_init_hw(void);
-extern unsigned char pckbd_sysrq_xlate[128];
-
 extern void pplus_setup_hose(void);
 
 extern void pplus_set_VIA_IDE_native(void);
@@ -508,19 +499,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_ide_md.ide_init_hwif = pplus_ide_init_hwif_ports;
 #endif
 
-#ifdef CONFIG_VT
-       ppc_md.kbd_setkeycode    = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode    = pckbd_getkeycode;
-       ppc_md.kbd_translate     = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds          = pckbd_leds;
-       ppc_md.kbd_init_hw       = pckbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate       = pckbd_sysrq_xlate;
-       SYSRQ_KEY = 0x54;
-#endif
-#endif
-
 #ifdef CONFIG_SMP
        ppc_md.smp_ops           = &pplus_smp_ops;
 #endif /* CONFIG_SMP */
index ce9b00fe4effaec0bae0a3485b50e52f6ace553c..96db1accd38dcf42c47b1e09fe85602fac91205e 100644 (file)
@@ -79,15 +79,6 @@ extern void rs_nvram_write_val(int addr,
                                 unsigned char val);
 extern void ibm_prep_init(void);
 
-extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int pckbd_getkeycode(unsigned int scancode);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-               char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern void pckbd_leds(unsigned char leds);
-extern void pckbd_init_hw(void);
-extern unsigned char pckbd_sysrq_xlate[];
-
 extern void prep_find_bridges(void);
 extern char saved_command_line[];
 
@@ -895,19 +886,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_ide_md.default_io_base = prep_ide_default_io_base;
 #endif
 
-#ifdef CONFIG_VT
-       ppc_md.kbd_setkeycode    = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode    = pckbd_getkeycode;
-       ppc_md.kbd_translate     = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds          = pckbd_leds;
-       ppc_md.kbd_init_hw       = pckbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate       = pckbd_sysrq_xlate;
-       SYSRQ_KEY = 0x54;
-#endif
-#endif
-
 #ifdef CONFIG_SMP
        ppc_md.smp_ops           = &prep_smp_ops;
 #endif /* CONFIG_SMP */
index 64d7201f86f7a82c42caa5880062dc803d15c801..2aaa391069ecf0bf4c8552eaa03901b4cc1509db 100644 (file)
 extern u_int openpic_irq(void);
 extern void openpic_eoi(void);
 
-extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
-extern int pckbd_getkeycode(unsigned int scancode);
-extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
-                                          char raw_mode);
-extern char pckbd_unexpected_up(unsigned char keycode);
-extern void pckbd_leds(unsigned char leds);
-extern void pckbd_init_hw(void);
-extern unsigned char pckbd_sysrq_xlate[128];
-
 static void    sandpoint_halt(void);
 
 
@@ -645,19 +636,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.progress = NULL;
 #endif /* CONFIG_SERIAL_TEXT_DEBUG */
 
-#ifdef CONFIG_VT
-       ppc_md.kbd_setkeycode    = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode    = pckbd_getkeycode;
-       ppc_md.kbd_translate     = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds          = pckbd_leds;
-       ppc_md.kbd_init_hw       = pckbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.ppc_kbd_sysrq_xlate       = pckbd_sysrq_xlate;
-       SYSRQ_KEY = 0x54;
-#endif
-#endif
-
 #if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
         ppc_ide_md.default_irq = sandpoint_ide_default_irq;
         ppc_ide_md.default_io_base = sandpoint_ide_default_io_base;
index a4e6171365f1f8e97c867f82af3f6f42d17f8a45..693cc58c6ee649562ccd7303d16d8dbc65505fba 100644 (file)
@@ -64,13 +64,6 @@ extern void spruce_init_IRQ(void);
 extern int spruce_get_irq(struct pt_regs *);
 extern void spruce_setup_hose(void);
 
-extern int pckbd_setkeycode(unsigned int, unsigned int);
-extern int pckbd_getkeycode(unsigned int);
-extern int pckbd_translate(unsigned char, unsigned char *, char);
-extern char pckbd_unexpected_up(unsigned char);
-extern void pckbd_leds(unsigned char);
-extern void pckbd_init_hw(void);
-extern unsigned char pckbd_sysrq_xlate[128];
 extern char cmd_line[];
 
 /*
@@ -279,18 +272,4 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 
        ppc_md.nvram_read_val = todc_direct_read_val;
        ppc_md.nvram_write_val = todc_direct_write_val;
-
-#ifdef CONFIG_VT
-       /* Spruce has a PS2 style keyboard */
-       ppc_md.kbd_setkeycode = pckbd_setkeycode;
-       ppc_md.kbd_getkeycode = pckbd_getkeycode;
-       ppc_md.kbd_translate = pckbd_translate;
-       ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
-       ppc_md.kbd_leds = pckbd_leds;
-       ppc_md.kbd_init_hw = pckbd_init_hw;
-#ifdef CONFIG_MAGIC_SYSRQ
-       ppc_md.kbd_sysrq_xlate = pckbd_sysrq_xlate;
-       SYSRQ_KEY = 0x54;
-#endif
-#endif
 }
index cc400ade45f9768412a4b01c82651e6ea3615ad8..b5abd0cb73c839bfabf1d0b9b229cfe97b8781ee 100644 (file)
@@ -77,6 +77,7 @@ struct adbhid {
        int mouse_kind;
        unsigned char *keycode;
        char name[64];
+       char phys[32];
 };
 
 static struct adbhid *adbhid[16] = { 0 };
@@ -273,12 +274,37 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
        switch (adbhid[id]->original_handler_id) {
        default:
        case 0x02: /* Adjustable keyboard button device */
-               printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n",
-                      data[0], data[1], data[2], data[3]);
-               break;
+         {
+               int down = (data[1] == (data[1] & 0xf));
+
+               switch (data[1] & 0x0f) {
+               case 0x0:       /* microphone */
+                       input_report_key(&adbhid[id]->input, KEY_SOUND, down);
+                       break;
+
+               case 0x1:       /* mute */
+                       input_report_key(&adbhid[id]->input, KEY_MUTE, down);
+                       break;
+
+               case 0x2:       /* volume decrease */
+                       input_report_key(&adbhid[id]->input, KEY_VOLUMEDOWN, down);
+                       break;
+
+               case 0x3:       /* volume increase */
+                       input_report_key(&adbhid[id]->input, KEY_VOLUMEUP, down);
+                       break;
+
+               default:
+                       printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n",
+                              data[0], data[1], data[2], data[3]);
+                       break;
+               }
+         }
+         break;
+
        case 0x1f: /* Powerbook button device */
          {
-               int down = (data[1] == (data[1] & 0xf));
+               int down = (data[1] == (data[1] & 0xf));
 #ifdef CONFIG_PMAC_BACKLIGHT
                int backlight = get_backlight_level();
 #endif
@@ -298,11 +324,12 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
 
                case 0x6:       /* volume increase */
                        input_report_key(&adbhid[id]->input, KEY_VOLUMEUP, down);
-                       break;
+                       break;
 
                case 0xb:       /* eject */
                        input_report_key(&adbhid[id]->input, KEY_EJECTCD, down);
                        break;
+
                case 0xa:       /* brightness decrease */
 #ifdef CONFIG_PMAC_BACKLIGHT
                        if (!disable_kernel_backlight) {
@@ -317,6 +344,7 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
 #endif /* CONFIG_PMAC_BACKLIGHT */
                        input_report_key(&adbhid[id]->input, KEY_BRIGHTNESSDOWN, down);
                        break;
+
                case 0x9:       /* brightness increase */
 #ifdef CONFIG_PMAC_BACKLIGHT
                        if (!disable_kernel_backlight) {
@@ -442,6 +470,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
                return;
 
        memset(adbhid[id], 0, sizeof(struct adbhid));
+       sprintf(adbhid[id]->phys, "adb%d:%d.%02x/input", id, default_id, original_handler_id);
 
        adbhid[id]->id = default_id;
        adbhid[id]->original_handler_id = original_handler_id;
@@ -449,6 +478,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
        adbhid[id]->mouse_kind = mouse_kind;
        adbhid[id]->input.private = adbhid[id];
        adbhid[id]->input.name = adbhid[id]->name;
+       adbhid[id]->input.phys = adbhid[id]->phys;
        adbhid[id]->input.idbus = BUS_ADB;
        adbhid[id]->input.idvendor = 0x0001;
        adbhid[id]->input.idproduct = (id << 12) | (default_id << 8) | original_handler_id;
@@ -461,8 +491,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
                        return;
                }
 
-               sprintf(adbhid[id]->name, "ADB keyboard on ID %d:%d.%02x",
-                       id, default_id, original_handler_id);
+               sprintf(adbhid[id]->name, "ADB keyboard");
 
                memcpy(adbhid[id]->keycode, adb_to_linux_keycodes, sizeof(adb_to_linux_keycodes));
 
@@ -509,8 +538,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
                break;
 
        case ADB_MOUSE:
-               sprintf(adbhid[id]->name, "ADB mouse on ID %d:%d.%02x",
-                       id, default_id, original_handler_id);
+               sprintf(adbhid[id]->name, "ADB mouse");
 
                adbhid[id]->input.evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
                adbhid[id]->input.keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT);
@@ -520,12 +548,15 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
        case ADB_MISC:
                switch (original_handler_id) {
                case 0x02: /* Adjustable keyboard button device */
-                       sprintf(adbhid[id]->name, "ADB adjustable keyboard buttons on ID %d:%d.%02x",
-                               id, default_id, original_handler_id);
+                       sprintf(adbhid[id]->name, "ADB adjustable keyboard buttons");
+                       adbhid[id]->input.evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
+                       set_bit(KEY_SOUND, adbhid[id]->input.keybit);
+                       set_bit(KEY_MUTE, adbhid[id]->input.keybit);
+                       set_bit(KEY_VOLUMEUP, adbhid[id]->input.keybit);
+                       set_bit(KEY_VOLUMEDOWN, adbhid[id]->input.keybit);
                        break;
                case 0x1f: /* Powerbook button device */
-                       sprintf(adbhid[id]->name, "ADB Powerbook buttons on ID %d:%d.%02x",
-                               id, default_id, original_handler_id);
+                       sprintf(adbhid[id]->name, "ADB Powerbook buttons");
                        adbhid[id]->input.evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
                        set_bit(KEY_MUTE, adbhid[id]->input.keybit);
                        set_bit(KEY_VOLUMEUP, adbhid[id]->input.keybit);
@@ -549,8 +580,8 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
 
        input_register_device(&adbhid[id]->input);
 
-       printk(KERN_INFO "input%d: ADB HID on ID %d:%d.%02x\n",
-              adbhid[id]->input.number, id, default_id, original_handler_id);
+       printk(KERN_INFO "input: %s on %s\n",
+              adbhid[id]->name, adbhid[id]->phys);
 
        if (default_id == ADB_KEYBOARD) {
                /* HACK WARNING!! This should go away as soon there is an utility
@@ -580,11 +611,11 @@ adbhid_input_reregister(int id, int default_id, int org_handler_id,
                    ((id << 12)|(default_id << 8)|org_handler_id)) {
                        adbhid_input_unregister(id);
                        adbhid_input_register(id, default_id, org_handler_id,
-                               cur_handler_id, mk);
+                                             cur_handler_id, mk);
                }
        } else
                adbhid_input_register(id, default_id, org_handler_id,
-                       cur_handler_id, mk);
+                                     cur_handler_id, mk);
        return 1<<id;
 }
 
@@ -593,10 +624,10 @@ adbhid_input_devcleanup(u16 exist)
 {
        int i;
        for(i=1; i<16; i++)
-           if (adbhid[i] && !(exist&(1<<i)))
-               adbhid_input_unregister(i);
+               if (adbhid[i] && !(exist&(1<<i)))
+                       adbhid_input_unregister(i);
 }
+
 static void
 adbhid_probe(void)
 {
@@ -631,14 +662,16 @@ adbhid_probe(void)
                        printk("ADB keyboard at %d, handler 1\n", id);
 
                adb_get_infos(id, &default_id, &cur_handler_id);
-               reg |= adbhid_input_reregister(id, default_id, org_handler_id, cur_handler_id, 0);
+               reg |= adbhid_input_reregister(id, default_id, org_handler_id,
+                                              cur_handler_id, 0);
        }
 
        for (i = 0; i < buttons_ids.nids; i++) {
                int id = buttons_ids.id[i];
 
                adb_get_infos(id, &default_id, &org_handler_id);
-               reg |= adbhid_input_reregister(id, default_id, org_handler_id, org_handler_id, 0);
+               reg |= adbhid_input_reregister(id, default_id, org_handler_id,
+                                              org_handler_id, 0);
        }
 
        /* Try to switch all mice to handler 4, or 2 for three-button
@@ -728,8 +761,8 @@ adbhid_probe(void)
 
                adb_get_infos(id, &default_id, &cur_handler_id);
                reg |= adbhid_input_reregister(id, default_id, org_handler_id,
-                                     cur_handler_id, mouse_kind);
-        }
+                                              cur_handler_id, mouse_kind);
+       }
        adbhid_input_devcleanup(reg);
 }
 
@@ -742,7 +775,7 @@ init_trackpad(int id)
        printk(" (trackpad)");
 
        adb_request(&req, NULL, ADBREQ_SYNC | ADBREQ_REPLY, 1,
-               ADB_READREG(id,1));
+                   ADB_READREG(id,1));
        if (req.reply_len < 8)
            printk("bad length for reg. 1\n");
        else
@@ -782,7 +815,7 @@ init_trackpad(int id)
                    0x03, /*r1_buffer[6],*/
                    r1_buffer[7]);
 
-           /* Without this flush, the trackpad may be locked up */         
+           /* Without this flush, the trackpad may be locked up */
            adb_request(&req, NULL, ADBREQ_SYNC, 1, ADB_FLUSH(id));
         }
 }
index b04d7a705ec028baf4813e54dc15942d0cd8f694..80872c799b1bfdc21aafbad4ea5df5fcda8c2628 100644 (file)
@@ -5,8 +5,6 @@
  *
  * Copyright (C) 2000 Franz Sirl.
  *
- * Stuff inside CONFIG_MAC_ADBKEYCODES should go away during 2.5 when all
- * major distributions are using the Linux keycodes.
  * Stuff inside CONFIG_MAC_EMUMOUSEBTN should really be moved to userspace.
  */
 
 #include <linux/input.h>
 #include <linux/module.h>
 
-#ifdef CONFIG_MAC_ADBKEYCODES
-#include <linux/keyboard.h>
-#include <asm/keyboard.h>
-#include <asm/machdep.h>
-#endif
-
-#ifdef CONFIG_MAC_ADBKEYCODES
-/* Simple translation table for the SysRq keys */
-
-#ifdef CONFIG_MAGIC_SYSRQ
-unsigned char mac_hid_kbd_sysrq_xlate[128] =
-       "asdfhgzxcv\000bqwer"                           /* 0x00 - 0x0f */
-       "yt123465=97-80o]"                              /* 0x10 - 0x1f */
-       "u[ip\rlj'k;\\,/nm."                            /* 0x20 - 0x2f */
-       "\t `\177\000\033\000\000\000\000\000\000\000\000\000\000"
-                                                       /* 0x30 - 0x3f */
-       "\000\000\000*\000+\000\000\000\000\000/\r\000-\000"
-                                                       /* 0x40 - 0x4f */
-       "\000\0000123456789\000\000\000"                /* 0x50 - 0x5f */
-       "\205\206\207\203\210\211\000\213\000\215\000\000\000\000\000\212\000\214";
-                                                       /* 0x60 - 0x6f */
-extern unsigned char pckbd_sysrq_xlate[128];
-#endif
-
-static u_short macplain_map[NR_KEYS] = {
-       0xfb61, 0xfb73, 0xfb64, 0xfb66, 0xfb68, 0xfb67, 0xfb7a, 0xfb78,
-       0xfb63, 0xfb76, 0xf200, 0xfb62, 0xfb71, 0xfb77, 0xfb65, 0xfb72,
-       0xfb79, 0xfb74, 0xf031, 0xf032, 0xf033, 0xf034, 0xf036, 0xf035,
-       0xf03d, 0xf039, 0xf037, 0xf02d, 0xf038, 0xf030, 0xf05d, 0xfb6f,
-       0xfb75, 0xf05b, 0xfb69, 0xfb70, 0xf201, 0xfb6c, 0xfb6a, 0xf027,
-       0xfb6b, 0xf03b, 0xf05c, 0xf02c, 0xf02f, 0xfb6e, 0xfb6d, 0xf02e,
-       0xf009, 0xf020, 0xf060, 0xf07f, 0xf200, 0xf01b, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf300, 0xf301, 0xf302, 0xf303, 0xf304, 0xf305,
-       0xf306, 0xf307, 0xf200, 0xf308, 0xf309, 0xf200, 0xf200, 0xf200,
-       0xf104, 0xf105, 0xf106, 0xf102, 0xf107, 0xf108, 0xf200, 0xf10a,
-       0xf200, 0xf10c, 0xf200, 0xf209, 0xf200, 0xf109, 0xf200, 0xf10b,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf103, 0xf117,
-       0xf101, 0xf119, 0xf100, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static u_short macshift_map[NR_KEYS] = {
-       0xfb41, 0xfb53, 0xfb44, 0xfb46, 0xfb48, 0xfb47, 0xfb5a, 0xfb58,
-       0xfb43, 0xfb56, 0xf200, 0xfb42, 0xfb51, 0xfb57, 0xfb45, 0xfb52,
-       0xfb59, 0xfb54, 0xf021, 0xf040, 0xf023, 0xf024, 0xf05e, 0xf025,
-       0xf02b, 0xf028, 0xf026, 0xf05f, 0xf02a, 0xf029, 0xf07d, 0xfb4f,
-       0xfb55, 0xf07b, 0xfb49, 0xfb50, 0xf201, 0xfb4c, 0xfb4a, 0xf022,
-       0xfb4b, 0xf03a, 0xf07c, 0xf03c, 0xf03f, 0xfb4e, 0xfb4d, 0xf03e,
-       0xf009, 0xf020, 0xf07e, 0xf07f, 0xf200, 0xf01b, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf300, 0xf301, 0xf302, 0xf303, 0xf304, 0xf305,
-       0xf306, 0xf307, 0xf200, 0xf308, 0xf309, 0xf200, 0xf200, 0xf200,
-       0xf10e, 0xf10f, 0xf110, 0xf10c, 0xf111, 0xf112, 0xf200, 0xf10a,
-       0xf200, 0xf10c, 0xf200, 0xf203, 0xf200, 0xf113, 0xf200, 0xf10b,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf20b, 0xf116, 0xf10d, 0xf117,
-       0xf10b, 0xf20a, 0xf10a, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static u_short macaltgr_map[NR_KEYS] = {
-       0xf914, 0xfb73, 0xf917, 0xf919, 0xfb68, 0xfb67, 0xfb7a, 0xfb78,
-       0xf916, 0xfb76, 0xf200, 0xf915, 0xfb71, 0xfb77, 0xf918, 0xfb72,
-       0xfb79, 0xfb74, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
-       0xf200, 0xf05d, 0xf07b, 0xf05c, 0xf05b, 0xf07d, 0xf07e, 0xfb6f,
-       0xfb75, 0xf200, 0xfb69, 0xfb70, 0xf201, 0xfb6c, 0xfb6a, 0xf200,
-       0xfb6b, 0xf200, 0xf200, 0xf200, 0xf200, 0xfb6e, 0xfb6d, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf90a, 0xf90b, 0xf90c, 0xf90d, 0xf90e, 0xf90f,
-       0xf910, 0xf911, 0xf200, 0xf912, 0xf913, 0xf200, 0xf200, 0xf200,
-       0xf510, 0xf511, 0xf512, 0xf50e, 0xf513, 0xf514, 0xf200, 0xf516,
-       0xf200, 0xf10c, 0xf200, 0xf202, 0xf200, 0xf515, 0xf200, 0xf517,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf50f, 0xf117,
-       0xf50d, 0xf119, 0xf50c, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static u_short macctrl_map[NR_KEYS] = {
-       0xf001, 0xf013, 0xf004, 0xf006, 0xf008, 0xf007, 0xf01a, 0xf018,
-       0xf003, 0xf016, 0xf200, 0xf002, 0xf011, 0xf017, 0xf005, 0xf012,
-       0xf019, 0xf014, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01e, 0xf01d,
-       0xf200, 0xf200, 0xf01f, 0xf01f, 0xf07f, 0xf200, 0xf01d, 0xf00f,
-       0xf015, 0xf01b, 0xf009, 0xf010, 0xf201, 0xf00c, 0xf00a, 0xf007,
-       0xf00b, 0xf200, 0xf01c, 0xf200, 0xf07f, 0xf00e, 0xf00d, 0xf20e,
-       0xf200, 0xf000, 0xf000, 0xf008, 0xf200, 0xf200, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf300, 0xf301, 0xf302, 0xf303, 0xf304, 0xf305,
-       0xf306, 0xf307, 0xf200, 0xf308, 0xf309, 0xf200, 0xf200, 0xf200,
-       0xf104, 0xf105, 0xf106, 0xf102, 0xf107, 0xf108, 0xf200, 0xf10a,
-       0xf200, 0xf10c, 0xf200, 0xf204, 0xf200, 0xf109, 0xf200, 0xf10b,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf103, 0xf117,
-       0xf101, 0xf119, 0xf100, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static u_short macshift_ctrl_map[NR_KEYS] = {
-       0xf001, 0xf013, 0xf004, 0xf006, 0xf008, 0xf007, 0xf01a, 0xf018,
-       0xf003, 0xf016, 0xf200, 0xf002, 0xf011, 0xf017, 0xf005, 0xf012,
-       0xf019, 0xf014, 0xf200, 0xf000, 0xf200, 0xf200, 0xf200, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf200, 0xf200, 0xf00f,
-       0xf015, 0xf200, 0xf009, 0xf010, 0xf201, 0xf00c, 0xf00a, 0xf200,
-       0xf00b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf00e, 0xf00d, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf300, 0xf301, 0xf302, 0xf303, 0xf304, 0xf305,
-       0xf306, 0xf307, 0xf200, 0xf308, 0xf309, 0xf200, 0xf200, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-       0xf200, 0xf10c, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf200, 0xf117,
-       0xf200, 0xf119, 0xf200, 0xf700, 0xf701, 0xf702, 0xf200, 0xf20c,
-};
-
-static u_short macalt_map[NR_KEYS] = {
-       0xf861, 0xf873, 0xf864, 0xf866, 0xf868, 0xf867, 0xf87a, 0xf878,
-       0xf863, 0xf876, 0xf200, 0xf862, 0xf871, 0xf877, 0xf865, 0xf872,
-       0xf879, 0xf874, 0xf831, 0xf832, 0xf833, 0xf834, 0xf836, 0xf835,
-       0xf83d, 0xf839, 0xf837, 0xf82d, 0xf838, 0xf830, 0xf85d, 0xf86f,
-       0xf875, 0xf85b, 0xf869, 0xf870, 0xf80d, 0xf86c, 0xf86a, 0xf827,
-       0xf86b, 0xf83b, 0xf85c, 0xf82c, 0xf82f, 0xf86e, 0xf86d, 0xf82e,
-       0xf809, 0xf820, 0xf860, 0xf87f, 0xf200, 0xf81b, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf210, 0xf211, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf900, 0xf901, 0xf902, 0xf903, 0xf904, 0xf905,
-       0xf906, 0xf907, 0xf200, 0xf908, 0xf909, 0xf200, 0xf200, 0xf200,
-       0xf504, 0xf505, 0xf506, 0xf502, 0xf507, 0xf508, 0xf200, 0xf50a,
-       0xf200, 0xf10c, 0xf200, 0xf209, 0xf200, 0xf509, 0xf200, 0xf50b,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf503, 0xf117,
-       0xf501, 0xf119, 0xf500, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static u_short macctrl_alt_map[NR_KEYS] = {
-       0xf801, 0xf813, 0xf804, 0xf806, 0xf808, 0xf807, 0xf81a, 0xf818,
-       0xf803, 0xf816, 0xf200, 0xf802, 0xf811, 0xf817, 0xf805, 0xf812,
-       0xf819, 0xf814, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf80f,
-       0xf815, 0xf200, 0xf809, 0xf810, 0xf201, 0xf80c, 0xf80a, 0xf200,
-       0xf80b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf80e, 0xf80d, 0xf200,
-       0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf702, 0xf703,
-       0xf700, 0xf207, 0xf701, 0xf601, 0xf602, 0xf600, 0xf603, 0xf200,
-       0xf200, 0xf310, 0xf200, 0xf30c, 0xf200, 0xf30a, 0xf200, 0xf208,
-       0xf200, 0xf200, 0xf200, 0xf30d, 0xf30e, 0xf200, 0xf30b, 0xf200,
-       0xf200, 0xf200, 0xf300, 0xf301, 0xf302, 0xf303, 0xf304, 0xf305,
-       0xf306, 0xf307, 0xf200, 0xf308, 0xf309, 0xf200, 0xf200, 0xf200,
-       0xf504, 0xf505, 0xf506, 0xf502, 0xf507, 0xf508, 0xf200, 0xf50a,
-       0xf200, 0xf10c, 0xf200, 0xf200, 0xf200, 0xf509, 0xf200, 0xf50b,
-       0xf200, 0xf11d, 0xf115, 0xf114, 0xf118, 0xf116, 0xf503, 0xf117,
-       0xf501, 0xf119, 0xf500, 0xf700, 0xf701, 0xf702, 0xf200, 0xf200,
-};
-
-static unsigned short *mac_key_maps_save[MAX_NR_KEYMAPS] = {
-       macplain_map, macshift_map, macaltgr_map, 0,
-       macctrl_map, macshift_ctrl_map, 0, 0,
-       macalt_map, 0, 0, 0,
-       macctrl_alt_map,   0
-};
-
-static unsigned short *pc_key_maps_save[MAX_NR_KEYMAPS];
-
-int mac_hid_kbd_translate(unsigned char keycode, unsigned char *keycodep,
-                         char raw_mode);
-static int mac_hid_sysctl_keycodes(ctl_table *ctl, int write, struct file * filp,
-                                  void *buffer, size_t *lenp);
-char mac_hid_kbd_unexpected_up(unsigned char keycode);
-
-static int keyboard_lock_keycodes = 0;
-int keyboard_sends_linux_keycodes = 0;
-#else
-int keyboard_sends_linux_keycodes = 1;
-#endif
-
 
 static unsigned char e0_keys[128] = {
        0, 0, 0, KEY_KPCOMMA, 0, KEY_INTL3, 0, 0,               /* 0x00-0x07 */
@@ -225,25 +45,10 @@ static int mouse_button3_keycode = KEY_RIGHTALT;   /* right option key */
 static int mouse_last_keycode = 0;
 #endif
 
-extern void pckbd_init_hw(void);
-
-#if defined CONFIG_SYSCTL && (defined(CONFIG_MAC_ADBKEYCODES) || defined(CONFIG_MAC_EMUMOUSEBTN))
+#if defined(CONFIG_SYSCTL) && defined(CONFIG_MAC_EMUMOUSEBTN)
 /* file(s) in /proc/sys/dev/mac_hid */
 ctl_table mac_hid_files[] =
 {
-#ifdef CONFIG_MAC_ADBKEYCODES
-  {
-    DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES,
-    "keyboard_sends_linux_keycodes", &keyboard_sends_linux_keycodes, sizeof(int),
-    0644, NULL, &mac_hid_sysctl_keycodes
-  },
-  {
-    DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES,
-    "keyboard_lock_keycodes", &keyboard_lock_keycodes, sizeof(int),
-    0644, NULL, &proc_dointvec
-  },
-#endif
-#ifdef CONFIG_MAC_EMUMOUSEBTN
   {
     DEV_MAC_HID_MOUSE_BUTTON_EMULATION,
     "mouse_button_emulation", &mouse_emulate_buttons, sizeof(int),
@@ -259,7 +64,6 @@ ctl_table mac_hid_files[] =
     "mouse_button3_keycode", &mouse_button3_keycode, sizeof(int),
     0644, NULL, &proc_dointvec
   },
-#endif
   { 0 }
 };
 
@@ -279,148 +83,72 @@ ctl_table mac_hid_root_dir[] =
 
 static struct ctl_table_header *mac_hid_sysctl_header;
 
-#ifdef CONFIG_MAC_ADBKEYCODES
-static
-int mac_hid_sysctl_keycodes(ctl_table *ctl, int write, struct file * filp,
-                           void *buffer, size_t *lenp)
-{
-       int val = keyboard_sends_linux_keycodes;
-       int ret = 0;
-
-       if (!write
-           || (write && !keyboard_lock_keycodes))
-               ret = proc_dointvec(ctl, write, filp, buffer, lenp);
-
-       if (write
-           && keyboard_sends_linux_keycodes != val) {
-               if (!keyboard_sends_linux_keycodes) {
-#ifdef CONFIG_MAGIC_SYSRQ
-                       ppc_md.ppc_kbd_sysrq_xlate   = mac_hid_kbd_sysrq_xlate;
-                       SYSRQ_KEY                = 0x69;
-#endif
-                       memcpy(pc_key_maps_save, key_maps, sizeof(key_maps));
-                       memcpy(key_maps, mac_key_maps_save, sizeof(key_maps));
-               } else {
-#ifdef CONFIG_MAGIC_SYSRQ
-                       ppc_md.ppc_kbd_sysrq_xlate   = pckbd_sysrq_xlate;
-                       SYSRQ_KEY                = 0x54;
-#endif
-                       memcpy(mac_key_maps_save, key_maps, sizeof(key_maps));
-                       memcpy(key_maps, pc_key_maps_save, sizeof(key_maps));
-               }
-       }
-
-       return ret;
-}
-#endif
 #endif /* endif CONFIG_SYSCTL */
 
 int mac_hid_kbd_translate(unsigned char scancode, unsigned char *keycode,
                          char raw_mode)
 {
-#ifdef CONFIG_MAC_ADBKEYCODES
-       if (!keyboard_sends_linux_keycodes) {
-               if (!raw_mode) {
-               /*
-                * Convert R-shift/control/option to L version.
-                */
-                       switch (scancode) {
-                       case 0x7b: scancode = 0x38; break; /* R-shift */
-                       case 0x7c: scancode = 0x3a; break; /* R-option */
-                       case 0x7d: scancode = 0x36; break; /* R-control */
-                       }
-               }
-               *keycode = scancode;
-               return 1;
-       } else
-#endif
-       {
-               /* This code was copied from char/pc_keyb.c and will be
-                * superflous when the input layer is fully integrated.
-                * We don't need the high_keys handling, so this part
-                * has been removed.
-                */
-               static int prev_scancode = 0;
-
-               /* special prefix scancodes.. */
-               if (scancode == 0xe0 || scancode == 0xe1) {
-                       prev_scancode = scancode;
-                       return 0;
-               }
+       /* This code was copied from char/pc_keyb.c and will be
+        * superflous when the input layer is fully integrated.
+        * We don't need the high_keys handling, so this part
+        * has been removed.
+        */
+       static int prev_scancode = 0;
+
+       /* special prefix scancodes.. */
+       if (scancode == 0xe0 || scancode == 0xe1) {
+               prev_scancode = scancode;
+               return 0;
+       }
 
-               scancode &= 0x7f;
+       scancode &= 0x7f;
 
-               if (prev_scancode) {
-                       if (prev_scancode != 0xe0) {
-                               if (prev_scancode == 0xe1 && scancode == 0x1d) {
-                                       prev_scancode = 0x100;
-                                       return 0;
-                               } else if (prev_scancode == 0x100 && scancode == 0x45) {
-                                       *keycode = KEY_PAUSE;
-                                       prev_scancode = 0;
-                               } else {
-                                       if (!raw_mode)
-                                               printk(KERN_INFO "keyboard: unknown e1 escape sequence\n");
-                                       prev_scancode = 0;
-                                       return 0;
-                               }
-                       } else {
+       if (prev_scancode) {
+               if (prev_scancode != 0xe0) {
+                       if (prev_scancode == 0xe1 && scancode == 0x1d) {
+                               prev_scancode = 0x100;
+                               return 0;
+                       } else if (prev_scancode == 0x100 && scancode == 0x45) {
+                               *keycode = KEY_PAUSE;
                                prev_scancode = 0;
-                               if (scancode == 0x2a || scancode == 0x36)
-                                       return 0;
-                       }
-                       if (e0_keys[scancode])
-                               *keycode = e0_keys[scancode];
-                       else {
+                       } else {
                                if (!raw_mode)
-                                       printk(KERN_INFO "keyboard: unknown scancode e0 %02x\n",
-                                              scancode);
+                                       printk(KERN_INFO "keyboard: unknown e1 escape sequence\n");
+                               prev_scancode = 0;
                                return 0;
                        }
                } else {
-                       switch (scancode) {
-                       case  91: scancode = KEY_LINEFEED; break;
-                       case  92: scancode = KEY_KPEQUAL; break;
-                       case 125: scancode = KEY_INTL1; break;
-                       }
-                       *keycode = scancode;
+                       prev_scancode = 0;
+                       if (scancode == 0x2a || scancode == 0x36)
+                               return 0;
                }
-               return 1;
+               if (e0_keys[scancode])
+                       *keycode = e0_keys[scancode];
+               else {
+                       if (!raw_mode)
+                               printk(KERN_INFO "keyboard: unknown scancode e0 %02x\n",
+                                      scancode);
+                       return 0;
+               }
+       } else {
+               switch (scancode) {
+               case  91: scancode = KEY_LINEFEED; break;
+               case  92: scancode = KEY_KPEQUAL; break;
+               case 125: scancode = KEY_INTL1; break;
+               }
+               *keycode = scancode;
        }
+       return 1;
 }
 
 char mac_hid_kbd_unexpected_up(unsigned char keycode)
 {
-       if (keyboard_sends_linux_keycodes && keycode == KEY_F13)
+       if (keycode == KEY_F13)
                return 0;
        else
                return 0x80;
 }
 
-#ifdef CONFIG_MAC_ADBKEYCODES
-int mac_hid_keyboard_sends_linux_keycodes(void)
-{
-       return keyboard_sends_linux_keycodes;
-}
-
-EXPORT_SYMBOL(mac_hid_keyboard_sends_linux_keycodes);
-
-static int __init mac_hid_setup(char *str)
-{
-       int ints[2];
-
-       str = get_options(str, ARRAY_SIZE(ints), ints);
-       if (ints[0] == 1) {
-               keyboard_sends_linux_keycodes = ints[1] != 0;
-               keyboard_lock_keycodes = 1;
-       }
-       return 1;
-}
-
-__setup("keyboard_sends_linux_keycodes=", mac_hid_setup);
-
-#endif
-
 #ifdef CONFIG_MAC_EMUMOUSEBTN
 int mac_hid_mouse_emulate_buttons(int caller, unsigned int keycode, int down)
 {
@@ -439,15 +167,6 @@ int mac_hid_mouse_emulate_buttons(int caller, unsigned int keycode, int down)
                        mouse_last_keycode = down ? keycode : 0;
                }
                break;
-       case 2:
-               /* Called from mousedev.c */
-               if (mouse_emulate_buttons == 2 && keycode == 0) {
-                       if (mouse_last_keycode == mouse_button2_keycode)
-                               return 1; /* map to middle button */
-                       if (mouse_last_keycode == mouse_button3_keycode)
-                               return 2; /* map to right button */
-               }
-               return keycode; /* keep button */
        }
        return 0;
 }
@@ -469,40 +188,22 @@ static void emumousebtn_input_register(void)
 
        input_register_device(&emumousebtn);
 
-       printk(KERN_INFO "input%d: Macintosh mouse button emulation\n", emumousebtn.number);
+       printk(KERN_INFO "input: Macintosh mouse button emulation\n");
 }
 #endif
 
-void __init mac_hid_init_hw(void)
+int __init mac_hid_init(void)
 {
 
-#ifdef CONFIG_MAC_ADBKEYCODES
-       memcpy(pc_key_maps_save, key_maps, sizeof(key_maps));
-
-       if (!keyboard_sends_linux_keycodes) {
-#ifdef CONFIG_MAGIC_SYSRQ
-               ppc_md.ppc_kbd_sysrq_xlate   = mac_hid_kbd_sysrq_xlate;
-               SYSRQ_KEY                = 0x69;
-#endif
-               memcpy(key_maps, mac_key_maps_save, sizeof(key_maps));
-       } else {
-#ifdef CONFIG_MAGIC_SYSRQ
-               ppc_md.ppc_kbd_sysrq_xlate   = pckbd_sysrq_xlate;
-               SYSRQ_KEY                = 0x54;
-#endif
-       }
-#endif /* CONFIG_MAC_ADBKEYCODES */
-
 #ifdef CONFIG_MAC_EMUMOUSEBTN
        emumousebtn_input_register();
 #endif
 
-#if CONFIG_PPC
-       if (_machine != _MACH_Pmac)
-               pckbd_init_hw();
-#endif
-
-#if defined(CONFIG_SYSCTL) && (defined(CONFIG_MAC_ADBKEYCODES) || defined(CONFIG_MAC_EMUMOUSEBTN))
+#if defined(CONFIG_SYSCTL) && defined(CONFIG_MAC_EMUMOUSEBTN)
        mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir, 1);
 #endif /* CONFIG_SYSCTL */
+
+       return 0;
 }
+
+device_initcall(mac_hid_init);
index 4d6b0aab4ddbb4607c6a7c22a983a485ab450113..bda2d671d5639486222469fc47a8ab9f9de2fa33 100644 (file)
 #define DISABLE_KBD_DURING_INTERRUPTS  0
 #define INIT_KBD
 
+extern int mac_hid_kbd_translate(unsigned char scancode, unsigned char *keycode,
+                                char raw_mode);
+extern char mac_hid_kbd_unexpected_up(unsigned char keycode);
+extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
+                          char raw_mode);
+extern char pckbd_unexpected_up(unsigned char keycode);
+extern unsigned char pckbd_sysrq_xlate[128];
+
 static inline int kbd_setkeycode(unsigned int scancode, unsigned int keycode)
 {
-       if ( ppc_md.kbd_setkeycode )
-               return ppc_md.kbd_setkeycode(scancode, keycode);
-       else
-               return 0;
+       return 0;
 }
   
 static inline int kbd_getkeycode(unsigned int scancode)
 {
-       if ( ppc_md.kbd_getkeycode )
-               return ppc_md.kbd_getkeycode(scancode);
-       else
-               return 0;
+       return 0;
 }
   
 static inline int kbd_translate(unsigned char keycode, unsigned char *keycodep,
@@ -58,7 +60,7 @@ static inline int kbd_translate(unsigned char keycode, unsigned char *keycodep,
        if ( ppc_md.kbd_translate )
                return ppc_md.kbd_translate(keycode, keycodep, raw_mode);
        else
-               return 0;
+               return pckbd_translate(keycode, keycodep, raw_mode);
 }
   
 static inline int kbd_unexpected_up(unsigned char keycode)
@@ -66,22 +68,18 @@ static inline int kbd_unexpected_up(unsigned char keycode)
        if ( ppc_md.kbd_unexpected_up )
                return ppc_md.kbd_unexpected_up(keycode);
        else
-               return 0;
+               return pckbd_unexpected_up(keycode);
 }
   
 static inline void kbd_leds(unsigned char leds)
 {
-       if ( ppc_md.kbd_leds )
-               ppc_md.kbd_leds(leds);
 }
 
 static inline void kbd_init_hw(void)
 {
-       if ( ppc_md.kbd_init_hw )
-               ppc_md.kbd_init_hw();
 }
 
-#define kbd_sysrq_xlate        (ppc_md.ppc_kbd_sysrq_xlate)
+#define kbd_sysrq_xlate        pckbd_sysrq_xlate
 
 extern unsigned long SYSRQ_KEY;
 
index 6dd6a1ee526fe1f316af020489d7bfaa91426d42..f5218fdb73c2c82aba737f4bfd380860e537f45b 100644 (file)
@@ -57,16 +57,10 @@ struct machdep_calls {
        void            (*nvram_write_val)(int addr, unsigned char val);
 
        /* Tons of keyboard stuff. */
-       int             (*kbd_setkeycode)(unsigned int scancode,
-                               unsigned int keycode);
-       int             (*kbd_getkeycode)(unsigned int scancode);
        int             (*kbd_translate)(unsigned char scancode,
                                unsigned char *keycode,
                                char raw_mode);
        char            (*kbd_unexpected_up)(unsigned char keycode);
-       void            (*kbd_leds)(unsigned char leds);
-       void            (*kbd_init_hw)(void);
-       unsigned char   *ppc_kbd_sysrq_xlate;
 
        /*
         * optional PCI "hooks"