Thread (15 messages) 15 messages, 5 authors, 2016-01-05

[PATCH 1/5] iio:adc:at91_adc8xx: introduce new atmel adc driver

From: Ludovic Desroches <hidden>
Date: 2015-12-23 10:49:18
Also in: linux-devicetree, linux-iio, lkml

On Wed, Dec 23, 2015 at 11:27:00AM +0100, Ludovic Desroches wrote:
On Tue, Dec 22, 2015 at 06:34:00PM +0000, Jonathan Cameron wrote:
quoted
On 21/12/15 09:24, Ludovic Desroches wrote:
quoted
This driver supports the new version of the Atmel ADC device introduced
with the SAMA5D2 SoC family.
[...]
quoted
quoted
+static irqreturn_t at91_adc_interrupt(int irq, void *private)
+{
+	struct iio_dev *indio = private;
+	struct at91_adc_state *st = iio_priv(indio);
+	u32 status = at91_adc_readl(st, ADC_ISR);
+
+	status &= at91_adc_readl(st, ADC_IMR);
+	if (status & 0xFFF) {
+		st->last_value = at91_adc_readl(st, st->chan->address);
If this is a polled read - is there any reason to read this value here
rather than outside the interrupt?
No it can be done outside the interrupt. I have taken some parts from the
previous driver but it was reading a register used by all the channels
when it has been designed. So yes there is probably no more reason to
read it into the interrupt.
Thinking about it. Is it really useful to move reading outside the
interrupt?

By the way this is not a polled read.
quoted
quoted
+		st->done = true;
+		wake_up_interruptible(&st->wq_data_available);
+	}
+
+	return IRQ_HANDLED;
+}
Ludovic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help