fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / char / ec3104_keyb.c
index 933282d..77f58ed 100644 (file)
@@ -26,7 +26,6 @@
  * (prumpf@tux.org).
  */
 
-#include <linux/config.h>
 
 #include <linux/spinlock.h>
 #include <linux/sched.h>
@@ -43,9 +42,9 @@
 #include <linux/slab.h>
 #include <linux/kbd_kern.h>
 #include <linux/smp_lock.h>
+#include <linux/bitops.h>
 
 #include <asm/keyboard.h>
-#include <asm/bitops.h>
 #include <asm/uaccess.h>
 #include <asm/irq.h>
 #include <asm/system.h>
@@ -92,7 +91,7 @@ static void aux_write_ack(int val);
 static void __aux_write_ack(int val);
 #endif
 
-static spinlock_t kbd_controller_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(kbd_controller_lock);
 static unsigned char handle_kbd_event(void);
 
 /* used only by send_data - set by keyboard_interrupt */
@@ -371,7 +370,7 @@ static void e5_receive(struct e5_struct *k)
        }
 }
 
-static void ec3104_keyb_interrupt(int irq, void *data, struct pt_regs *regs)
+static void ec3104_keyb_interrupt(int irq, void *data)
 {
        struct e5_struct *k = &ec3104_keyb;
        u8 msr, lsr;
@@ -412,7 +411,7 @@ static void ec3104_keyb_clear_state(void)
        k->last_msr = 0;
 
        for (;;) {
-               schedule_timeout(HZ/10);
+               msleep(100);
 
                msr = ctrl_inb(EC3104_SER4_MSR);