AnsweredAssumed Answered

Move iio_buffer between devices

Question asked by Sinill57 on Nov 26, 2016
Latest reply on Nov 30, 2016 by larsc



In my linux/AD9361 setup I have an additional IP core in PL that processes samples before passing them to the TX channel.

For now this IP used Xilinx DMAC as it's IO, so there has to be some kind of data conversion in linux when I receive the data from my core and pass it to the AD9361 using libiio. (At least copying this data to the iio_buffer object).


My question is, supposing my IP has exactly the same IO format and buffer length, is there any way to make the ADI DMAC of the TX side read data stored in DDR by my IP without copying it anywhere?


For ease I can replace the Xilinx DMAC with yours & make my IP an IIO device for use with libiio. But even this way, iio_buffer object is tightly connected to the device it was created for.

As it seems to me, simply assigning the .buffer field of one iio_device to another would do the trick, but, considering the fast interface utilising more than one buffer, makes me feel this is not a right approach.