summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2015-10-06 00:23:07 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-10-13 07:16:05 +0300
commit77e7c200f37536e05f714bcebc34f58aba9eabfc (patch)
tree9471bf12fa43bb50e7c572586e73a2ce962acad5
parentf676376d692d8e02603e2bf1d0b4e8ca1b56506d (diff)
downloadlinux-77e7c200f37536e05f714bcebc34f58aba9eabfc.tar.xz
staging: comedi: quatech_daqp_cs: handle shared interrupt
This is a PCMCIA driver and interrupts are always shared. Detect if the hardware did not produce the interrupt and return IRQ_NONE so that other drivers might handle it. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/quatech_daqp_cs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index 7432e5761539..c44e7ec19e47 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -214,6 +214,9 @@ static irqreturn_t daqp_interrupt(int irq, void *dev_id)
return IRQ_NONE;
status = inb(dev->iobase + DAQP_STATUS_REG);
+ if (!(status & DAQP_STATUS_EVENTS))
+ return IRQ_NONE;
+
while (!(status & DAQP_STATUS_FIFO_EMPTY)) {
unsigned short data;