From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Matti Vaittinen <mazziesaccount@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
Lars-Peter Clausen <lars@metafoo.de>,
Chen-Yu Tsai <wens@csie.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Samuel Holland <samuel@sholland.org>,
Nuno Sa <nuno.sa@analog.com>,
David Lechner <dlechner@baylibre.com>,
Javier Carrasco <javier.carrasco.cruz@gmail.com>,
Olivier Moysan <olivier.moysan@foss.st.com>,
Guillaume Stols <gstols@baylibre.com>,
Dumitru Ceclan <mitrutzceclan@gmail.com>,
Trevor Gamblin <tgamblin@baylibre.com>,
Matteo Martelli <matteomartelli3@gmail.com>,
Alisa-Dariana Roman <alisadariana@gmail.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev
Subject: Re: [PATCH v7 05/10] iio: adc: sun20i-gpadc: Use adc-helpers
Date: Mon, 17 Mar 2025 11:27:37 +0200 [thread overview]
Message-ID: <Z9frCUqRTD0i1Faq@smile.fi.intel.com> (raw)
In-Reply-To: <0db2a42f-d393-4e75-afbf-cf30c0e06cce@gmail.com>
On Mon, Mar 17, 2025 at 10:42:07AM +0200, Matti Vaittinen wrote:
> On 17/03/2025 09:51, Andy Shevchenko wrote:
> > On Mon, Mar 17, 2025 at 09:11:08AM +0200, Matti Vaittinen wrote:
> > > On 16/03/2025 11:41, Jonathan Cameron wrote:
> > > > On Thu, 13 Mar 2025 14:34:24 +0200
> > > > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > > > > On Thu, Mar 13, 2025 at 09:18:49AM +0200, Matti Vaittinen wrote:
...
> > > > > > + num_channels = devm_iio_adc_device_alloc_chaninfo_se(dev,
> > > > > > + &sun20i_gpadc_chan_template, -1, &channels);
> > > > > > + if (num_channels < 0)
> > > > > > + return num_channels;
> > > > > > +
> > > > > > if (num_channels == 0)
> > > > > > return dev_err_probe(dev, -ENODEV, "no channel children\n");
> > > > >
> > > > > Note, this what I would expected in your helper to see, i.e. separated cases
> > > > > for < 0 (error code) and == 0, no channels.
> > > > >
> > > > > Also, are all users going to have this check? Usually in other similar APIs
> > > > > we return -ENOENT. And user won't need to have an additional check in case of
> > > > > 0 being considered as an error case too.
> > > > In a few cases we'll need to do the dance the other way in the caller.
> > > > So specifically check for -ENOENT and not treat it as an error.
> > > >
> > > > That stems from channel nodes being optionally added to drivers after
> > > > they have been around a while (usually to add more specific configuration)
> > > > and needing to maintain old behaviour of presenting all channels with default
> > > > settings.
> > > >
> > > > I agree that returning -ENOENT is a reasonable way to handle this.
> > >
> > > I agree - but I'm going to use -ENODEV instead of -ENOENT because that's
> > > what the current callers return if they find no channels. That way the
> > > drivers can return the value directly without converting -ENOENT to -ENODEV.
> >
> > ENODEV can be easily clashed with other irrelevant cases,
>
> Can you please explain what cases?
When it's a code path that returns the same error code for something different.
> > ENOENT is the correct
> > error code.
>
> I kind of agree if we look this from the fwnode perspective. But, when we
> look this from the intended user's perspective, I can very well understand
> the -ENODEV. Returning -ENODEV from ADC driver's probe which can't find any
> of the channels feels correct to me.
Okay, it seems we have got yet another disagreement as I think this has to
be ENOENT. Because this is related to the firmware description and not real
hardware discovery path. If it is the latter, I may fully agree on ENODEV
choice. But AFAICS it's not the case here.
> > If drivers return this instead of another error code, nothing bad
> > happen, it's not an ABI path, correct?
>
> I don't know if failure returned from a probe is an ABI. I still feel
> -ENODEV is correct value,
And I have the opposite opinion. I think ENODEV is _incorrect_ choice
in this case.
> and I don't want to change it for existing users -
> and I think also new ADC drivers should use -ENODEV if they find no channels
> at all.
Again, the problem is that you are trying to apply the error code for HW to the
information that comes from FW.
> Besides that I think -ENODEV to be right, changing it to -ENOENT for
> existing callers requires a buy-in from Jonathan (and/or) the driver
> maintainers.
Yeah, will wait for Jonathan to judge, but I think you can find rationale above.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2025-03-17 9:29 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-13 7:16 [PATCH v7 00/10] Support ROHM BD79124 ADC Matti Vaittinen
2025-03-13 7:17 ` [PATCH v7 01/10] dt-bindings: ROHM BD79124 ADC/GPO Matti Vaittinen
2025-03-13 7:18 ` [PATCH v7 02/10] property: Add functions to iterate named child Matti Vaittinen
2025-03-13 12:15 ` Andy Shevchenko
2025-03-16 21:45 ` Marcelo Schmitt
2025-03-13 7:18 ` [PATCH v7 03/10] iio: adc: add helpers for parsing ADC nodes Matti Vaittinen
2025-03-13 12:31 ` Andy Shevchenko
2025-03-13 13:17 ` Matti Vaittinen
2025-03-13 13:29 ` Andy Shevchenko
2025-03-16 9:38 ` Jonathan Cameron
2025-03-17 8:22 ` Matti Vaittinen
2025-03-13 7:18 ` [PATCH v7 04/10] iio: adc: rzg2l_adc: Use adc-helpers Matti Vaittinen
2025-03-13 7:18 ` [PATCH v7 05/10] iio: adc: sun20i-gpadc: " Matti Vaittinen
2025-03-13 12:34 ` Andy Shevchenko
2025-03-16 9:41 ` Jonathan Cameron
2025-03-17 7:11 ` Matti Vaittinen
2025-03-17 7:51 ` Andy Shevchenko
2025-03-17 8:42 ` Matti Vaittinen
2025-03-17 9:27 ` Andy Shevchenko [this message]
2025-03-17 10:45 ` Jonathan Cameron
2025-03-13 7:19 ` [PATCH v7 06/10] iio: adc: Support ROHM BD79124 ADC Matti Vaittinen
2025-03-13 13:19 ` Andy Shevchenko
2025-03-14 7:31 ` Matti Vaittinen
2025-03-14 8:52 ` Matti Vaittinen
2025-03-14 14:33 ` Andy Shevchenko
2025-03-16 9:52 ` Jonathan Cameron
2025-03-16 10:01 ` Jonathan Cameron
2025-03-17 6:52 ` Matti Vaittinen
2025-03-17 10:52 ` Jonathan Cameron
2025-03-14 9:22 ` Matti Vaittinen
2025-03-14 14:37 ` Andy Shevchenko
2025-03-17 7:07 ` Matti Vaittinen
2025-03-17 7:57 ` Andy Shevchenko
2025-03-17 8:33 ` Matti Vaittinen
2025-03-16 11:02 ` Jonathan Cameron
2025-03-17 7:34 ` Matti Vaittinen
2025-03-17 11:24 ` Matti Vaittinen
2025-03-30 16:04 ` Jonathan Cameron
2025-03-31 7:37 ` Andy Shevchenko
2025-03-31 7:51 ` Matti Vaittinen
2025-03-13 7:19 ` [PATCH v7 07/10] MAINTAINERS: Add IIO ADC helpers Matti Vaittinen
2025-03-13 7:19 ` [PATCH v7 08/10] MAINTAINERS: Add ROHM BD79124 ADC/GPO Matti Vaittinen
2025-03-13 7:20 ` [PATCH v7 net-next 09/10] net: gianfar: Use device_get_child_node_count_named() Matti Vaittinen
2025-03-13 12:35 ` Andy Shevchenko
2025-03-13 7:20 ` [PATCH v7 10/10] media: thp7312: Use helper for iterating named child nodes Matti Vaittinen
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=Z9frCUqRTD0i1Faq@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=alisadariana@gmail.com \
--cc=dlechner@baylibre.com \
--cc=gstols@baylibre.com \
--cc=javier.carrasco.cruz@gmail.com \
--cc=jernej.skrabec@gmail.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=matteomartelli3@gmail.com \
--cc=matti.vaittinen@fi.rohmeurope.com \
--cc=mazziesaccount@gmail.com \
--cc=mitrutzceclan@gmail.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=samuel@sholland.org \
--cc=tgamblin@baylibre.com \
--cc=wens@csie.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.