mbox series

[v2,00/11] iio: dac: support IIO backends on the output direction

Message ID 20240405-iio-backend-axi-dac-v2-0-293bab7d5552@analog.com (mailing list archive)
Headers show
Series iio: dac: support IIO backends on the output direction | expand

Message

Nuno Sa April 5, 2024, 2:59 p.m. UTC
Hi Jonathan,

Here it goes version 2 of the output backend series. The main points in
here:
 - The refactoring the DMA BUF api for setup. I pretty much like how it
   turned out. Note that Paul's patch ("iio: buffer-dmaengine: Support
   specifying buffer direction") had to be updated accordingly.
 - Introduction of the struct iio_info callback for getting the backend.
   I'm not sure about this one as we have no user for it and we may not
   have one for sometime. I like how the "default" implementation for
   getting the backend turned out and it should cover 99% of the cases. It
   will only fail if the iio parent device is not the same device where we
   bound the backend.
 - As mentioned above, we now get the backend from the iio device
   matching the IIO parent device with the device used when getting the
   backend. This should cover almost all the cases I think. Should be very
   unlikely to use a different device in devm_iio_backend_get() and
   devm_iio_device_alloc().

For the bindings, I still did not addressed Rob's point about dma-names.
I did reply [1] but still no feedback.

Anyways, full log:

v1:
 * https://lore.kernel.org/all/20240328-iio-backend-axi-dac-v1-0-afc808b3fde3@analog.com/

v2:
 * Patch 1:
  - New patch.

 * Patch 4:
  - Make things consistent with the triggered buffer case.

 * Patch 6:
  - Fixed description as it's an output device;
  - Avoid duplicating the "bindings" word in the commit title.
 
 * Patch 7:
  - Renamed vdd_3_3-supply -> vdd-3p3-supply;
  - Added IRQ and vref properties;
  - Avoid duplicating the "bindings" word in the commit title.

 * Patch 8:
  - New patch.

 * Patch 9:
  - Fixed some typos in kerneldocs;
  - Add iio_backend_from_indio_dev_parent(). Default way of getting backends
    from IIO devices;
  - Explicitly differentiate frontends and backends ext_info in
    iio_backend_extend_chan_spec().
  - Spell out CW as CONTINUOUS_WAVE;
  - Add _hz suffix in set_sample_rate().

 * Patch 10:
  - Rephrase comment in axi_dac_set_sample_rate() when DDS is disabled;
  - Use the new iio_dmaengine_buffer_setup_ext() API;
  - Passed tone as 0,1 value being 1 second tone.

 * Patch 11:
  - Fixed mixed spaces with tabs in ABI file and dac -> DAC;
  - Add COMPILE_TEST to kconfig;
  - Dropped operating mode enum. Use defines;
  - Add comments for IIO enum operating mode and the value we need to
    set on the device;
  - Add spaces around {} in the reg_sequence;
  - Always use Mu instead of mixture of Mu and MU;
  - Don't error out if we do not recognize the part id;
  - Make sure to deal with other errors than TIMEOUT in ad9739a_init().

[1]: https://lore.kernel.org/linux-iio/04e2a0569953792673319f7fcab3fe03e6670c03.camel@gmail.com/

---
Nuno Sa (7):
      iio: buffer-dma: add iio_dmaengine_buffer_setup()
      dt-bindings: iio: dac: add docs for AXI DAC IP
      dt-bindings: iio: dac: add docs for AD9739A
      iio: core: add get_iio_backend() callback
      iio: backend: add new functionality
      iio: dac: add support for AXI DAC IP core
      iio: dac: support the ad9739a RF DAC

Paul Cercueil (4):
      iio: buffer-dma: Rename iio_dma_buffer_data_available()
      iio: buffer-dma: Enable buffer write support
      iio: buffer-dmaengine: Support specifying buffer direction
      iio: buffer-dmaengine: Enable write support

 Documentation/ABI/testing/sysfs-bus-iio-ad9739a    |  19 +
 .../devicetree/bindings/iio/dac/adi,ad9739a.yaml   |  94 +++
 .../devicetree/bindings/iio/dac/adi,axi-dac.yaml   |  62 ++
 MAINTAINERS                                        |  17 +
 drivers/iio/adc/adi-axi-adc.c                      |  16 +-
 drivers/iio/buffer/industrialio-buffer-dma.c       | 100 +++-
 drivers/iio/buffer/industrialio-buffer-dmaengine.c |  83 +--
 drivers/iio/dac/Kconfig                            |  37 ++
 drivers/iio/dac/Makefile                           |   2 +
 drivers/iio/dac/ad9739a.c                          | 454 +++++++++++++++
 drivers/iio/dac/adi-axi-dac.c                      | 635 +++++++++++++++++++++
 drivers/iio/industrialio-backend.c                 | 179 ++++++
 include/linux/iio/backend.h                        |  49 ++
 include/linux/iio/buffer-dma.h                     |   4 +-
 include/linux/iio/buffer-dmaengine.h               |  24 +-
 include/linux/iio/iio.h                            |   2 +
 16 files changed, 1698 insertions(+), 79 deletions(-)
---
base-commit: 6020ca4de8e5404b20f15a6d9873cd6eb5f6d8d6
change-id: 20240405-iio-backend-axi-dac-be99373b036b
--

Thanks!
- Nuno Sá

Comments

Jonathan Cameron April 6, 2024, 4:19 p.m. UTC | #1
On Fri, 5 Apr 2024 16:59:58 +0200
Nuno Sa <nuno.sa@analog.com> wrote:

> Hi Jonathan,
> 
> Here it goes version 2 of the output backend series. The main points in
> here:
>  - The refactoring the DMA BUF api for setup. I pretty much like how it
>    turned out. Note that Paul's patch ("iio: buffer-dmaengine: Support
>    specifying buffer direction") had to be updated accordingly.
>  - Introduction of the struct iio_info callback for getting the backend.
>    I'm not sure about this one as we have no user for it and we may not
>    have one for sometime. I like how the "default" implementation for
>    getting the backend turned out and it should cover 99% of the cases. It
>    will only fail if the iio parent device is not the same device where we
>    bound the backend.

I've not looked at it yet, but this description makes me think perhaps
that should be ripped out for now?  We can bring it back if we ever need it.

>  - As mentioned above, we now get the backend from the iio device
>    matching the IIO parent device with the device used when getting the
>    backend. This should cover almost all the cases I think. Should be very
>    unlikely to use a different device in devm_iio_backend_get() and
>    devm_iio_device_alloc().
> 
> For the bindings, I still did not addressed Rob's point about dma-names.
> I did reply [1] but still no feedback.
> 
> Anyways, full log:
> 
> v1:
>  * https://lore.kernel.org/all/20240328-iio-backend-axi-dac-v1-0-afc808b3fde3@analog.com/
> 
> v2:
>  * Patch 1:
>   - New patch.
> 
>  * Patch 4:
>   - Make things consistent with the triggered buffer case.
> 
>  * Patch 6:
>   - Fixed description as it's an output device;
>   - Avoid duplicating the "bindings" word in the commit title.
>  
>  * Patch 7:
>   - Renamed vdd_3_3-supply -> vdd-3p3-supply;
>   - Added IRQ and vref properties;
>   - Avoid duplicating the "bindings" word in the commit title.
> 
>  * Patch 8:
>   - New patch.
> 
>  * Patch 9:
>   - Fixed some typos in kerneldocs;
>   - Add iio_backend_from_indio_dev_parent(). Default way of getting backends
>     from IIO devices;
>   - Explicitly differentiate frontends and backends ext_info in
>     iio_backend_extend_chan_spec().
>   - Spell out CW as CONTINUOUS_WAVE;
>   - Add _hz suffix in set_sample_rate().
> 
>  * Patch 10:
>   - Rephrase comment in axi_dac_set_sample_rate() when DDS is disabled;
>   - Use the new iio_dmaengine_buffer_setup_ext() API;
>   - Passed tone as 0,1 value being 1 second tone.
> 
>  * Patch 11:
>   - Fixed mixed spaces with tabs in ABI file and dac -> DAC;
>   - Add COMPILE_TEST to kconfig;
>   - Dropped operating mode enum. Use defines;
>   - Add comments for IIO enum operating mode and the value we need to
>     set on the device;
>   - Add spaces around {} in the reg_sequence;
>   - Always use Mu instead of mixture of Mu and MU;
>   - Don't error out if we do not recognize the part id;
>   - Make sure to deal with other errors than TIMEOUT in ad9739a_init().
> 
> [1]: https://lore.kernel.org/linux-iio/04e2a0569953792673319f7fcab3fe03e6670c03.camel@gmail.com/
> 
> ---
> Nuno Sa (7):
>       iio: buffer-dma: add iio_dmaengine_buffer_setup()
>       dt-bindings: iio: dac: add docs for AXI DAC IP
>       dt-bindings: iio: dac: add docs for AD9739A
>       iio: core: add get_iio_backend() callback
>       iio: backend: add new functionality
>       iio: dac: add support for AXI DAC IP core
>       iio: dac: support the ad9739a RF DAC
> 
> Paul Cercueil (4):
>       iio: buffer-dma: Rename iio_dma_buffer_data_available()
>       iio: buffer-dma: Enable buffer write support
>       iio: buffer-dmaengine: Support specifying buffer direction
>       iio: buffer-dmaengine: Enable write support
> 
>  Documentation/ABI/testing/sysfs-bus-iio-ad9739a    |  19 +
>  .../devicetree/bindings/iio/dac/adi,ad9739a.yaml   |  94 +++
>  .../devicetree/bindings/iio/dac/adi,axi-dac.yaml   |  62 ++
>  MAINTAINERS                                        |  17 +
>  drivers/iio/adc/adi-axi-adc.c                      |  16 +-
>  drivers/iio/buffer/industrialio-buffer-dma.c       | 100 +++-
>  drivers/iio/buffer/industrialio-buffer-dmaengine.c |  83 +--
>  drivers/iio/dac/Kconfig                            |  37 ++
>  drivers/iio/dac/Makefile                           |   2 +
>  drivers/iio/dac/ad9739a.c                          | 454 +++++++++++++++
>  drivers/iio/dac/adi-axi-dac.c                      | 635 +++++++++++++++++++++
>  drivers/iio/industrialio-backend.c                 | 179 ++++++
>  include/linux/iio/backend.h                        |  49 ++
>  include/linux/iio/buffer-dma.h                     |   4 +-
>  include/linux/iio/buffer-dmaengine.h               |  24 +-
>  include/linux/iio/iio.h                            |   2 +
>  16 files changed, 1698 insertions(+), 79 deletions(-)
> ---
> base-commit: 6020ca4de8e5404b20f15a6d9873cd6eb5f6d8d6
> change-id: 20240405-iio-backend-axi-dac-be99373b036b
> --
> 
> Thanks!
> - Nuno Sá
>