From: Jonathan Cameron <jic23@kernel.org>
To: Angelo Dureghello <adureghello@baylibre.com>
Cc: "Nuno Sá" <noname.nuno@gmail.com>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Nuno Sa" <nuno.sa@analog.com>, "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Mihail Chindris" <mihail.chindris@analog.com>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
devicetree@vger.kernel.org, dlechner@baylibre.com,
"Mark Brown" <broonie@kernel.org>
Subject: Re: [PATCH v4 06/11] iio: backend: extend features
Date: Sun, 6 Oct 2024 14:48:41 +0100 [thread overview]
Message-ID: <20241006144841.08fb2102@jic23-huawei> (raw)
In-Reply-To: <ihkd45xlg3hejchdw6ksmuzoxu3cazmx5rd4d4zca7xl4rfcrd@krururfftdlx>
On Fri, 4 Oct 2024 15:45:21 +0200
Angelo Dureghello <adureghello@baylibre.com> wrote:
> Hi Nuno,
>
> On 04.10.2024 14:54, Nuno Sá wrote:
> > On Thu, 2024-10-03 at 19:29 +0200, Angelo Dureghello wrote:
> > > From: Angelo Dureghello <adureghello@baylibre.com>
> > >
> > > Extend backend features with new calls needed later on this
> > > patchset from axi version of ad3552r.
> > >
> > > The follwoing calls are added:
> > >
> > > iio_backend_ddr_enable
> > > enable ddr bus transfer
> > > iio_backend_ddr_disable
> > > disable ddr bus transfer
> > > iio_backend_buffer_enable
> > > enable buffer
> > > iio_backend_buffer_disable
> > > disable buffer
> > > iio_backend_data_transfer_addr
> > > define the target register address where the DAC sample
> > > will be written.
> > >
> > > Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
> > > ---
> > > drivers/iio/industrialio-backend.c | 79 ++++++++++++++++++++++++++++++++++++++
> > > include/linux/iio/backend.h | 17 ++++++++
> > > 2 files changed, 96 insertions(+)
> > >
> > > diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-
> > > backend.c
> > > index 20b3b5212da7..d5e0a4da761e 100644
> > > --- a/drivers/iio/industrialio-backend.c
> > > +++ b/drivers/iio/industrialio-backend.c
> > > @@ -718,6 +718,85 @@ static int __devm_iio_backend_get(struct device *dev, struct
> > > iio_backend *back)
> > > return 0;
> > > }
> > >
> > > +/**
> > > + * iio_backend_ddr_enable - Enable interface DDR (Double Data Rate) mode
> > > + * @back: Backend device
> > > + *
> > > + * Enable DDR, data is generated by the IP at each front (raising and falling)
> > > + * of the bus clock signal.
> > > + *
> > > + * RETURNS:
> > > + * 0 on success, negative error number on failure.
> > > + */
> > > +int iio_backend_ddr_enable(struct iio_backend *back)
> > > +{
> > > + return iio_backend_op_call(back, ddr_enable);
> > > +}
> > > +EXPORT_SYMBOL_NS_GPL(iio_backend_ddr_enable, IIO_BACKEND);
> > > +
> > > +/**
> > > + * iio_backend_ddr_disable - Disable interface DDR (Double Data Rate) mode
> > > + * @back: Backend device
> > > + *
> > > + * Disable DDR, setting into SDR mode (Single Data Rate).
> > > + *
> > > + * RETURNS:
> > > + * 0 on success, negative error number on failure.
> > > + */
> > > +int iio_backend_ddr_disable(struct iio_backend *back)
> > > +{
> > > + return iio_backend_op_call(back, ddr_disable);
> > > +}
> > > +EXPORT_SYMBOL_NS_GPL(iio_backend_ddr_disable, IIO_BACKEND);
> > > +
> > > +/**
> > > + * iio_backend_dma_stream_enable - Enable iio buffering
> > > + * @back: Backend device
> > > + *
> > > + * Enabling sending the dma data stream over the bus.
> > > + * bus interface.
> > > + *
> > > + * RETURNS:
> > > + * 0 on success, negative error number on failure.
> > > + */
> > > +int iio_backend_dma_stream_enable(struct iio_backend *back)
> > > +{
> > > + return iio_backend_op_call(back, dma_stream_enable);
> > > +}
> > > +EXPORT_SYMBOL_NS_GPL(iio_backend_dma_stream_enable, IIO_BACKEND);
> > > +
> > > +/**
> > > + * iio_backend_dma_stream_disable - Disable iio buffering
> > > + * @back: Backend device
> > > + *
> > > + * Disable sending the dma data stream over the bus.
> > > + *
> > > + * RETURNS:
> > > + * 0 on success, negative error number on failure.
> > > + */
> > > +int iio_backend_dma_stream_disable(struct iio_backend *back)
> > > +{
> > > + return iio_backend_op_call(back, dma_stream_disable);
> > > +}
> > > +EXPORT_SYMBOL_NS_GPL(iio_backend_dma_stream_disable, IIO_BACKEND);
> > > +
> >
> > I'm not sure if this is what Jonathan was suggesting... Ate least I don't really
> > agree with it. I mean, yes, this is about buffering and to start receiving (or
> > sending) a stream of data. But AFAICT, it might have nothing to do with DMA. Same as
> > .request_buffer() - It's pretty much always a DMA one but we should not take that for
> > granted.
Agreed. The stream bit works, the DMA is more tenuous. Maybe *data_stream_enable()
is generic enough.
> >
> > So going back to the RFC [1], you can see I was suggesting something like struct
> > iio_buffer_setup_ops. Maybe just add the ones we use for now? So that would
> > be.buffer_postenable() and .buffer_predisable(). Like this, it should be obvious the
> > intent of the ops.
> >
> ok, thanks,
>
> so something as :
>
> struct iio_backend_setup_ops {
> int (*buffer_postenable)(struct iio_backend *back);
> int (*buffer_predisable)(struct iio_backend *back);
Hmm. Maybe. My issue with the original naming was the lack of clarify of
what it actually meant. I'm not sure this helps though in some cases we
do put similar calls in the postenable callback (ones that start the
data flow) so at least it's consistent with that.
Jonathan
> };
>
> struct iio_backend_ops {
> struct iio_backend_setup_ops setup_ops;
>
> ?
>
> > - Nuno Sá
> >
> >
>
next prev parent reply other threads:[~2024-10-06 13:48 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-03 17:28 [PATCH v4 00/11] iio: add support for the ad3552r AXI DAC IP Angelo Dureghello
2024-10-03 17:28 ` [PATCH v4 01/11] iio: dac: adi-axi-dac: update register names Angelo Dureghello
2024-10-03 17:28 ` [PATCH v4 02/11] iio: dac: adi-axi-dac: fix wrong register bitfield Angelo Dureghello
2024-10-06 13:41 ` Jonathan Cameron
2024-10-03 17:29 ` [PATCH v4 03/11] dt-bindings: iio: dac: adi-axi-dac: add ad3552r axi variant Angelo Dureghello
2024-10-03 23:34 ` Rob Herring (Arm)
2024-10-04 7:33 ` Angelo Dureghello
2024-10-04 13:26 ` David Lechner
2024-10-05 17:22 ` Rob Herring
2024-10-04 0:34 ` Rob Herring
2024-10-03 17:29 ` [PATCH v4 04/11] dt-bindings: iio: dac: ad3552r: fix maximum spi speed Angelo Dureghello
2024-10-04 6:32 ` Krzysztof Kozlowski
2024-10-06 13:43 ` Jonathan Cameron
2024-10-03 17:29 ` [PATCH v4 05/11] dt-bindings: iio: dac: ad3552r: add iio backend support Angelo Dureghello
2024-10-04 16:04 ` Conor Dooley
2024-10-03 17:29 ` [PATCH v4 06/11] iio: backend: extend features Angelo Dureghello
2024-10-04 12:54 ` Nuno Sá
2024-10-04 13:45 ` Angelo Dureghello
2024-10-06 13:48 ` Jonathan Cameron [this message]
2024-10-07 6:36 ` Nuno Sá
2024-10-03 17:29 ` [PATCH v4 07/11] iio: dac: adi-axi-dac: " Angelo Dureghello
2024-10-04 13:41 ` Nuno Sá
2024-10-03 17:29 ` [PATCH v4 08/11] iio: dac: ad3552r: changes to use FIELD_PREP Angelo Dureghello
2024-10-03 17:29 ` [PATCH v4 09/11] iio: dac: ad3552r: extract common code (no changes in behavior intended) Angelo Dureghello
2024-10-03 17:29 ` [PATCH v4 10/11] iio: dac: ad3552r: add high-speed platform driver Angelo Dureghello
2024-10-06 13:58 ` Jonathan Cameron
2024-10-03 17:29 ` [PATCH v4 11/11] iio: dac: adi-axi-dac: add registering of child fdt node Angelo Dureghello
2024-10-06 14:00 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241006144841.08fb2102@jic23-huawei \
--to=jic23@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=Michael.Hennerich@analog.com \
--cc=adureghello@baylibre.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mihail.chindris@analog.com \
--cc=noname.nuno@gmail.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox