From nobody Thu Apr 2 12:13:37 2026 Received: from mail-dy1-f169.google.com (mail-dy1-f169.google.com [74.125.82.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39DF437D114 for ; Sun, 29 Mar 2026 22:47:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774824442; cv=none; b=VFzqdwUOXFdKB97t3+xsqs26tksRafAH4PflsE4CkOxhh55Zh/NQh8MCOcpwEU5ikhz8FgKnzlmeahzZkR4QeNHhEGk5SYwIxe3yrNyPkI2oIcmU88IKDT9XBEURtPYqOZ8xm35ndtuxVnKbT9+bcmxImDnMWYbnrfBH6xC8jUA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774824442; c=relaxed/simple; bh=vwpbqrdZWg2IZwLAqAvEpGuR5LpR+6ltHKabiSi+AJE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r6NDTF6dKdBI59hQwUbcALVltJX8pSQlCxMAracPQ2pGnJw4C5j4nBB+szo0BmqOrF4Bh39h/SXRRKfEBV5chedw2Kx71aVBUJO/K6KERZ699i/jrSGoNcaNP78biwv1UDTZ8ZS6AG1QbgF+DZmj6dgWIk1ZF1KKo77FszjpjbY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cfewBTZe; arc=none smtp.client-ip=74.125.82.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cfewBTZe" Received: by mail-dy1-f169.google.com with SMTP id 5a478bee46e88-2c54c68db4dso1391310eec.0 for ; Sun, 29 Mar 2026 15:47:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774824437; x=1775429237; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3+M5YsOq3vk2JVYTGrQ8f5AMbXIKgHmkOF2OORVkBAw=; b=cfewBTZeel9IF/6M+EKcatDd1aajhVSb5EHkuvat9le936bVm77lu0t9j3HCktW8ah o3iflk+1eZPzNsmt/xIifQtLyks/9pu5M5YWo5KvOHaqAloB2H2iPitpNCnxCHwPsm8W iMtQDs9oIkcXQmND30JFKYDa77nrxeXOTHayQy5syFNohe9nCSGZZlcIhTLKUgMo7Fjm KAT7lCF9pf9OrJEIichFEJ0OHuZXhjuNu9tqiG9hKP1YWDxTcjpkwgk2FuCxJL0pdyBf z98LwKgu5Jy4z3IvsVDbt85xhpFgl9ymFn8W7E0ooRb0FCPfhQGMNB5EzCTmqvDfjMAf 9ESw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774824437; x=1775429237; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3+M5YsOq3vk2JVYTGrQ8f5AMbXIKgHmkOF2OORVkBAw=; b=r1CbnPgx6PR4huQv7Qjpi1UBMxTezLfyFCz67vIsim+/tF66+AgV4nsCk6r5BDaSR5 FK5CnMiKnmfja+ChvkFBGJEwvbtj0B5UA5ZRjmRnGjBtrTs1ZHNYNRZlqSpWdLrVZX6o A2sJpQz+V6EAjDnp6CL0XVCexoZy7tKpv31ycCK5kJkxRcwa6Op/5RNRnH4A/EiLFOFc 8y/LgT2ggO0gmY0y0gPzbiC1M4/Y+WVDGgqsGYQaE640Lp4dh2U9rGAbRJjpkEcj0Qb4 xQVXhGL1PMPUVGYFGb3Q42zsB06DDYqT0XsWN0VxowWRdqHmDJ5QBTUP/swQ1DymYPWX mNVA== X-Forwarded-Encrypted: i=1; AJvYcCUF0qFG89kpFi7EhVfWP0YBz+NsSvtn4iQthmkNG1irG42Mx1rO/p0PNxT/qY9A/uoTffsvA+V7UmcyfQA=@vger.kernel.org X-Gm-Message-State: AOJu0Yzk+tSnHKRTFztt/OHNngeYMFjn8H6WWY+45RBfz2mMlVtJyTyK iU/1ULKO1+UOVYGujS7UlutBOKnVolKadp+bp4Bm6r8uDj2tNulfo0rf X-Gm-Gg: ATEYQzwhxNFtb2nHawXIBI58ZEIFp+PQ2tGgdP4qXNGev9+LW87pIU1oe1NnKQPLRUc qVIbtzBh9ZvEP0u3Z1EpcvBqwjGGGJIuXU0dwcQJxT463SDEMy5F2SS0LBm8i6WLV2oFvU2bPYC PxbnHFIFD9XU44xirX8V5odRc4YBLOScE7U49oMJs+urbAlbr36YK/dB1qyZRJk/gxtvvsvn6Zo nY4NWqCHY2ExypmKTK6p/SVLj+Osmiw4P0u3Bv29Twan43B8H6B86KtEpAHAsiD+4dvPH9UcdK0 O7c9E5p2eRgKmi7Aa4lwYV1pImoQQGA8nZSlhKASIblXW0+g0kNvYEgiodLp7meshF/B3evRQMy LNgY9ZS2BZbFCEeV3syiZCGTqTLO1W/2sl0tNFbQ5QXzC27tMFUDFFn6GUjKXou643Pgw6GjAMN 8A1HQrdV9xOAHHO8Zv2cVEAcxiU/YwaddScQwX9LAqVb+ZXIMQFtKDLn2LP1odthWAyA7WkrAgC vgdQYB04d4+XMA= X-Received: by 2002:a05:693c:3282:b0:2c0:c96a:a4db with SMTP id 5a478bee46e88-2c185d8e84emr5487052eec.4.1774824437396; Sun, 29 Mar 2026 15:47:17 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:7265:773a:8e51:c62f]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c3c7971d97sm5840295eec.30.2026.03.29.15.47.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Mar 2026 15:47:16 -0700 (PDT) From: Dmitry Torokhov Date: Sun, 29 Mar 2026 15:47:09 -0700 Subject: [PATCH v4 4/4] iio: adc: ti-ads7950: complete conversion to using managed resources Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260329-ti-ads7950-facelift-v4-4-c568c508c49a@gmail.com> References: <20260329-ti-ads7950-facelift-v4-0-c568c508c49a@gmail.com> In-Reply-To: <20260329-ti-ads7950-facelift-v4-0-c568c508c49a@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron X-Mailer: b4 0.15-dev-a6826 All resources that the driver needs have managed API now. Switch to using them to make code clearer and drop ti_ads7950_remove(). Reviewed-by: David Lechner Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 66 +++++++++++++---------------------------= ---- 1 file changed, 19 insertions(+), 47 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 0b98c8e7385d..234249ab76d8 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -506,10 +506,8 @@ static int ti_ads7950_probe(struct spi_device *spi) spi->bits_per_word =3D 16; spi->mode |=3D SPI_CS_WORD; ret =3D spi_setup(spi); - if (ret) { - dev_err(&spi->dev, "Error in spi setup\n"); - return ret; - } + if (ret) + return dev_err_probe(&spi->dev, ret, "Error in spi setup\n"); =20 indio_dev =3D devm_iio_device_alloc(&spi->dev, sizeof(*st)); if (!indio_dev) @@ -517,8 +515,6 @@ static int ti_ads7950_probe(struct spi_device *spi) =20 st =3D iio_priv(indio_dev); =20 - spi_set_drvdata(spi, indio_dev); - st->spi =3D spi; =20 info =3D spi_get_device_match_data(spi); @@ -573,24 +569,22 @@ static int ti_ads7950_probe(struct spi_device *spi) st->vref_mv =3D ret / 1000; } =20 - ret =3D iio_triggered_buffer_setup(indio_dev, NULL, - &ti_ads7950_trigger_handler, NULL); - if (ret) { - dev_err(&spi->dev, "Failed to setup triggered buffer\n"); - goto error_destroy_mutex; - } + ret =3D devm_iio_triggered_buffer_setup(&spi->dev, indio_dev, NULL, + &ti_ads7950_trigger_handler, + NULL); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to setup triggered buffer\n"); =20 ret =3D ti_ads7950_init_hw(st); - if (ret) { - dev_err(&spi->dev, "Failed to init adc chip\n"); - goto error_cleanup_ring; - } + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to init adc chip\n"); =20 - ret =3D iio_device_register(indio_dev); - if (ret) { - dev_err(&spi->dev, "Failed to register iio device\n"); - goto error_cleanup_ring; - } + ret =3D devm_iio_device_register(&spi->dev, indio_dev); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to register iio device\n"); =20 /* Add GPIO chip */ st->chip.label =3D dev_name(&st->spi->dev); @@ -605,33 +599,12 @@ static int ti_ads7950_probe(struct spi_device *spi) st->chip.get =3D ti_ads7950_get; st->chip.set =3D ti_ads7950_set; =20 - ret =3D gpiochip_add_data(&st->chip, st); - if (ret) { - dev_err(&spi->dev, "Failed to init GPIOs\n"); - goto error_iio_device; - } + ret =3D devm_gpiochip_add_data(&spi->dev, &st->chip, st); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to init GPIOs\n"); =20 return 0; - -error_iio_device: - iio_device_unregister(indio_dev); -error_cleanup_ring: - iio_triggered_buffer_cleanup(indio_dev); -error_destroy_mutex: - mutex_destroy(&st->slock); - - return ret; -} - -static void ti_ads7950_remove(struct spi_device *spi) -{ - struct iio_dev *indio_dev =3D spi_get_drvdata(spi); - struct ti_ads7950_state *st =3D iio_priv(indio_dev); - - gpiochip_remove(&st->chip); - iio_device_unregister(indio_dev); - iio_triggered_buffer_cleanup(indio_dev); - mutex_destroy(&st->slock); } =20 static const struct spi_device_id ti_ads7950_id[] =3D { @@ -674,7 +647,6 @@ static struct spi_driver ti_ads7950_driver =3D { .of_match_table =3D ads7950_of_table, }, .probe =3D ti_ads7950_probe, - .remove =3D ti_ads7950_remove, .id_table =3D ti_ads7950_id, }; module_spi_driver(ti_ads7950_driver); --=20 2.53.0.1018.g2bb0e51243-goog