Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6cff399 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: dt282x: tidy up dt282x_ao_dma_interrupt()



The main interrupt handler already has the comedi_subdevice pointer
needed in this function. Pass that subdevice pointer so that it does
not need to be fetched as a local variable.

Tidy up the function a bit.

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 ecac148c
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -461,31 +461,27 @@ static void dt282x_munge(struct comedi_device *dev,
	}
}

static void dt282x_ao_dma_interrupt(struct comedi_device *dev)
static void dt282x_ao_dma_interrupt(struct comedi_device *dev,
				    struct comedi_subdevice *s)
{
	struct dt282x_private *devpriv = dev->private;
	struct comedi_subdevice *s = dev->write_subdev;
	void *ptr;
	int cur_dma = devpriv->current_dma_index;
	void *ptr = devpriv->dma[cur_dma].buf;
	int size;
	int i;

	outw(devpriv->supcsr | DT2821_CLRDMADNE, dev->iobase + DT2821_SUPCSR);

	i = devpriv->current_dma_index;
	ptr = devpriv->dma[i].buf;
	disable_dma(devpriv->dma[cur_dma].chan);

	disable_dma(devpriv->dma[i].chan);

	devpriv->current_dma_index = 1 - i;
	devpriv->current_dma_index = 1 - cur_dma;

	size = cfc_read_array_from_buffer(s, ptr, devpriv->dma_maxsize);
	if (size == 0) {
		dev_err(dev->class_dev, "AO underrun\n");
		s->async->events |= COMEDI_CB_OVERFLOW;
		return;
	} else {
		dt282x_prep_ao_dma(dev, cur_dma, size);
	}
	dt282x_prep_ao_dma(dev, i, size);
	return;
}

static void dt282x_ai_dma_interrupt(struct comedi_device *dev)
@@ -556,7 +552,7 @@ static irqreturn_t dt282x_interrupt(int irq, void *d)
		if (devpriv->dma_dir == DMA_MODE_READ)
			dt282x_ai_dma_interrupt(dev);
		else
			dt282x_ao_dma_interrupt(dev);
			dt282x_ao_dma_interrupt(dev, s_ao);
		handled = 1;
	}
	if (adcsr & DT2821_ADERR) {