From nobody Tue Apr 7 05:43:53 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B46EECAAD1 for ; Wed, 31 Aug 2022 10:05:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231168AbiHaKFc (ORCPT ); Wed, 31 Aug 2022 06:05:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230459AbiHaKFV (ORCPT ); Wed, 31 Aug 2022 06:05:21 -0400 Received: from smtp1.axis.com (smtp1.axis.com [195.60.68.17]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AA19543F3; Wed, 31 Aug 2022 03:05:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1661940317; x=1693476317; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IV6/GgZtvZM/HS0HfOk29zo087rTH6OyitDmydT3TPc=; b=MI+LNoqsJCy2Kkkg27zpOmFqFqpaVwsfQjFC+B1/1OOmkIAHk0ehzs9R sma56gJoNT8wlDpd7F39bcEW+hAAEbvU0iKa8m9sZyJ5VlHTn4mifKM37 YoEkev4a0+4hBayPcbensKILZL8ZvVynN08nC3p1KfeROp5zf6ZiHe72Z 8mYvN0NVuINcTzj3W9HM4Rp60UJ3fUoPUpQhRNmK/T7xe0vmp7DuiEyLG FalSgheXJvmRmuwrza4O+SLnemTEcQfWjgEXFHIkw9M3xB+PlMOqf/3zg vMUmA70AXWGRs5U6ICBk1ZMIzhIruy2FdxfRsTomc6KpRBGA+9LwpeDav A==; From: Vincent Whitchurch To: CC: , Vincent Whitchurch , , , , Subject: [PATCH v2 4/5] iio: adc: mcp320x: use device managed functions Date: Wed, 31 Aug 2022 12:05:05 +0200 Message-ID: <20220831100506.3368103-5-vincent.whitchurch@axis.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220831100506.3368103-1-vincent.whitchurch@axis.com> References: <20220831100506.3368103-1-vincent.whitchurch@axis.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use devm_* functions in probe to remove some code and to make it easier to add further calls to the probe function. Signed-off-by: Vincent Whitchurch --- drivers/iio/adc/mcp320x.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c index 8ed27df9a0bb..b1c1bf4b8047 100644 --- a/drivers/iio/adc/mcp320x.c +++ b/drivers/iio/adc/mcp320x.c @@ -390,6 +390,11 @@ static const struct mcp320x_chip_info mcp320x_chip_inf= os[] =3D { }, }; =20 +static void mcp320x_reg_disable(void *reg) +{ + regulator_disable(reg); +} + static int mcp320x_probe(struct spi_device *spi) { struct iio_dev *indio_dev; @@ -460,27 +465,13 @@ static int mcp320x_probe(struct spi_device *spi) if (ret < 0) return ret; =20 - mutex_init(&adc->lock); - - ret =3D iio_device_register(indio_dev); - if (ret < 0) - goto reg_disable; - - return 0; - -reg_disable: - regulator_disable(adc->reg); - - return ret; -} + ret =3D devm_add_action_or_reset(&spi->dev, mcp320x_reg_disable, adc->reg= ); + if (ret) + return ret; =20 -static void mcp320x_remove(struct spi_device *spi) -{ - struct iio_dev *indio_dev =3D spi_get_drvdata(spi); - struct mcp320x *adc =3D iio_priv(indio_dev); + mutex_init(&adc->lock); =20 - iio_device_unregister(indio_dev); - regulator_disable(adc->reg); + return devm_iio_device_register(&spi->dev, indio_dev); } =20 static const struct of_device_id mcp320x_dt_ids[] =3D { @@ -535,7 +526,6 @@ static struct spi_driver mcp320x_driver =3D { .of_match_table =3D mcp320x_dt_ids, }, .probe =3D mcp320x_probe, - .remove =3D mcp320x_remove, .id_table =3D mcp320x_id, }; module_spi_driver(mcp320x_driver); --=20 2.34.1