Commit 5589c7cc authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: das16: remove DMA irq support

As noted in the driver, a timer is always used by this driver to handle
the DMA because samples could be dropped while waiting for the DMA done
interrupt.

Remove the irq setup code as well as the interrupt handler.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 23cdad33
......@@ -872,24 +872,6 @@ static void das16_interrupt(struct comedi_device *dev)
cfc_handle_events(dev, s);
}
static irqreturn_t das16_dma_interrupt(int irq, void *d)
{
int status;
struct comedi_device *dev = d;
status = inb(dev->iobase + DAS16_STATUS);
if ((status & DAS16_INT) == 0) {
DEBUG_PRINT("spurious interrupt\n");
return IRQ_NONE;
}
/* clear interrupt */
outb(0x00, dev->iobase + DAS16_STATUS);
das16_interrupt(dev);
return IRQ_HANDLED;
}
static void das16_timer_interrupt(unsigned long arg)
{
struct comedi_device *dev = (struct comedi_device *)arg;
......@@ -1006,18 +988,10 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
struct das16_private_struct *devpriv;
struct comedi_subdevice *s;
int ret;
unsigned int irq;
unsigned int dma_chan;
unsigned long flags;
struct comedi_krange *user_ai_range, *user_ao_range;
#if 0
irq = it->options[1];
#endif
/* always use time_mode since using irq can drop samples while
* waiting for dma done interrupt (due to hardware limitations) */
irq = 0;
/* check that clock setting is valid */
if (it->options[3]) {
if (it->options[3] != 0 &&
......@@ -1065,22 +1039,6 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
das1600_mode_detect(dev);
}
/* now for the irq */
if (irq > 1 && irq < 8) {
ret = request_irq(irq, das16_dma_interrupt, 0,
dev->board_name, dev);
if (ret < 0)
return ret;
dev->irq = irq;
printk(KERN_INFO " ( irq = %u )", irq);
} else if (irq == 0) {
printk(" ( no irq )");
} else {
printk(" invalid irq\n");
return -EINVAL;
}
/* initialize dma */
dma_chan = it->options[2];
if (dma_chan == 1 || dma_chan == 3) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment