00001
00002
00003
00004 #include "E12.h"
00005 #include "E12fops.h"
00006 #include "sE12.h"
00007
00008 void E12_Interrupt(int irq, void *dev_id, struct pt_regs *regs)
00009 {
00010 E12_device *device = dev_id;
00011
00012 IODEBUG("IRQ\n");
00013
00014 rmb();
00015 if(MIRQ_LOW(device))
00016 {
00017 IODEBUG("empty IRQ\n");
00018 return;
00019
00020
00021
00022 }
00023
00024
00025 IODEBUG("kill_fasync\n");
00026 if(device->dataready)
00027 kill_fasync(&device->dataready, SIGIO, POLL_IN);
00028
00029 if(device->valid==TRUE)
00030 wake_up_interruptible(&device->readqueue);
00031
00032 }
00033
00034
00035