mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-27 20:02:21 +07:00
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: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
23cdad3360
commit
5589c7cc9f
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user