|
@@ -39,6 +39,7 @@
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/interrupt.h>
|
|
|
#include <linux/pci.h>
|
|
|
+#include <linux/delay.h>
|
|
|
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/irq.h>
|
|
@@ -62,8 +63,10 @@ static irqreturn_t pc110pad_interrupt(int irq, void *ptr)
|
|
|
int value = inb_p(pc110pad_io);
|
|
|
int handshake = inb_p(pc110pad_io + 2);
|
|
|
|
|
|
- outb_p(handshake | 1, pc110pad_io + 2);
|
|
|
- outb_p(handshake & ~1, pc110pad_io + 2);
|
|
|
+ outb(handshake | 1, pc110pad_io + 2);
|
|
|
+ udelay(2);
|
|
|
+ outb(handshake & ~1, pc110pad_io + 2);
|
|
|
+ udelay(2);
|
|
|
inb_p(0x64);
|
|
|
|
|
|
pc110pad_data[pc110pad_count++] = value;
|