From nobody Thu Apr 9 21:54:12 2026 Received: from mail-dy1-f182.google.com (mail-dy1-f182.google.com [74.125.82.182]) (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 44F0C3D3D1C for ; Thu, 5 Mar 2026 19:22:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738525; cv=none; b=gUQACOra29CWLl0OEkJWarOCbWaLRfG09GdiVDrGvspUHPEQr/q/lhHmYmecQR9z4r/MOOdEfNQBc/LKiGkSM/UGasJhmHmcrYhbV4i/Fs7s8Yifj5ezezXDtngQOxYOHLrKlr1yN5m7JKdtmbtioRJWoRqn0ldnOUsw/YOQWDI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738525; c=relaxed/simple; bh=jUbqI6ezBlVyFDdEQHZwsRHOEwUTcg1/vMHeRJvJv5c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JTq6QHyAlovafFcEK9eHjOVpCqKbPXk0BTvJr/BPhWlX3mWviv+xR8QaPpS+dVdGMRKDeioGKCx+v6lD8FHy/ZgLhtozs4znl1OT9Zd796/9Bf9O3AKK4rmSMoaBdBGU9MJiSDLkfOif3TiWFIBd2gbQ3w151hkHh8z37SL2E+s= 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=VPSBT2xe; arc=none smtp.client-ip=74.125.82.182 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="VPSBT2xe" Received: by mail-dy1-f182.google.com with SMTP id 5a478bee46e88-2ba9c484e5eso7872840eec.1 for ; Thu, 05 Mar 2026 11:22:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738523; x=1773343323; 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=JjPq113nXOUWKDDAA/JDnS8+HilrFrKJ/9HVlkXWYhA=; b=VPSBT2xeQmmsPe5JKSy7cVMAF3fuxRFSdsGbQKzo4G1Geg+f96XUuMEo59RCkfuw/x Wab14HM17Hvx20A09BDzRTpTx0a1y7RtaIrp8/KMqWrwaRXHxPPQFN/l7a2CYo9+Sr0e dPG1yI0p2id0Kzv2USHh25Qw2R3+zRaEn8fy7I3RJts2Kp9Dc3gMr3kt6FmQIbrI4awh Y1k2MXLeoQDoxNxKw+h3xcbQykE+crNeRDobf7z6hAtcIHaxT4NRSfiQHSV9jgtM08nb w5hsdlxz5EhDGpU1lMTl0KrJf1HV/SJIAjMFDRh0cilBVpwADojuVi3dYYRukiN9RnRQ 2xGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738523; x=1773343323; 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=JjPq113nXOUWKDDAA/JDnS8+HilrFrKJ/9HVlkXWYhA=; b=isFcSfB2PE4HwwL057guZhV3vqxnY790OkxZMSyFywNQHgMwiCU+7IQwVMD6/mtMLu pr168Lq1F2oEj8LRDKaStMBRe9YBjlXYV88GxJkTu+RJOrvijx9IpBxt/1tWMUwGYVFm F+SpyYcS2m66rjpKhpo1zEOuA/V3ci8iWb9bgHHNB3mhTe0PW9z41tIFuTVBDh+wC9py Qaq+/XFLnNRxPQrrCho1LtrPVmNPW9oAi5HR02XbSuDiQZTF/GUkwEaY+1SaVTCT66id Lw5CJ57VAKJTd4aP0kimcLMVIoHtJlMK4ottDgLx0AUEMv3Uh4ZE08bk2qeg8IJ5799U /k9w== X-Forwarded-Encrypted: i=1; AJvYcCW80/qzJx3V0rgJEM90/XKcM3uH0Xi1tDVWfOwQ+bxHsRiBdj7xuzDofFkjGlN9zweM4mfUJZtVxTkhkB4=@vger.kernel.org X-Gm-Message-State: AOJu0YyQAxdFOYwqUlK58jP10r5IDoNphPNaipRdZYaObN/5E5jLSO6d 89t6RP/mk1/o9HUdc3lq0FpDtdBmcIGMsuMr2y4C1F4uditUFkkOvPrI X-Gm-Gg: ATEYQzzKbczulaKjHEtLSMkBYIdCBVi1rDi+m0eBo3gSqMdpfa0gvn+x0wDmH8lw+J7 YjIZdkpf2+w/LnA02CxMqhEANUfDZHiq7DM86pbTNlbix1i0/Erxk1XQo0Do56yZCgR7hkOxs7O +3uXkfFSCUslmGnWnObExXjfHktVL2fXrpkfpIi0TJwu6Ed7RToIfQN9moy8RcBfoeTypKYbu0X VlfeZ+T2ScRS2O5lqHC5KWN32ZUP2qedsmREDtGrh//41V2ghyNcsceGh+k3EK7d8UW6ciqw+fo yB6BrgMVSV+/GVUsCILrZxCguFy9Bjw82AKQ6cOBpJTGz1FEoTCE+r1U8J8iRNn7Kwpml1xWt3J c6n8MTIPX32hO2dt1NYA+Qb87069e1Bm30WesVjvzXJciABcYTMhRJnHxZN0AtFf1QU7jK/Je+F Af/IY6OG9ycyVG02RLqkwd2N4kgSMj3m/redyc+VeYXiLLsY0BLmEcJFaxF5jVurNYXcstQHSn/ YwhjGPLzQBhXyA= X-Received: by 2002:a05:7301:1e87:b0:2ba:6aef:6959 with SMTP id 5a478bee46e88-2be311c34camr2322058eec.27.1772738523235; Thu, 05 Mar 2026 11:22:03 -0800 (PST) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:7788:d145:a740:ca06]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be1281ff70sm10800980eec.14.2026.03.05.11.22.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:22:02 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:57 -0800 Subject: [PATCH v3 6/6] 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: <20260305-ti-ads7950-facelift-v3-6-a23fdd1a079e@gmail.com> References: <20260305-ti-ads7950-facelift-v3-0-a23fdd1a079e@gmail.com> In-Reply-To: <20260305-ti-ads7950-facelift-v3-0-a23fdd1a079e@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-94184 All resources that the driver needs have managed API now. Switch to using them to make code clearer and drop ti_ads7950_remove(). Signed-off-by: Dmitry Torokhov Reviewed-by: David Lechner --- 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 847e83baa876..a1197e9cff93 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -513,10 +513,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) @@ -577,26 +575,22 @@ static int ti_ads7950_probe(struct spi_device *spi) else st->vref_mv =3D ret / 1000; =20 - mutex_init(&st->slock); - - 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); @@ -611,33 +605,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 { @@ -680,7 +653,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.473.g4a7958ca14-goog