From: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
To: "Nuno Sá" <noname.nuno@gmail.com>
Cc: Marcelo Schmitt <marcelo.schmitt@analog.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
jic23@kernel.org, michael.hennerich@analog.com,
nuno.sa@analog.com, eblanc@baylibre.com, dlechner@baylibre.com,
andy@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, corbet@lwn.net,
Trevor Gamblin <tgamblin@baylibre.com>,
Axel Haslam <ahaslam@baylibre.com>
Subject: Re: [PATCH v5 5/7] iio: adc: ad4030: Add SPI offload support
Date: Fri, 17 Oct 2025 16:54:49 -0300 [thread overview]
Message-ID: <aPKfCbZSXxaHICel@debian-BULLSEYE-live-builder-AMD64> (raw)
In-Reply-To: <5e3a1d31f3cec340650e2e63db79903b78ab9a1f.camel@gmail.com>
On 10/17, Nuno Sá wrote:
> On Tue, 2025-10-14 at 19:22 -0300, Marcelo Schmitt wrote:
> > AD4030 and similar ADCs can capture data at sample rates up to 2 mega
> > samples per second (MSPS). Not all SPI controllers are able to achieve such
> > high throughputs and even when the controller is fast enough to run
> > transfers at the required speed, it may be costly to the CPU to handle
> > transfer data at such high sample rates. Add SPI offload support for AD4030
> > and similar ADCs to enable data capture at maximum sample rates.
> >
> > Co-developed-by: Trevor Gamblin <tgamblin@baylibre.com>
> > Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
> > Co-developed-by: Axel Haslam <ahaslam@baylibre.com>
> > Signed-off-by: Axel Haslam <ahaslam@baylibre.com>
> > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com>
> > ---
>
...
> > +static int ad4030_offload_buffer_postenable(struct iio_dev *indio_dev)
> > +{
> > + struct ad4030_state *st = iio_priv(indio_dev);
> > + unsigned int reg_modes;
> > + int ret, ret2;
> > +
...
> > + ret = spi_offload_trigger_enable(st->offload, st->offload_trigger,
> > + &st->offload_trigger_config);
> > + if (ret)
> > + goto out_pwm_disable;
> > +
> > + return 0;
> > +
> > +out_pwm_disable:
> > + pwm_disable(st->cnv_trigger);
> > +out_unoptimize:
> > + spi_unoptimize_message(&st->offload_msg);
> > +out_reset_mode:
> > + /* reenter register configuration mode */
> > + ret2 = ad4030_enter_config_mode(st);
>
> nit: if ret2 is not being used at all, maybe just
ret2 is logged on the error message below so I guess I'll keep it as it is.
>
> if (ad4030_enter_config_mode(st))
>
> > + if (ret2)
> > + dev_err(&st->spi->dev,
> > + "couldn't reenter register configuration mode: %d\n",
> > + ret2);
here we log the error code. We only reach it if reg access fails after
something on offload buffer enable have failed first. We cannot reuse ret here
because we would be shadowing the original error code.
> > +
> > + return ret;
> > +}
> >
>
> ...
>
...
> > + } else {
> > + /*
> > + * One hardware channel is split in two software channels
> > when
> > + * using common byte mode. Offloaded SPI transfers can't
> > support
> > + * software timestamp so no additional timestamp channel is
> > added.
> > + */
> > + indio_dev->num_channels = 2 * st->chip->num_voltage_inputs;
>
> Maybe I'm missing something but common mode is not supported for now so isn't
> the above wrong?
>
Yes, that was buggy. Dropping common-mode channels as last minute change was a
bad idea. I did another set of tests with ADAQ4216 and fixed that for v6. I'll
also re-add common-mode channel support as a separate patch.
Thanks,
Marcelo
next prev parent reply other threads:[~2025-10-17 19:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-14 22:20 [PATCH v5 0/7] Add SPI offload support to AD4030 Marcelo Schmitt
2025-10-14 22:21 ` [PATCH v5 1/7] dt-bindings: iio: adc: adi,ad4030: Reference spi-peripheral-props Marcelo Schmitt
2025-10-14 22:21 ` [PATCH v5 2/7] Docs: iio: ad4030: Add double PWM SPI offload doc Marcelo Schmitt
2025-10-14 22:21 ` [PATCH v5 3/7] dt-bindings: iio: adc: adi,ad4030: Add PWM Marcelo Schmitt
2025-10-14 22:21 ` [PATCH v5 4/7] iio: adc: ad4030: Use BIT macro to improve code readability Marcelo Schmitt
2025-10-15 13:46 ` Andy Shevchenko
2025-10-17 14:14 ` Nuno Sá
2025-10-14 22:22 ` [PATCH v5 5/7] iio: adc: ad4030: Add SPI offload support Marcelo Schmitt
2025-10-16 16:40 ` David Lechner
2025-10-17 11:35 ` Marcelo Schmitt
2025-10-17 15:03 ` Nuno Sá
2025-10-17 15:02 ` Nuno Sá
2025-10-17 19:54 ` Marcelo Schmitt [this message]
2025-10-18 14:16 ` Nuno Sá
2025-10-14 22:22 ` [PATCH v5 6/7] dt-bindings: iio: adc: adi,ad4030: Add ADAQ4216 and ADAQ4224 Marcelo Schmitt
2025-10-16 16:30 ` Conor Dooley
2025-10-14 22:22 ` [PATCH v5 7/7] iio: adc: ad4030: Add support for " Marcelo Schmitt
2025-10-15 13:56 ` Andy Shevchenko
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=aPKfCbZSXxaHICel@debian-BULLSEYE-live-builder-AMD64 \
--to=marcelo.schmitt1@gmail.com \
--cc=ahaslam@baylibre.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=eblanc@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.schmitt@analog.com \
--cc=michael.hennerich@analog.com \
--cc=noname.nuno@gmail.com \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=tgamblin@baylibre.com \
/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