m68k patches for 2.6.24
Subsystems (8)
Geert Uytterhoeven
maintainercover m68k patches for 2.6.24
Hi Linus, Andrew,
Here are some m68k patches for 2.6.24:
[1] m68k: Atari input drivers cleanup
[2] m68k: Atari keyboard ACIA driver cleanup
[3] m68k: ignore restart_syscall
[4] m68k: Export cachectl.h
[5] dm: emc_endio returns void
[6] m68k: fix net drivers after recent get_stats updates
[7] b43 wireless needs <linux/io.h>
[8] ssb bus needs <linux/io.h>
Patches 1-4 are m68k support updates.
Patches 5-8 are fixes for regressions/failures introduced after 2.6.23.
Please apply, thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Geert Uytterhoeven
maintainerPATCH 1/8 m68k: Atari input drivers cleanup
m68k: Atari input drivers cleanup:
- memleak on failed init/register of input devices fixed
- correct keycodes table (Atari keycodes are almost, but not entirely, equal to Linux keycodes).
--- drivers/input/keyboard/atakbd.c | 157 ++++++++++++++++++++++++++++++++++++--- drivers/input/mouse/atarimouse.c | 18 ++-- 2 files changed, 154 insertions(+), 21 deletions(-)
drivers/input/keyboard/atakbd.c +145 -12
@@ -55,7 +55,140 @@ MODULE_AUTHOR("Michael Schmitz <schmitz@MODULE_DESCRIPTION ("Atari keyboard driver" );MODULE_LICENSE ("GPL" ); -static unsigned char atakbd_keycode[0x72 ]; +/* +0x47: KP_7 71 +0x48: KP_8 72 +0x49: KP_9 73 +0x62: KP_/ 98 +0x4b: KP_4 75 +0x4c: KP_5 76 +0x4d: KP_6 77 +0x37: KP_* 55 +0x4f: KP_1 79 +0x50: KP_2 80 +0x51: KP_3 81 +0x4a: KP_- 74 +0x52: KP_0 82 +0x53: KP_. 83 +0x4e: KP_+ 78 + +0x67: Up 103 +0x6c: Down 108 +0x69: Left 105 +0x6a: Right 106 +*/ + + +static unsigned char atakbd_keycode[0x72 ] = {/* American layout */ + [0 ] =KEY_GRAVE , + [1 ] =KEY_ESC , + [2 ] =KEY_1 , + [3 ] =KEY_2 , + [4 ] =KEY_3 , + [5 ] =KEY_4 , + [6 ] =KEY_5 , + [7 ] =KEY_6 , + [8 ] =KEY_7 , + [9 ] =KEY_8 , + [10 ] =KEY_9 , + [11 ] =KEY_0 , + [12 ] =KEY_MINUS , + [13 ] =KEY_EQUAL , + [14 ] =KEY_BACKSPACE , + [15 ] =KEY_TAB , + [16 ] =KEY_Q , + [17 ] =KEY_W , + [18 ] =KEY_E , + [19 ] =KEY_R , + [20 ] =KEY_T , + [21 ] =KEY_Y , + [22 ] =KEY_U , + [23 ] =KEY_I , + [24 ] =KEY_O , + [25 ] =KEY_P , + [26 ] =KEY_LEFTBRACE , + [27 ] =KEY_RIGHTBRACE , + [28 ] =KEY_ENTER , + [29 ] =KEY_LEFTCTRL , + [30 ] =KEY_A , + [31 ] =KEY_S , + [32 ] =KEY_D , + [33 ] =KEY_F , + [34 ] =KEY_G , + [35 ] =KEY_H , + [36 ] =KEY_J , + [37 ] =KEY_K , + [38 ] =KEY_L , + [39 ] =KEY_SEMICOLON , + [40 ] =KEY_APOSTROPHE , + [41 ] =KEY_BACKSLASH ,/* FIXME, '#' */ + [42 ] =KEY_LEFTSHIFT , + [43 ] =KEY_GRAVE ,/* FIXME: '~' */ + [44 ] =KEY_Z , + [45 ] =KEY_X , + [46 ] =KEY_C , + [47 ] =KEY_V , + [48 ] =KEY_B , + [49 ] =KEY_N , + [50 ] =KEY_M , + [51 ] =KEY_COMMA , + [52 ] =KEY_DOT , + [53 ] =KEY_SLASH , + [54 ] =KEY_RIGHTSHIFT , + [55 ] =KEY_KPASTERISK , + [56 ] =KEY_LEFTALT , + [57 ] =KEY_SPACE , + [58 ] =KEY_CAPSLOCK , + [59 ] =KEY_F1 , + [60 ] =KEY_F2 , + [61 ] =KEY_F3 , + [62 ] =KEY_F4 , + [63 ] =KEY_F5 , + [64 ] =KEY_F6 , + [65 ] =KEY_F7 , + [66 ] =KEY_F8 , + [67 ] =KEY_F9 , + [68 ] =KEY_F10 , + [69 ] =KEY_ESC , + [70 ] =KEY_DELETE , + [71 ] =KEY_KP7 , + [72 ] =KEY_KP8 , + [73 ] =KEY_KP9 , + [74 ] =KEY_KPMINUS , + [75 ] =KEY_KP4 , + [76 ] =KEY_KP5 , + [77 ] =KEY_KP6 , + [78 ] =KEY_KPPLUS , + [79 ] =KEY_KP1 , + [80 ] =KEY_KP2 , + [81 ] =KEY_KP3 , + [82 ] =KEY_KP0 , + [83 ] =KEY_KPDOT , + [90 ] =KEY_KPLEFTPAREN , + [91 ] =KEY_KPRIGHTPAREN , + [92 ] =KEY_KPASTERISK ,/* FIXME */ + [93 ] =KEY_KPASTERISK , + [94 ] =KEY_KPPLUS , + [95 ] =KEY_HELP , + [96 ] =KEY_BACKSLASH ,/* FIXME: '<' */ + [97 ] =KEY_KPASTERISK ,/* FIXME */ + [98 ] =KEY_KPSLASH , + [99 ] =KEY_KPLEFTPAREN , + [100 ] =KEY_KPRIGHTPAREN , + [101 ] =KEY_KPSLASH , + [102 ] =KEY_KPASTERISK , + [103 ] =KEY_UP , + [104 ] =KEY_KPASTERISK ,/* FIXME */ + [105 ] =KEY_LEFT , + [106 ] =KEY_RIGHT , + [107 ] =KEY_KPASTERISK ,/* FIXME */ + [108 ] =KEY_DOWN , + [109 ] =KEY_KPASTERISK ,/* FIXME */ + [110 ] =KEY_KPASTERISK ,/* FIXME */ + [111 ] =KEY_KPASTERISK ,/* FIXME */ + [112 ] =KEY_KPASTERISK ,/* FIXME */ + [113 ] =KEY_KPASTERISK /* FIXME */ +};static struct input_dev *atakbd_dev;
@@ -86,21 +219,20 @@ static int __init atakbd_init(void) {int i; -if (!ATARIHW_PRESENT (ST_MFP )) +if (!MACH_IS_ATARI || !ATARIHW_PRESENT (ST_MFP ))return -EIO ; -// TODO: request_mem_region if not done in arch code - -if (!(atakbd_dev =input_allocate_device ())) -return -ENOMEM ; -// need to init core driver if not already done so if (atari_keyb_init ())return -ENODEV ; + atakbd_dev =input_allocate_device (); +if (!atakbd_dev) +return -ENOMEM ; + atakbd_dev->name ="Atari Keyboard" ; atakbd_dev->phys ="atakbd/input0" ; - atakbd_dev->id.bustype =BUS_ATARI ; + atakbd_dev->id.bustype =BUS_HOST ; atakbd_dev->id.vendor =0x0001 ; atakbd_dev->id.product =0x0001 ; atakbd_dev->id.version =0x0100 ;
@@ -111,16 +243,17 @@ static int __init atakbd_init(void) atakbd_dev->keycodemax =ARRAY_SIZE (atakbd_keycode);for (i =1 ; i <0x72 ; i++) { - atakbd_keycode[i] = i;set_bit (atakbd_keycode[i], atakbd_dev->keybit); } -input_register_device (atakbd_dev); +/* error check */ +if (input_register_device (atakbd_dev)) { +input_free_device (atakbd_dev); +return -ENOMEM ; + } atari_input_keyboard_interrupt_hook = atakbd_interrupt; -printk (KERN_INFO "input: %s at IKBD ACIA\n" , atakbd_dev->name); -return 0 ; }
drivers/input/mouse/atarimouse.c +9 -9
@@ -73,14 +73,11 @@ static void atamouse_interrupt(char *buf {int buttons, dx, dy; -/* ikbd_mouse_disable(); */ - buttons = (buf[0 ] &1 ) | ((buf[0 ] &2 ) <<1 );#ifdef FIXED_ATARI_JOYSTICK buttons |= atari_mouse_buttons &2 ; atari_mouse_buttons = buttons;#endif -/* ikbd_mouse_rel_pos(); */ /* only relative events get here */ dx = buf[1 ];
@@ -126,15 +123,16 @@ static int __init atamouse_init(void)if (!MACH_IS_ATARI || !ATARIHW_PRESENT (ST_MFP ))return -ENODEV ; -if (!(atamouse_dev =input_allocate_device ())) -return -ENOMEM ; -if (!(atari_keyb_init ()))return -ENODEV ; + atamouse_dev =input_allocate_device (); +if (!atamouse_dev) +return -ENOMEM ; + atamouse_dev->name ="Atari mouse" ; atamouse_dev->phys ="atamouse/input0" ; - atamouse_dev->id.bustype =BUS_ATARI ; + atamouse_dev->id.bustype =BUS_HOST ; atamouse_dev->id.vendor =0x0001 ; atamouse_dev->id.product =0x0002 ; atamouse_dev->id.version =0x0100 ;
@@ -145,9 +143,11 @@ static int __init atamouse_init(void) atamouse_dev->open = atamouse_open; atamouse_dev->close = atamouse_close; -input_register_device (atamouse_dev); +if (input_register_device (atamouse_dev)) { +input_free_device (atamouse_dev); +return -ENOMEM ; + } -printk (KERN_INFO "input: %s at keyboard ACIA\n" , atamouse_dev->name);return 0 ; }
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsDmitry Torokhov
maintainerRe: [patch 1/8] m68k: Atari input drivers cleanup
Hi Geert,
Quoted 7 lines · Geert Uytterhoeven
m68k: Atari input drivers cleanup:
- memleak on failed init/register of input devices fixed
- correct keycodes table (Atari keycodes are almost, but not entirely, equal to Linux keycodes).Signed-off-by Michael Schmitz <[email protected]>Signed-off-by Geert Uytterhoeven <[email protected]>
Looks much better, thank you.
drivers/input/keyboard/atakbd.c static int __init atakbd_init(void) · line 253
Quoted 8 lines
drivers/input/keyboard/atakbd.c +5
-1-input_register_device (atakbd_dev); +/* error check */ +if (input_register_device (atakbd_dev)) { +input_free_device (atakbd_dev); +return -ENOMEM ; + }
I'd be more happy if we returned real error reported by input_register_device() instead of substituting it with -ENOMEM.
Signature · 1 line
Dmitry
Geert Uytterhoeven
maintainerPATCH 2/8 m68k: Atari keyboard ACIA driver cleanup
In reply to Geert Uytterhoevenm68k: Atari keyboard ACIA driver cleanup:
- removed dead key autorepeat code
- removed hardcoded initial keymap
--- arch/m68k/atari/atakeyb.c | 104 +++------------------------------------------- 1 file changed, 7 insertions(+), 97 deletions(-)
arch/m68k/atari/atakeyb.c +7 -97
@@ -1,5 +1,5 @@/* -* linux/atari/atakeyb.c +* linux/arch/m68k/atari/atakeyb.c * * Atari Keyboard driver for 680x0 Linux *
@@ -11,6 +11,9 @@/* * Atari support by Robert de Vries * enhanced by Bjoern Brauel and Roman Hodek +* +* 2.6 and input cleanup (removed autorepeat stuff) for 2.6.21 +* 06/07 Michael Schmitz */ #include <linux/module.h>
@@ -32,7 +35,6 @@#include <asm/atari_joystick.h> #include <asm/irq.h> -static void atakeyb_rep (unsigned long ignore);extern unsigned int keymap_count;/* Hook for MIDI serial driver */
@@ -104,25 +106,6 @@ static unsigned long broken_keys[128/(si* - Keypad Left/Right Parenthesis mapped to new K_PPAREN[LR] */ -static u_short ataplain_map[NR_KEYS ]__initdata = { -0xf200 ,0xf01b ,0xf031 ,0xf032 ,0xf033 ,0xf034 ,0xf035 ,0xf036 , -0xf037 ,0xf038 ,0xf039 ,0xf030 ,0xf02d ,0xf03d ,0xf008 ,0xf009 , -0xfb71 ,0xfb77 ,0xfb65 ,0xfb72 ,0xfb74 ,0xfb79 ,0xfb75 ,0xfb69 , -0xfb6f ,0xfb70 ,0xf05b ,0xf05d ,0xf201 ,0xf702 ,0xfb61 ,0xfb73 , -0xfb64 ,0xfb66 ,0xfb67 ,0xfb68 ,0xfb6a ,0xfb6b ,0xfb6c ,0xf03b , -0xf027 ,0xf060 ,0xf700 ,0xf05c ,0xfb7a ,0xfb78 ,0xfb63 ,0xfb76 , -0xfb62 ,0xfb6e ,0xfb6d ,0xf02c ,0xf02e ,0xf02f ,0xf700 ,0xf200 , -0xf703 ,0xf020 ,0xf207 ,0xf100 ,0xf101 ,0xf102 ,0xf103 ,0xf104 , -0xf105 ,0xf106 ,0xf107 ,0xf108 ,0xf109 ,0xf200 ,0xf200 ,0xf114 , -0xf603 ,0xf200 ,0xf30b ,0xf601 ,0xf200 ,0xf602 ,0xf30a ,0xf200 , -0xf600 ,0xf200 ,0xf115 ,0xf07f ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf1ff ,0xf11b ,0xf312 ,0xf313 ,0xf30d ,0xf30c ,0xf307 , -0xf308 ,0xf309 ,0xf304 ,0xf305 ,0xf306 ,0xf301 ,0xf302 ,0xf303 , -0xf300 ,0xf310 ,0xf30e ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 -}; -typedef enum kb_state_t {KEYBOARD ,AMOUSE ,RMOUSE ,JOYSTICK ,CLOCK ,RESYNC }KB_STATE_T ;
@@ -137,41 +120,6 @@ typedef struct keyboard_state {KEYBOARD_STATE kb_state; -#define DEFAULT_KEYB_REP_DELAY (HZ/4) -#define DEFAULT_KEYB_REP_RATE (HZ/25) - -/* These could be settable by some ioctl() in future... */ -static unsigned int key_repeat_delay =DEFAULT_KEYB_REP_DELAY ; -static unsigned int key_repeat_rate =DEFAULT_KEYB_REP_RATE ; - -static unsigned char rep_scancode; -static struct timer_list atakeyb_rep_timer = { - .function = atakeyb_rep, -}; - -static void atakeyb_rep (unsigned long ignore) -{ -/* Disable keyboard for the time we call handle_scancode(), else a race -* in the keyboard tty queue may happen */ -atari_disable_irq (IRQ_MFP_ACIA ); -del_timer (&atakeyb_rep_timer); - -/* A keyboard int may have come in before we disabled the irq, so -* double-check whether rep_scancode is still != 0 */ -if (rep_scancode) { -init_timer (&atakeyb_rep_timer); - atakeyb_rep_timer.expires = jiffies + key_repeat_rate; -add_timer (&atakeyb_rep_timer); - -//handle_scancode(rep_scancode, 1); -if (atari_input_keyboard_interrupt_hook) -atari_input_keyboard_interrupt_hook (rep_scancode,1 ); - } - -atari_enable_irq (IRQ_MFP_ACIA ); -} - -/* ++roman: If a keyboard overrun happened, we can't tell in general how much * bytes have been lost and in which state of the packet structure we are now. * This usually causes keyboards bytes to be interpreted as mouse movements
@@ -209,9 +157,6 @@ repeat:/* ...happens often if interrupts were disabled for too long */ printk (KERN_DEBUG "Keyboard overrun\n" ); scancode = acia.key_data; -/* Turn off autorepeating in case a break code has been lost */ -del_timer (&atakeyb_rep_timer); - rep_scancode =0 ;if (ikbd_self_test)/* During self test, don't do resyncing, just process the code */ goto interpret_scancode;
@@ -281,11 +226,12 @@ repeat:* make codes instead. Therefore, simply ignore * break_flag... */ -int keyval = plain_map[scancode], keytyp; +int keyval, keytyp;set_bit (scancode, broken_keys); self_test_last_rcv = jiffies; - keyval = plain_map[scancode]; +/* new Linux scancodes; approx. */ + keyval = scancode; keytyp =KTYP (keyval) -0xf0 ; keyval =KVAL (keyval);
@@ -301,19 +247,6 @@ repeat: }else if (test_bit (scancode, broken_keys))break ; -#if 0 // FIXME; hangs at boot -if (break_flag) { -del_timer (&atakeyb_rep_timer); - rep_scancode =0 ; - }else { -del_timer (&atakeyb_rep_timer); - rep_scancode = scancode; - atakeyb_rep_timer.expires = jiffies + key_repeat_delay; -add_timer (&atakeyb_rep_timer); - } -#endif - -// handle_scancode(scancode, !break_flag); if (atari_input_keyboard_interrupt_hook)atari_input_keyboard_interrupt_hook ((unsigned char )scancode, !break_flag);break ;
@@ -639,9 +572,6 @@ int __init atari_keyb_init(void)if (atari_keyb_done)return 0 ; -/* setup key map */ -memcpy (key_maps[0 ], ataplain_map,sizeof (plain_map)); - kb_state.state =KEYBOARD ; kb_state.len =0 ;
@@ -704,26 +634,6 @@ int __init atari_keyb_init(void)return 0 ; } -int atari_kbdrate (struct kbd_repeat *k) -{ -if (k->delay >0 ) { -/* convert from msec to jiffies */ - key_repeat_delay = (k->delay *HZ +500 ) /1000 ; -if (key_repeat_delay <1 ) - key_repeat_delay =1 ; - } -if (k->period >0 ) { - key_repeat_rate = (k->period *HZ +500 ) /1000 ; -if (key_repeat_rate <1 ) - key_repeat_rate =1 ; - } - - k->delay = key_repeat_delay *1000 /HZ ; - k->period = key_repeat_rate *1000 /HZ ; - -return 0 ; -} -int atari_kbd_translate (unsigned char keycode,unsigned char *keycodep,char raw_mode) {#ifdef CONFIG_MAGIC_SYSRQ
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsRe: [patch 2/8] m68k: Atari keyboard ACIA driver cleanup
arch/m68k/atari/atakeyb.c line 2
Quoted 6 lines · Geert Uytterhoeven
arch/m68k/atari/atakeyb.c +1
-1@@ -1,5 +1,5 @@/* -* linux/atari/atakeyb.c +* linux/arch/m68k/atari/atakeyb.c
Please kill that line.
Andreas.
Signature · 4 lines
Andreas Schwab, SuSE Labs, [email protected] SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
Geert Uytterhoeven
maintainerRe: [patch 2/8] m68k: Atari keyboard ACIA driver cleanup
Quoted 9 lines · Andreas Schwab
arch/m68k/atari/atakeyb.c line 2
Quoted 6 lines · Geert Uytterhoeven
arch/m68k/atari/atakeyb.c +1
-1@@ -1,5 +1,5 @@/* -* linux/atari/atakeyb.c +* linux/arch/m68k/atari/atakeyb.c Please kill that line.
Done. New version below:
Subject: m68k: Atari keyboard ACIA driver cleanup
Cc: Dmitry Torokhov <[email protected]>, [email protected]
m68k: Atari keyboard ACIA driver cleanup:
- removed dead key autorepeat code
- removed hardcoded initial keymap
--- arch/m68k/atari/atakeyb.c | 104 ++-------------------------------------------- 1 file changed, 6 insertions(+), 98 deletions(-)
arch/m68k/atari/atakeyb.c +6 -98
@@ -1,6 +1,4 @@/* -* linux/atari/atakeyb.c -* * Atari Keyboard driver for 680x0 Linux * * This file is subject to the terms and conditions of the GNU General Public
@@ -11,6 +9,9 @@/* * Atari support by Robert de Vries * enhanced by Bjoern Brauel and Roman Hodek +* +* 2.6 and input cleanup (removed autorepeat stuff) for 2.6.21 +* 06/07 Michael Schmitz */ #include <linux/module.h>
@@ -32,7 +33,6 @@#include <asm/atari_joystick.h> #include <asm/irq.h> -static void atakeyb_rep (unsigned long ignore);extern unsigned int keymap_count;/* Hook for MIDI serial driver */
@@ -104,25 +104,6 @@ static unsigned long broken_keys[128/(si* - Keypad Left/Right Parenthesis mapped to new K_PPAREN[LR] */ -static u_short ataplain_map[NR_KEYS ]__initdata = { -0xf200 ,0xf01b ,0xf031 ,0xf032 ,0xf033 ,0xf034 ,0xf035 ,0xf036 , -0xf037 ,0xf038 ,0xf039 ,0xf030 ,0xf02d ,0xf03d ,0xf008 ,0xf009 , -0xfb71 ,0xfb77 ,0xfb65 ,0xfb72 ,0xfb74 ,0xfb79 ,0xfb75 ,0xfb69 , -0xfb6f ,0xfb70 ,0xf05b ,0xf05d ,0xf201 ,0xf702 ,0xfb61 ,0xfb73 , -0xfb64 ,0xfb66 ,0xfb67 ,0xfb68 ,0xfb6a ,0xfb6b ,0xfb6c ,0xf03b , -0xf027 ,0xf060 ,0xf700 ,0xf05c ,0xfb7a ,0xfb78 ,0xfb63 ,0xfb76 , -0xfb62 ,0xfb6e ,0xfb6d ,0xf02c ,0xf02e ,0xf02f ,0xf700 ,0xf200 , -0xf703 ,0xf020 ,0xf207 ,0xf100 ,0xf101 ,0xf102 ,0xf103 ,0xf104 , -0xf105 ,0xf106 ,0xf107 ,0xf108 ,0xf109 ,0xf200 ,0xf200 ,0xf114 , -0xf603 ,0xf200 ,0xf30b ,0xf601 ,0xf200 ,0xf602 ,0xf30a ,0xf200 , -0xf600 ,0xf200 ,0xf115 ,0xf07f ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf1ff ,0xf11b ,0xf312 ,0xf313 ,0xf30d ,0xf30c ,0xf307 , -0xf308 ,0xf309 ,0xf304 ,0xf305 ,0xf306 ,0xf301 ,0xf302 ,0xf303 , -0xf300 ,0xf310 ,0xf30e ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 , -0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 ,0xf200 -}; -typedef enum kb_state_t {KEYBOARD ,AMOUSE ,RMOUSE ,JOYSTICK ,CLOCK ,RESYNC }KB_STATE_T ;
@@ -137,41 +118,6 @@ typedef struct keyboard_state {KEYBOARD_STATE kb_state; -#define DEFAULT_KEYB_REP_DELAY (HZ/4) -#define DEFAULT_KEYB_REP_RATE (HZ/25) - -/* These could be settable by some ioctl() in future... */ -static unsigned int key_repeat_delay =DEFAULT_KEYB_REP_DELAY ; -static unsigned int key_repeat_rate =DEFAULT_KEYB_REP_RATE ; - -static unsigned char rep_scancode; -static struct timer_list atakeyb_rep_timer = { - .function = atakeyb_rep, -}; - -static void atakeyb_rep (unsigned long ignore) -{ -/* Disable keyboard for the time we call handle_scancode(), else a race -* in the keyboard tty queue may happen */ -atari_disable_irq (IRQ_MFP_ACIA ); -del_timer (&atakeyb_rep_timer); - -/* A keyboard int may have come in before we disabled the irq, so -* double-check whether rep_scancode is still != 0 */ -if (rep_scancode) { -init_timer (&atakeyb_rep_timer); - atakeyb_rep_timer.expires = jiffies + key_repeat_rate; -add_timer (&atakeyb_rep_timer); - -//handle_scancode(rep_scancode, 1); -if (atari_input_keyboard_interrupt_hook) -atari_input_keyboard_interrupt_hook (rep_scancode,1 ); - } - -atari_enable_irq (IRQ_MFP_ACIA ); -} - -/* ++roman: If a keyboard overrun happened, we can't tell in general how much * bytes have been lost and in which state of the packet structure we are now. * This usually causes keyboards bytes to be interpreted as mouse movements
@@ -209,9 +155,6 @@ repeat:/* ...happens often if interrupts were disabled for too long */ printk (KERN_DEBUG "Keyboard overrun\n" ); scancode = acia.key_data; -/* Turn off autorepeating in case a break code has been lost */ -del_timer (&atakeyb_rep_timer); - rep_scancode =0 ;if (ikbd_self_test)/* During self test, don't do resyncing, just process the code */ goto interpret_scancode;
@@ -281,11 +224,12 @@ repeat:* make codes instead. Therefore, simply ignore * break_flag... */ -int keyval = plain_map[scancode], keytyp; +int keyval, keytyp;set_bit (scancode, broken_keys); self_test_last_rcv = jiffies; - keyval = plain_map[scancode]; +/* new Linux scancodes; approx. */ + keyval = scancode; keytyp =KTYP (keyval) -0xf0 ; keyval =KVAL (keyval);
@@ -301,19 +245,6 @@ repeat: }else if (test_bit (scancode, broken_keys))break ; -#if 0 // FIXME; hangs at boot -if (break_flag) { -del_timer (&atakeyb_rep_timer); - rep_scancode =0 ; - }else { -del_timer (&atakeyb_rep_timer); - rep_scancode = scancode; - atakeyb_rep_timer.expires = jiffies + key_repeat_delay; -add_timer (&atakeyb_rep_timer); - } -#endif - -// handle_scancode(scancode, !break_flag); if (atari_input_keyboard_interrupt_hook)atari_input_keyboard_interrupt_hook ((unsigned char )scancode, !break_flag);break ;
@@ -639,9 +570,6 @@ int __init atari_keyb_init(void)if (atari_keyb_done)return 0 ; -/* setup key map */ -memcpy (key_maps[0 ], ataplain_map,sizeof (plain_map)); - kb_state.state =KEYBOARD ; kb_state.len =0 ;
@@ -704,26 +632,6 @@ int __init atari_keyb_init(void)return 0 ; } -int atari_kbdrate (struct kbd_repeat *k) -{ -if (k->delay >0 ) { -/* convert from msec to jiffies */ - key_repeat_delay = (k->delay *HZ +500 ) /1000 ; -if (key_repeat_delay <1 ) - key_repeat_delay =1 ; - } -if (k->period >0 ) { - key_repeat_rate = (k->period *HZ +500 ) /1000 ; -if (key_repeat_rate <1 ) - key_repeat_rate =1 ; - } - - k->delay = key_repeat_delay *1000 /HZ ; - k->period = key_repeat_rate *1000 /HZ ; - -return 0 ; -} -int atari_kbd_translate (unsigned char keycode,unsigned char *keycodep,char raw_mode) {#ifdef CONFIG_MAGIC_SYSRQ
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Dmitry Torokhov
maintainerRe: [patch 2/8] m68k: Atari keyboard ACIA driver cleanup
Quoted 16 lines · Geert Uytterhoeven
Quoted 9 lines · Andreas Schwab
arch/m68k/atari/atakeyb.c line 2
Quoted 6 lines · Geert Uytterhoeven
arch/m68k/atari/atakeyb.c +1
-1@@ -1,5 +1,5 @@/* -* linux/atari/atakeyb.c +* linux/arch/m68k/atari/atakeyb.c Please kill that line.
Done. New version below:
Subject: m68k: Atari keyboard ACIA driver cleanup
Cc: Dmitry Torokhov <[email protected]>, [email protected]
Quoted 6 lines
m68k: Atari keyboard ACIA driver cleanup:
- removed dead key autorepeat code
- removed hardcoded initial keymapSigned-off-by Michael Schmitz <[email protected]>Signed-off-by Geert Uytterhoeven <[email protected]>
Looks good, thank you Geert. I understand Linus will merge this...
Signature · 1 line
Dmitry
Geert Uytterhoeven
maintainerPATCH 3/8 m68k: ignore restart_syscall
In reply to Geert Uytterhoevenm68k: ignore restart_syscall, which is not needed on m68k.
--- include/asm-m68k/unistd.h | 3 +++ 1 file changed, 3 insertions(+)
include/asm-m68k/unistd.h +3 -0
@@ -351,6 +351,9 @@#define __ARCH_WANT_SYS_SIGPROCMASK#define __ARCH_WANT_SYS_RT_SIGACTION +/* whitelist for checksyscalls */ +#define __IGNORE_restart_syscall +/* * "Conditional" syscalls *
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsRe: [patch 3/8] m68k: ignore restart_syscall
Hi,
Quoted 1 line · Geert Uytterhoeven
m68k: ignore
restart_syscall, which is not needed on m68k.
It's somewhat needed, but nobody has gotten around to actually implement it yet...
bye, Roman
Geert Uytterhoeven
maintainerPATCH 4/8 m68k: Export cachectl.h
In reply to Geert UytterhoevenFrom: Matthew Wilcox <[email protected]>
libffi in GCC 4.2 needs cachectl.h to do its cache flushing. But we don't currently export it. I believe this patch should do the trick.
--- include/asm-m68k/Kbuild | 1 + 1 file changed, 1 insertion(+)
include/asm-m68k/Kbuild +1 -0
@@ -1 +1,2 @@ include include/asm-generic/Kbuild.asm +header-y += cachectl.h
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsGeert Uytterhoeven
maintainerPATCH 5/8 dm: emc_endio returns void
In reply to Geert Uytterhoevenemc_endio returns void:linux/drivers/md/dm-emc.c: In function 'emc_endio':linux/drivers/md/dm-emc.c:58: warning: 'return' with a value, in function returning void
--- drivers/md/dm-emc.c | 2 -- 1 file changed, 2 deletions(-)
drivers/md/dm-emc.c +0 -2
@@ -54,8 +54,6 @@ static void emc_endio(struct bio *bio, i/* request is freed in block layer */ free_bio (bio); - -return 0 ; }static struct bio *get_failover_bio (struct dm_path *path,unsigned data_size)
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsGeert Uytterhoeven
maintainerPATCH 6/8 m68k: fix net drivers after recent get_stats updates
In reply to Geert Uytterhoevenm68k: fix net drivers after recent get_stats updates
--- drivers/net/macmace.c | 6 +++--- drivers/net/mvme147.c | 1 - 2 files changed, 3 insertions(+), 4 deletions(-)
drivers/net/macmace.c +3 -3
@@ -538,8 +538,9 @@ static void mace_set_multicast(struct nelocal_irq_restore (flags); } -static void mace_handle_misc_intrs (struct mace_data *mp,int intr) +static void mace_handle_misc_intrs (struct net_device *dev,int intr) { +struct mace_data *mp =netdev_priv (dev);volatile struct mace *mb = mp->mace;static int mace_babbles, mace_jabbers;
@@ -571,7 +572,7 @@ static irqreturn_t mace_interrupt(int irlocal_irq_save (flags); intr = mb->ir;/* read interrupt register */ -mace_handle_misc_intrs (mp, intr); +mace_handle_misc_intrs (dev, intr);if (intr &XMTINT ) { fs = mb->xmtfs;
@@ -645,7 +646,6 @@ static void mace_tx_timeout(struct net_dstatic void mace_dma_rx_frame (struct net_device *dev,struct mace_frame *mf) { -struct mace_data *mp =netdev_priv (dev);struct sk_buff *skb;unsigned int frame_status = mf->rcvsts;
drivers/net/mvme147.c +0 -1
@@ -85,7 +85,6 @@ struct net_device * __init mvme147lance_ dev->open = &m147lance_open; dev->stop = &m147lance_close; dev->hard_start_xmit = &lance_start_xmit; - dev->get_stats = &lance_get_stats; dev->set_multicast_list = &lance_set_multicast; dev->tx_timeout = &lance_tx_timeout; dev->dma =0 ;
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsRe: [patch 6/8] m68k: fix net drivers after recent get_stats updates
ACK
Geert Uytterhoeven
maintainerPATCH 7/8 b43 wireless needs <linux/io.h>
In reply to Geert Uytterhoevenb43 wireless needs <linux/io.h>
linux/drivers/net/wireless/b43/pio.h: In function 'b43_pio_write':linux/drivers/net/wireless/b43/pio.h:89: error: implicit declaration of function 'mmiowb'
linux/drivers/net/wireless/b43/phy.c: In function 'b43_phy_write':linux/drivers/net/wireless/b43/phy.c:301: error: implicit declaration of function 'mmiowb'
linuxdrivers/net/wireless/b43/sysfs.c: In function 'b43_attr_interfmode_store':linuxdrivers/net/wireless/b43/sysfs.c:147: error: implicit declaration of function 'mmiowb'
--- drivers/net/wireless/b43/phy.c | 1 + drivers/net/wireless/b43/pio.h | 1 + drivers/net/wireless/b43/sysfs.c | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-)
drivers/net/wireless/b43/phy.c +1 -0
@@ -26,6 +26,7 @@*/ #include <linux/delay.h> +#include <linux/io.h> #include <linux/types.h> #include "b43.h"
drivers/net/wireless/b43/pio.h +1 -0
@@ -4,6 +4,7 @@#include "b43.h" #include <linux/interrupt.h> +#include <linux/io.h> #include <linux/list.h> #include <linux/skbuff.h>
drivers/net/wireless/b43/sysfs.c +3 -2
@@ -23,13 +23,14 @@*/ +#include <linux/capability.h> +#include <linux/io.h> +#include "b43.h" #include "sysfs.h" #include "main.h" #include "phy.h" -#include <linux/capability.h> -#define GENERIC_FILESIZE 64static int get_integer (const char *buf,size_t count)
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsRe: [patch 7/8] b43 wireless needs <linux/io.h>
Quoted 5 lines · On Saturday 13 October 2007 14:31:30 Geert Uytterhoeven wrote:
b43 wireless needs <
linux/io.h>
linux/drivers/net/wireless/b43/pio.h: In function 'b43_pio_write':linux/drivers/net/wireless/b43/pio.h:89: error: implicit declaration of function 'mmiowb'
Quoted 7 lines
linux/drivers/net/wireless/b43/phy.c: In function 'b43_phy_write':linux/drivers/net/wireless/b43/phy.c:301: error: implicit declaration of function 'mmiowb'
linuxdrivers/net/wireless/b43/sysfs.c: In function 'b43_attr_interfmode_store':linuxdrivers/net/wireless/b43/sysfs.c:147: error: implicit declaration of function 'mmiowb'Signed-off-by Geert Uytterhoeven <[email protected]>
Quoted 46 lines
--- drivers/net/wireless/b43/phy.c | 1 + drivers/net/wireless/b43/pio.h | 1 + drivers/net/wireless/b43/sysfs.c | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-)drivers/net/wireless/b43/phy.c +1
-0@@ -26,6 +26,7 @@*/ #include <linux/delay.h> +#include <linux/io.h> #include <linux/types.h> #include "b43.h" drivers/net/wireless/b43/pio.h +1
-0@@ -4,6 +4,7 @@#include "b43.h" #include <linux/interrupt.h> +#include <linux/io.h> #include <linux/list.h> #include <linux/skbuff.h> drivers/net/wireless/b43/sysfs.c +3
-2@@ -23,13 +23,14 @@*/ +#include <linux/capability.h> +#include <linux/io.h> +#include "b43.h" #include "sysfs.h" #include "main.h" #include "phy.h" -#include <linux/capability.h> -#define GENERIC_FILESIZE 64static int get_integer (const char *buf,size_t count)
Signature · 1 line
Greetings Michael.
Re: [patch 7/8] b43 wireless needs <linux/io.h>
In reply to Geert UytterhoevenQuoted 10 lines · Geert Uytterhoeven
linux/drivers/net/wireless/b43/pio.h: In function 'b43_pio_write':linux/drivers/net/wireless/b43/pio.h:89: error: implicit declaration of function 'mmiowb'
linux/drivers/net/wireless/b43/phy.c: In function 'b43_phy_write':linux/drivers/net/wireless/b43/phy.c:301: error: implicit declaration of function 'mmiowb'
linuxdrivers/net/wireless/b43/sysfs.c: In function 'b43_attr_interfmode_store':linuxdrivers/net/wireless/b43/sysfs.c:147: error: implicit declaration of function 'mmiowb'From the distribution list for this E-mail, I presume this error occurred for m68k. Is this correct?
If so, I will probably need to prepare a similar patch for b43legacy.
Thanks,
Larry
Geert Uytterhoeven
maintainerRe: [patch 7/8] b43 wireless needs <linux/io.h>
Quoted 11 lines · Larry Finger
Quoted 8 lines · Geert Uytterhoeven
linux/drivers/net/wireless/b43/pio.h: In function 'b43_pio_write':linux/drivers/net/wireless/b43/pio.h:89: error: implicit declaration of function 'mmiowb'
linux/drivers/net/wireless/b43/phy.c: In function 'b43_phy_write':linux/drivers/net/wireless/b43/phy.c:301: error: implicit declaration of function 'mmiowb'
linuxdrivers/net/wireless/b43/sysfs.c: In function 'b43_attr_interfmode_store':linuxdrivers/net/wireless/b43/sysfs.c:147: error: implicit declaration of function 'mmiowb'From the distribution list for this E-mail, I presume this error occurred for m68k. Is this correct?
That's correct.
Quoted 1 line
If so, I will probably need to prepare a similar patch for b43legacy.
I had no problems compiling b43legacy on m68k, though. Probably <linux/io.h> was included through some other include file. Of course it's safer to always #include <linux/io.h> when using I/O.
During linking, I did get a bunch of undefined reference to dma_*'' errors, with both b43 and b43legacy (and a few other drivers). Probably they need to depend on HAS_DMA.
I'll post separate patches for those after I've sorted them out.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Re: [patch 7/8] b43 wireless needs <linux/io.h>
Quoted 17 lines · On Saturday 13 October 2007 20:38:43 Geert Uytterhoeven wrote:
Quoted 11 lines · Larry Finger
Quoted 8 lines · Geert Uytterhoeven
linux/drivers/net/wireless/b43/pio.h: In function 'b43_pio_write':linux/drivers/net/wireless/b43/pio.h:89: error: implicit declaration of function 'mmiowb'
linux/drivers/net/wireless/b43/phy.c: In function 'b43_phy_write':linux/drivers/net/wireless/b43/phy.c:301: error: implicit declaration of function 'mmiowb'
linuxdrivers/net/wireless/b43/sysfs.c: In function 'b43_attr_interfmode_store':linuxdrivers/net/wireless/b43/sysfs.c:147: error: implicit declaration of function 'mmiowb'From the distribution list for this E-mail, I presume this error occurred for m68k. Is this correct?
That's correct.
Quoted 1 line
If so, I will probably need to prepare a similar patch for b43legacy.
Quoted 8 lines
I had no problems compiling b43legacy on m68k, though. Probably <
linux/io.h> was included through some other include file. Of course it's safer to always #include <linux/io.h> when using I/O.During linking, I did get a bunch of
undefined reference todma_*'' errors, with both b43 and b43legacy (and a few other drivers). Probably they need to depend onHAS_DMA.
I'll post separate patches for those after I've sorted them out.
We could make the b43 and b43legacy DMA engine code depend on HAS_DMA then. So it can still be compiled with PIO. (Though, I don't know if anybody would put such a card into a machine without DMA, anyway).
The DMA engine code is a seperate kconfig option.
Signature · 1 line
Greetings Michael.
Geert Uytterhoeven
maintainerPATCH 8/8 ssb bus needs <linux/io.h>
In reply to Geert Uytterhoevenssb bus needs <linux/io.h>
linux/drivers/ssb/main.c: In function 'ssb_ssb_read16':linux/drivers/ssb/main.c:518: error: implicit declaration of function 'readw' linux/drivers/ssb/main.c: In function 'ssb_ssb_read32':linux/drivers/ssb/main.c:526: error: implicit declaration of function 'readl' linux/drivers/ssb/main.c: In function 'ssb_ssb_write16':linux/drivers/ssb/main.c:534: error: implicit declaration of function 'writew' linux/drivers/ssb/main.c: In function 'ssb_ssb_write32':linux/drivers/ssb/main.c:542: error: implicit declaration of function 'writel'
--- drivers/ssb/main.c | 1 + 1 file changed, 1 insertion(+)
drivers/ssb/main.c +1 -0
@@ -11,6 +11,7 @@#include "ssb_private.h" #include <linux/delay.h> +#include <linux/io.h> #include <linux/ssb/ssb.h> #include <linux/ssb/ssb_regs.h> #include <linux/dma-mapping.h>
Signature · 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsRe: [patch 8/8] ssb bus needs <linux/io.h>
Quoted 11 lines · On Saturday 13 October 2007 14:31:31 Geert Uytterhoeven wrote:
ssb bus needs <
linux/io.h>
linux/drivers/ssb/main.c: In function 'ssb_ssb_read16':linux/drivers/ssb/main.c:518: error: implicit declaration of function 'readw'linux/drivers/ssb/main.c: In function 'ssb_ssb_read32':linux/drivers/ssb/main.c:526: error: implicit declaration of function 'readl'linux/drivers/ssb/main.c: In function 'ssb_ssb_write16':linux/drivers/ssb/main.c:534: error: implicit declaration of function 'writew'linux/drivers/ssb/main.c: In function 'ssb_ssb_write32':linux/drivers/ssb/main.c:542: error: implicit declaration of function 'writel'
Quoted 1 line
Signed-off-by Geert Uytterhoeven <[email protected]>
Quoted 15 lines
--- drivers/ssb/main.c | 1 + 1 file changed, 1 insertion(+)drivers/ssb/main.c +1
-0@@ -11,6 +11,7 @@#include "ssb_private.h" #include <linux/delay.h> +#include <linux/io.h> #include <linux/ssb/ssb.h> #include <linux/ssb/ssb_regs.h> #include <linux/dma-mapping.h>
Signature · 1 line
Greetings Michael.