From: James S. <jsi...@us...> - 2002-03-01 22:09:34
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/input/serio In directory usw-pr-cvs1:/tmp/cvs-serv26284 Modified Files: i8042.c Log Message: Reverse changes commited accidently. Index: i8042.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/input/serio/i8042.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- i8042.c 1 Mar 2002 21:52:47 -0000 1.20 +++ i8042.c 1 Mar 2002 22:09:27 -0000 1.21 @@ -58,7 +58,6 @@ struct i8042_values { int irq; - int ioport; unsigned char disable; unsigned char irqen; unsigned char exists; @@ -265,7 +264,7 @@ * Allocate the interrupt */ - if (request_irq(values->irq, i8042_interrupt, 0, "i8042", values)) { + if (request_irq(values->irq, i8042_interrupt, 0, "i8042", NULL)) { printk(KERN_ERR "i8042.c: Can't get irq %d for %s\n", values->irq, values->name); return -1; } @@ -325,7 +324,6 @@ static struct i8042_values i8042_kbd_values = { irq: I8042_KBD_IRQ, - ioport: I8042_DATA_REG, irqen: I8042_CTR_KBDINT, disable: I8042_CTR_KBDDIS, name: "KBD", @@ -345,7 +343,6 @@ static struct i8042_values i8042_aux_values = { irq: I8042_AUX_IRQ, - ioport: I8042_DATA_REG, irqen: I8042_CTR_AUXINT, disable: I8042_CTR_AUXDIS, name: "AUX", @@ -371,13 +368,12 @@ static void i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - struct i8042_values *values = dev_id; - unsigned char str, data; unsigned long flags; + unsigned char str, data; spin_lock_irqsave(&i8042_lock, flags); - while ((str = inb(values->ioport + 4)) & I8042_STR_OBF) { + while ((str = inb(I8042_STATUS_REG)) & I8042_STR_OBF) { data = inb(I8042_DATA_REG); @@ -386,11 +382,11 @@ data, (str & I8042_STR_AUXDATA) ? "aux" : "kbd", (int) (jiffies - i8042_start)); #endif - if (values->exists && (str & I8042_STR_AUXDATA)) { + if (i8042_aux_values.exists && (str & I8042_STR_AUXDATA)) { if (i8042_aux_port.dev) i8042_aux_port.dev->interrupt(&i8042_aux_port, data, 0); } else { - if (i8042_kbd_port.dev) { + if (i8042_kbd_values.exists && i8042_kbd_port.dev) { if (!i8042_direct) { if (data > 0x7f) { if (test_and_clear_bit(data & 0x7f, i8042_unxlate_seen)) { @@ -406,6 +402,7 @@ } } } + spin_unlock_irqrestore(&i8042_lock, flags); } @@ -421,7 +418,7 @@ * Check the i/o region before we touch it. */ #if !defined(__i386__) && !defined(__sh__) && !defined(__alpha__) - if (check_region(i8042_kbd_values.ioport, 16)) { + if (check_region(I8042_DATA_REG, 16)) { printk(KERN_ERR "i8042.c: %#x port already in use!\n", I8042_DATA_REG); return -1; } |