On 7/9/2015 12:03 AM, Shubhrajyoti Datta wrote:
@@ -330,8 +310,18 @@ static irqreturn_t xadc_zynq_interrupt_handler(int irq,
void *devid)
xadc_zynq_update_intmsk(xadc, 0, 0);
ret = IRQ_WAKE_THREAD;
}
+
+ alarm = xadc->zynq_alarm;
+ xadc->zynq_alarm = 0;
+
spin_unlock(&xadc->lock);
+ xadc_handle_events(indio_dev, xadc_zynq_transform_alarm(alarm));
+
+ /* unmask the required interrupts in timer. */
+ schedule_delayed_work(&xadc->zynq_unmask_work,
+ msecs_to_jiffies(XADC_ZYNQ_UNMASK_TIMEOUT));
+
Now that we are in the threaded context do we need the work queue stuff.
Seems reasonable to try to remove it. I'll do some testing and send out a v3 if
it works, thanks.
--
Xander Huff
Staff Software Engineer
National Instruments
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html