From: Jonathan Cameron <jic23@kernel.org>
To: mdshahid03@gmail.com
Cc: "Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Joshua Crofts" <joshua.crofts@broadcom.com>,
"Broadcom internal kernel list"
<bcm-kernel-feedback-list@broadcom.com>,
"David Lechner" <dlechner@baylibre.com>,
linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org, "Nuno Sá" <nuno.sa@analog.com>,
"Ray Jui" <rjui@broadcom.com>,
"Scott Branden" <sbranden@broadcom.com>
Subject: Re: [PATCH v3 3/3] iio: adc: bcm_iproc_adc: Convert probe error handling to dev_err_probe()
Date: Sun, 2 Aug 2026 03:04:33 +0100 [thread overview]
Message-ID: <20260802030433.696454fe@jic23-huawei> (raw)
In-Reply-To: <20260731182347.42888-4-mdshahid03@gmail.com>
On Fri, 31 Jul 2026 23:53:47 +0530
mdshahid03@gmail.com wrote:
> From: Mohammad Shahid <mdshahid03@gmail.com>
>
> This simplifies the probe error handling by replacing open-coded
> dev_err() and return sequences. Also remove the redundant
> dev_err() after iproc_adc_enable(), as the helper already reports
> the failure.
>
> Signed-off-by: Mohammad Shahid <mdshahid03@gmail.com>
> ---
> drivers/iio/adc/bcm_iproc_adc.c | 43 +++++++++++++++------------------
> 1 file changed, 19 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/iio/adc/bcm_iproc_adc.c b/drivers/iio/adc/bcm_iproc_adc.c
> index 29ea35972a23..5fcd528eb88a 100644
> --- a/drivers/iio/adc/bcm_iproc_adc.c
> +++ b/drivers/iio/adc/bcm_iproc_adc.c
> @@ -523,19 +523,16 @@ static int iproc_adc_probe(struct platform_device *pdev)
>
> adc_priv->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
> "adc-syscon");
> - if (IS_ERR(adc_priv->regmap)) {
> - dev_err(dev, "failed to get handle for tsc syscon\n");
> - ret = PTR_ERR(adc_priv->regmap);
> - return ret;
> - }
> + if (IS_ERR(adc_priv->regmap))
> + return dev_err_probe(dev,
> + PTR_ERR(adc_priv->regmap),
> + "failed to get handle for tsc syscon\n");
Look for places to wrap less as part of this change. E.g.
return dev_err_probe(dev, PTR_ERR(adc_priv->regmap),
"failed to get handle for tsc syscon\n");
>
> adc_priv->adc_clk = devm_clk_get(dev, "tsc_clk");
> - if (IS_ERR(adc_priv->adc_clk)) {
> - dev_err(dev,
> - "failed getting clock tsc_clk\n");
> - ret = PTR_ERR(adc_priv->adc_clk);
> - return ret;
> - }
> + if (IS_ERR(adc_priv->adc_clk))
> + return dev_err_probe(dev,
> + PTR_ERR(adc_priv->adc_clk),
Same here.
> + "failed getting clock tsc_clk\n");
>
> adc_priv->irqno = platform_get_irq(pdev, 0);
> if (adc_priv->irqno < 0)
> @@ -543,10 +540,10 @@ static int iproc_adc_probe(struct platform_device *pdev)
>
> ret = regmap_clear_bits(adc_priv->regmap, IPROC_REGCTL2,
> IPROC_ADC_AUXIN_SCAN_ENA);
> - if (ret) {
> - dev_err(dev, "failed to write IPROC_REGCTL2 %d\n", ret);
> - return ret;
> - }
> + if (ret)
> + return dev_err_probe(dev,
Definitely the same here!
> + ret,
> + "failed to write IPROC_REGCTL2\n");
>
> ret = devm_request_threaded_irq(dev, adc_priv->irqno,
> iproc_adc_interrupt_handler,
> @@ -556,17 +553,14 @@ static int iproc_adc_probe(struct platform_device *pdev)
> return ret;
>
> ret = clk_prepare_enable(adc_priv->adc_clk);
This should be combined with the get (be careful on ordering
> - if (ret) {
> - dev_err(dev,
> - "clk_prepare_enable failed %d\n", ret);
> - return ret;
> - }
> + if (ret)
> + return dev_err_probe(dev,
and here.
The local style before this patch was a bit odd. No need to keep it.
> + ret,
> + "failed to enable clock\n");
>
> ret = iproc_adc_enable(indio_dev);
> - if (ret) {
> - dev_err(dev, "failed to enable adc %d\n", ret);
> + if (ret)
> goto err_adc_enable;
Look at converting the whole thing to devm managed cleanup. You'll
need one custom cleanup function and devm_add_action_or_reset()
> - }
>
> indio_dev->name = "iproc-static-adc";
> indio_dev->info = &iproc_adc_iio_info;
> @@ -576,7 +570,8 @@ static int iproc_adc_probe(struct platform_device *pdev)
>
> ret = iio_device_register(indio_dev);
> if (ret) {
> - dev_err(dev, "iio_device_register failed:err %d\n", ret);
> + dev_err_probe(dev, ret,
> + "failed to register IIO device\n");
dev_err_probe() is as you see much less of an improvement when
we aren't returning. If we switch the whole thing to devm managed
cleanup then we will be returning here. If you make that change
I don't mind if you flip to return dev_err_probe() directly in that
patch to avoid unnecessary code churn.
thanks
Jonathan
> goto err_clk;
> }
>
prev parent reply other threads:[~2026-08-02 2:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 18:23 [PATCH v3 0/3] iio: adc: bcm_iproc_adc: Simplify probe error handling mdshahid03
2026-07-31 18:23 ` [PATCH v3 1/3] iio: adc: bcm_iproc_adc: Remove redundant error message after devm_request_threaded_irq() mdshahid03
2026-07-31 18:23 ` [PATCH v3 2/3] iio: adc: bcm_iproc_adc: Introduce local device pointer mdshahid03
2026-08-02 1:58 ` Jonathan Cameron
2026-07-31 18:23 ` [PATCH v3 3/3] iio: adc: bcm_iproc_adc: Convert probe error handling to dev_err_probe() mdshahid03
2026-08-01 6:45 ` Joshua Crofts
2026-08-02 2:04 ` Jonathan Cameron [this message]
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=20260802030433.696454fe@jic23-huawei \
--to=jic23@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=dlechner@baylibre.com \
--cc=joshua.crofts@broadcom.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mdshahid03@gmail.com \
--cc=nuno.sa@analog.com \
--cc=rjui@broadcom.com \
--cc=sbranden@broadcom.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