From nobody Thu Apr 9 20:27:26 2026 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) (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 450492E975E for ; Thu, 5 Mar 2026 19:21:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738519; cv=none; b=BTSGTDlLne41u5HcpJpGRMEnxJWu2RNOy0CvTYK8Ym/0wdw/wptlNdRt4k1GZTjtpzs6XTD4EJsgThedHptLZFPuPBQE2C/iYHQjTBsVdtinGU4Y45P4/6NREGesZIwd5Ygx1MS8fo6X9x2zTVM62NfN7yVFVQNDPgR+0jdq64A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738519; c=relaxed/simple; bh=1imMtC0/yYHco2vsVj5IgBrcAsYawBE93Z/RmAB2JM4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pdG9zDiJgpEXOvT49Zt180+ae60cI4sedD1O8LdJ2WTC+VX/EPZV/GIcTAwvSzophqjiNHQ4J/3PNLW8rtnauaoz6q0Ipm1YkzfWkNEyZhtDtSttyJb4ysL3qiik8acArqRS+Gkvy8K2vF//wKzQXRI3/UuOHqM6F26cQsKnRmo= 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=FRf0xQTf; arc=none smtp.client-ip=74.125.82.172 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="FRf0xQTf" Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-2ba9c484e5eso7872742eec.1 for ; Thu, 05 Mar 2026 11:21:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738517; x=1773343317; 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=Lil1/Z0c1c1jQe+1RB+TZc6c/UAakMjk1ihKBwtS5Vc=; b=FRf0xQTfLZj7RHV0qdDmA6ZSn7YluCr9jJ0AwtYwACrUadxh2BsqUzGR9YtrcnUto2 CgozpJNsid1Aga6fVeHgO6c9U+Omf5+NA0PptHJlNYr6wf42TO2XkNiYbHms7RKy29A9 vzmxWMDxD+abwwa8og1EnDm6+yMJ1fxanASIM04VnBp+RWCYj1Donh1gkRbVBuLefgtm +lqdx/lKjBMi3z+HCLkI8nhzUOf6ab5CQqk3fD523JOtcsTdlSOsGzy7R2TGqkjR6feH YYDPTv3UPABIRaLokIDxQcQtGYW/22t8Hqf8Ux4+AzzXzl913sEevp59xh0VgOZGwl1t 0zmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738517; x=1773343317; 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=Lil1/Z0c1c1jQe+1RB+TZc6c/UAakMjk1ihKBwtS5Vc=; b=T9FnICzQcx+ytOsqoifxijDVd+MhmaPM7u43aQJZC/G3CJWwrCRyWh+GlCGSkJP956 cEYX6PLctA991UtqZ3MQw6jW17UcWLBOmpiwoYprfsn3LtxSBvF9ICWt5nMetVG3mHT5 q8FRPxbYSLPDXrFXwuowEa9xfSSDTfXaeWewdpQaaiAgwp2rxHpLy5irdV4QTc04hOeX aOQMePuTkudGMn0cTA9C4MYq9s2Ct/uwfF9fvP9e1hlry8J7sIfxOT4pmViKaAEFd0WQ UmlOTwRZzMqN5mUIfwLKmYC9U1FlcCW5hZuNIEnZDMLRdKHvStFmgskn5pp840zbYgO7 0F7w== X-Forwarded-Encrypted: i=1; AJvYcCXvrRWyky9RD5Gk9k4MMelGPhIefZfjy7M1jUPNYp4D0nWkHPWU/KWVHPAcsSx+0bsfVhI2VhMEK0yoS9k=@vger.kernel.org X-Gm-Message-State: AOJu0Yw0EPuDGvO42p9XhI2+5gTcU6U9Eli6hlUzVdYQ9mKREnpf06Jl xtIlmFIeCj72OHt/ndC5qaR/muevvHPT3/G6oxbj/D/utjY7WAHjGg0p X-Gm-Gg: ATEYQzz4Y+3w5LbFZI1dzr3++q2W42gHBUhsFcXNqOtiaDfg4VXlIs9eUSx4hc63X6J sZXs/v1zSDQ+ZFJ+ly5dXqnJaketsD+2lafcJB7iJXeC5Z/I+c54bI2T/qhHQn/7sIORAqgS5em PswVJtIRIxnVW0tWNhXdlhsPN+I1WYytcOzGUpR5CsNOj86qGm9HiiGJtPhDqPZmeIm0jk+hG0d +PdBCXF+IEvh2sTjiZgPYj+mYj4RJtPtAvuqmZxhD0ZNxkzf4+1Pg8gBR4MFPsV8/FqHLVr9dEX aK2XkRP1EHgtyiKBWLnlIW5Yh6bJdHiXZ0xcVTpwy3X8RdLHlyqO5Qt/PIE2BM1+7lVG3YHDIKj oVKDLlxwzv0+/eDxn40bMPVGUIcMOdITr0H2I2Oof8Fv/jsHlCj8ACTPd46h5Fe1RAtFA0/Xmpx l3AO2HEVaDvXv8bqzFsn1kZyE+DWqd9OWft1M8CRs7AyNELEPPkVVJYTEYJLpBMSLqft+5d1utT mooUor6EnGUbpo= X-Received: by 2002:a05:7300:ad2d:b0:2be:ca4:e145 with SMTP id 5a478bee46e88-2be310ad068mr2688799eec.21.1772738517123; Thu, 05 Mar 2026 11:21:57 -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.21.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:21:56 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:52 -0800 Subject: [PATCH v3 1/6] iio: adc: ti-ads7950: normalize return value of gpio_get 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-1-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 , Andy Shevchenko , Bartosz Golaszewski X-Mailer: b4 0.15-dev-94184 The GPIO get callback is expected to return 0 or 1 (or a negative error code). Ensure that the value returned by ti_ads7950_get() for output pins is normalized to the [0, 1] range. Fixes: 86ef402d805d ("gpiolib: sanitize the return value of gpio_chip::get(= )") Reviewed-by: Andy Shevchenko Reviewed-by: Bartosz Golaszewski Reviewed-by: Linus Walleij Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index bbe1ce577789..b8cc39fc39fb 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -433,7 +433,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsig= ned int offset) =20 /* If set as output, return the output */ if (st->gpio_cmd_settings_bitmask & BIT(offset)) { - ret =3D st->cmd_settings_bitmask & BIT(offset); + ret =3D (st->cmd_settings_bitmask & BIT(offset)) ? 1 : 0; goto out; } =20 --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 20:27:26 2026 Received: from mail-dl1-f54.google.com (mail-dl1-f54.google.com [74.125.82.54]) (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 5A0FA30FC1E for ; Thu, 5 Mar 2026 19:21:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738520; cv=none; b=a5nCbueej7u6e+mycf5Ef/638l6wRkhUUKUS8dHf9/y6Jvq480y0QSQw2nsPqA3Fle4Jd8kggg0+gsy+cmVs75+e5SujIQfS45KqwdAdjtOWBa5VN3WA4JwSPc9/zmtzF3sUMo9xztBp0kP178H57GpSkp2bYUQWaEk7azIovW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738520; c=relaxed/simple; bh=puVzQVVivVatnMzmHhQf7aghQyv1Ohkpm6fvRgahEf0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FL5st107+OseCoymP4zkTbaLKezgbtjENy5gxDeTrduC4RShUXqx5r4HYdeAGEmf3Zyi7S+P6gYnFIVny4BTBFiKDIlwlwz+i+xXdb0XVqnu+AZnohBxn58xKPTHGM5boz1jNXfGVhPF69CZn/Ro6YkT3jcBEKsAQW2rFQWDNJQ= 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=UKgbLoZa; arc=none smtp.client-ip=74.125.82.54 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="UKgbLoZa" Received: by mail-dl1-f54.google.com with SMTP id a92af1059eb24-1277e072e2dso4667594c88.0 for ; Thu, 05 Mar 2026 11:21:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738518; x=1773343318; 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=fTfBwtx85kwVzzZ3HjdtefR3fnbTNSxXGk3ctCXP+Og=; b=UKgbLoZa1qLiM5v4KbLZrQeQWRp6IgTQNxIGdDhp5WTOl9r03jVJKw6jT4nshM8GQ+ ycxvs5sdpkKIAnjyi+Y8f4/YgYwFhtVkPLcRxTaGz0erJ+T0qFRcDwdg9/q80TUuF7ym 6YjaBe3Xahe0E6zvidOVukAwMdn60gyVprScVop2ahMZX0Ihj3FxPN5T+3OtG7BE9ySP 9ppWbB4FPTnIBIKvKPGs8wFZ3w1kRByat9b/LO3orm8/QDnqkqpelo6qIXNYGmOU+pmr 3JFt4g/ksvSFmYruHl5sAjXYVzIHVFHzvQRzr+uGjnT7k5AK6/mRJh6990ynGo4tB9JX l7Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738518; x=1773343318; 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=fTfBwtx85kwVzzZ3HjdtefR3fnbTNSxXGk3ctCXP+Og=; b=AgY1ZhClYVlBNnhiWztGgISSbtfVmEWHfVVUiUztI5bGyXvbuTrdLgKKyoMdsxmQ1U jBgTvMWGrTrJPcf5vmp2j6T3QQpP4Jad3W6irm58schkx5UXKJM94DYWKGrGiDmHPEsA CK4NyUhRaoQlpJOeo9bF8L+EHU7/asuRbHSML1V0uNMtKFTlWndC3CH6gA7awVkSB4T/ Dd1RRArVSKEtJMRf6bLFb9mQ7CKDwlCknAIckoq1MhfKfmxZgdIzkcNysByXplnv0gjk SavLMs/PEsKXqrIVjgKnGn+hjclmfGg+bjS5AC6W31BicjdeMTXn59y30zso69qfAzxQ RP9A== X-Forwarded-Encrypted: i=1; AJvYcCU9zlD7JHcLI2hrtdOspTu5Jm3M0/8IIrsnTwEggd+xPjMTe0ENpsrKy6ocANNWRAA/XNPDK389HnwsjcM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywe9YxFJDxqw5fhGY4eItVGq2PcWaGdkRzsOmIUoK9e+uSLXNOP 5j95e3rg8OqH7316XYB3d6c/mIxR5v/+r9gKhmuKoXMxDmL776NnMTYaPbFlPg== X-Gm-Gg: ATEYQzzhxrnvXaDCP10GXiIQgZCvIgnkd6QGWTQ+vn1lupc8KMqKehieNMGuiwaMP4f OtEuM+PrtQUYn9EuyJIsGnHMKO2WdhY0lsF/Z1BpRd9+zTogF9uWt5OmqwTZKT1i/5NfcIYbP28 Kacy0KFgw1pakclWn+EYHf3VErsEhjlZK3yQ6Ndg5yWtsLXEwM9Qm2PN5FadhwNU7nLJfnStxqa 028IS+rfhEfpiaDlAUJ17xnjibrTb8PQ2xD7Wi3Bn1iyTScTs96KH3lm8XgYJEgog3oGR0QEUAH iuBuviORHjlgWSV0m+Z0E6qc8/2mjEISjMHEBt3OzF9wkcvj2QroPruaD2z/80W70h2ACVNiff8 aZulU96dbaD0GbCXoLzJDW1Kcx9IbmQgSJGgzgPso2jCrwtyrORjl2pVW5/slv0MKbng4LeG8SD ppT9nQAFc3BuSXEzeJV2l5iyXaG7ENboaV5p7d88PLg4jsUOsBPV2IPSR4mdk0ECdl+n7JoDuRL 1lkuymvodmLxdk= X-Received: by 2002:a05:7022:2208:b0:123:3c65:d724 with SMTP id a92af1059eb24-128bc030d6fmr1068015c88.25.1772738518437; Thu, 05 Mar 2026 11:21:58 -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.21.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:21:57 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:53 -0800 Subject: [PATCH v3 2/6] iio: adc: ti-ads7950: do not clobber gpio state in ti_ads7950_get() 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-2-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 GPIO state was inadvertently overwritten by the result of spi_sync(), resulting in ti_ads7950_get() only returning 0 as GPIO state (or error). Fix this by introducing a separate variable to hold the state. Fixes: c97dce792dc8 ("iio: adc: ti-ads7950: add GPIO support") Reported-by: David Lechner Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index b8cc39fc39fb..cdc624889559 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -427,13 +427,15 @@ static int ti_ads7950_set(struct gpio_chip *chip, uns= igned int offset, static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); + bool state; int ret; =20 mutex_lock(&st->slock); =20 /* If set as output, return the output */ if (st->gpio_cmd_settings_bitmask & BIT(offset)) { - ret =3D (st->cmd_settings_bitmask & BIT(offset)) ? 1 : 0; + state =3D st->cmd_settings_bitmask & BIT(offset); + ret =3D 0; goto out; } =20 @@ -444,7 +446,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsig= ned int offset) if (ret) goto out; =20 - ret =3D ((st->single_rx >> 12) & BIT(offset)) ? 1 : 0; + state =3D (st->single_rx >> 12) & BIT(offset); =20 /* Revert back to original settings */ st->cmd_settings_bitmask &=3D ~TI_ADS7950_CR_GPIO_DATA; @@ -456,7 +458,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsig= ned int offset) out: mutex_unlock(&st->slock); =20 - return ret; + return ret ?: state; } =20 static int ti_ads7950_get_direction(struct gpio_chip *chip, --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 20:27:26 2026 Received: from mail-dy1-f181.google.com (mail-dy1-f181.google.com [74.125.82.181]) (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 B18823803E3 for ; Thu, 5 Mar 2026 19:22:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738522; cv=none; b=iwZre1+XaRM1ZcTE/+f+KqaiprxdDXrWwChJQEQw5ZJOeIpEvyqvzp2oemBCA5dCKf5THBUuYgzImLagP7VJEwxgunRdv4H1GLp/uJ4NG78dZICFF8jT4tQgauJMbpQE+0Ci8Zac1nj4ThsbZsu6Dg+95qubZwjshTwU4WTIpq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738522; c=relaxed/simple; bh=3SWnArpUdPvh7sURBFPMyY8lv0kCsfhAdKB/7fgwDT8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Qc5rpkSOTiTmm+CF2fA3QYj1nMFvpaT9i3scmInmnczgG9g7ERcrrp+XxGUg7/48QiZiLfxaXbbSmasPqzsa+ARKBSM6A+EgtfySDuBpXIp16XUSDS9o2OzPk/VpifMUXYidoSA98DJPudX2VbQjROyULRPEjw/W5TYzQJNy0Tw= 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=e9KcXdJm; arc=none smtp.client-ip=74.125.82.181 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="e9KcXdJm" Received: by mail-dy1-f181.google.com with SMTP id 5a478bee46e88-2be1c918173so7179929eec.1 for ; Thu, 05 Mar 2026 11:22:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738520; x=1773343320; 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=fRSHQ7gatZSUG3RtlqSDdsXge7aN0hna6nERoHcMWWI=; b=e9KcXdJmD95Na9Q6wV+O/tMphO4LEVfhZu6kYU3GrnJglzjoelJjBlmlG50kDZ3+EU jtDbyjwj9mvRWfJLv9fmYIrOesm7hvaQgSQgn+UxrUyj0JuwxbLbT8okGaTyWR2cCpjl DuvDcfZTBYs4bvV8sMNi/Crq6YlLawsR61CFNPfNFB8TxvOUVvmKkO/EC8bn2+vAQJNn EkK3+g8Uj/mnNvhE5cmn3hsKvZinweq4YGMC4N2wc7NtgMQUHI1Dsiy1UO3HL0zV/0qM MFDb+GL7yPxR+kQYSx+qjFRvgsN3jKBLKr5o1WGdRW3omxBzMhf5gCzW3u8Bs88x4YeR YufQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738520; x=1773343320; 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=fRSHQ7gatZSUG3RtlqSDdsXge7aN0hna6nERoHcMWWI=; b=v7Y7dhIyjCJEyNYWyxDyUceVK53xe4Dj2N01nHpIXsu/pzX4iF7oEc48XQLkV9lxHJ /hoe8q9bIUDrXgNupyPU+VMDFxWmlcxD2Es/JD3JD1h2SftEG7OHTdVd9OD0DJR5jWEh g027U4806//XdSAONZbEE8J3sRFzZKQoOMV59gUnmY8CHXP+9o3nXTAClgMBqAmgJ6oR 6QpFcWg8iV6jU56Ql5ZowHOA9j2NaB1RcRhmICzeIZycO3VESsnPGXK4S/YF1zbCHQ59 Osz8E1ACJElZd64T+p3gRGO8l9+StuhxR7EHMPwDVARFK9Z5iRslFoVq9wOHsZPOw8LC M4HA== X-Forwarded-Encrypted: i=1; AJvYcCWO6vx3k9zEIq36WyEt66ytIqLpUpcXZoHoOJptVk1bBRYzPh+PU3X1sHHTs5cdzwJ5IhBpa5RSY2yQDNg=@vger.kernel.org X-Gm-Message-State: AOJu0Yzb5XUqOr+hGGZtBhe2FVerJO+XQhe5w08oG1you22inaSGgkdC FdKvDQbzvfQ4OBAgoWctVRGe6EjYgf1mMtTNijBBlYEoJcGbC/jg8Lc/ X-Gm-Gg: ATEYQzxW6fEn5bh7Xf5IQ4uE0DlJ4UE7jZvn4i9V9HeaPadyYOhk0Nd0owcNs2Bc6Zy /NgaCOe+I79TwQAx+T4Rde40ReFzCzngJOOIlMPNOdjCUZ/M4GgebgL1j0HTAlt/CU8CkudOQfz wygYxhN+x4uwAZ1WdBxhPtnO4dCTP/Qgq8Tu9W7UVjRp6l2ctjLAP6NScEQ+UlumM8eV7YgGMje PTSAHJWiS1lMUEeG61zD7zB+JSXXLkNlbcSU5uoDmupK+MOpKwOrrc8KkcoTxLGD8pfqzQ9+Z2d NkUZiE1eIwytlsQ2HmPgR0635TfonrzegVKLjKBIhKp+KojHz8eEVP5MyugK8v+0iKbCtJMsECT JBm6d7rBvdnqYBbDrA8rd8CbzLBOPeUDyXX3ILVi+TS0J34KfH6x9h4cWU6aS0KdqlGha9xWM2V GUxOOBQFhjM28jkHHhESQd5NW/2L3DG3yL/GjiZwUw7sFhDns1gezxwnCrBya3T7JYTn0jBKCbW p2gOPRuPuVLX8s= X-Received: by 2002:a05:7300:6c1f:b0:2ae:5ffa:8da4 with SMTP id 5a478bee46e88-2be30fbca17mr3113659eec.1.1772738519575; Thu, 05 Mar 2026 11:21:59 -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.21.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:21:59 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:54 -0800 Subject: [PATCH v3 3/6] iio: adc: ti-ads7950: switch to using guard() notation 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-3-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 guard() notation allows early returns when encountering errors, making control flow more obvious. Use it. Signed-off-by: Dmitry Torokhov Reviewed-by: David Lechner --- drivers/iio/adc/ti-ads7950.c | 75 ++++++++++++++++------------------------= ---- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index cdc624889559..1515089dd759 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -308,16 +308,17 @@ static irqreturn_t ti_ads7950_trigger_handler(int irq= , void *p) struct ti_ads7950_state *st =3D iio_priv(indio_dev); int ret; =20 - mutex_lock(&st->slock); - ret =3D spi_sync(st->spi, &st->ring_msg); - if (ret < 0) - goto out; + do { + guard(mutex)(&st->slock); =20 - iio_push_to_buffers_with_timestamp(indio_dev, &st->rx_buf[2], - iio_get_time_ns(indio_dev)); + ret =3D spi_sync(st->spi, &st->ring_msg); + if (ret) + break; + + iio_push_to_buffers_with_timestamp(indio_dev, &st->rx_buf[2], + iio_get_time_ns(indio_dev)); + } while (0); =20 -out: - mutex_unlock(&st->slock); iio_trigger_notify_done(indio_dev->trig); =20 return IRQ_HANDLED; @@ -328,20 +329,16 @@ static int ti_ads7950_scan_direct(struct iio_dev *ind= io_dev, unsigned int ch) struct ti_ads7950_state *st =3D iio_priv(indio_dev); int ret, cmd; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); + cmd =3D TI_ADS7950_MAN_CMD(TI_ADS7950_CR_CHAN(ch)); st->single_tx =3D cmd; =20 ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; - - ret =3D st->single_rx; - -out: - mutex_unlock(&st->slock); + return ret; =20 - return ret; + return st->single_rx; } =20 static int ti_ads7950_get_range(struct ti_ads7950_state *st) @@ -407,9 +404,8 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsig= ned int offset, int value) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); - int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 if (value) st->cmd_settings_bitmask |=3D BIT(offset); @@ -417,11 +413,8 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsi= gned int offset, st->cmd_settings_bitmask &=3D ~BIT(offset); =20 st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); - - mutex_unlock(&st->slock); =20 - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) @@ -430,13 +423,12 @@ static int ti_ads7950_get(struct gpio_chip *chip, uns= igned int offset) bool state; int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* If set as output, return the output */ if (st->gpio_cmd_settings_bitmask & BIT(offset)) { state =3D st->cmd_settings_bitmask & BIT(offset); - ret =3D 0; - goto out; + return state; } =20 /* GPIO data bit sets SDO bits 12-15 to GPIO input */ @@ -444,7 +436,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsig= ned int offset) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; + return ret; =20 state =3D (st->single_rx >> 12) & BIT(offset); =20 @@ -453,12 +445,9 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsi= gned int offset) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; - -out: - mutex_unlock(&st->slock); + return ret; =20 - return ret ?: state; + return state; } =20 static int ti_ads7950_get_direction(struct gpio_chip *chip, @@ -474,9 +463,8 @@ static int _ti_ads7950_set_direction(struct gpio_chip *= chip, int offset, int input) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); - int ret =3D 0; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* Only change direction if needed */ if (input && (st->gpio_cmd_settings_bitmask & BIT(offset))) @@ -484,15 +472,11 @@ static int _ti_ads7950_set_direction(struct gpio_chip= *chip, int offset, else if (!input && !(st->gpio_cmd_settings_bitmask & BIT(offset))) st->gpio_cmd_settings_bitmask |=3D BIT(offset); else - goto out; + return 0; =20 st->single_tx =3D TI_ADS7950_GPIO_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); =20 -out: - mutex_unlock(&st->slock); - - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_direction_input(struct gpio_chip *chip, @@ -515,9 +499,9 @@ static int ti_ads7950_direction_output(struct gpio_chip= *chip, =20 static int ti_ads7950_init_hw(struct ti_ads7950_state *st) { - int ret =3D 0; + int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* Settings for Manual/Auto1/Auto2 commands */ /* Default to 5v ref */ @@ -525,17 +509,12 @@ static int ti_ads7950_init_hw(struct ti_ads7950_state= *st) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; + return ret; =20 /* Settings for GPIO command */ st->gpio_cmd_settings_bitmask =3D 0x0; st->single_tx =3D TI_ADS7950_GPIO_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); - -out: - mutex_unlock(&st->slock); - - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_probe(struct spi_device *spi) --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 20:27:26 2026 Received: from mail-dy1-f174.google.com (mail-dy1-f174.google.com [74.125.82.174]) (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 CC9D039FCD4 for ; Thu, 5 Mar 2026 19:22:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738522; cv=none; b=WAHSAxH/Z5KE+kMmXcSroNY9u2OYIo2wbh/NCFrIYUE4iVVzjCWq6ILNBNKy1ezRgKjZAYD3dzEFZgtUvc+I21R2gF2qEvBXcUerhpkSRCB6SawL7o/jZlJpQ0y15+k/cT4qboxw03ti/XTbNPSj0vzrj1FmQMZvVladg7Ik5Sg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738522; c=relaxed/simple; bh=XVUWmg8j3ejye14jr+R8v/V5hJcLtfFCwO0Xfv6pPUc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fqC6Gcqv4t9xObzR+9gwqqVFMdqEWvv/9xF6IyuwYDpObcbS3CBa0CP9h8xtYPzzo7gprk+4q4J07LAjOhSe3XkJFPLWCgsfhn8LIGZvcN6SJlPma7XQHsQWRqdH37faXVhK4IjM0S+2GsoyGFy+fXi4qRRdlaj41cjuticcz/4= 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=K33Bjgkm; arc=none smtp.client-ip=74.125.82.174 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="K33Bjgkm" Received: by mail-dy1-f174.google.com with SMTP id 5a478bee46e88-2be36d8495eso1058742eec.1 for ; Thu, 05 Mar 2026 11:22:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738521; x=1773343321; 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=z5/kB0ndwJkYYZGbdBM/LgcKSk2jku2aKtlMXuF9DS4=; b=K33BjgkmHwlt+3gQJh3O/5EfoWOE0wPnzCnopROpyOzffVD7tzA/pKb1csMHdP8wrf 8fppCxfacXKW9GgDBosKsmKn+XxJeSeQB7iPHGjqut5YhGaaVixcF+nLDfC2fze+m48w Wigfc5t042aRoX6X9dzxMZhEVluTdssjrfHFamWPtR6Bep/ctAEnQh0VhmmP9Zn+QQPs rmqgK+BJNoNFtuAMssQepPYt16IEPT7ponGKsJWW3THL5lXucsgKLsSHzLiFLmvEb5TA 5f8rjHhPcScuSYkWZB+iZNrr0eOPsyaoFYrvmFCcacU/ZmqLVroy6gMJv8BQcIbrFQJN a/Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738521; x=1773343321; 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=z5/kB0ndwJkYYZGbdBM/LgcKSk2jku2aKtlMXuF9DS4=; b=LzpJAxF51jZHY7hW4T9GZYly9ajtqCSPbNGZkLfDU+31RrLMFLKtb4PPDXjLbOPU8N NKVoaw4t+MkaOQ+jBZps1H2yuL0zWZmWjnJ4fkp9ej0Vmdj8HS/IGMbEzTToEq49cXte VtAYvSPF2XhJpqFQxezS8n1BCoJ8GGFxIy7bQcwDD3jy6+PMB1gP5LVglxIYNkau75Z7 DbLpoGYayp9TeC3hk1N6wxtZ8OZeFzN3+xwGYhfVoLfly2wZWxyGXTEBdH9ckc1SvhYT I5Sx/zGUbIvKpEbzeqLNw/tg2KuYhfs8LIfO5NaVobyQNxaKEo5Lv34qFKKYp/q59gUh KCwg== X-Forwarded-Encrypted: i=1; AJvYcCUudslVczDkQU1PqR2nMsBUrtfXK9ISmnNDTFopSwVbo1qw1FqPkVfUaki5o91r8tum0k6Qls4OReu7oD0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/sZR1HIK+kq3n0nKKgvE9Rnt16ArTmGpKxL+vJBhrasAydDfe V7hg6XWmeIJzCnlGqjJZWiwqWvNFfJ3PMLAxmNiWH42/9ev+JyxxzOtk X-Gm-Gg: ATEYQzwGaj5MBmEVPErc7tbLmNWNTJr7/H/Dp2vXBgpV/hConPefeB8UngjGjjI0NGx qXN0/YKDaE36kSQVGudhcs4L/Jc+JHLYa9GRqKypR7uj6UqBY+Ck1jStmimOoDA1+sGeSIOnUVV JAtHDD3l9nSu4YgtlnzpfmxZpcCyCM70mWHxHnN9yjdXltVdYQkO8faRbYvksnRxfdGKDXrvtqG 2vEMMXKCMxiqYUxnF3zgceZAydSdDxCpIYVRc1DpWJ2/9o3V5qpO97V7u/di9p6W1+PL45x72eN 3H69/1rCdFFFP9CnUjf3ReXnofqQqOHte9FjjDK2fR/4RZAYnziw4n/v7nt3VJKwjKPh/0U+xAd YkXFjWnvsL7KZ96jlzgLRAfqSI0bxDZf/j+ab0dvIF4S3XnliqDTq8Va1EYzki/GFhC6Ri4cyQs qbukdKoGk/ekr7SY54Oli0uPUE9MMCLJ7+ZXC0ofDAtHctPO7IHqcIDS4cshULdVhbaaZUlkL6r mOT/Ub/fxdX/HbqaBst6tf65g== X-Received: by 2002:a05:7300:724f:b0:2be:fe8:8af6 with SMTP id 5a478bee46e88-2be3e62136emr1287405eec.17.1772738520860; Thu, 05 Mar 2026 11:22:00 -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.21.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:22:00 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:55 -0800 Subject: [PATCH v3 4/6] iio: adc: ti-ads7950: simplify check for spi_setup() failures 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-4-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 spi_setup() specifies that it returns 0 on success or negative error on failure. Therefore we can simply check for the return code being 0 or not. Signed-off-by: Dmitry Torokhov Reviewed-by: David Lechner --- drivers/iio/adc/ti-ads7950.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 1515089dd759..273c35e03185 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -527,7 +527,7 @@ 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 < 0) { + if (ret) { dev_err(&spi->dev, "Error in spi setup\n"); return ret; } --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 20:27:26 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 1EC313C2798 for ; Thu, 5 Mar 2026 19:22:03 +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=1772738524; cv=none; b=FRwSOHMCQtuIzTnzenJ+9mVQLL2YFfMVvaFjyaFexQcgbawMAC+uWZ/arss2hqclhpaR1DA+RphaSyyRazyCaMxNsdNtSNljlbmmsSJVtlxErXWg1RMQNc2EhdNNCUbWaU557jARdT3AwC/awp1zx0joZrWyjV25UgBgMTYomJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738524; c=relaxed/simple; bh=SMEngmxi+V1iJrnKbLYWEzqidqgepXSPtcgppjiDGDE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kYnLPnPx7B6EZ/it9OqkNI4RzVu9hmC9jbyZW18DbFwESsMAZYc/7te+PzNVKtYwe+a8wv8QOjRec5edBDc20Xp4ILrttaNGGWDIDA2/iUJ1to0Yu9tRpp2ckeTg/YIIwQzrlTFRp1qmJilzoBUYFbI2KRPdDrDoh6wr237PijY= 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=ihwEtfTg; 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="ihwEtfTg" Received: by mail-dy1-f182.google.com with SMTP id 5a478bee46e88-2bdd40d3c61so6975141eec.1 for ; Thu, 05 Mar 2026 11:22:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738522; x=1773343322; 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=8e4srTG2w8Nmq6WFaWd7C/J5fjQdqqF7reTkmwpcgV8=; b=ihwEtfTggp4E/FNI2rnOefIKzZ8MaYJShfY1zbObJFN5BM1eyO6optv+dWuglUQXl5 ICSEKmsRKfOsruVCDtrlbEtVxvU7qKhcfiHqCMJGUW92b/W089Ega+zsFTqEK+1bc4wn +9e9gm8ECdD/1Mr+rzdjj752L4Et5MX9dFDSAszI1eFqdG9vnWf9fnD3tl6AuO4r/gKI tCWMX2yH5EnPqXi+/+0mYviN0WIYu8TLtBylcGP0vSruYSR2i2DpE+K41YenefaNIcPX YzslLHY7RMKbeQpAJ20uRf4BfcSH1++QB4rK7HKJ2e7PVuCtq1p5QZEHK9wVCL9pp7xs rIjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738522; x=1773343322; 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=8e4srTG2w8Nmq6WFaWd7C/J5fjQdqqF7reTkmwpcgV8=; b=Slm3YojX1bjZ7dJSkhF3y65mAC21EKmcuS1srmiJOGSpdM0g1DnrZmW2Rua4elWZLb p+hYWY8cGlW+RJNSaU0akHQn3LszHxtx+38lgbBnmSgxMTJacstJOy/a2ogTiMj1S6bC Nh1jLvy2mQnxYpg658c4bgUtCDGC0N/CwK39krtR6CKKHOR5s5MansJJDoBQnqNlDFxK 0Y/1muhYkpYbGeAEQGYbP7boBiQO/n/6OK1eybi4ZHxxZU/WQCk5qUB7YWHn9SFZBNRq tNOaAomcocXkjIAB5Dw8vJgMF5b/p+rSQ/Ekgzf4t6BDPwA8sr8VI155CTZKvtBpDe+j AzTw== X-Forwarded-Encrypted: i=1; AJvYcCU5RJUgSp9tBqKPcrAEgJW9DuqKH4JjF/u/eebW8RorPV3IVBVO79ZhOiAcD7syll/FdbrwXcNyFWFmM44=@vger.kernel.org X-Gm-Message-State: AOJu0YyWFELFjoUCB9hEow4zcTb+LalzxQjtYnPgjgHKvMUlmncBGHrp 5BTA8NimdA26U4pSXjk/Pqkd7d+StR4f7fHE5Y+F/rE0jECv0fvNM0+n X-Gm-Gg: ATEYQzy3JKLpw3NmqVIFvbEhXe5TVU1HEs/mOC+VxJRT8IBgUZ2BBz2ZRr66okkmNPo gRsFGEvFNcK3+PZqsee46nw5+8Ix0FlPF1oBlNQCSJ5/TUbTQz5t8mXPF5sLDvIQ7Su86vfht80 sDYRSbSjRo1+QTJIIbLz7lVNUdKINpq/2k8SWgy7EcjYzrOgBcVG2seEyCNcO8xxb+ZNtKilwgF sRC4cXY97ROVKXfGcXMEbTR2cdfRo83GS+HI9U7TPN4KwzIt1oXSU7VgaghQcO47zsDQg+ErfFq fkqJBjZBmpfhBK17OkW7h3ulZVSzS/iSnGfhsD/AGQTLGrNdG432O6OR8zqxnUfJexPnnOx7L75 A/lXxSQhjSPxnsnr7QskHor+QviwobTgdnIRDKGXuwVnqxXw3dCQqY8kCU3ZTmHPYtFBYUdqFut 7/bbnxhGCkt79cjY1F/UEdu1L+YIhHDItHVm4BM6eIR3SIyRqVk/I7MYzvbCnwwzeK/Wb9/rrwV n1ubSf79MI8pJ8= X-Received: by 2002:a05:7300:fb96:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be310a2a47mr2640901eec.19.1772738522033; Thu, 05 Mar 2026 11:22:02 -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.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:22:01 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:56 -0800 Subject: [PATCH v3 5/6] iio: adc: ti-ads7950: switch to using devm_regulator_get_enable_read_voltage() 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-5-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 The regulator is enabled for the entire time the driver is bound to the device, and we only need to access it to fetch voltage, which can be done at probe time. Switch to using devm_regulator_get_enable_read_voltage() which simplifies probing and unbinding code. Suggested-by: David Lechner Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 45 +++++++++++-----------------------------= ---- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 273c35e03185..847e83baa876 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -341,19 +341,9 @@ static int ti_ads7950_scan_direct(struct iio_dev *indi= o_dev, unsigned int ch) return st->single_rx; } =20 -static int ti_ads7950_get_range(struct ti_ads7950_state *st) +static unsigned int ti_ads7950_get_range(struct ti_ads7950_state *st) { - int vref; - - if (st->vref_mv) { - vref =3D st->vref_mv; - } else { - vref =3D regulator_get_voltage(st->reg); - if (vref < 0) - return vref; - - vref /=3D 1000; - } + unsigned int vref =3D st->vref_mv; =20 if (st->cmd_settings_bitmask & TI_ADS7950_CR_RANGE_5V) vref *=3D 2; @@ -382,11 +372,7 @@ static int ti_ads7950_read_raw(struct iio_dev *indio_d= ev, =20 return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - ret =3D ti_ads7950_get_range(st); - if (ret < 0) - return ret; - - *val =3D ret; + *val =3D ti_ads7950_get_range(st); *val2 =3D (1 << chan->scan_type.realbits) - 1; =20 return IIO_VAL_FRACTIONAL; @@ -580,30 +566,24 @@ static int ti_ads7950_probe(struct spi_device *spi) spi_message_init_with_transfers(&st->scan_single_msg, st->scan_single_xfer, 3); =20 + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret < 0) + return dev_err_probe(&spi->dev, ret, + "Failed to get regulator \"vref\"\n"); + /* Use hard coded value for reference voltage in ACPI case */ if (ACPI_COMPANION(&spi->dev)) st->vref_mv =3D TI_ADS7950_VA_MV_ACPI_DEFAULT; + else + st->vref_mv =3D ret / 1000; =20 mutex_init(&st->slock); =20 - st->reg =3D devm_regulator_get(&spi->dev, "vref"); - if (IS_ERR(st->reg)) { - ret =3D dev_err_probe(&spi->dev, PTR_ERR(st->reg), - "Failed to get regulator \"vref\"\n"); - goto error_destroy_mutex; - } - - ret =3D regulator_enable(st->reg); - if (ret) { - dev_err(&spi->dev, "Failed to enable regulator \"vref\"\n"); - goto error_destroy_mutex; - } - 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_disable_reg; + goto error_destroy_mutex; } =20 ret =3D ti_ads7950_init_hw(st); @@ -643,8 +623,6 @@ static int ti_ads7950_probe(struct spi_device *spi) iio_device_unregister(indio_dev); error_cleanup_ring: iio_triggered_buffer_cleanup(indio_dev); -error_disable_reg: - regulator_disable(st->reg); error_destroy_mutex: mutex_destroy(&st->slock); =20 @@ -659,7 +637,6 @@ static void ti_ads7950_remove(struct spi_device *spi) gpiochip_remove(&st->chip); iio_device_unregister(indio_dev); iio_triggered_buffer_cleanup(indio_dev); - regulator_disable(st->reg); mutex_destroy(&st->slock); } =20 --=20 2.53.0.473.g4a7958ca14-goog From nobody Thu Apr 9 20:27:26 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