From patchwork Wed Apr 9 08:40:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879873 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (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 DB59625D218 for ; Wed, 9 Apr 2025 08:40:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188050; cv=none; b=jv0z7SHTpxNkhT6voSPPKGcFN4I1Gxckl/lSRRHkvf3KsUFAeASi2YhomlxpxoI5L5hqVnU2NAyz/zbNKLkDcsx+5pTtKSUFUzz9xO+LXdAL0oAAtiHhCUNz4tNGGYWJLJTHyA/JRnu5HB1CKW0Izjs+plIFnk0Phc/qHQmYCTQ= 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.45 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-f45.google.com with SMTP id ffacd0b85a97d-39c2688619bso3982515f8f.1 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=b4gZ6roGV4tyi8VC+cInttPrlbVKmCDARcv+ElkFRrXzKtAFdN+sAs47MOk3/mtjTO 4ZlA4XpHyjTUMrEzO2lcbmcF8cizgdew58UJHWZ26lRIIhgUQA6I8i4NStWUN+RRW8PT QjGLCCudQPSMpmA1Nk8vegoXeaQHUV7tKZGO/5muGQH2d1BtTCLBNcRt/ep0/LNQzo47 DQpuoF8HM2h13oRltJWEnk20dzBJ18pQotRYC2cANMxGMXFdvNV9eQzWyVySfmlG3XZp l4klR+sOEfCxoeWgbVc2gg0k/zZJsEsxtSNNyhGC7tQ7lQ6+qbSeiAyluV3qvM4cqRVM Kmcw== X-Forwarded-Encrypted: i=1; AJvYcCURKQ72OMRNs3Vqwtg1tSLzugDmoJZt80857nPfifg3F81ozGRH0rwkaeYsVCZNuXGCMSsSfTrZcCwI@vger.kernel.org X-Gm-Message-State: AOJu0YxBg5jiakvgkzsQyKTm3SuO66zgdLwVnAYDih9767NWa1yBCEtW o/4D9ZjQm+RkeipIIPl/3Jzgrw+N80w4nxeTGpGxpJMWEJSjouGTx4luDxgyYqo= X-Gm-Gg: ASbGnctIygu/w4ac99yP+pQMxp7YCLpSCLOjp/xclWVHYISMsSIADHsOFIVky3Mv6dY Aztmkoh15I2iB4EFDa+KQ1ylgvCiWHH6p/RD/3AOUUnpDQeMXA3jze087Nj3WGktaBJWcQ94kG5 p0vgW1AXToydjVqxZChCe10cjkVuPQ4YcEs+aUF/NrMuuvJszv5Y4n5Adph3/XngZjFPESFVT5T tTEN1Sw10r8NWeQN4N9JnHj7A13BBsvvrW3aWD05taj3AEUW5VA5uw0k5o2ODlnzujST0omX2ih eCjeyQod+ciYxWEbAXA/vgG848itjgRQ+aBqzYUst7Cq 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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); } static int ad5592r_reset(struct ad5592r_state *st) @@ -606,6 +608,10 @@ int ad5592r_probe(struct device *dev, const char *name, st->num_channels = 8; dev_set_drvdata(dev, iio_dev); + ret = devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->reg = devm_regulator_get_optional(dev, "vref"); if (IS_ERR(st->reg)) { if ((PTR_ERR(st->reg) != -ENODEV) && dev_fwnode(dev)) @@ -622,8 +628,6 @@ int ad5592r_probe(struct device *dev, const char *name, iio_dev->info = &ad5592r_info; iio_dev->modes = INDIO_DIRECT_MODE; - mutex_init(&st->lock); - ad5592r_init_scales(st, ad5592r_get_vref(st)); ret = ad5592r_reset(st); From patchwork Wed Apr 9 08:40:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879430 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 E683A25D21C for ; Wed, 9 Apr 2025 08:40:49 +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=1744188052; cv=none; b=Tb2waMlAIljYEPiabIhw7OWRzEKC8UiDyPL6TMVZuDemIamLDjBf0pEKrBQ6wsP9ieWVrbYN3ARvFGXQmzUIl45cc6LskVzNtKIpVRNq9jSC7q8tSZLxzhjPhicqip7CS7zw4/a5RRxCsH1HGM6/GAgSlpTXDLDLGp7kMTHpg2o= 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.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="Wh+7qFmQ" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4394a823036so58965625e9.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=T5v/QZYcvWzl820v1SGpuuMPSnM9Z3CKeyuSd/cQe9uYAGxwtQb2jHYALtbn58jvcK LXBqh+T1y+VJEfyGGdNhMSnev9nfd+/mtxHnaFtsx/iXk6Hnovl35EGpI5eELy+SVzMo erutagU15antJ9TZ+tAS+4ixzDT7V13u6eCEGVGQmbZtypA7zyj/OXxad/+b0fDE13EV 2cvEToujpC9qOP3o9J4qQwChYQAzM/5E2zUyz1JdNQtC40i6x4LORdtaDMcAs8guF0Ce ipquYQ5YS6lnKWQwq8BrKkbfK3qEzQIarvT+zIYLse5CllHWt00h6c+WJUj/MJ6NVEqT +v1A== X-Forwarded-Encrypted: i=1; AJvYcCX01On7InN313xTRa6kiDcsoEkCG13JY+XWxHVEt1lj2iqP8xbSGaEcW6JyH/pyW37N1CzzC1kxiRbV@vger.kernel.org X-Gm-Message-State: AOJu0YwvCQyBPKXZKbzKiXGxSpw38NlU6p5aINYINja+/D0XrOHBm+4s 4Zvp4bq+Rcc+BuIAzldDVZD9KiaGo/dEKmAg/qTtZAFH6l8d0aWntjjtHwbwCU4= X-Gm-Gg: ASbGncv3km50brIYPxode7hQCj+qCtycUMA5DJ8B8c0GLmte93vDJvo9JNPTjV4Ln/6 2bsx129+xHro5tWbCwtRwf80wqjSSysNj9sqCsQMnxNBAsQrdI3xqmUz4DS+I7Hpa5Mtse8EAjU u196Nlwk6eexEiliNFZFJqUUIDFERxJjTcBCyjPAHvQaKy72KJ/sfdu13Szj/j2PhQInSuzQTAo 478+M28KnmO1t92ImdnhWqGiPJDGNccfuBRyHuFz5iC9pkZscY7zLbNGnDIaA7n0oAstiGXI275 e3uxMhKrVxJOhHi2v77vOELWACPiJn5J4A== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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 @@ */ #include +#include #include #include #include @@ -24,16 +25,14 @@ static int ad5592r_gpio_get(struct gpio_chip *chip, unsigned offset) { struct ad5592r_state *st = gpiochip_get_data(chip); int ret = 0; - u8 val; + u8 val = 0; - mutex_lock(&st->gpio_lock); - - if (st->gpio_out & BIT(offset)) - val = st->gpio_val; - else - ret = st->ops->gpio_read(st, &val); - - mutex_unlock(&st->gpio_lock); + scoped_guard(mutex, &st->gpio_lock) { + if (st->gpio_out & BIT(offset)) + val = st->gpio_val; + else + ret = st->ops->gpio_read(st, &val); + } if (ret < 0) return ret; @@ -45,7 +44,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct ad5592r_state *st = gpiochip_get_data(chip); - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); if (value) st->gpio_val |= BIT(offset); @@ -53,8 +52,6 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) st->gpio_val &= ~BIT(offset); st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); - - mutex_unlock(&st->gpio_lock); } static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -62,21 +59,16 @@ static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) struct ad5592r_state *st = gpiochip_get_data(chip); int ret; - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); st->gpio_out &= ~BIT(offset); st->gpio_in |= BIT(offset); ret = st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; - ret = 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); } 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 = gpiochip_get_data(chip); int ret; - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); if (value) st->gpio_val |= BIT(offset); @@ -97,18 +89,13 @@ static int ad5592r_gpio_direction_output(struct gpio_chip *chip, ret = st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret < 0) - goto err_unlock; + return ret; ret = st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; - ret = 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); } 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); } udelay(250); @@ -249,46 +235,44 @@ static int ad5592r_set_channel_modes(struct ad5592r_state *st) } } - mutex_lock(&st->lock); + guard(mutex)(&st->lock); /* Pull down unused pins to GND */ ret = ops->reg_write(st, AD5592R_REG_PULLDOWN, pulldown); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_TRISTATE, tristate); if (ret) - goto err_unlock; + return ret; /* Configure pins that we use */ ret = ops->reg_write(st, AD5592R_REG_DAC_EN, dac); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_ADC_EN, adc); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); if (ret) - goto err_unlock; + return ret; /* Verify that we can read back at least one register */ ret = ops->reg_read(st, AD5592R_REG_ADC_EN, &read_back); if (!ret && (read_back & 0xff) != adc) - ret = -EIO; + return -EIO; -err_unlock: - mutex_unlock(&st->lock); - return ret; + return 0; } 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 = iio_priv(iio_dev); - int ret; + int ret = 0; 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; - mutex_lock(&st->lock); - ret = st->ops->write_dac(st, chan->channel, val); - if (!ret) - st->cached_dac[chan->channel] = val; - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) { + ret = st->ops->write_dac(st, chan->channel, val); + if (!ret) + st->cached_dac[chan->channel] = val; + } return ret; case IIO_CHAN_INFO_SCALE: if (chan->type == IIO_VOLTAGE) { @@ -335,7 +319,7 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, else return -EINVAL; - mutex_lock(&st->lock); + guard(mutex)(&st->lock); ret = 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; } - ret = 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 = iio_priv(iio_dev); - u16 read_val; - int ret, mult; + u16 read_val = 0; + int ret = 0, mult = 0; switch (m) { case IIO_CHAN_INFO_RAW: if (!chan->output) { - mutex_lock(&st->lock); - ret = st->ops->read_adc(st, chan->channel, &read_val); - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + ret = st->ops->read_adc(st, chan->channel, + &read_val); if (ret) return ret; @@ -400,9 +381,8 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, read_val &= GENMASK(11, 0); } else { - mutex_lock(&st->lock); - read_val = st->cached_dac[chan->channel]; - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + read_val = st->cached_dac[chan->channel]; } 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; } - mutex_lock(&st->lock); - - if (chan->output) - mult = !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_DAC_RANGE); - else - mult = !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_ADC_RANGE); - - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) { + if (chan->output) + mult = !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_DAC_RANGE); + else + mult = !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_ADC_RANGE); + } *val *= ++mult; @@ -439,15 +417,13 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, case IIO_CHAN_INFO_OFFSET: ret = ad5592r_get_vref(st); - mutex_lock(&st->lock); + guard(mutex)(&st->lock); if (st->cached_gp_ctrl & AD5592R_REG_CTRL_ADC_RANGE) *val = (-34365 * 25) / ret; else *val = (-75365 * 25) / ret; - mutex_unlock(&st->lock); - return IIO_VAL_INT; default: return -EINVAL; From patchwork Wed Apr 9 08:40:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879872 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 623D925D536 for ; Wed, 9 Apr 2025 08:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188053; cv=none; b=szryPRZY3vv6pVBKKf2CZfaHL+veCrz+Q65+IZN4zwfNvc8C2XAkqq2S5htnQf++9VJ0s/HLwddeZ/9M+8JNsBhjdEO1foiylcOcz/aoYcwJ2uGQvZFyiXz6MZ5aOxhH67NXncU9vKOBf1uGHsdE+pRBSXwZqQsNCOSp0ZSPxto= 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.46 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-f46.google.com with SMTP id 5b1f17b1804b1-43d2d952eb1so43331345e9.1 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=ualsT8wwktvEiS9xZCDOEn5vha5G/nxFVSzMTDRZ1m6HQtrrs8mjwurEPXU+71n7W6 B19Jdb6wdVMKdwDoriN5o64JIEaVs276RGdA5HJY3SLK2HnnugLxjUqZu/6LmZCILLh4 lJQwO8cYuuHVNyz5GEMVrXXGAYAS/1sc5GJ1TP778YLY9hk+v05Bt6VmbWhH2uVroJrM 1SlNmSIiRkUA4sYdaq7jb+zi0tYtabjvgfoUt60eZYQ0fFmfjKlfpxF15qhRuIMxqHBz LrnJz+I0Ld1R+klwiaklDjHzE3eeBfNZJW5eoVfIEZyoEmaYSh+POWJSRL7qSeMjWdlR HlEg== X-Forwarded-Encrypted: i=1; AJvYcCXC5a4icgrB3mpxt9gkRDCUntInPyz0Oy+i6X2cPYZr/jgXvO74Vfx/j3bibiZKjE+QDHYdXglKP1Xe@vger.kernel.org X-Gm-Message-State: AOJu0Yyc+HwkDUYZy5d42pbu9LX61WBUwHMuvp2w/aWTPeYC57cYYtYS IB3vZXGrd4HvoAqFuU4FepPg2sVmvH/B1dVFLGJChynntvjbMC1SzT+wWN5Ly64= X-Gm-Gg: ASbGncsDNldtfdU60DZFEqOUy4D4Jg55X1c6wCd7rIxY26onhl3jK4cblyrBkesMIMY 9ON7J0z6zXwzpp+JgfBn9GEG63epLdECUg9dyTAgC0z4mtz1E4r4OhqrgJlzQf++Xp5nx8fMlz8 pk6CO813NK3h1Yh/laOPIH2gxxSyHkuN822Gtg8pqP3y0TCYq4RZDF+kNa9YfMKOd0hrbEBEmFg JCv7wXdygOQ649mjJzuxyJiDeVAcZL3QRkMTk/1ha54X+HwxlVHZ3Rbhp6XQCeRR1Owx5PcGk1E IadB1aiK2hktx6Rk7uz5UP4Mw08NgQH5MA== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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, unsigned offset) return !!(val & BIT(offset)); } -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 = gpiochip_get_data(chip); @@ -51,7 +52,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) else st->gpio_val &= ~BIT(offset); - 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); } static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -128,7 +129,7 @@ static int ad5592r_gpio_init(struct ad5592r_state *st) st->gpiochip.direction_input = ad5592r_gpio_direction_input; st->gpiochip.direction_output = ad5592r_gpio_direction_output; st->gpiochip.get = ad5592r_gpio_get; - st->gpiochip.set = ad5592r_gpio_set; + st->gpiochip.set_rv = ad5592r_gpio_set; st->gpiochip.request = ad5592r_gpio_request; st->gpiochip.owner = THIS_MODULE; st->gpiochip.names = ad5592r_gpio_names; From patchwork Wed Apr 9 08:40:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879871 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 58B8025D8F0 for ; Wed, 9 Apr 2025 08:40:52 +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=1744188055; cv=none; b=nirqLLcQrbaExdZQFDJvGEBWh4Vg86MUBYfI3Kz0fkB7ruil9dLBEfC++OcoTTjiUgjjj4Yi5wQQay/7+S27VPn21zYgRMcBqbkmB8Hj9j0z07oJHUU7mAWyi5buhAe4Nxv1PbOV6jScvsXl2VudxKKz+LRrvk2RcVb5ISJzTog= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188055; c=relaxed/simple; bh=JcjRt3IWWdiCtJbwqzp1v4b47hd64XOA+ew6annId/8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m2noFV0OX4NQ/vKf4PKyKJsFSe0I2P3xnFUVS3RbxSV3VExCJJALCtA35SbKqoQkSojDNTjQTN01Ral3fcHAddPfs+A98K5JYjh1k6u68fAyNlx0xFWoYqblEljuYqdn9z+kua8Dea5uYe4Lp90BFD9NHspEFU3TjeXkPIj2aH4= 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.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="vqaahOy5" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43cf257158fso45354075e9.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=bS28Ah9NMHahmuzm4IUBLPql1dqfctGaTX8ccW+67N+Ca1WEnn6ZEKeAvdcq8SfXbj a8rsp49UtwX9XmYczsChmwu3M3txRyf09KFUPC+RcRY2RjNj6M8mMr2IIldD3hPYBIio DeQl7Ui8rYGhUymQJO2qUsAZ3NkSo9mp65Ntzns8zsyVEDgAuK+QbAhxCw++9f8pNcly diEvSY+bchIOSQaK53xzgoO72oMjBfFsTOX1Ur5eRBbVnZbMfkEMm7xQ2XldfYWdrVHC k96K1wSt6YQ5/D8oip+t7cEFej4GAZ6AX6tbzRq3uKDziUJWvSHR6VrmrtQ8WtI+CY7N dBaQ== X-Forwarded-Encrypted: i=1; AJvYcCXQX6ZSdnwLirHu9qRMWL8NusBp4tB+FvyUNkHtj/hgb55sD8y3Mt9ZA6C7KSNKObrVb9xhn422wuNZ@vger.kernel.org X-Gm-Message-State: AOJu0Yy855ZYXfotiwtyWDe3LgFGDT9BelKiye/2PAm8N+9/3yAkRdG0 LCRUQpjYeWVi95k4dAiIWC67oyK0X/1ezPKtp2yHEGM7PFAGhcn5cFaBBM6kdpw= X-Gm-Gg: ASbGnctPQD+QOOLSR6Qvnxie2KLfGvehERXMWiqOXybB2uvhdydGsiiyVbekqrv6+zq JVBPscNU69FEZigJDtLkLyw5tH9O/N8gWBYJhkKTfOD9RY5KOCYbCqxOD96F9lBl7Sx19OBuoO7 wOm06gKaFlUfpPQHlY7CYmyfGjJar5MM5MQRIZGSqNuCgnoTZ+LU6r2Ksw9Fv8FX7BET3SwBm1C y8V3MAWrRq2EfPYEKGBuC5U3Q8FfC8VPx3PobSCrYV0yZizk7ZkdeRqcnZlfuLywrGY2dxjQ+Qy 4SaCf7nUUw/EsO3r8tP0Zxv/4jIAxNfgVA== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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 = { .update_scan_mode = ti_ads7950_update_scan_mode, }; -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 = gpiochip_get_data(chip); + int ret; mutex_lock(&st->slock); @@ -416,9 +417,11 @@ static void ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, st->cmd_settings_bitmask &= ~BIT(offset); st->single_tx = TI_ADS7950_MAN_CMD_SETTINGS(st); - spi_sync(st->spi, &st->scan_single_msg); + ret = spi_sync(st->spi, &st->scan_single_msg); mutex_unlock(&st->slock); + + return ret; } 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 = ti_ads7950_set(chip, offset, value); + if (ret) + return ret; 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 = ti_ads7950_direction_input; st->chip.direction_output = ti_ads7950_direction_output; st->chip.get = ti_ads7950_get; - st->chip.set = ti_ads7950_set; + st->chip.set_rv = ti_ads7950_set; ret = gpiochip_add_data(&st->chip, st); if (ret) { From patchwork Wed Apr 9 08:40:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879429 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 45AE025D8E8 for ; Wed, 9 Apr 2025 08:40:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188055; cv=none; b=EeWYEMYinXnXAVL6l+JXeXwPsI1lkpAnB1GuXFbs1Yk6PezVtM5HMt9ia6RYC5dRHN4HRcBjBqegckn+P+qaK+njrBjI6VzbqSwiCBRrB0u6KUoktd0ueJZ3p8UCSTryFE6bjwVAR2ETbur1s33YAsCVUWyTqm7etP/0p9eTB/4= 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.44 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-f44.google.com with SMTP id 5b1f17b1804b1-43cfe574976so44322255e9.1 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=D2JMTpeR1ym2N6c17kN4OFLlB7kblrzIGQGNsFg7QTF09HoUMBy5p0pkhhiBn/sn0G nagqL91Ko5p79fsVqodHZ5+TrA93EXvkTdZYr9VZBVaSWWp+z2YpBxR4h9QB7Pe0Hx7R nr5OSiga2oBABRjpNdm+tqpigM/JrkHOu7T5isxuM3mD3CQ4LG/jbQm3EThF7UrV3+9r vb1HHG2/uZM1S/ursTQNvayjRVm9jYwrBs5uuFT2LIhfoOZkX4kZGuSAPQhjEGkA30GY iruyQMqevdlArPVwCI+dhTnXJIK0SrQd9Y+f+6C7k/BPNhclwLivZjmr1X+MGXLDY/TU bZhA== X-Forwarded-Encrypted: i=1; AJvYcCVlC00Ajf5BhkHZLtk04Bn5jxH6XxkTtaUWx+y7sHLv2ZvpjR8ZdLOG/IaKhiFmvt4k7PJBfalgTaMU@vger.kernel.org X-Gm-Message-State: AOJu0YyujBQzLhATrnNaRn7ewPWIRBtMdH88ka6rrPQnKpntJJEA8nY+ 0WIBvsR5bwbS9Pcz7/ZR5tIe22YTPSzoOTCVfy2r4wO2mbsbHLvDwWcedB1D7eU= X-Gm-Gg: ASbGnctqBhiz9pZ/EEc8r1ffZJ9c+VGADCmO7LJIl/j8R+scoCrGP9CmtGvC0ilhnfe XpVomieMwAqCXdFdkwpdD++etvcntiIsDO+r7sjmdMu5s5BMItx2nITT/GvmZRzkDo+LguT3btj I/MrX7BEjjJvrVgHCzSduRm1jZ3AFDAN5MzLJ+md7mvLLI372y07crCMCDMippQ70F7b074iIfl hbLgC4VNkovGXlPj0TZ0jmUSe+IppCyGOq3edyS9xmcpvqSVCCxmnjGUjqvHUKL7dx9yT/pTjyG dUBXP0N8q8NEeIsJ0MBK4Xviz/FEYstdgg== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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; } -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 = gpiochip_get_data(gc); unsigned int mask = FIELD_PREP(AD4130_IO_CONTROL_GPIO_DATA_MASK, BIT(offset)); - 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); } 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 = true; st->gc.init_valid_mask = ad4130_gpio_init_valid_mask; st->gc.get_direction = ad4130_gpio_get_direction; - st->gc.set = ad4130_gpio_set; + st->gc.set_rv = ad4130_gpio_set; ret = devm_gpiochip_add_data(dev, &st->gc, st); if (ret) From patchwork Wed Apr 9 08:40:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879428 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 4237825D904 for ; Wed, 9 Apr 2025 08:40:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188056; cv=none; b=HlO7JGwzPxMKrzSTfM/fIOwGDWJz7W1BUpJxzvM6LNb1/1b9RR7EpCYp7eTpnayDclIzVubYDj8YClvX6L3KzrDDS4kgXlrFSNBjWEuGSDDw22qxw2e6OLUococZUEdrEI5EyG/yPxfXhl+XQ3CgTb9UMbYFPMmEYPxyfM3wI28= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188056; c=relaxed/simple; bh=pPqlQo3DRiKCcYkAQJQaHw1DlE2TLJ3LSJd2MBRf7n8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZBQ+LN+3Joc6mtDy9hFfpPSVSt1+P5QiEDzyudIE3LPb12e7aZhNwOtOsvWLUFU73Xt2RttvfXz5GA+o/EudJjPkfjLoK0ZB3mA7zjtri15Js7gLoI9b0dJKPGLJXQKAIq5yB0uh6eLsiGDFd+ZxUbuCB09G6VoDDaKN8Icf6Vc= 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.43 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-f43.google.com with SMTP id 5b1f17b1804b1-43d04ea9d9aso31100085e9.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=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=RKIHq+je7pmyHR1NFpg9IHzJJGXgSw3RyiDaUFwbDIUVGWNqOsKV8o0195v3sS39Up HYi2sUBENlqis7T0kFK0sVYACfKGnq2YzlSBHCZJOBr/hphEkxDBRos9cIn7GSkebFly 3pOQxLhVQMejxJ+u2Jd0J4QqhSPyuic4DYwyr3rVk5Y2yGuuhPUhrtCMHwfxh4zalhc4 WE2uHlD25ope+8AqV6/BCQeKxWRHhx4EetlRNnFOd7C9M6z2XPi1xoufo5eZmXr5Cl3Z jazoAE4jbu9EsbdzmE9H8jTS4K9R35uszkPuQUcJbTWX2iQlDNMEd+anbG269En0uA9n dyGw== X-Forwarded-Encrypted: i=1; AJvYcCUVEOl3LBz/4ukFNBQaQMZ7PFYQ0hk5CzWkTeqQu9Ns44DQ027Ck+Xq8dinuLZhN/5b4DsGmmnUpEPU@vger.kernel.org X-Gm-Message-State: AOJu0YxKrAhxOZaQ6RlPCzFSJVa/kEeyfldRflan96/Cmj9pGX4zYoaq WkstMr2NKu7GESsrDvyvuMOZZDV5CkqcTvvErJ4EWlfdkQiO2Lkkn56ufx/QAsM= X-Gm-Gg: ASbGncvPi2BXecsNgHpYTi1ynHw5n78kLrNsgJDFNa1p9UFqSCAahe1jZxwqbmrRPUD fr1uvP7FUeQAUUTZmoWY40rIPPWR6w7dMiOxh3ZQ2/DL1ls0ZsCmDEJb9jKlC6/BzL2xwsZR9SE r079bER3V0Rs+vN+N+cRHSvpAcPemolsQoKNxBNb+W6IcG+V94ZMWcmjXsLNSXTTlcysr1b72tH xTc7yhb7YoN/YZLzzeQFOedccdvZ6jKBeJyueL58sqvEBvw9vTW0kRDPEbv3OEs52RkakrpUcGN 530hm5DvaZe2Ptg/55dNl52sPwAbxcP9fw== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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 ad74413r_state *st, } -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 = gpiochip_get_data(chip); unsigned int real_offset = st->gpo_gpio_offsets[offset]; @@ -286,16 +286,16 @@ static void ad74413r_gpio_set(struct gpio_chip *chip, ret = ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC); if (ret) - return; + return ret; - 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); } -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 = gpiochip_get_data(chip); unsigned long real_mask = 0; @@ -309,15 +309,15 @@ static void ad74413r_gpio_set_multiple(struct gpio_chip *chip, ret = ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC_PARALLEL); if (ret) - return; + return ret; real_mask |= BIT(real_offset); if (*bits & offset) real_bits |= BIT(real_offset); } - 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); } 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 = st->num_gpo_gpios; st->gpo_gpiochip.parent = st->dev; st->gpo_gpiochip.can_sleep = true; - st->gpo_gpiochip.set = ad74413r_gpio_set; - st->gpo_gpiochip.set_multiple = ad74413r_gpio_set_multiple; + st->gpo_gpiochip.set_rv = ad74413r_gpio_set; + st->gpo_gpiochip.set_multiple_rv = ad74413r_gpio_set_multiple; st->gpo_gpiochip.set_config = ad74413r_gpio_set_gpo_config; st->gpo_gpiochip.get_direction = ad74413r_gpio_get_gpo_direction; From patchwork Wed Apr 9 08:40:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879870 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 6CB2425C70E for ; Wed, 9 Apr 2025 08:40:55 +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=1744188057; cv=none; b=Yz9Lyh4KxjjdgyWFnHFIPGxqJc3uyrGV/XcsBPMaQildchDnx2dkyxefe7XuXTqA6t9HxaiyggdLOg8DJRqBbvdFPiQOQGChTjJYDtEfdirFl92LcTQedqKNeMyp/ZFrAzlOlNrS/oPFcWG/NcKFfT4N6L7TcwxKJ4i1RMB4/lA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744188057; c=relaxed/simple; bh=5kdF5oVUy/yps6X9BImufh8OuKxxdQ4BjJ7Qv2H6pxc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EEyGKKQg1JUxC1NKK+OootMzg0BQ6Uu4B6Pm3+xyugzMus6kJkYLRUbA6Vr4pjl9sFq6aldLG9lbJnuJxuwkgM/rz52omUPXR/OXR9mHjvebYkpNgCMA7yufAVBDBYjOPtQtAp3pFrgB5loR4LokIUKIE/JWr2zcWTO/mEVLgXM= 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.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="a7DwWriq" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43cfb6e9031so58493585e9.0 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=PKB4nk0YokW/l4PmHt47wTgE+FMDvHqqHopPukqD7UdBAuIUfF2bYgh6MOS4smMQxB jA1YgoqL7U+NJAcIemNmFYW+cC8yKpSSYFXCO5GRI7PfKZ5bGkmASjwZ+b22NgYdElWM AWznZmXaOtRJmMxxC9XKG6jp8R91pkMZd872TY88fC9UTfuPmS5/k2Kg7KMwv51yxDfW RbTLZdy/yNSy+gZQMZ4GNwm5PFdZ7/WKH26FtAjFD4CBE+L8KWCShYVjsVSXR9Xdy3zi 2sImZVV3XV0RXiXUI3yL1s6K+DQ+NMBMM/QYMwbPTj4t9EIwI59//6I3veupC7lmIszv oL/A== X-Forwarded-Encrypted: i=1; AJvYcCXqvY7v1kcg2RbRQAV0YU/zCa+uZVKJ3/5OCVbu00X1EyJBS0ZUL3DbcHt+hCuXdOLRfYCm4Bpydas/@vger.kernel.org X-Gm-Message-State: AOJu0YzSdA1y73r4IKLU1Zhm3svagxwwgf0OD3cvdE1ph1M1C3w+Upim VeTebUhTukC5DJ+Qx21y0wAyU/s2HmJvAxDf5z3me8A/lD7bGl8UwcHtagjTOW0= X-Gm-Gg: ASbGnctAXgixNesyMnzZcnHRp68b4rRm6JhaiU9vkjFUxPErcjVyjyar5tfahVGKjhZ 4ZC3XaXTQYyuGdMRVV/ipiVWFBd8JNrK7vkEuMSFjJY8iUVw70QTH1+PE5hAah5WHj4UDgij/0F K7obZis7uA32S1EdBXtPyckZPs3S8CtEhCQAb+iRzr2IU7Xn6pmTD8uQ9jnZQJ1HxCQgfiFrMLr Oy3cDo2hkqzC2mVmSkyxjxQ7xfyxciIRtcvp4sOIbvKBqJVgyzaGuC4Fcw+5tJBMLm7ZZrQ9S/j QLf3gEnRhSSvBXi1kF+iApCxCGz4/HZV1w== 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-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- 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, unsigned int offset) return FIELD_GET(AD74115_GPIO_CONFIG_GPI_DATA, val); } -static void ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) +static int ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) { struct ad74115_state *st = gpiochip_get_data(gc); - struct device *dev = &st->spi->dev; - int ret; - ret = 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)); } static int ad74115_set_comp_debounce(struct ad74115_state *st, unsigned int val) @@ -1580,7 +1578,7 @@ static int ad74115_setup_gpio_chip(struct ad74115_state *st) .direction_input = ad74115_gpio_direction_input, .direction_output = ad74115_gpio_direction_output, .get = ad74115_gpio_get, - .set = ad74115_gpio_set, + .set_rv = ad74115_gpio_set, }; return devm_gpiochip_add_data(dev, &st->gc, st);