ad7793 adc rcv userspace test - passed succesfully

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Jonathan Cameron,

I last reported that after creating device node and opening it, read() call was failing.
I got to fix this.

The reason was this:
4 functions are exported from ad7793 module to iio-ring module as ring setup ops:
namely: 
        .preenable = &ad7793_ring_preenable,
	.postenable = &iio_triggered_ring_postenable,
	.predisable = &iio_triggered_ring_predisable,
	.postdisable = &ad7793_ring_postdisable,

In the iio-ring modules "iio_store_ring_enable" function is invoked from user app,which
inturn invokes the func "ad7793_ring_preenable" and subsequently driver's postenable
function.

The "iio_triggered_ring_postenable" function then attaches the poll function to the ring
trigger soft interrupt.

Since continuous mode was set and enabled the configured GPIO interrupt for capturing
data ready signal (in ad7793_ring_preenable) as interrupt, iio_trigger_poll() invoked on
interrupt (from drivers data rdy interrupt handler) failed to raise soft interrupt and
as a consequence driver's ad7793_trigger_handler() was not invoked when data ready.

I patched as follows in ad7793.c:

1. Moved irq enabling from ad7793_ring_preenable to ad7793_ring_postenable
2. Defined ad7793_ring_setup_ops ".postenable" as  ad7793_ring_postenable
3. In ad7793_ring_postenable, invoked &iio_triggered_ring_postenable and then enabled
the data ready signalling GPIO interrupt.

Then, from user app after opening the device, Poll() for rcv data presence was
successful and  read() call returned non-zero size . Could print the data from ring buffer.

Sincere thanks to you and Michael for guiding me through.

Take care.

regards
Mala




--
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


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux