From: Conor Dooley <conor@kernel.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Nuno Sá" <noname.nuno@gmail.com>,
"Alexandru Ardelean" <aardelean@baylibre.com>,
"Alisa-Dariana Roman" <alisadariana@gmail.com>,
"Alisa-Dariana Roman" <alisa.roman@analog.com>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Michael Hennerich" <michael.hennerich@analog.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>
Subject: Re: [PATCH v6 5/6] iio: adc: ad7192: Add clock provider
Date: Sun, 30 Jun 2024 12:43:30 +0100 [thread overview]
Message-ID: <20240630-jubilant-pyromania-d6b004a793a9@spud> (raw)
In-Reply-To: <20240630105448.758dd131@jic23-huawei>
[-- Attachment #1: Type: text/plain, Size: 3165 bytes --]
On Sun, Jun 30, 2024 at 10:54:48AM +0100, Jonathan Cameron wrote:
>
> > > > +
> > > > static int ad7192_clock_setup(struct ad7192_state *st)
> > > > {
> > > > struct device *dev = &st->sd.spi->dev;
> > > > @@ -412,6 +496,11 @@ static int ad7192_clock_setup(struct ad7192_state *st)
> > > > if (ret < 0) {
> > > > st->clock_sel = AD7192_CLK_INT;
> > > > st->fclk = AD7192_INT_FREQ_MHZ;
> > > > +
> > > > + ret = ad7192_register_clk_provider(st);
> > > > + if (ret)
> > > > + return dev_err_probe(dev, ret,
> > > > + "Failed to register clock
> > > > provider\n");
> > >
> > > A question here: do we want to fail the probe of this driver when it
> > > cannot register a clock provider?
> > > Or should we ignore it?
> > > No preference from my side.
> >
> > Sensible question... I would say it depends. On one side this is an optional
> > feature so we should not (arguably) error out. OTOH, someone may really want
> > (and relies on) this feature so failing makes sense.
> >
> > Maybe we should have
> >
> > if (!device_property_present(&spi->dev, "#clock-cells"))
> > return 0;
>
> I'm not 100% sure from looking at the code, but if the absence of this property
> (because the DT writer doesn't care about this) is sufficient to make the
> calls in ad7192_register_clk_provider() fail then we should check this.
> I don't think we need the complexity of get_provider_clk_node() as there is
> no reason to look in a parent of this device (it's not an mfd or similar) so
> this check should be sufficient.
>
> Does this also mean the binding should not require this? I suspect it shouldn't.
Per the binding (proposed and current) I think the code here is fine
w.r.t. probe failures. Before the series, it looks like clocks/clock-names
were required by the binding and the driver would fail to probe if they were
not provided. The current code only fails to probe if neither clocks
or clock-names and #clock-cells are not provided, so it is a weaker
restriction than before. The binding doesn't require #clock-cells at all
times, only if the clock consumer properties are not present, so it is
both fine backwards compatibility wise and seems to match how the driver
is behaving. I'm biased, but I don't buy "the DT writer doesn't care" as
an argument cos if they didn't care about adding the required clock
consumer properties now then they'd not have probed before either...
Cheers,
Conor.
> > in ad7192_register_clk_provider(). So that if we fail the function, then yes, we
> > should fail probing as FW wants this to be a provider. Also, not providing
> > #clock-cells means we don't register the clock.
> >
> > Having said the above I think that failing devm_clk_hw_register() means that
> > something is already really wrong (or we have a bug in the driver) so likely we
> > should keep it simple and just always provide the clock and return an error if
> > we fail to do so.
> >
> > my 2 cents...
> >
> > - Nuno Sá
> >
> >
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2024-06-30 11:43 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-24 12:49 [PATCH v6 0/6] iio: adc: ad7192: Improvements Alisa-Dariana Roman
2024-06-24 12:49 ` [PATCH v6 1/6] iio: adc: ad7192: use devm_regulator_get_enable_read_voltage Alisa-Dariana Roman
2024-06-30 9:41 ` Jonathan Cameron
2024-06-24 12:49 ` [PATCH v6 2/6] dt-bindings: iio: adc: ad7192: Update clock config Alisa-Dariana Roman
2024-06-24 16:17 ` Conor Dooley
2024-06-24 12:49 ` [PATCH v6 3/6] " Alisa-Dariana Roman
2024-06-25 5:30 ` Alexandru Ardelean
2024-06-30 9:45 ` Jonathan Cameron
2024-06-24 12:49 ` [PATCH v6 4/6] dt-bindings: iio: adc: ad7192: Add clock provider Alisa-Dariana Roman
2024-06-24 16:17 ` Conor Dooley
2024-06-30 9:58 ` Jonathan Cameron
2024-06-24 12:49 ` [PATCH v6 5/6] " Alisa-Dariana Roman
2024-06-25 5:48 ` Alexandru Ardelean
2024-06-26 12:16 ` Nuno Sá
2024-06-30 9:54 ` Jonathan Cameron
2024-06-30 11:43 ` Conor Dooley [this message]
2024-06-24 12:49 ` [PATCH v6 6/6] MAINTAINERS: Update AD7192 driver maintainer Alisa-Dariana Roman
2024-06-30 9:59 ` 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=20240630-jubilant-pyromania-d6b004a793a9@spud \
--to=conor@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=aardelean@baylibre.com \
--cc=alisa.roman@analog.com \
--cc=alisadariana@gmail.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.hennerich@analog.com \
--cc=noname.nuno@gmail.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