From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 C9D7025D208 for ; Wed, 9 Apr 2025 08:40:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188050; cv=none; b=aoMMNY6Mvx2pj17iGMDbCI6OtNDUcKgQEoe++ZZQ8cKsU3kp6b1MIO9ccbNMtcY1JZ/to4UvtQg+VX5D3BOfeF9EZaucfzumfyidsxY5WgjOLDKjGYXdjSy45hGktEsEqBjzUtoR/5ansVt15AsEWe1djGkZiYoc2uGsmASvZh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188050; c=relaxed/simple; bh=V3jvDHKDO3y/NiuIZ26eS81nUWDRmeESiPo5QcZ1RiE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hv2F5ghXtMA7MqkjKLZAX/Ro7O8ukDB1JHwfkffkayv4KxGfe3AFoB2AzXVcgM+/TA0DflzH4UV0M+gMNe6dn+bEj2Ztcx4WmnQEbjqkpz7+ITwF5jFn8bWHgMKn2NzeU8A5mcgFk018uJX+fd3QB+QGnLFADMgsS9bwfZBehiA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=eS5nRG9p; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="eS5nRG9p" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-39c1efc4577so3537492f8f.0 for ; Wed, 09 Apr 2025 01:40:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188047; x=1744792847; 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=c/OUvUxbW8Jlw8m6Urroe1Z2D8oZ9CHZ/LwRr+VHvTg=; b=eS5nRG9poCtbwuXR8FtuwotvVUqs2/rUzMSren7RXQpObAYU2jMr02g1FnDVnB5TP+ D3VRSZpya6PeNuJvqltECRq3De++xUjHxgSahQDS+sEBepREgDCUQubTp+TMYxld26fZ qnw0APtQqf2N7JX2/YSJNdF9n2Mth+2bK1OoGaGTkPv8vCxUDvjtbhfk+I5bfE0NzN2P mFFsRk5BfV3CW+BCulPcZTjD269Q+0uM1F5CaogWALgarvVb2Vt44AbPKdWv3aM4wZO4 8HNPQe2d9zf3X9lXaT4WrqIM5ghQU9fke2ul13Ro1i2Gb0kkynZqlsy5BjmgsY0mN+8P FcTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188047; x=1744792847; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c/OUvUxbW8Jlw8m6Urroe1Z2D8oZ9CHZ/LwRr+VHvTg=; b=WQmUezLNrYV4D7TXOzoOKpnBGGP3q9j85+38LoWC7pjefq3X+NBYyoheNfoZlIU8iK peW2/JYSieAt+JFiQU5/+OYTuuNxETg8bjacvmzwT9hZ8GAKSom8CvZ7bJzxKpLQXMF0 dqkKE7ky4zcbXP2yzEqjiHFrk83vM76rfTotScwaNv/5AaifOoDljj8y1o3TS3Fy7uHY HV+WznlgDlfLEtiil0ef5/OCn7X7bP3ck5FxUdfB+7WHd+2DAs7csf97lylrUxjJYeX5 HTsvVQkxzksa5JC2z5Y6bZ9Uon7cBmAhhX+RyCm31ek9IjePjUVzQMX1yOKTbK3TPtQh LBsA== X-Forwarded-Encrypted: i=1; AJvYcCVhDSpEd4yBC0ooo0FdbB24jJkfz5MsTdouoD22+iOH9ygPFvxs0e4kyx+7aA1RxD5hinyr1C3u3qdEGSk=@vger.kernel.org X-Gm-Message-State: AOJu0YwBbWlVWvJVlS93rTEBVP/Pr45I/0vHgXMdEtLyfzGIZc+r/Dip jEFAEusVbNGGbh/WWCvVEslbLp4YMgbeu0uQ9hrhjMBPWx5dW1WKhQhY6Fii6ho= X-Gm-Gg: ASbGnct5FKjfSm7+Ecxnyu4cKpBL6eM3kig4agRc3fNa+NJH7bMKCL5V0Bc0UVGXc+n 2h9SK6V6dpu0UEa491xfdIiGECTN1543aufJSpkIqRZ/wzH4k4VKZ8gOod6IYcUBDem56zHfLch a0sKoTnZz0wgDQapC80aOpH9qjTm4g2KOEj/gmyz5z2uzMapYbdXg+N9xunMB6Knqu3u1XHbROV A6chqDqr/gDVvDt+KZqIKHzkPRMmLbGGeL1xe2jKq3yBN64VlK8Zk8diY83WsrZ3E15FOHQ0SfD SgQJyHX2SCdQhCwuvb3xOM4ez9uszdrf9kWAmQA6DmAX X-Google-Smtp-Source: AGHT+IEG9ARuyq2GXIvhvOJ8pTE1gyzUZZTNGic5PF8Mu+v7NqRyW2/PutGpMY9Tr6slpXPDE9nalA== X-Received: by 2002:a05:6000:290d:b0:391:47d8:de3a with SMTP id ffacd0b85a97d-39d87ce28f7mr1673520f8f.53.1744188047124; Wed, 09 Apr 2025 01:40:47 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:46 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:39 +0200 Subject: [PATCH v2 1/7] iio: dac: ad5592r: destroy mutexes in detach paths 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: <20250409-gpiochip-set-rv-iio-v2-1-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1419; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=XQBsAWxRrbgUBZdq4joassvWFO3XhqdMZQNsYhta8LM=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKLRtz0aJoW2RZ04RgC4xM6VPHDLizPhNR4H tx76Mh9mx2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyiwAKCRARpy6gFHHX cmM+D/4xH/SgX9H5NeAyQEdIYlCa+AVshfPTRfEnMeMsyYe9aicwoSnTZOW10VegqLbTEEQCnfQ y6Rhei+Z0LDPM1OI7JSkP8reuhwyrIVxPUwa4rfi1IX0ZVgQ99NLBAs5Mr72CPoHhSk1zbcRBHT fnSkXF6ZGX8wMeMAX4doLZ619mUoWgM1rInLhwzQs9DWQErDGEio/bkUtHSw2pXQvdJ+WukZ0L1 OiPC6L9lI5NnVSdVL46DGwg/RkXIahhJNwjyECF2eibGUFYti8ZclEIg/fDFcfvwgQMTfw3PLVO 5+dNU1RQ6gItdn+4SQND3EB2iXfzoynjeM+BiUVWrUUy0vERGQD11KbNoeiTaJH0x6sJhAhka1J 15U9wRneksQdx2jnywigrHeg+tRRqsjmDEDq9FyodOJyFDhdKAYbMKlMY0xQOb+1R3enKwqT5o1 N/B7ijLh2zQgh4wprT40FfCJBdfF9s4MdnHQJT3ZkICoRUVu9lWpCn/RBIQPim+DGr1Kmeni6k5 pCdN7WL2j0fljL3qjLAZJBhOWZniyodwhjGnA/lC2TgqD+zGJV1oZP8Soyt7JAhRziTdRX0pk2V AlZ6YvyWvI19qBvZxnw9GpPURMusxrW6FwliiqDL+8MRiXzTBVTLaxG0n4XtQ5RM7v26FX3ek7N YkzcKVkQ5FdVYVA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski The locks used here are initialized but never released which causes resource leaks with mutex debugging enabled. Add missing calls to mutex_destroy() or use devres if applicable. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/dac/ad5592r-base.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index 50d19304bacb..eb85907f61ae 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -155,6 +155,8 @@ static void ad5592r_gpio_cleanup(struct ad5592r_state *= st) { if (st->gpio_map) gpiochip_remove(&st->gpiochip); + + mutex_destroy(&st->gpio_lock); } =20 static int ad5592r_reset(struct ad5592r_state *st) @@ -606,6 +608,10 @@ int ad5592r_probe(struct device *dev, const char *name, st->num_channels =3D 8; dev_set_drvdata(dev, iio_dev); =20 + ret =3D devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->reg =3D devm_regulator_get_optional(dev, "vref"); if (IS_ERR(st->reg)) { if ((PTR_ERR(st->reg) !=3D -ENODEV) && dev_fwnode(dev)) @@ -622,8 +628,6 @@ int ad5592r_probe(struct device *dev, const char *name, iio_dev->info =3D &ad5592r_info; iio_dev->modes =3D INDIO_DIRECT_MODE; =20 - mutex_init(&st->lock); - ad5592r_init_scales(st, ad5592r_get_vref(st)); =20 ret =3D ad5592r_reset(st); --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 01B3825D21D for ; Wed, 9 Apr 2025 08:40:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188052; cv=none; b=UKsPEkyHLUJx387C1pREvm+T45PfT725O6ZGWTDD4KuL0WFgNQS0PP7dUO/0eG87NxkiFWyVaCpxFYcNN8FFhnpvIFkNao9GW1xwHTY0JCfveahHFgEVyvadMJIOYgvt+xeXaopImgSq4D4pQlNsuAsLt8HpeFnThWcGKO20/VA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188052; c=relaxed/simple; bh=pbTe8qf0kM23ufjkEF9J9UHiqeRqkU6/ANRUXpGOYIM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fzWIeMMhmnrvUgFQTSkGOepuYiQqeW+TrS2+nw6EIDBL5LTq1IK4MKE50xgjTjp+RME+jH2kM40wR4aZbj3rnX1GsHtrxatDG2cNe4e7nONvLhF/z2tXOPfZbHHqJy9m27gwQUAHjCccJTGfdGRbWjFmznkl2UGUaEqDKLpjGJg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=Wh+7qFmQ; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="Wh+7qFmQ" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4394a823036so58965615e9.0 for ; Wed, 09 Apr 2025 01:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188048; x=1744792848; 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=Taz3xuepxYQKsRgP/wZRl2QjotKjajKvx5x4lMN4Juk=; b=Wh+7qFmQzD8lxV4X0VO3o0R3J/OcwsWCoH7AoxoRP1qa/dUziRuxF4wuT0yz5kxs0j G+DffgeCMIc5zYlfYI4Idlc/gceqS+LYnztCAlo30tir48Cf5gn/EqjbSedaQDUgdPMu qZMUXPFGaIzmrHW1H+AGi+y5bK5xUdRxo1cajtfeXpOgGj7/Onj34mUgqqEaUdnVLIFV WRUTGaWmdX97wVEXD+9f7Cq6VOhqaHc4oVwlr0RTrq1Tw2oFtLys4CxLQlTJIrCpJ5QF KNEKlbPmesmV19iwBJVOfOEHMvd/T9TDHRzBDsJyGiyq935MFESuofNyZcsTa2E2iJSi 2HSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188048; x=1744792848; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Taz3xuepxYQKsRgP/wZRl2QjotKjajKvx5x4lMN4Juk=; b=AnuGgMtXFHQJiD0QRE92Pm0O/CeeJdys9j/SobyMCCXtPzCbvAT/8/cmcC72HJldGp mdbYi45QvcEyZ55fU23XJMPvDqXidBeY/KNGPh726WgskbxAySIl6Eu0+FbamOMtZeEz 1DgH/XJMKwudXj6jE/5WduZ9tj1o9aVtUDLSFMwA1xdDRprCNRvhuWXt+wuXISw5C033 LWp4Vty59PqkTvNJopVyXTJL+6GimeEiJD7N24ShkQdO5ZxHGRmiKC9esqzB12G5n2gF Wo7zTHEnBOShpZTys/gjYENVggIAKTgCgzjcsSAxaaa9ztiiZ/63IM4jBeH1d8LcD98T FBrw== X-Forwarded-Encrypted: i=1; AJvYcCVTHQutOMi+Q4G6jS0mU27PbWP68tyenUPy266gEeMx7m8Up+cWmGIUR5UmnB9SKXBh+IHP3MSFPD5P4zk=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1rzS9/g1W74/QZNZzsSxST6sWVgpCGo+BQmL/UaH5b2twP+ws 8WydHO8DTlKcDC2I34t8Mqwwcv4s9tA+1xo6eAd63bsCKrTdFPiOti/tiV5yZ0o= X-Gm-Gg: ASbGncvUjciUhyyPdH9RuOTGkKlmtO2n5diWnc7MFBPA8RA7gt8JoSEA5D1QSgv3Ma2 ppQ7z9gpy+ibevUSD9BQvVZ1pyaJDXu0AaO01ZBnNIPHNGTnSsAczrgwPOOgPG17yGkIefnIoaV hJLIZ2OT65vOKFyeRUmSMuKavhHLoaj+LjkVw4n6ktJ93J7n+B4kaQ+JUq9LxuIjeVupKJYDWQG iLn98YGloyxSE1rlqFKu3a3pvmBEDAwaVyf0CO8FGzXH/M2y8kyW9PJSIOpPLopjt4uV7ac7dMm xcpLfB8OByf1H1q8SF+V7LmneGSgny7/6Q== X-Google-Smtp-Source: AGHT+IGMhUfCSWQGFB5uvH4/GS4X8GJnxqQ0UFim7GSu4hAoM1CRy23ZBBa463ljosi477RhQDam9A== X-Received: by 2002:a05:600c:3d94:b0:43c:ec28:d310 with SMTP id 5b1f17b1804b1-43f1eca80e8mr21424905e9.10.1744188048120; Wed, 09 Apr 2025 01:40:48 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:47 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:40 +0200 Subject: [PATCH v2 2/7] iio: dac: ad5592r: use lock guards 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: <20250409-gpiochip-set-rv-iio-v2-2-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=8820; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=1vAOkph4RSRlxXIL03fJybHqa8k7PtHiCUYi8heCqHc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKLZVn1FOhgbMDtXZw827Abtxy1D8yn3IvuO sMRKUkuydSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyiwAKCRARpy6gFHHX coN8D/4vxRXZ3tWjiGyIv72luaGwtMnEOJvgFSIKHF9Uya0djXcv1SJB7TgJhyZQkiuBahr6rGY oWhY+BrHin5LBrySTVdTJNDoL7cYfJeJT9l/aUJS4EMY7kjdq22nVlWBNeP2NoSZFFvFjSeEtQW ly3bHKE2RtgSxAn5zFWXk2iygQqLYSG7Ex2KwdiuUj5MtCaM44sQtKo7EnCYSnYH0bW7Itysi/j KtEfkcJ5RGXn21BkPo8tzeOcgiKYL6J/wTnk5ZPc9UDoaOsanHqjm2BZhTRFb6VdgyUB3s6kfGh NUyMybUXsGsWkOWHskotR6zReUolFzyqRChaAQTwNeXw3oDKEmgMPqyeT8ceoy83rOzGqRQUwtC t+AO5smaE7Aq5gT5P3IGmK0b9jtBzCe+bI6rI/9divtj3cVkx/o/DXCwCrhmi34v3x2BR7fF3m7 Q5GnyrgQTh/KXPztG5Ts+jBSPxsPKQWZC7BDtPTjFEg+A1NOWasTOQxSwPGSbLs8jR7lzaB4i87 TLl+7QKg0NewGGD7B9jT6CfPhQvxL9okCEwKlQfLfIfNuSHVZ672/CHqQNltRffRx+65PYg1Mul 8FAFJAIgSv/ZhseCRm01CVi1596ks7fGon9FSALH1NDkMT3Als7bTY2xWFxoX1JXPfr4cMYZb51 QOkAE+PwcJYJtiQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use lock guards from linux/cleanup.h to simplify the code and remove some labels. Note that we need to initialize some variables even though it's not technically required as scoped_guards() are implemented as for loops. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/dac/ad5592r-base.c | 132 +++++++++++++++++--------------------= ---- 1 file changed, 54 insertions(+), 78 deletions(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index eb85907f61ae..ada60f5ff1b6 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -7,6 +7,7 @@ */ =20 #include +#include #include #include #include @@ -24,16 +25,14 @@ static int ad5592r_gpio_get(struct gpio_chip *chip, uns= igned offset) { struct ad5592r_state *st =3D gpiochip_get_data(chip); int ret =3D 0; - u8 val; + u8 val =3D 0; =20 - mutex_lock(&st->gpio_lock); - - if (st->gpio_out & BIT(offset)) - val =3D st->gpio_val; - else - ret =3D st->ops->gpio_read(st, &val); - - mutex_unlock(&st->gpio_lock); + scoped_guard(mutex, &st->gpio_lock) { + if (st->gpio_out & BIT(offset)) + val =3D st->gpio_val; + else + ret =3D st->ops->gpio_read(st, &val); + } =20 if (ret < 0) return ret; @@ -45,7 +44,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsi= gned offset, int value) { struct ad5592r_state *st =3D gpiochip_get_data(chip); =20 - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); =20 if (value) st->gpio_val |=3D BIT(offset); @@ -53,8 +52,6 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsi= gned offset, int value) st->gpio_val &=3D ~BIT(offset); =20 st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); - - mutex_unlock(&st->gpio_lock); } =20 static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned o= ffset) @@ -62,21 +59,16 @@ static int ad5592r_gpio_direction_input(struct gpio_chi= p *chip, unsigned offset) struct ad5592r_state *st =3D gpiochip_get_data(chip); int ret; =20 - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); =20 st->gpio_out &=3D ~BIT(offset); st->gpio_in |=3D BIT(offset); =20 ret =3D st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; =20 - ret =3D st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); - -err_unlock: - mutex_unlock(&st->gpio_lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); } =20 static int ad5592r_gpio_direction_output(struct gpio_chip *chip, @@ -85,7 +77,7 @@ static int ad5592r_gpio_direction_output(struct gpio_chip= *chip, struct ad5592r_state *st =3D gpiochip_get_data(chip); int ret; =20 - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); =20 if (value) st->gpio_val |=3D BIT(offset); @@ -97,18 +89,13 @@ static int ad5592r_gpio_direction_output(struct gpio_ch= ip *chip, =20 ret =3D st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret < 0) - goto err_unlock; + return ret; =20 ret =3D st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; =20 - ret =3D st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); - -err_unlock: - mutex_unlock(&st->gpio_lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); } =20 static int ad5592r_gpio_request(struct gpio_chip *chip, unsigned offset) @@ -171,10 +158,9 @@ static int ad5592r_reset(struct ad5592r_state *st) udelay(1); gpiod_set_value(gpio, 1); } else { - mutex_lock(&st->lock); - /* Writing this magic value resets the device */ - st->ops->reg_write(st, AD5592R_REG_RESET, 0xdac); - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + /* Writing this magic value resets the device */ + st->ops->reg_write(st, AD5592R_REG_RESET, 0xdac); } =20 udelay(250); @@ -249,46 +235,44 @@ static int ad5592r_set_channel_modes(struct ad5592r_s= tate *st) } } =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); =20 /* Pull down unused pins to GND */ ret =3D ops->reg_write(st, AD5592R_REG_PULLDOWN, pulldown); if (ret) - goto err_unlock; + return ret; =20 ret =3D ops->reg_write(st, AD5592R_REG_TRISTATE, tristate); if (ret) - goto err_unlock; + return ret; =20 /* Configure pins that we use */ ret =3D ops->reg_write(st, AD5592R_REG_DAC_EN, dac); if (ret) - goto err_unlock; + return ret; =20 ret =3D ops->reg_write(st, AD5592R_REG_ADC_EN, adc); if (ret) - goto err_unlock; + return ret; =20 ret =3D ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret) - goto err_unlock; + return ret; =20 ret =3D ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret) - goto err_unlock; + return ret; =20 ret =3D ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); if (ret) - goto err_unlock; + return ret; =20 /* Verify that we can read back at least one register */ ret =3D ops->reg_read(st, AD5592R_REG_ADC_EN, &read_back); if (!ret && (read_back & 0xff) !=3D adc) - ret =3D -EIO; + return -EIO; =20 -err_unlock: - mutex_unlock(&st->lock); - return ret; + return 0; } =20 static int ad5592r_reset_channel_modes(struct ad5592r_state *st) @@ -305,7 +289,7 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask) { struct ad5592r_state *st =3D iio_priv(iio_dev); - int ret; + int ret =3D 0; =20 switch (mask) { case IIO_CHAN_INFO_RAW: @@ -316,11 +300,11 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, if (!chan->output) return -EINVAL; =20 - mutex_lock(&st->lock); - ret =3D st->ops->write_dac(st, chan->channel, val); - if (!ret) - st->cached_dac[chan->channel] =3D val; - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) { + ret =3D st->ops->write_dac(st, chan->channel, val); + if (!ret) + st->cached_dac[chan->channel] =3D val; + } return ret; case IIO_CHAN_INFO_SCALE: if (chan->type =3D=3D IIO_VOLTAGE) { @@ -335,7 +319,7 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, else return -EINVAL; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); =20 ret =3D st->ops->reg_read(st, AD5592R_REG_CTRL, &st->cached_gp_ctrl); @@ -360,11 +344,8 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, ~AD5592R_REG_CTRL_ADC_RANGE; } =20 - ret =3D st->ops->reg_write(st, AD5592R_REG_CTRL, - st->cached_gp_ctrl); - mutex_unlock(&st->lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_CTRL, + st->cached_gp_ctrl); } break; default: @@ -379,15 +360,15 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, int *val, int *val2, long m) { struct ad5592r_state *st =3D iio_priv(iio_dev); - u16 read_val; - int ret, mult; + u16 read_val =3D 0; + int ret =3D 0, mult =3D 0; =20 switch (m) { case IIO_CHAN_INFO_RAW: if (!chan->output) { - mutex_lock(&st->lock); - ret =3D st->ops->read_adc(st, chan->channel, &read_val); - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + ret =3D st->ops->read_adc(st, chan->channel, + &read_val); if (ret) return ret; =20 @@ -400,9 +381,8 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, read_val &=3D GENMASK(11, 0); =20 } else { - mutex_lock(&st->lock); - read_val =3D st->cached_dac[chan->channel]; - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + read_val =3D st->cached_dac[chan->channel]; } =20 dev_dbg(st->dev, "Channel %u read: 0x%04hX\n", @@ -420,16 +400,14 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, return IIO_VAL_INT_PLUS_NANO; } =20 - mutex_lock(&st->lock); - - if (chan->output) - mult =3D !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_DAC_RANGE); - else - mult =3D !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_ADC_RANGE); - - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) { + if (chan->output) + mult =3D !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_DAC_RANGE); + else + mult =3D !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_ADC_RANGE); + } =20 *val *=3D ++mult; =20 @@ -439,15 +417,13 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, case IIO_CHAN_INFO_OFFSET: ret =3D ad5592r_get_vref(st); =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); =20 if (st->cached_gp_ctrl & AD5592R_REG_CTRL_ADC_RANGE) *val =3D (-34365 * 25) / ret; else *val =3D (-75365 * 25) / ret; =20 - mutex_unlock(&st->lock); - return IIO_VAL_INT; default: return -EINVAL; --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (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 68D4525D537 for ; Wed, 9 Apr 2025 08:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188053; cv=none; b=AlFKRiF+Nmlhs0UCUL0RqlJGxksLdUQ06KfBEu05IxtJyKwtLc+eIQbHvxSFNRaBr+zebbjfTmuzdrgR+TRSQHvgNRbCSBgpZIn/4oMwle4bhxCGxlfRs84TC6rPID73uMOl9HaQ0dm93NrI3X4l31fQHaOptgqi+zE9GvP2YF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188053; c=relaxed/simple; bh=gxGXKdhzWEuXStZiMA/X/hybIN564vOdNtFHOk/52z4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XmWdHgN3WlSS14TKxX94gJQGFjj4uxNrZ1sBANmRh1uPpbwMWI5BEvfrEkRih7TBLD4W4p4+KGCGqezVidwUCAh0M0N3jEh8eGNgubtRwG68JK8VBUqddb5hWPK0pulHOMogTdPx+ROIkTG7j0UPGMAgj4VFHG716uNK2n8rg00= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=qPl/DwXT; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="qPl/DwXT" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43cec5cd73bso36894135e9.3 for ; Wed, 09 Apr 2025 01:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188050; x=1744792850; 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=zqu//KhUPfwXLE3I5j0Bgts5m4hei6jVtXeNlPcXOcQ=; b=qPl/DwXTogxgfal1dsIk/fXWnJpxjU+oeatrNOXkwOhLXz6tODESad8tIfutUefAja tvPh700PU6UfCuypKrNpDlMh+tgzciClFhQq4wM6GZngWaekxEUqBEsQu9zAynPmRJLQ xyuwRqKhX9LLSYpP8ucgpJmzYg2JnRcbolpfwpjFQiVcSmtrdQcCRkuaPJHuKWMtSdk0 45qVOeDkachjkVZcGXe6bpmWH/6tBg+uYFPsa0ihN2ljZIihvI2TlztWqsWRUO8yQD6d Kt8mZ4b+UAoj29XRJG7AzEeO/i2efbwb3wFCkNJYYpJfp64MG2AsiUqUAhqsEt0j9ADb pJSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188050; x=1744792850; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zqu//KhUPfwXLE3I5j0Bgts5m4hei6jVtXeNlPcXOcQ=; b=Iym3ep7FRxZRP78oAqvmMBoLdTY+91G3UuNgurVXb+jfpYoLUQVJt3J9yT9uxnWld+ WcAJB05cuaLdvgLUWpim01ieoHMrWBx5OJDNcYTYRA+X4T7OtDy0vstYhqXXlzbk8HJp +aVvuQ8LJZ6QUQicjZG8HyIJzAV/cFh1i0t805kky2reIYv2JWdzvHgA5+AN4q6r1KcR 93XTaWIHTlPZJSJ8RmE/Fq8Uf/zT19/TE1J6+KvcRTHvnHL2zuU9sWABFzSwHGu5doLl Sp100qnHTGVJ8wcLT7dTs3OC6Uj5iSKqZhXu8oskbMSNxMYYtXrs1m2iGb8VDMyR8Ft+ TM9Q== X-Forwarded-Encrypted: i=1; AJvYcCW5ba/HDJHiBWVgJBljTm9v2rE2Pcm97OfowPkM/TTvyg2bkqfneuW5fSDw6VgKsLW9QsoiwGWVH+65pMc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6FlIX8mGK+TzhPKWEWZ73ZV1IwkYqVtF248NQLgT4/GYO8jgV u0s+ptfzd/cJmJBuc3qoZR+u4WHpClxGDV+zVGl7Dk0cUlE6hmkd14z4r7iq4pI= X-Gm-Gg: ASbGnctmomm86NqykhhN916+mkRtZ9YIeiQZdJYGMeOWri6a4ZpyJK4Yn56VYQDk1/Q 5QAyZL1+FjsGXygsosPujX2BodbxhSHlKRVHbEFXQw7dkCV6QaM/G/Icsu3roeI/8o/kbnp5PQC gYiQ50wSh/9ga7RM0Aorn6r0iuqy0PaRG7o/j7gvDr4K+jROQx82/Sx57qvjXREppiQBW8eVIEJ bp9WztuvRzms63JQxH0sGDM2Vx7szZqvxbZZ30cORGbAgPKykiMyu66zJQL05WmsSxIGzi3EWMJ jt5Y8w8FEgbsrFAYA4veV7yGcFdMHc3z4w== X-Google-Smtp-Source: AGHT+IFQaSQnLwU0VEjFHIjrpvzzFcZ2lgG8zcPTh7uJ/6342DrfMD2nx7Rv7HiTz2TTTzkRWCacnQ== X-Received: by 2002:a05:600c:848d:b0:43c:ee62:33f5 with SMTP id 5b1f17b1804b1-43f1ed6d5f4mr18545235e9.27.1744188049678; Wed, 09 Apr 2025 01:40:49 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:48 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:41 +0200 Subject: [PATCH v2 3/7] iio: dac: ad5592r: use new GPIO line value setter callbacks 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: <20250409-gpiochip-set-rv-iio-v2-3-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1728; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=fnDmXboqjAytf+JwxDCnzSlv7dbuRg+HhyIHf6eACqI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKLNjV6MOXlUjP2rTD/2/FOeowSfT1Iz3o8p 2PkJLlW4rOJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyiwAKCRARpy6gFHHX csZlEADg+yGd1CO9xt8lAUeIVl9cl+71kBc/LF9KILRniGeAMj/b2ppdqq1HEHYV87XdvZ+fG/j pxzgvy6bUJF7k6OKAaqB16j8WMsO8RL7MNb4sCdtztGiwfxXbj20ONS5XYeTJqmqreNKuC+LKyE ol5MSr413EKIw0g+DcXt3P0AGKx6H5BxNBDhTDCjENEn/JGs4lwON5oXceaTpgKCgxSX29988pa JXB6PZfOW3E3fYW0CnOzADIH0XAFQ43eBoK0CckalyVrLmFXGjnsMpPhoeb6UPDHCifI7TFTeUD Q+xC9DRuFydBmtdA+Bv043SBSlIKZ/sNR6RZ38wb1+psuVT29Ddqto/53NtdRo4EgosGM+Ko0h1 pOCR5gL3RiWRkC6hW1s/xDiwwFwrrp+92eKMi91I2Dsoe/vQ6Fb7NESAgBl16ug1+V3qTyf3yc5 zxvChnc5VXwk61r2Qv5d+Jc1sCOfy1KqBt1MfNKiS72Zgt5/NsaprP2Yn6dIM8TS5fo4t1Q03Bk RrZDBS3GBn3BmI6fFxoye2lwCDtyxSJAmBw6LO/keaNgT4whVlUtAG7hrC+2B9AcR1foEllvTnu XDbITsldtco9wbVKPpv7KhHligDhKC8NZSou6FshdwxFeB2l9YM6jFxsyRL2u5nx9hGriDt2tTM 0BwgkjC6xNNGvvw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/dac/ad5592r-base.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index ada60f5ff1b6..c4c3453da823 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -40,7 +40,8 @@ static int ad5592r_gpio_get(struct gpio_chip *chip, unsig= ned offset) return !!(val & BIT(offset)); } =20 -static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int = value) +static int ad5592r_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct ad5592r_state *st =3D gpiochip_get_data(chip); =20 @@ -51,7 +52,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsi= gned offset, int value) else st->gpio_val &=3D ~BIT(offset); =20 - st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); + return st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); } =20 static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned o= ffset) @@ -128,7 +129,7 @@ static int ad5592r_gpio_init(struct ad5592r_state *st) st->gpiochip.direction_input =3D ad5592r_gpio_direction_input; st->gpiochip.direction_output =3D ad5592r_gpio_direction_output; st->gpiochip.get =3D ad5592r_gpio_get; - st->gpiochip.set =3D ad5592r_gpio_set; + st->gpiochip.set_rv =3D ad5592r_gpio_set; st->gpiochip.request =3D ad5592r_gpio_request; st->gpiochip.owner =3D THIS_MODULE; st->gpiochip.names =3D ad5592r_gpio_names; --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 5816425D556 for ; Wed, 9 Apr 2025 08:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188054; cv=none; b=TmflxA6k8TOWJ+qYXZALzZhcjHNpfbuJ+lBJyZ2J37ixZY814n/Zp1+J08h+iTvyFa9esjKP3os9+u9pTyIFXwt8/rmQyww4OTsrW3qlP7XndtWgHAq7jcjtNc5eOikS7QmJXTs+6raSawXqVampASWx7WlnEOmeeu9Df3xliXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188054; c=relaxed/simple; bh=JcjRt3IWWdiCtJbwqzp1v4b47hd64XOA+ew6annId/8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b9OEJQ0SjBwdoVX0XouNhZGddQ48pOuqQgOGNcuUdwNpgdF+7x96d5wmYW3s5jkk5lRZuYU8C4RGBkKELzUhv+318IvSEV0uN89wjBUAusyBJsJPF4O6AM1q9c/K9/elVYb1Hd8KnO1en9dDwV001zAJatxsC4pXtuaPovgo1XI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=vqaahOy5; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="vqaahOy5" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-43cf257158fso45354085e9.2 for ; Wed, 09 Apr 2025 01:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188051; x=1744792851; 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=XYtkHCFcaSF7UbWnri58lccyI2lE1qpEsdGVCNframM=; b=vqaahOy5Vhf3YpjRKW4IwqPFQyJzZzqrQBpO9yIhs6RrwfvAafxpqdrb/po3cI6YmK NWoXLtIGhQ5ORU0YxoC+TlMy1V7mOAh2S1aj6yu/tZ5jkcDdi0FgHZF0BTc1FKtgxJ6T V5uL18f+ZZFQD7lIvmdWCWRJHI5NbcMgu+TL61HFBxuEYKTxPRW0m2CelL6o+qMxwSHz UmCmJCj59xh1Zn6xxaKNiJxjdys5r933Q5KF2i1vBFYXuZTl/+tqEbFo18ogQN54Gha8 5TfteYLgHylgSyuAOpWWzNx9OucWVfy1GN19mnqRxXNxl2xLv4RYiuGB+pRcMp+O+5qt BhcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188051; x=1744792851; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XYtkHCFcaSF7UbWnri58lccyI2lE1qpEsdGVCNframM=; b=Iw9CbdY+wZCagR71PCUbjW7PiDpEsCF8QPPnQy3wsuuIza4ECp4FZ1PDgDrW9J/wIP yvyIsTAdgpgY+QNfQ5cW8emOdqZU62Rd4suAa4AGNQeOoUe+5SFOAJWK1RSQL7m4XqUB 1efdyj+qkbAVsXt4N+Iqti32d1NIbCsbkF2cREuBCxHY+vlkSnxbYpfVe17RySa9JLt5 VkIW2a0MMN/Jk1Cq5czplPVovadQHD6go6OmM8FW9u3uFYuUACf+PcHyEgM84NJx6gI2 tHjbOisBlgIegMvV9bQGrAs54ISSl9jXTy40h+1MqsCWWc77BZUqG/iqeCoCDAo09wsj UegA== X-Forwarded-Encrypted: i=1; AJvYcCULpQluOi9kA2tycVbDmEzNNXRyrMdEgQMai0S81Q8jPhfurELmYVCV4ZxtojJzPhU4XNkxwSn3m9LHQeI=@vger.kernel.org X-Gm-Message-State: AOJu0YwGhQ5pAZMSP1p1rAx0LKcktbofRVWFs+2QMkpMgQDiQbnIlOe5 V3JrZgbCWAbJiFhVuU1hOI+C46QljYhUJWwOR/8+KEcS82Iu8XNChpYzKlU/Sppe2GUfQEq6qYV L0os= X-Gm-Gg: ASbGnctQ2WjSBRL7/XBIzrx+AWiUK4AsF5NcurNlyQGvIQfWBGWLvCnSENH77eEWNeD B8wYyyItKd80mG4Dy0MIluia+oNFXDbVrod3QiE566ZRgZ5qP8SJ3aRAHB8Ug38L/gJUHRxNawU VSNVHX0JtYArLkgGQnP5lxWPADHWROL8iInKTvxF4L27r5qHK0tmh6cmsbPRQXUGI+GFH/fWHCa 5K+wpQ7Cgd5sE2VD5oja8deNHquLZXg1ZBW2LNz7zFzCOaE91tUzgP9PsbDBkHMUSthG329WsT0 I7+xKq6egtXOOkGfuXdgBHEdoVme7XRObA== X-Google-Smtp-Source: AGHT+IGsO3C+MGGdKhwPSByKad+ec5QzbW4TU0+WbuJN6qEWAsyjCVw9P8iRYYQ6yhP7Q/xszVDWRQ== X-Received: by 2002:a05:600c:1d29:b0:43c:f629:66f4 with SMTP id 5b1f17b1804b1-43f1fc8345bmr14884195e9.0.1744188050684; Wed, 09 Apr 2025 01:40:50 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:50 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:42 +0200 Subject: [PATCH v2 4/7] iio: adc: ti-ads7950: use new GPIO line value setter callbacks 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: <20250409-gpiochip-set-rv-iio-v2-4-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2122; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2MIhT3UvouiWSb+JqPeZnzmfSS+HLRvIRYg5KBNUdDc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKMjREirvPxTpHQ9hbsW4kwhT8F08OGlVFso dl3acAI19KJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyjAAKCRARpy6gFHHX cucbD/9dp4DbiVLe0Nnj1IgUfrlse8TDg+7aDhEaAd9rA45y0l1y7uMV+HkiO5R+Z2Ndzx4qODP cywQxb/9nl4dtPAlb9Lfx5J4MdRaJ/d0qybEsxpP1eJvQJmgxM96v7t+JiweohlfvmAkt9L8Lql rUT8PsL16yg1GLi8Henf3rKwS97TmHA4uxFpKAchccleQVMLxUSObVFlKdAzNk6wR2DnwWn51PK c4CuihlDTWSfHYyfcZ89uVgrP6kDmNWiQumUeRVcIwK9uFd2g2KpQ+RANgPL5Mb0r/uhrDa7rf5 DKg+r2j0dYhr/lUdhVm4jH04mGGZeCBTkUvGocaDiS9Zzy0bOmt5duJjQCMzYKf9r88s5gNAR9U Uy22YgtFfR0e+0UeJexBnI0hMGK9kw2pGVcyVW6FMeYW6gk8ePftfiIDr1SCBY6MTShwm0/sqVC tDVyBrkyy9b5EiJs5ho+bP00OvoCrFrSgNDAC3ywXKA/qKSPEk0iIhliCzFg+eCy5zG44luJ5Iq QRO+2rRq5S6tFjtnEwPR5tDydLUllDRMqfnE11kESudCf9WQgRjjSAO7c7g3eZ8txunucQBBVJG lA9JoXIb3sMaX8D3wiNPubO9PivBI+pBMR2vkhEJc2KrwMo+ZM1ly3E+N0g/0AGFgxsVm6uvV4T Ck9ptDwL/Vhputw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ti-ads7950.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index af28672aa803..0356ccf23fea 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -403,10 +403,11 @@ static const struct iio_info ti_ads7950_info =3D { .update_scan_mode =3D ti_ads7950_update_scan_mode, }; =20 -static void ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, - int value) +static int ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); + int ret; =20 mutex_lock(&st->slock); =20 @@ -416,9 +417,11 @@ static void ti_ads7950_set(struct gpio_chip *chip, uns= igned int offset, st->cmd_settings_bitmask &=3D ~BIT(offset); =20 st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); - spi_sync(st->spi, &st->scan_single_msg); + ret =3D spi_sync(st->spi, &st->scan_single_msg); =20 mutex_unlock(&st->slock); + + return ret; } =20 static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) @@ -499,7 +502,11 @@ static int ti_ads7950_direction_input(struct gpio_chip= *chip, static int ti_ads7950_direction_output(struct gpio_chip *chip, unsigned int offset, int value) { - ti_ads7950_set(chip, offset, value); + int ret; + + ret =3D ti_ads7950_set(chip, offset, value); + if (ret) + return ret; =20 return _ti_ads7950_set_direction(chip, offset, 0); } @@ -641,7 +648,7 @@ static int ti_ads7950_probe(struct spi_device *spi) st->chip.direction_input =3D ti_ads7950_direction_input; st->chip.direction_output =3D ti_ads7950_direction_output; st->chip.get =3D ti_ads7950_get; - st->chip.set =3D ti_ads7950_set; + st->chip.set_rv =3D ti_ads7950_set; =20 ret =3D gpiochip_add_data(&st->chip, st); if (ret) { --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.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 5820025D8EF for ; Wed, 9 Apr 2025 08:40:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188055; cv=none; b=UCGOYZLoGtjszhELBROjoLXR0MxJkMTUs07oQ4xdVLKRzfz4lS9GlYpFwN9FyNAUFsBgzU8R04n24EoqD3fgfUVxisJ9W6nDJv7E8dwQXz9+DkZhRxnU038XpEXxmYPvWdaeeTi7akp98X9kfiYKZBoc82pE9fIvvFoqwZiX4jQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188055; c=relaxed/simple; bh=fa5cTkRDqqhhVl7VbbjXyrlh+4Fb8+6MIvJLxTQ35n0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S5ZI9mrG2Qj2zYcGMlnCK7xXeyuhzw2UCLO0FbtPXzsR8wZkxnNX0E44KWPucohBfHWLWSdfWWVwc+Sazqo5sW3kHDxK7vpAonyrEnf/yqTXyCtN1q3NjH2IpJ7wgCPXqzDWetME9a10xiApEUUah14KbxzBZYr7Daj3Aq72QTk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=jQvGp34M; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="jQvGp34M" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43ed8d32a95so39599635e9.3 for ; Wed, 09 Apr 2025 01:40:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188052; x=1744792852; 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=xhxzR9twRT0d+wFu1RoPufbuenYk6hkExQ8ZTUxlkc8=; b=jQvGp34M7sZb7ZfVlPbw6ivlFeFgrY7slpF6sGZLSOoqpwfm+sqvFgHlap4EKNmCjW kJ8ppD+qRHWCvZOHVH5bX0+dmerNaLMNS90sDPSPD23FMuRfOu85AMLgJeJTlCtDxU85 MzzKdInHbHHC5X047wJ7W3h+HZpZARpDTsWMbdD1AyNRDWsKfg4kVQr2DgkUGR/OTPkK JcCiba/TgFGK5GE4QDUEzPLVcQnvWV/XlFDI6ITjfYD5/IG2+g/YvqGnmJt+iYEwmO0Q e1JAEy614fFbJNCOeb+0Nn38EU9NZFeAZ13Y9XOkOYvvgH2FKVwaQaWHGVMxlty1ImPs 3zIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188052; x=1744792852; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xhxzR9twRT0d+wFu1RoPufbuenYk6hkExQ8ZTUxlkc8=; b=NbBO3QQnWgdYMkShidAcNlZtMJB0s34HFkwlQJRTGM219U50pfpvgz3nns530IQUN8 xfEfTg15k63VfiYeYfaVsGrh0x98Woo5zn0hRehfvTfUCovb8W2qAr3msmPWtpS+K4XU Y+GuQ+qySOFYEvjibQ8fLwnqabudjtJSVio/oztpKwnveyTyO0tSmnHul6TIhUUN8Ano JCTnLzrgz4kO+w6apQa4+rLPiNl6sYS39pHkdtQGQqtCDuLQfu8/hiPh25/1BhtzuP34 ePaw5wv4xXjWqw7595EmclL/LcKbAN8ploOefLB61wnD4HhwJa2cP+gZE4dXaroAq0rl sypw== X-Forwarded-Encrypted: i=1; AJvYcCWAGRLdl8siLbv9FsScUQsWVHJXezpItcPIiStkLcWNs87n30gJ0CEDzAaLXF0eHN+WlvakVTyNl3BZIXk=@vger.kernel.org X-Gm-Message-State: AOJu0YxdLEtVfsiyah59FRKpLqlli5MwvJIOiOfO4wf2xp0yZifv9o5b EuNpihdTpYvllj9WkWp/Ln22ydfkLXht3h6R2dP7JCdxmYEdkAd76tjste9qGB8= X-Gm-Gg: ASbGncu13ednBiqU89RG/7U5FU9qqlf5bDcfPGgwHUq8WPKGILQTaGqv72gtiRKRyVX hH3sabH8Uz6uYUSiPsV5uJWMWUwJ7EEb1rUb+i+IQ7cxNB+kG5hdqjeiHIWdwViMvksY6pd8XZC iCV+pxzB1nikQak603ZaMjxp9Ta7Wm7ioAWhCGy24YhzPdyvug0wdV6BcCrB2T0sRcY1zhluwsG ENROEM3FFmAebPQwoeTTGNrmDTp8LrzQFeUukb987b/lLBa0athMuHfmaTPh1wZQI74RPdbHcGB mAHUaRzeHOptedro24sM0diXEoPSR5HqHw== X-Google-Smtp-Source: AGHT+IE221ElSZ3Eo2bUES6uFsWN3M+0WY2cPstH40E4ixtMmAT4pmiQlZh/mIhEck0nLaMp936/aw== X-Received: by 2002:a05:6000:1449:b0:391:ab2:9e80 with SMTP id ffacd0b85a97d-39d87ac6456mr1892672f8f.24.1744188051588; Wed, 09 Apr 2025 01:40:51 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:51 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:43 +0200 Subject: [PATCH v2 5/7] iio: adc: ad4130: use new GPIO line value setter callbacks 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: <20250409-gpiochip-set-rv-iio-v2-5-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1606; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=9o+4uCrbiIXfKgm+/fV007oYqSqjRct9ZS0ApGPT4xk=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKM1FVfNVaqoxhxfyFLosUXEqyUp2f7i934x MAAIDObnsyJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyjAAKCRARpy6gFHHX cnAXD/9IprAnOZcPufRqcHQvtePIhG0TYa4+o2CvuaZHEicdGGElH5XQPpjmiuYnaq7qqt4d15Y Y5HweRrVh9z645WF2UVpD8TD3OVvqXMQAAhRJor31TzgsH7DXLsMRqqUZ5m4tEO0kEZMPKGLiQx j0Z5kwcAHf5XhPOLqBatPwkbrA6fuBlb4SCubNv332PhZRCksW3BcxcplZgMtHHLNisHVku4z4F WPX6Q3noTVxL7cQrlC0Aba+ErC+n7/BxXXvLF1UlcGV06EbzIl3oRRgEwl5Pjyd+m18hnagbe5C U88aVwBVvKpDeQNSw2NTPaZ3gGfmxemVq04bpGa9ZXQ/ZgzEGhzuD92k8iqEsWlED7pn88zQMnP 7uUwUPTXoTCV+kwK162hygzH65G7Gcgb8LEqrVk4HLxW/67cQ3J1IIyeZedZ7LeCzCtqjedXNm1 jBYVYNNDCH80gAU0tmgLBzMAxihKRFaRmeTvy3vgSPMtsdz869ZQZw2gb0BGWOX+O0hO4HMkzQM WDf1b1wnXh2GONKmW7TqcC6HlCutHr4Us8o0LTu/ubN3qk8UVyMD//AUPBJWNqGaomcn4D5vdug MPeYVMCm/AjJhCET+x6ripOhBgin9zRb3Yuimmtx15f2bP2XvynZVwi8LU9BMjqpxig6KoixUyU 28JCLnPrNGShSgw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad4130.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/ad4130.c b/drivers/iio/adc/ad4130.c index 0f4c9cd6c102..6cf790ff3eb5 100644 --- a/drivers/iio/adc/ad4130.c +++ b/drivers/iio/adc/ad4130.c @@ -522,15 +522,15 @@ static int ad4130_gpio_get_direction(struct gpio_chip= *gc, unsigned int offset) return GPIO_LINE_DIRECTION_OUT; } =20 -static void ad4130_gpio_set(struct gpio_chip *gc, unsigned int offset, - int value) +static int ad4130_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) { struct ad4130_state *st =3D gpiochip_get_data(gc); unsigned int mask =3D FIELD_PREP(AD4130_IO_CONTROL_GPIO_DATA_MASK, BIT(offset)); =20 - regmap_update_bits(st->regmap, AD4130_IO_CONTROL_REG, mask, - value ? mask : 0); + return regmap_update_bits(st->regmap, AD4130_IO_CONTROL_REG, mask, + value ? mask : 0); } =20 static int ad4130_set_mode(struct ad4130_state *st, enum ad4130_mode mode) @@ -2064,7 +2064,7 @@ static int ad4130_probe(struct spi_device *spi) st->gc.can_sleep =3D true; st->gc.init_valid_mask =3D ad4130_gpio_init_valid_mask; st->gc.get_direction =3D ad4130_gpio_get_direction; - st->gc.set =3D ad4130_gpio_set; + st->gc.set_rv =3D ad4130_gpio_set; =20 ret =3D devm_gpiochip_add_data(dev, &st->gc, st); if (ret) --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 3B1ED25D902 for ; Wed, 9 Apr 2025 08:40:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188057; cv=none; b=ghXj3V3Fo1qyFIlojEBUue3TqrARY/LnIK1vBqxbvO6D1PchqdXWDxpCzr5ggruG4oK7GhfEok8F7c7Zl06UY4YJvLc0nCuLFzIm4L+AaSQgs4brXSss47GBI6TxOyvXht5OYElL+3oM6XjtlzMePJlDY1AbdZ3Gziclh0Bv5kI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188057; c=relaxed/simple; bh=pPqlQo3DRiKCcYkAQJQaHw1DlE2TLJ3LSJd2MBRf7n8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MBtqzwNrMpdJmYOedyD76wsSDHYfHFTJWBRrJRhIRqO41+WH6Q+d5lMPJK9nu/Aw9mNxM38UW1crWhKr05FHhw4Dc6aV/RIf/biS4M5k5qOvOKpWD5poYhM//3hXSxPID/MG2IXfrtDrdM+lYEJRYDdPHq//rIXaALgKC8P9/aU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=zlXd6NXX; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="zlXd6NXX" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43690d4605dso43889505e9.0 for ; Wed, 09 Apr 2025 01:40:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188052; x=1744792852; 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=iwTUwTMxyTj7zTjMDARLn6ufuL/C/9AMOfMQrrdFbkc=; b=zlXd6NXX4P9KuRmQLGg6Pddnrdh1u17sEwKiJ3eZ7XQu3rM/QUXPJmroX/BGyvgFtp VgXkdWihR1iQ7rPeOYhgbEO2g40Cl+vEb2Ww+ZrtDaVxXrH3No71d8CF2q47dMFxlZT4 8bmr0ER+bbF/lQDKZsHjkIbE2gPUrj1vO/4Tt84b4Ns2wKuQV9HxudJmXbgMElqJByPY mMRGjS8ptre6fZilEGf+ru55jbR/GnBx7fq8fNIWkDzxf0Aq1SU9QXKegY+KkqiKDOkE yoe9NxKgY8WAr2TJDY1VrzJ/1K/BN+fxbdUNfDVLi9uwZ5YGQzSQjptbBBSjdRvfaPId Z0VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188052; x=1744792852; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iwTUwTMxyTj7zTjMDARLn6ufuL/C/9AMOfMQrrdFbkc=; b=Sl6Vif/qSLmvfi6Ruw7Ft3DLZqFDyMVR9hjOl4MLTIki4yfF75m/1/LVb27XJqqjBX /CFXnF61hPh4fYaH6ZJVjOsvmeDzdnUnhYgm5kWHpw2ONmEUibaJJ/EeOq7PC0ZOzhbd huwWTB3LsbWSftnL0fEIzubUuQ0kx0KNOTWv/1ouGdpbN3RfETCW9b5+NYE1P4ZVVEiK C4ZM4e885zwD+ruSlF68xJf5E4UNbc910+s1/oHj0WQ2PGB4MpvlpnFYzFFMNW6xLbdy nItzRSBANzr5l/hsGyWF/eFFfezY84w0WbQEY7+b01jKyKhvjdmQ6CmmdTOCF19xQQNf ixYA== X-Forwarded-Encrypted: i=1; AJvYcCWIvcfy+RqR4AExKdMWKKB93UPDUndFDFEeWlgUTwxQkUSyAIg9DaURYfR2MgxX/LHh3IrVyeVoBB/UFXA=@vger.kernel.org X-Gm-Message-State: AOJu0YyLeC/P6cMMZ3z3RyEhEDqlS2brVQm5Pny6/XwNd60XNJw32Q8w sn62EcnDcOyDQvt4bqtSFNtRBXIYRBO7FQMY0O9Kj2X8w/wQWzKQV+vom3x9FRA= X-Gm-Gg: ASbGnctpk9FFWL+aKmSBkYwDA9WDs1ITFwC8xAuBpbpmY/f+ZQVcaXdwHgAZQwOTkHx 1jK2sm5M/my06QJqxQaF3PG1KoW/migjtbc/SsA6FPJFPwh3BbvFUmDiyBeDtUy/7FzXM7Y2j+Z IvHKnDVkxE3sZe0UYSBiEh+zm1FxFgJwm/Ev9S8hAVJzQav/OE3YQes3i4fwSYywqgRwhFy+YpY NkYCptDRiu26loH9W2D0xpkDSxTs5dPwCc0edlDYKxDoD9cVbODiA2zuT6rFxI4NCCw44TNhG0Q DAyJ+s3/rZk4MabICBJ4ErboQCEhvzEzFw== X-Google-Smtp-Source: AGHT+IG2rUP1u8AtLqvFPqtI5IJP5tCAlsoMsV3VVHT0ZrACaP2KWQR8dxGZAgGDfwzhkpOlRtnpQQ== X-Received: by 2002:a05:600c:3555:b0:43d:10c:2f60 with SMTP id 5b1f17b1804b1-43f1ff3bc66mr15768995e9.24.1744188052585; Wed, 09 Apr 2025 01:40:52 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:52 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:44 +0200 Subject: [PATCH v2 6/7] iio: addac: ad74413r: use new GPIO line value setter callbacks 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: <20250409-gpiochip-set-rv-iio-v2-6-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3029; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=BJlj3nSl7FlGTWhuoQWXENcxnJ6fTBwNzUrL3zDx7YM=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKMly84lMX+ymyueER8h4PH2zH9nRYfOtQpl taKdWN8mdyJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyjAAKCRARpy6gFHHX cqF3D/9Nb7PFT24jUYlGv5l/crO6d49YufoF8aaamWFtpp9X+lAFTh5h7ZLaEqykLBKT/YiJnUS iO3vd2qf7p9YUkVFIJ0GbTTv7aSgwBWE+ZObPgIY+aPOpBv3xoYUk3zRkWWmmui28OJWPeRJWY0 Y/59Z+7h7EKhYJ1A8ByjezbB5erDBnFDeZCqsAb43rvbXJQQSZa1fhoMa4ulVI94r6bFdvBqEEh 5EbXwdNGX+8uwmO0RoBFjWp3FKebwGAwFqWqAdjkvdW+im/sKpl5zNYsTOgtkoo4TIAJzFnKVJ8 EPwtuaFNvVydW48zZc/WItSB1ruxJTXaQaci2rXqXvg0v62dQ10oTgHvElBR7uWV8UOcoufs4f0 hnYZgeE6vFP9UsE8UftKHtdCVoq8x8wLuBRP/LMaI+oI8risNBAworYt3j8tclGQdZxubeDskDa ioH6THD7IOImPDdwF9rlmSb8m1IY1m/WD87bf5Nr5QQsju133dD+jppDi5OX0fgxvWPlzDT2014 +e3gYFDFDI5rUm+3BpfLvnFHmejUxh8Wb1j11z8q2B3kmAiW5aGdsVpnDIn8MvEptzG1JQ6kFdz oI8CMNsasqB54nGoCWZ3Rvk1giOZYzRHpZtYH8+C/QMRQJ2BARIMROUP4ScOciNYa2sEEb+f6DZ YD8KPLt7U7E/few== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/addac/ad74413r.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/iio/addac/ad74413r.c b/drivers/iio/addac/ad74413r.c index f14d12b03da6..adfa14c4b06f 100644 --- a/drivers/iio/addac/ad74413r.c +++ b/drivers/iio/addac/ad74413r.c @@ -276,8 +276,8 @@ static int ad74413r_set_comp_drive_strength(struct ad74= 413r_state *st, } =20 =20 -static void ad74413r_gpio_set(struct gpio_chip *chip, - unsigned int offset, int val) +static int ad74413r_gpio_set(struct gpio_chip *chip, unsigned int offset, + int val) { struct ad74413r_state *st =3D gpiochip_get_data(chip); unsigned int real_offset =3D st->gpo_gpio_offsets[offset]; @@ -286,16 +286,16 @@ static void ad74413r_gpio_set(struct gpio_chip *chip, ret =3D ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC); if (ret) - return; + return ret; =20 - regmap_update_bits(st->regmap, AD74413R_REG_GPO_CONFIG_X(real_offset), - AD74413R_GPO_CONFIG_DATA_MASK, - val ? AD74413R_GPO_CONFIG_DATA_MASK : 0); + return regmap_update_bits(st->regmap, + AD74413R_REG_GPO_CONFIG_X(real_offset), + AD74413R_GPO_CONFIG_DATA_MASK, + val ? AD74413R_GPO_CONFIG_DATA_MASK : 0); } =20 -static void ad74413r_gpio_set_multiple(struct gpio_chip *chip, - unsigned long *mask, - unsigned long *bits) +static int ad74413r_gpio_set_multiple(struct gpio_chip *chip, + unsigned long *mask, unsigned long *bits) { struct ad74413r_state *st =3D gpiochip_get_data(chip); unsigned long real_mask =3D 0; @@ -309,15 +309,15 @@ static void ad74413r_gpio_set_multiple(struct gpio_ch= ip *chip, ret =3D ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC_PARALLEL); if (ret) - return; + return ret; =20 real_mask |=3D BIT(real_offset); if (*bits & offset) real_bits |=3D BIT(real_offset); } =20 - regmap_update_bits(st->regmap, AD74413R_REG_GPO_PAR_DATA, - real_mask, real_bits); + return regmap_update_bits(st->regmap, AD74413R_REG_GPO_PAR_DATA, + real_mask, real_bits); } =20 static int ad74413r_gpio_get(struct gpio_chip *chip, unsigned int offset) @@ -1424,8 +1424,8 @@ static int ad74413r_probe(struct spi_device *spi) st->gpo_gpiochip.ngpio =3D st->num_gpo_gpios; st->gpo_gpiochip.parent =3D st->dev; st->gpo_gpiochip.can_sleep =3D true; - st->gpo_gpiochip.set =3D ad74413r_gpio_set; - st->gpo_gpiochip.set_multiple =3D ad74413r_gpio_set_multiple; + st->gpo_gpiochip.set_rv =3D ad74413r_gpio_set; + st->gpo_gpiochip.set_multiple_rv =3D ad74413r_gpio_set_multiple; st->gpo_gpiochip.set_config =3D ad74413r_gpio_set_gpo_config; st->gpo_gpiochip.get_direction =3D ad74413r_gpio_get_gpo_direction; --=20 2.45.2 From nobody Tue Dec 16 11:49:21 2025 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 8020925DAF8 for ; Wed, 9 Apr 2025 08:40:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188058; cv=none; b=dwBQ2M/A9zWgBkylgnH2wyhsjlAnaRnXhFd7nTbWFt2dvmyiHmbWXzSrFM9UiP+FSy3gRxTLsszP9m82BqFSLBJn8zHrYS3KtHfna/66WsRbh3baa+SrzNySDhLLLzHzd6vLgKcrXOXYkPmkDCIq2ljr8dhnlnUkn5bKhOMjSFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188058; c=relaxed/simple; bh=5kdF5oVUy/yps6X9BImufh8OuKxxdQ4BjJ7Qv2H6pxc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BCqMbiR3vmO3bqSECtvzNM+VpNipqZI6Y6hZ29M8Zd6/wUo2TTsXMsmhQr9FY3rl5y+dLv+f5Nb78UkKxYVlrym7I2c0f7IJq6xsFYilUrZzUCoYpMgh0kHaqHT8VAKMHNSvgzFJ5El13elpp7rDeatANjjSWVkzXzhDzfkrVg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=a7DwWriq; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="a7DwWriq" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso59835165e9.1 for ; Wed, 09 Apr 2025 01:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744188054; x=1744792854; 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=K/lQSP02uZhzaqZfFDZ+bFMWR2NaVs5b5QtoM2HpE7Y=; b=a7DwWriq7SA9IP07wBkGlbj2ecfCCciZhMRHFI9RnVowC/12yGyANaSrGpPFiIaB2c RdJb5gGQ6UvpVm/6oFukZSYJNHXOnAM4dHx5XNrZmH2LGULyuer4pDD9WT9k0wX1AuV+ Zo/x6C0Z0wKPTweyOs5yhFfsRb6teyRSBGH+vx02q+hsJAqP+iox9lsYjJpM7H1zlWvA TddcvvX9Std4TraFeCSRuh22Id4rTjYn/fdyjhDzcyJmif/gqADKQyeGpUbfQbqYPzhR p0M7z0uWNEyX9blmJXGb+iN9F5PLevQ8Oa05GLkPn3jBCL6c3tsdgHfeRPRfJNJS9QXg yTMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744188054; x=1744792854; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K/lQSP02uZhzaqZfFDZ+bFMWR2NaVs5b5QtoM2HpE7Y=; b=Taf+AB1cwxW4PJ4I/5VezC9iz9Rjy5Vl8bXZMZBcG7JUuDI4OVI2uRETrnKgyTSmwF TQ0eGxLXyL0YZMm/FECVxy3gWgVm9Jujflo1CWbDXdck0AMjEWrZ5u1ND9zFiGiovvSY UYCesZ09zUAdJ8v0ZLwRa+oRrrp4FIFhSWbZgmubSUg9KqaTwfbF42NNo4Z5M6fcV8jJ aux1XFndQ03ViOUDXPZMkjsCQexlgW6D1xZ4nx9Itaywhsu9sgy0wz4UXwnQIiKLeBBY H9WvUva8z51R0xNDzRLDdC4I4a4LEq195/YN4gXlL5uPzBV9oqB1D2gpit5LwD1cFu2u l3jQ== X-Forwarded-Encrypted: i=1; AJvYcCWCZzvIJpNNeUfgKB718PEPD+xw9lSl6cphpNrNR3iw18xd2Zp2GqiPSX3kHWNxMhkTgBuR5IGrfx/3qKc=@vger.kernel.org X-Gm-Message-State: AOJu0YzIVXNEjdhw09YZyaOTGkZcR4J2HYrH6lJt8pnlSf1+n9TCI8jt X38P6mrhQDzRAexjEZ/zuCxxodg+DWFfQMVZqxv7ojCY/GAFhSEUPvKnsSXR6ms= X-Gm-Gg: ASbGnctGhAlbq1uJbrFRURRk4LS1W9NZGNd/W3nYffoK3kpGScc1oGD8wL8kjuzy0x3 5E3JhT9U0VGC5zJ0Kih75Fk+KFv/BWvMF6ZMMcSoFu5buEQVBHlstzsb9KZSAre2gQGUnRIi0Rd JVqldwFtxHpoH+Cd7/0AsJAYBTBwdbVqXZwDMlGCBc9DOT545lXjApDcJGFrjxlshKCxxziC26C qe+ch9Tno9cCZ18yJyGfRWKzoBJTUHERyNuvOTK1amSJAa+Feh7kIh6JilYLnLjHC8VB1rV4RMI 7pdOED7Tb5h3MPVrZcGmIcWFlO/yoHM0cQ== X-Google-Smtp-Source: AGHT+IG8LQlB/qJ4dprLDxOBQIbHnBXUqk5P+Akfq9rXwsoYQVM14BJpyBXYL2o8LGSSr/sh82IgJg== X-Received: by 2002:a05:600c:3b8f:b0:43c:ec28:d31b with SMTP id 5b1f17b1804b1-43f1fe16c7dmr15845665e9.10.1744188053670; Wed, 09 Apr 2025 01:40:53 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:7880:1c3f:3ac3:7c62]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c8219sm8726235e9.21.2025.04.09.01.40.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 01:40:53 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 09 Apr 2025 10:40:45 +0200 Subject: [PATCH v2 7/7] iio: addac: ad74115: use new GPIO line value setter callbacks 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: <20250409-gpiochip-set-rv-iio-v2-7-4b36428f39cb@linaro.org> References: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> In-Reply-To: <20250409-gpiochip-set-rv-iio-v2-0-4b36428f39cb@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1869; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=GM/OUTdtJwVfHBffPnM20PvdLToT9f+xlEL0CqiIT9o=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9jKM+RDKnpk08jf6biIZ3iU+KYy4c1FpPVE9g ineY3ogU3uJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/YyjAAKCRARpy6gFHHX crtWEADCEy9Fkv2WE4tKZ2plfQHL2JiepslTEmt6QhUmz6So59x/5RxyKgDu3LK85ixCUqiitQL 3q7lufL7DXD2EX3Ai9owJsTIH+YHHC9pgD3o596P6gInTNQxn9derv4ukwZJOYhQ5IgAhzjzmpG ZT/fYog8HvtoUXTOYtZlmXKVoI23GIDf820V72btz1yz4Pp4HVspy3HALtUylwZpvLG7OvwpsCa oVkHg3j4j40BBqmkd7fWTCaNz6c0EdWVvtwL0VUEpuv5fWiL1kVtzznvCM7b7meTNE1lXjjS2hT 4TLznQ3WjhVdFjmA329GHu9GBtPb2Y51r968yrfBQ7QcZiK+TjWq6+M5QRntMY/rMEkLN6uMzEC tzVRhY9HMzT5Gey6tto8zePpE03bgOdn2nkvV7M5PqbATGnKWKXda7Z4rd1lrANcU9ZyDklLAmf AokMsuxUbKxKpP9RfAjZKxZtZ5TcOroNFZTLY7qJWV6flXC4+Kglxe0Jd2Ook91qkuVtKBmSS3+ QU7+Kcol9RRZV3pO+VABQvztImX3amgSer2m1HXZb/3yCutPB1PfnAbguPOGHbiWnETKr69q7nc vHr6TCmvDKeYRdTxJkZrgwLQ76O7CLQVK2pcJmwvKeGIBFLdeq3VTJjO8siiK/8+tTGwogsTiob Z55amYSelPNeVUQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Nuno S=C3=A1 --- drivers/iio/addac/ad74115.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/iio/addac/ad74115.c b/drivers/iio/addac/ad74115.c index a7e480f2472d..2a809e07526b 100644 --- a/drivers/iio/addac/ad74115.c +++ b/drivers/iio/addac/ad74115.c @@ -542,18 +542,16 @@ static int ad74115_gpio_get(struct gpio_chip *gc, uns= igned int offset) return FIELD_GET(AD74115_GPIO_CONFIG_GPI_DATA, val); } =20 -static void ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, in= t value) +static int ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) { struct ad74115_state *st =3D gpiochip_get_data(gc); - struct device *dev =3D &st->spi->dev; - int ret; =20 - ret =3D regmap_update_bits(st->regmap, AD74115_GPIO_CONFIG_X_REG(offset), - AD74115_GPIO_CONFIG_GPO_DATA, - FIELD_PREP(AD74115_GPIO_CONFIG_GPO_DATA, value)); - if (ret) - dev_err(dev, "Failed to set GPIO %u output value, err: %d\n", - offset, ret); + return regmap_update_bits(st->regmap, + AD74115_GPIO_CONFIG_X_REG(offset), + AD74115_GPIO_CONFIG_GPO_DATA, + FIELD_PREP(AD74115_GPIO_CONFIG_GPO_DATA, + value)); } =20 static int ad74115_set_comp_debounce(struct ad74115_state *st, unsigned in= t val) @@ -1580,7 +1578,7 @@ static int ad74115_setup_gpio_chip(struct ad74115_sta= te *st) .direction_input =3D ad74115_gpio_direction_input, .direction_output =3D ad74115_gpio_direction_output, .get =3D ad74115_gpio_get, - .set =3D ad74115_gpio_set, + .set_rv =3D ad74115_gpio_set, }; =20 return devm_gpiochip_add_data(dev, &st->gc, st); --=20 2.45.2