From patchwork Thu Feb 20 09:56:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866909 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 0B5F21F03EE for ; Thu, 20 Feb 2025 09:57:17 +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=1740045439; cv=none; b=qicVGukSdmZCNCrCMdTi0RTGYQSNuMRvbV+UYmZr0uqdN1bGPI7usqEs06o8y/v7Q8Fs439LLFOJC6eNyc4fYeUadnyhBYUW189SRu3cuFZljAS58UPqdyk1jsRtf7xwWgC5NUGJIbBr1pqazHF4IE593MCHnoIbWPeFh+ZlGV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045439; c=relaxed/simple; bh=/gqeqRwMs8CevwwaRvu7rMfOHz8FGAeaeJay3AIimak=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UM4Bn1SG1YL5s53AXxfZF9qd5fxbx3EW2DUbiE8PJrjvJXKceavd1ESgA9/fXD1AgUUihxZ3WLBhQ90pNTaPTXfAyedFuhGrO7hW1qYi/SXXKUnEE3y108CnGj0ihG7Ck5TF9/tQKUTEyXCxT+yXbiyQPMmDMOS3Qcj14wDHVig= 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=mNqV0fLu; 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="mNqV0fLu" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4399deda4bfso4564945e9.0 for ; Thu, 20 Feb 2025 01:57:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045436; x=1740650236; 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=ePE6aVSyq82nNiteS0eDm4Murw6GeKSP9YRuA1+AOq4=; b=mNqV0fLuVu2L5+QXJoh2GuOOj6dnK1k0W/KI80AeBRCN7EfV/v29KcZzC7aS3NGi5g 02GsEZLzfR1cDUH7vFqFyDIl/8o49E928FwZVOorLuc8KVVfJDifD9UFqQigN60P4hDZ J12zXzOhcUhKAUoaqbiWO9amXXxMy+uRJe7IpIhmt/Vg66yKdYlpYUiwWgFqJZi6LxJA oWyis+a8oqroRe7E0VaP1JCvnyRINAHmGHrAbgty0Cm3pMYIvsfZI5cds3k+bb6M6loQ nrH0mhrweh1v+z7SlIyc7HukEx2rLnNYpo0e3iTGSc18jZP2CkouI3qZ0EszG7JgQcYs LNgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045436; x=1740650236; 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=ePE6aVSyq82nNiteS0eDm4Murw6GeKSP9YRuA1+AOq4=; b=sPToKWhOP1cL2qQRh/r5tFvv3+FWsIB8rVAQqL9Oyi0p5A804x3LkgKDEqaWEnEq8/ unVXLliYvtTHa2nI12Oaw2FBtN6QdAsnPsYqUhI8PJZfy9LRJJ2L9OAHskq4t49eeRq0 y9URKG/RKhLiFLoimxP/87FDc3lEBeK69UWIFbNydtX/bk/5aV3V4DVnKa8A3rL8Eap+ luwR0ye04Sdz7+USEwLi4XPsk8bf1sJS1m0VboGNrUCdprYAccZa/d1aC9jDmYi3Mexi pznsvzH4tjNgQPzCXi2FdLiCtvYIM2FA0CJ6IY5+ieQgl1SdiMISrVayMDYHNEsJcYyy hYSw== X-Gm-Message-State: AOJu0YxemWFWgNoIPzDxfSk62cXLncBm/hkOP0Ci++u8PSxcNkW05Rxb j60FdR5+gJFSL/1r3j47A1MpIwB7KW1OSVWUYU77HatblDtYIjfWIl8+JR7USQc= X-Gm-Gg: ASbGncszC5PfTcad8vViNA0a2slJNvD0LDQNV9a4XMK8gSq3GWakXJP68bGUhq/2Vvm juiCAN3b0T2OapAx1zh03MEiYCa4fmWA8NT/uyhv35Hr7gIMpf1atK4jWJcTUoWNuSQlavtu4p3 CsAiihNQJKcaaHSRxjFoWdfaldWHZWyKDCgF8v9FD2dcO1nnke9Sd56c/1aiAUa2KT4oWk1Y/hk MPM5Z2SLe7x3Y3bMvge7OOO9IajWz9KMUdAVb908T3Wr8ZkwjJXIX6p8ED9XMTT3iO4stxRyJqW eSUlISM= X-Google-Smtp-Source: AGHT+IEJ18E0znCg/W6pI6SBZ6POwzntvKs5Wddj1jzrAx7EMhapZSXX+0+m/ezVaZFBdWbuk2I/Mg== X-Received: by 2002:a05:6000:b07:b0:38f:2a5e:f169 with SMTP id ffacd0b85a97d-38f651405d3mr1047722f8f.37.1740045436112; Thu, 20 Feb 2025 01:57:16 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:15 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:56:58 +0100 Subject: [PATCH v2 01/15] leds: aw200xx: don't use return with gpiod_set_value() variants Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-1-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski , Lee Jones , Pavel Machek , linux-leds@vger.kernel.org, kernel test robot X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1051; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=PIuGkhnXNIukoW+JQ2UdGjN/QTq1yPTYeOxQX3xtWd8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx2ZKtP4FP+4pU3UV9J1oA5xxYaJP4wFaj6s eKwF6do6XaJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8dgAKCRARpy6gFHHX ctGWEADaiKjypEdiDNeOeEm1nP8JwKq7Occ+KYMcJrlW2mkA6sC+tG3lFxgXKdHHkra8cMdvmeE yKalq+0h/rNSkpMUJhlg1TMVaFucMWJSqvZca28OccapHZu24j3I4l/+A9kapSZvlk8n9/kC6o8 N5AfP+VRR3Q+Zj4V5sq0NYLAuRHwQOx/oESmv8OFHwI5ihgB4rGXQh5Qhwp2JjitTiZDy8QAS6m frYj/XuUZXMo1yCr/uCgSgEyDvWe3vhZkRj48p+eivBPeibHsRXJaa9fTzutNFfdIfCna8TIZXJ g95pL2mCdWhrGWwIuj6jccIUSyV+twxjrXorYhRB4ZaDREF/hu1MD8mFRIp8PUxCk1T3Shhsdwj 3IEcpvxalJHy8mckvNeOpQGqoL6bphxTTQbz0hKJfelAdbdNkph5Yvy93r08vg+YM9AxGJqlqQM TYOcyugVDZUc92iHjac5lV/rz5h2LjhYhDrCJ1ZE5rse9uhAoLfMpfWHLiIohS1N43NM5xr+atb ILkzVHghd/xo6/q40EF4GOhyVmDR2Xvenw+T4rH4zad2I3KlyVEbuNxwKFIc9kkTIEEySJVXARm DmO75+rvkfLQb5t648rPOARandd31y2oTkZE3B6z+Mi3r2sR2TPuLVSwoMaxf5LMTvA2ds/UyhC HngwkMA5k2QKIBw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski While gpiod_set_value() currently returns void, it will soon be converted to return an integer instead. Don't do `return gpiod_set...`. Cc: Lee Jones Cc: Pavel Machek Cc: linux-leds@vger.kernel.org Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202502121512.CmoMg9Q7-lkp@intel.com/ Signed-off-by: Bartosz Golaszewski --- drivers/leds/leds-aw200xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/leds/leds-aw200xx.c b/drivers/leds/leds-aw200xx.c index 08cca128458c..fe223d363a5d 100644 --- a/drivers/leds/leds-aw200xx.c +++ b/drivers/leds/leds-aw200xx.c @@ -379,7 +379,7 @@ static void aw200xx_enable(const struct aw200xx *const chip) static void aw200xx_disable(const struct aw200xx *const chip) { - return gpiod_set_value_cansleep(chip->hwen, 0); + gpiod_set_value_cansleep(chip->hwen, 0); } static int aw200xx_probe_get_display_rows(struct device *dev, From patchwork Thu Feb 20 09:56:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866908 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (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 EA0101EC016 for ; Thu, 20 Feb 2025 09:57:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045441; cv=none; b=Bo7/o5yuZp8utp04PlhEqqwq/8glqG1gpCDw3PSyBOHd1zWdjiY8NYsFHjIMl0ZO2rA/xGE6MIaQwggExzvjrfs8eJJ0ONulSccqgkTzodtP6YN7P09fijWb/VSXdikwZdmmgJLVBm4PzbizncW8vNaMHPP4rakfjr/D8aVnHa0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045441; c=relaxed/simple; bh=iO/ZbpMvZ02JRqCkfPBpteZT3vWeK7OdysnNM0BDtZQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EvoP+6QwTyzDDtCOp1/3r/uNq2XLFVRgzwM7xeCxVbyDdZukuSjtbmLA0v/M57flq9QGOgzWMjw5DCOrY1Kfo4G8qieCVcX4yh1tyrOifAgCUR3afJC4jt3QKic/WEeApnykB7EEBOs8vrDBO5Y74E5lBimCw3t8Ptot44o2w1k= 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=LZE7nVQs; arc=none smtp.client-ip=209.85.221.42 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="LZE7nVQs" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-38f488f3161so320811f8f.3 for ; Thu, 20 Feb 2025 01:57:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045437; x=1740650237; 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=iAbjZEsyovWHnhnuIRi16DbT8cLgW12JjjHyyk7tJPo=; b=LZE7nVQs7IFhPcSCZ0CZeEm8zasfDud0HXRQVRKFoZWlrp4qcE6ilLtuLoz5EX+8JZ 8gz/VZ+rOXZSMTQvEZOaV/nI2iUjQunYRJN6KA0YGbPnklEwIuWNIO72za8iiZ/ayyXd dq4OGQPyRFjNKn94qOXOo2Fq2TKFN1Jfs5ZSjJcReCzqR998AfSUFPUix9MD0GWnt3wC BqwApHG2ZWHtHUwdF2SfD+KD+sctgXeQepO3/1M7rBZoUC7ur1Pok9hPlnXkTZ6h87wU 2UNfYtjb92VQK3MDc3FG//Il2B9OvpLrncF3nM3AlbwU7tU+Pg1EMVViHl5ZITgGCfvk Xlvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045437; x=1740650237; 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=iAbjZEsyovWHnhnuIRi16DbT8cLgW12JjjHyyk7tJPo=; b=WiOTOWrEzEBkQrgT5DzicA4ezAEAIt64P4cC6U1FOrKyCrSekTdlm4l3KymwnuI09p DnlO1x1BBTKBSsiHrAZ1v48x6NSzUgb8velmPhk+XSUvJXeWgr1PGJnTn41abnYmP1sC XyFt1e9expTQMZIyPzVtohPNSWXOhXuecewZUbcGqSL+5gp38aITpobnu1UAn0Io2bZT 8sysQETb8nd1G2Vtv+PHxT0pq8xzLQGBd+trHN6WGKcSI7XBEYOyXcUNf7G01M68v7C1 pGZjqy96rmqYOoYWC2C7BuXO782OuarBBL5nTD8Q9XIa8EWicBG6ThFTTrP50daq6rzn CYcw== X-Gm-Message-State: AOJu0Yz+1JWJfLGhl/sROVxDiJtYyDFXKDWmAIFiI5VLaIP9xjWn67wO CURWuAEc/MFFza7TFxx/bcgL4mR8UsvYUQrKeaEGHcgrHnEXJNXVEpWEyE7q87Y= X-Gm-Gg: ASbGncvSrQNNRMh4fFjFy+DdE/D8tBVOoLpINpJFW/HaxppNgoc1diEe6aEnpnuyZje zCpESVe4TynudoGmyzTFJgdAjoXGz4dLGGm9lDOVIiW5g3bsJ4wQ/Hvtj4Gblk6Y/f6FtMiKV1G fM3cBOy5IWB7LCo5S+QADEp6UW17Gb1mB1OAohK9UXC9z9CSWS1tQv33bizfowzQ+aL5UIeK3D7 YCfPN8KLp776R4z2rL368mGZM3X+RAiCWJWPMdQgs9m4TAIeaPyjuhvogeMrBLIYPAuTSMMVdsD Qzu8Zw4= X-Google-Smtp-Source: AGHT+IG5BbyoigVPB4H90q685mzj9qEeNBW2m9Kp/DNWxK7ykBjIOJ5A2hfa/IcK//xPSW2E7ZnkZQ== X-Received: by 2002:adf:e8d2:0:b0:38d:d603:ff46 with SMTP id ffacd0b85a97d-38f33f1c86fmr15011096f8f.14.1740045437112; Thu, 20 Feb 2025 01:57:17 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:16 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:56:59 +0100 Subject: [PATCH v2 02/15] gpiolib: make value setters have return values Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-2-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=11632; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=gHQNRRs7OqLd+yRQPCZEx3EYSJvoT3gylIXinac1eso=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx2XKvoHEC22D24BWdlPEFovVL26UxJ5fipn kNJXttemTWJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8dgAKCRARpy6gFHHX cooHEADGQUNaICr47kZlYSbFnf1TF9rYgWpKy3wu9evpIF2GrZWUNoF59nooKLAyRKNf/WnaZ4N xN5xMQYrdHldE7NocU43m8UaC9k6QW0eVhs0TwW76PSK2jpPYMCUK/0dc4N0f617mrYSY3x4Hlo eZhZwpyclDrh98dlFa9GkVkb9aBE85fdOqDBtDdqzOuCM/90hbxT5Op1+UQyfwFSG82+xP3Wssf U9XrIzSFVprFb7SeHz4CF93a8CbRfHWLb2P2v39IOa5afUAE8w5xSp7N5WYqT5uINXj//Xm6QmL qMVB4xw+FoAWMdEC4CuH+BxD53CZzlO+QBGjVnR8cWfEpBwI/PNthZwmXmYuXQPsVNvJQ2UESjh opICYQ3aC2AY76Q21sbL+Qg9ixW1hd3F2R0MWw0HFIU5jZkk4HMftSOQjY0EQ7e+nR36vCU2QRf vp75fTlbq3h7AHgCQZLrpqNjeHeKNwjObC2+ciRHhmv6fGIooSpDallwNSZCmm/xuuv96bUcQW6 E9JhiK8wS5MGP4LsXtXWHXnHFWzQaX/osqc1tzsRQh1DXMckSeabVCvnviEwK6fDzORkIGzXmaR SPyKKGHWdTGRhot/mTfN8GEImkDlrkU3hJG5H01sYfG1rfW5mRl+7vW3f63RAVVsd8OmrFlGaQ9 dcjXjvmk/wqYudQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Change the in-kernel consumer interface for GPIOs: make all variants of value setters that don't have a return value, return a signed integer instead. That will allow these routines to indicate failures to callers. This doesn't change the implementation just yet, we'll do it in subsequent commits. We need to update the gpio-latch module as it passes the address of value setters as a function pointer argument and thus cares about its type. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-latch.c | 2 +- drivers/gpio/gpiolib.c | 53 ++++++++++++++++++++++++------------------- include/linux/gpio.h | 4 ++-- include/linux/gpio/consumer.h | 22 ++++++++++-------- 4 files changed, 46 insertions(+), 35 deletions(-) diff --git a/drivers/gpio/gpio-latch.c b/drivers/gpio/gpio-latch.c index 46cdfb08747a..64174ea7d008 100644 --- a/drivers/gpio/gpio-latch.c +++ b/drivers/gpio/gpio-latch.c @@ -73,7 +73,7 @@ static int gpio_latch_get_direction(struct gpio_chip *gc, unsigned int offset) } static void gpio_latch_set_unlocked(struct gpio_latch_priv *priv, - void (*set)(struct gpio_desc *desc, int value), + int (*set)(struct gpio_desc *desc, int value), unsigned int offset, bool val) { int latch = offset / priv->n_latched_gpios; diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 704452fd94bb..0a47fb38dd61 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -3405,13 +3405,13 @@ EXPORT_SYMBOL_GPL(gpiod_get_array_value); * @desc: gpio descriptor whose state need to be set. * @value: Non-zero for setting it HIGH otherwise it will set to LOW. */ -static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value) +static int gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value) { int ret = 0, offset = gpio_chip_hwgpio(desc); CLASS(gpio_chip_guard, guard)(desc); if (!guard.gc) - return; + return -ENODEV; if (value) { ret = guard.gc->direction_input(guard.gc, offset); @@ -3425,6 +3425,8 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value) gpiod_err(desc, "%s: Error in set_value for open drain err %d\n", __func__, ret); + + return ret; } /* @@ -3432,13 +3434,13 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value) * @desc: gpio descriptor whose state need to be set. * @value: Non-zero for setting it HIGH otherwise it will set to LOW. */ -static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value) +static int gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value) { int ret = 0, offset = gpio_chip_hwgpio(desc); CLASS(gpio_chip_guard, guard)(desc); if (!guard.gc) - return; + return -ENODEV; if (value) { ret = guard.gc->direction_output(guard.gc, offset, 1); @@ -3452,16 +3454,20 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value gpiod_err(desc, "%s: Error in set_value for open source err %d\n", __func__, ret); + + return ret; } -static void gpiod_set_raw_value_commit(struct gpio_desc *desc, bool value) +static int gpiod_set_raw_value_commit(struct gpio_desc *desc, bool value) { CLASS(gpio_chip_guard, guard)(desc); if (!guard.gc) - return; + return -ENODEV; trace_gpio_value(desc_to_gpio(desc), 0, value); guard.gc->set(guard.gc, gpio_chip_hwgpio(desc), value); + + return 0; } /* @@ -3619,12 +3625,12 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep, * This function can be called from contexts where we cannot sleep, and will * complain if the GPIO chip functions potentially sleep. */ -void gpiod_set_raw_value(struct gpio_desc *desc, int value) +int gpiod_set_raw_value(struct gpio_desc *desc, int value) { - VALIDATE_DESC_VOID(desc); + VALIDATE_DESC(desc); /* Should be using gpiod_set_raw_value_cansleep() */ WARN_ON(desc->gdev->can_sleep); - gpiod_set_raw_value_commit(desc, value); + return gpiod_set_raw_value_commit(desc, value); } EXPORT_SYMBOL_GPL(gpiod_set_raw_value); @@ -3637,16 +3643,17 @@ EXPORT_SYMBOL_GPL(gpiod_set_raw_value); * different semantic quirks like active low and open drain/source * handling. */ -static void gpiod_set_value_nocheck(struct gpio_desc *desc, int value) +static int gpiod_set_value_nocheck(struct gpio_desc *desc, int value) { if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) value = !value; + if (test_bit(FLAG_OPEN_DRAIN, &desc->flags)) - gpio_set_open_drain_value_commit(desc, value); + return gpio_set_open_drain_value_commit(desc, value); else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) - gpio_set_open_source_value_commit(desc, value); - else - gpiod_set_raw_value_commit(desc, value); + return gpio_set_open_source_value_commit(desc, value); + + return gpiod_set_raw_value_commit(desc, value); } /** @@ -3660,12 +3667,12 @@ static void gpiod_set_value_nocheck(struct gpio_desc *desc, int value) * This function can be called from contexts where we cannot sleep, and will * complain if the GPIO chip functions potentially sleep. */ -void gpiod_set_value(struct gpio_desc *desc, int value) +int gpiod_set_value(struct gpio_desc *desc, int value) { - VALIDATE_DESC_VOID(desc); + VALIDATE_DESC(desc); /* Should be using gpiod_set_value_cansleep() */ WARN_ON(desc->gdev->can_sleep); - gpiod_set_value_nocheck(desc, value); + return gpiod_set_value_nocheck(desc, value); } EXPORT_SYMBOL_GPL(gpiod_set_value); @@ -4084,11 +4091,11 @@ EXPORT_SYMBOL_GPL(gpiod_get_array_value_cansleep); * * This function is to be called from contexts that can sleep. */ -void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value) +int gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value) { might_sleep(); - VALIDATE_DESC_VOID(desc); - gpiod_set_raw_value_commit(desc, value); + VALIDATE_DESC(desc); + return gpiod_set_raw_value_commit(desc, value); } EXPORT_SYMBOL_GPL(gpiod_set_raw_value_cansleep); @@ -4102,11 +4109,11 @@ EXPORT_SYMBOL_GPL(gpiod_set_raw_value_cansleep); * * This function is to be called from contexts that can sleep. */ -void gpiod_set_value_cansleep(struct gpio_desc *desc, int value) +int gpiod_set_value_cansleep(struct gpio_desc *desc, int value) { might_sleep(); - VALIDATE_DESC_VOID(desc); - gpiod_set_value_nocheck(desc, value); + VALIDATE_DESC(desc); + return gpiod_set_value_nocheck(desc, value); } EXPORT_SYMBOL_GPL(gpiod_set_value_cansleep); diff --git a/include/linux/gpio.h b/include/linux/gpio.h index 6270150f4e29..c1ec62c11ed3 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h @@ -91,7 +91,7 @@ static inline int gpio_get_value_cansleep(unsigned gpio) } static inline void gpio_set_value_cansleep(unsigned gpio, int value) { - return gpiod_set_raw_value_cansleep(gpio_to_desc(gpio), value); + gpiod_set_raw_value_cansleep(gpio_to_desc(gpio), value); } static inline int gpio_get_value(unsigned gpio) @@ -100,7 +100,7 @@ static inline int gpio_get_value(unsigned gpio) } static inline void gpio_set_value(unsigned gpio, int value) { - return gpiod_set_raw_value(gpio_to_desc(gpio), value); + gpiod_set_raw_value(gpio_to_desc(gpio), value); } static inline int gpio_to_irq(unsigned gpio) diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h index 0b2b56199c36..51ab6728a998 100644 --- a/include/linux/gpio/consumer.h +++ b/include/linux/gpio/consumer.h @@ -121,7 +121,7 @@ int gpiod_get_array_value(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, unsigned long *value_bitmap); -void gpiod_set_value(struct gpio_desc *desc, int value); +int gpiod_set_value(struct gpio_desc *desc, int value); int gpiod_set_array_value(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, @@ -131,7 +131,7 @@ int gpiod_get_raw_array_value(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, unsigned long *value_bitmap); -void gpiod_set_raw_value(struct gpio_desc *desc, int value); +int gpiod_set_raw_value(struct gpio_desc *desc, int value); int gpiod_set_raw_array_value(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, @@ -143,7 +143,7 @@ int gpiod_get_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, unsigned long *value_bitmap); -void gpiod_set_value_cansleep(struct gpio_desc *desc, int value); +int gpiod_set_value_cansleep(struct gpio_desc *desc, int value); int gpiod_set_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, @@ -153,7 +153,7 @@ int gpiod_get_raw_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, unsigned long *value_bitmap); -void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value); +int gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value); int gpiod_set_raw_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, struct gpio_array *array_info, @@ -360,10 +360,11 @@ static inline int gpiod_get_array_value(unsigned int array_size, WARN_ON(desc_array); return 0; } -static inline void gpiod_set_value(struct gpio_desc *desc, int value) +static inline int gpiod_set_value(struct gpio_desc *desc, int value) { /* GPIO can never have been requested */ WARN_ON(desc); + return 0; } static inline int gpiod_set_array_value(unsigned int array_size, struct gpio_desc **desc_array, @@ -389,10 +390,11 @@ static inline int gpiod_get_raw_array_value(unsigned int array_size, WARN_ON(desc_array); return 0; } -static inline void gpiod_set_raw_value(struct gpio_desc *desc, int value) +static inline int gpiod_set_raw_value(struct gpio_desc *desc, int value) { /* GPIO can never have been requested */ WARN_ON(desc); + return 0; } static inline int gpiod_set_raw_array_value(unsigned int array_size, struct gpio_desc **desc_array, @@ -419,10 +421,11 @@ static inline int gpiod_get_array_value_cansleep(unsigned int array_size, WARN_ON(desc_array); return 0; } -static inline void gpiod_set_value_cansleep(struct gpio_desc *desc, int value) +static inline int gpiod_set_value_cansleep(struct gpio_desc *desc, int value) { /* GPIO can never have been requested */ WARN_ON(desc); + return 0; } static inline int gpiod_set_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, @@ -448,11 +451,12 @@ static inline int gpiod_get_raw_array_value_cansleep(unsigned int array_size, WARN_ON(desc_array); return 0; } -static inline void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, - int value) +static inline int gpiod_set_raw_value_cansleep(struct gpio_desc *desc, + int value) { /* GPIO can never have been requested */ WARN_ON(desc); + return 0; } static inline int gpiod_set_raw_array_value_cansleep(unsigned int array_size, struct gpio_desc **desc_array, From patchwork Thu Feb 20 09:57:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866906 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.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 BD0D21F0E2D for ; Thu, 20 Feb 2025 09:57:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045444; cv=none; b=CMQEV1GaJAtlETB5xYYHgzDZZVCqzqn9FgvLqhlz4y4DH+g21sc8Ih25A5bwfo9Z/V+AJsYNCrKAKlTF2Z0xrLd9X5OD6EGNKaql6CUKIPxzV+dLj5pZ6+CYXtPGLSlxeLa7KXdnQniDjk+XWbiYWNqfB5WALdl8yb/aJhtVxa4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045444; c=relaxed/simple; bh=RNJNJ+PGyKQWS40w6Hglqc3fY+OmbLq4bUxyI0fU5t4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nMevAYzMDHOC8aL3eO2u4Uz3643r6N3Bw9NhIZPS/Anxf1SkpxI2V+ysRfpHTwuGVYlI2JFGdnkE1YhBCtczTxcoKmSTYrZLY2cIU1OW8RQ+7HQeM44z/Q/vdAzPSrSzuS6dk+zgOghWhCZJ++7NOKqecpfb3UVz09z7HUUS6B0= 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=bcoSw5au; arc=none smtp.client-ip=209.85.221.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="bcoSw5au" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-38f1e8efef5so377839f8f.1 for ; Thu, 20 Feb 2025 01:57:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045439; x=1740650239; 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=oK7z7kPUwbiYR8aIbiZmR8S1YTF2yDqL+/19TJNz4qU=; b=bcoSw5aunqwrL6ZajzVcVRxUXc5NcSS2kvRpzZtQbfOgXtL9HYJrW5Vfau2I9LWJoi 67OP3og8RWFBii+bq3u3YyyF8BlQbQ/xEJk9oswHri9bd2/3U26LpP0lcQ/GNIN+adkj 3ToZhhXQxrakU+06HsMmoV6u48RQFHjse4Th+pItxkqiUN2DCGuUEtdAanuSLO1YNQnW PfaQ9FCP8EW3q4kQeeTPz9yuvvVFjinLDvw2yeRdvsro/ZADYcJgO0TjOH9OowIkwtnF xdmVKA1bL8lyGfYvaS2m99jD5R7kADRJ6YS7TA2/GnSYR77f2R5Fxf5vQu+oXs1rYWy0 XhaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045439; x=1740650239; 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=oK7z7kPUwbiYR8aIbiZmR8S1YTF2yDqL+/19TJNz4qU=; b=ZPPAhYVzWhnaU+cQ/i2RRoARRCOi50qv56shSl+Bw3k7Zuw4P6Pyo95xjcJE46Fdzl Z09AvGU2cCLIhlCvRUYLuYBYzvwAW7NZSl65qTEhHXXtf7yo3QFUngwPUtb74ihdXCb/ /jhnAh9wDPHHm8PeEdb0KZCf2L0Y8LVAfxw8yBxQ7lYh+CcqLzXCSFxez2xz3quQVZxZ jguahqMuHyYUAHjBxA33MalWPgurA9lKIDIYCTbsxD7ReejQjCWb5e/JYP3WoTFEs/eq 8A+yxXBrSm6AGsxghxlG+T5lWpqsUOxZrsedPk4eVAro8TkCbyc6ECfO8sl66szWODa8 3fOg== X-Gm-Message-State: AOJu0Yylaviqd/apetSEV/pJ81XWXo8wUk1X5O7OGyh4tSZehqQEKotU ItdB5sPqMDxgYhjh1jmfKTrlgHGWGzecBbcCvrKfs/z8ki/eXpS1oKOGU+LENuE= X-Gm-Gg: ASbGncvrMBXCrVvFv3cL8ucUYw+xoXpI6Nn1m9HOJ+1gsH08180aoKixj24W2G3tyX6 a+MKlXlPgX0LUbFAN7ExId9eMsesxh2n8p/JGYxLxlVtocY50MCz/1MfsAyb6SHmF1gP5NSigsV a42LT08qBX9uHTvQ9SXp2BnKN0ZXLPPziUyH8J+O3a1XU1ZucLIxVfyhUAHg33mgR8a8JKTGDAN TQZ0XivWTdHezlKSsfVYneZNY3Tvvkcu3R1pAhIHJxjL8fyeVWgBPUDZV8viQ7MIk0cU4q4OrvR bwVRTVU= X-Google-Smtp-Source: AGHT+IHdxXE+wkntxsbZcPRj34UPFgSF33vvtbpTzksheLUargpon2xXaSy37ux13ny+vp77dBRVMg== X-Received: by 2002:a5d:64e8:0:b0:38f:4308:e552 with SMTP id ffacd0b85a97d-38f4308ea65mr14863294f8f.14.1740045438946; Thu, 20 Feb 2025 01:57:18 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:18 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:01 +0100 Subject: [PATCH v2 04/15] gpiolib: rework the wrapper around gpio_chip::set_multiple() Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-4-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3176; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=/NIPd7ogpCDV54abkx+5Qvd5OSnBBOxjUL7k4561kEw=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx2hTPlqMvIbDt8rrDsNS+Jz72qIvaMe3VD5 07XlnC7QfaJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8dgAKCRARpy6gFHHX cmmJEACdZa0JZ8nPMZNjF3M1FUSZMRLt4T/dfJhH1y3g6AJezAVkjz++qC6PaEhyC5iu4HiONj0 TkLxXdykhwv3wbH6rzcwQFYp45F4ONns+8PAxRDGjJmuNUNObix/7BzDKGcR4vwz/HLAZsG6tzX 4dciGqQ7ph1oXOzJOlCeETaPJ9JBI04kXW5GrKWK/FJ3UknnBf3h6Yzgj9PrGMuM5h1wn1pWgwx PkaAe0q9rnxo9uLZDEOwCvI5/2U3zqMrRedQKnCEFZw0cfUwIEC4JlLsPXkMthLPX+e8y/+9CAp pIuBYR/atk83zkrBFeIgpNgesPl8F7zvZaDi4A8KHZ9APBZnGY9el8xBAxgXqQjK0vy24c9BkQL aRO2XSWXAyCmyaa4LBMuv6ah68zrCaXyiEmjEZPaLpBnRNbisZXgh4N4CMbgU1A5AIVo1S31Tig IzMs8sy9Caw6Nhf0LxQggvBLayNSZiOW8Ix9Bhez3gz3rN+kgMBYJa8vg3qFowajuG7mbpBEaz7 mzOCMsDqSLx0LJK7+JGjNpe14MYUvBycO3y4m/zF4jNENDspLWciqjGMuWxoSxmAqGc0Ry0eqrw KiG8IrckaPV0CiEhcLBbFWeVqjw1Ws9WQ9R/yrR+8Gs7+KQRJOGHlpBiYQNPBkxPlaWVTCmgImt dfU9MnqKzV2zD9A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Make the existing wrapper around gpio_chip::set_multiple() consistent with the one for gpio_chip::set(): make it return int, add a lockdep assertion, warn on missing set callback and move the code a bit for better readability. Add return value checks in all call places. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib.c | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 040b4689eb8e..b1e7d368bc7d 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -3490,21 +3490,33 @@ static int gpiod_set_raw_value_commit(struct gpio_desc *desc, bool value) * defines which outputs are to be changed * @bits: bit value array; one bit per output; BITS_PER_LONG bits per word * defines the values the outputs specified by mask are to be set to + * + * Returns: 0 on success, negative error number on failure. */ -static void gpio_chip_set_multiple(struct gpio_chip *gc, - unsigned long *mask, unsigned long *bits) +static int gpiochip_set_multiple(struct gpio_chip *gc, + unsigned long *mask, unsigned long *bits) { + unsigned int i; + int ret; + lockdep_assert_held(&gc->gpiodev->srcu); + if (WARN_ON(unlikely(!gc->set_multiple && !gc->set))) + return -EOPNOTSUPP; + if (gc->set_multiple) { gc->set_multiple(gc, mask, bits); - } else { - unsigned int i; - - /* set outputs if the corresponding mask bit is set */ - for_each_set_bit(i, mask, gc->ngpio) - gpiochip_set(gc, i, test_bit(i, bits)); + return 0; } + + /* set outputs if the corresponding mask bit is set */ + for_each_set_bit(i, mask, gc->ngpio) { + ret = gpiochip_set(gc, i, test_bit(i, bits)); + if (ret) + break; + } + + return ret; } int gpiod_set_array_value_complex(bool raw, bool can_sleep, @@ -3514,7 +3526,7 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep, unsigned long *value_bitmap) { struct gpio_chip *gc; - int i = 0; + int i = 0, ret; /* * Validate array_info against desc_array and its size. @@ -3537,7 +3549,10 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep, bitmap_xor(value_bitmap, value_bitmap, array_info->invert_mask, array_size); - gpio_chip_set_multiple(gc, array_info->set_mask, value_bitmap); + ret = gpiochip_set_multiple(gc, array_info->set_mask, + value_bitmap); + if (ret) + return ret; i = find_first_zero_bit(array_info->set_mask, array_size); if (i == array_size) @@ -3614,8 +3629,11 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep, } while ((i < array_size) && gpio_device_chip_cmp(desc_array[i]->gdev, guard.gc)); /* push collected bits to outputs */ - if (count != 0) - gpio_chip_set_multiple(guard.gc, mask, bits); + if (count != 0) { + ret = gpiochip_set_multiple(guard.gc, mask, bits); + if (ret) + return ret; + } if (mask != fastpath_mask) bitmap_free(mask); From patchwork Thu Feb 20 09:57:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866905 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 D42571F131A for ; Thu, 20 Feb 2025 09:57:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045445; cv=none; b=rUwtOyCRznEFmzjPPofo0BWIRzjIe3yWXHM0PbcCPHHHaHYmgFaqch5GiatpaNX6kztPe+PmSl4JyaeDQvRVC5VCaclqO7W+ml1uv8Gaj51FfY2Y8lg622gtAJL3sexzlYsD2PxACBn9oUwNb2NwLJYgT1AwhY3OIRmUxFB8qJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045445; c=relaxed/simple; bh=1UjJdHNauFVk729dL8prbwqVaPRcft/vij4kOr5O0Us=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q0GnEuTwLi/gAH7yDckft6THLiov4KXwkWRqqEryo+3IBny4nu10eM4qzrgb3pMAO5f6yFQcag2n2HwqkiApzHX4E698MZWVbZoUfDhHa0xfTxHzg9dKiI9HsXRMSuwgpYB6xVcHL2c7R2Hz3zExJvcZp7LK4Plmg2iEwj5i6DA= 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=haR/VqJx; arc=none smtp.client-ip=209.85.221.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="haR/VqJx" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-38f488f3161so320856f8f.3 for ; Thu, 20 Feb 2025 01:57:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045442; x=1740650242; 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=t60BHMJdvNDDOtnPhpQoRS4maFib25qiqZp8WGeStdo=; b=haR/VqJxZlbQHpcvpZE45NXXDq9yD+ZSGzRg/ahCSlM13arO3BzJGmqALcLbfJ4LEa //OAP8ciPyqUtv8QlNAp/hU21BQ7FLD8OjHfq2cLDgnQXSp+IZqNbBqyIDJHAowmsM7l q0xNbvf1PrXRAO3XtPmQVw/zR0rR4TDhVDTpYo0Q6+fW67YHA9Ere6PSW/2hceOV1RPA hd8auheF9U9sJTLKmIxfawqidmg1ltYsNsMqt2V+egn+b9MPotRzRWOwCpR0fxaq11Ps bMnYqQUFk6CySNg1h0TwJviL+QbSO/L0DorPzGdF1npYzmRxmXYe78wszGLAlohtkBHd zNVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045442; x=1740650242; 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=t60BHMJdvNDDOtnPhpQoRS4maFib25qiqZp8WGeStdo=; b=I9S6L+jpznTYvxcuRxCPMbD1SXd1pBKbA5PCftBjGI+2PKeUZUDMNeSpxNq5s5AaDD V484IctENj/nfaI5lPXxOop+yWkf+mO4TjvVodvEl0Z1cCCU4FPe7YV7uUwcVpyDSQsG HEjWXKpY242OoILQCG4iH8/6o/w5DVO/xSiaE/BrYCF0lSCLoVbZhiKnrIJnaqdcUtWW zJI69hYntrgc8oQyI8CV9lL9C9gH0N7sg7f4P/RW9IfhGMqIqBu71wanox78ib/zMmMl Fmvg/musP9zsnmYfNqTYQsMF6X7PEzHxsgTK4WQwD1c9cyPDiOcARcAon6kCxmDCoSRE JDcw== X-Gm-Message-State: AOJu0YyWcI8NB476vaBVx1NWpc5NFRfOy8ve3tz2vP5nWjvQDOypmVtE aDF/eLh1hWMyChgPFyUSstdeVFJgUhTFbhZYnRveQnxITKCiL8Z7lovGIy3eXOA= X-Gm-Gg: ASbGncvAjJYaBp5DJIimAgP3sSW+VwDMmAcAbCn9Vj7MQegjdaynSuZdMcv7f1HF91d Kwb+e+AE4Fb9bfNy/gN7aPIa0y/TD5tmjPdCsC2bHqvBJUJhC8zGrGoqrkUNBXUajSuhQCONkUy iYE3lSG2Xq6UaqMH5QNb0YQcb8M4ZshyWIokmBKEZcaMeJEJ7PWLxhzK0QUYNw1eW4aZvxfUVA1 qSfRsvy005Bo8O+UsyxH7aAJGklr87QsiwL0ufVggoctPqSl27DVQW6f1dCHqoES7NmM0PQBO9Z W3HM8VE= X-Google-Smtp-Source: AGHT+IE5QNqdk+twDbNUhvP7+J2lq1T3+ma8ljzAbCQVNS0Hh2jrL74ho7WbRmWA2rdWE+z+Ft5e4Q== X-Received: by 2002:a05:6000:1568:b0:38f:3de0:d16 with SMTP id ffacd0b85a97d-38f3de00e0amr17797107f8f.52.1740045442100; Thu, 20 Feb 2025 01:57:22 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:21 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:04 +0100 Subject: [PATCH v2 07/15] gpio: regmap: use value returning setters Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-7-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2801; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=ajHrG1VX7C/nWZ29Fct+EqLq889nbEm3K33yBSsLTBo=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx3jLBtB7CENnstPrIM2B6PKOnXqNRsn95+M +Ysn0UAcuCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8dwAKCRARpy6gFHHX cu3nEACkzb0x+z65N8v2cg/+XtzldFO8IMZ7sxqO+ofgpVuC2p3poQZkoXBQNSD3rRAJoAEaP2h fZj9B1uTFDXuaP3XWUVIeNg6Tb3BUVAJ5uwuO9JzLlZHtLJArF3Wx5/VhJVy0KQ97dDVr7ajL+4 S4Kr8EIM3L6yarxaB8c2hBCsXWY/8mVuAY6Jg39mGx+NRAhLhZB8KbuPvlK5p+DoZ3/YesI8dJf wjVFLk+2EFN9L2iUT9cNrUQU/j/fvkcg9aCk6HbV77JSe78PC2ed0j/ZFM43BBx8hC9t0vFW2jB DAyPfWd/aOpxeGJ5NVR3IeZdJEwtO/MYTqI0lMtR89T3FWv7akfxxjPEh92yqa6me291NlcvEbC eUHjJOYjp6T97xW4GdkPc4eVGnqquCjanHWTg7p3aXg+8FjvAGqQpFqRpfGrsaY4xDXzcSZ7tRD +ieRexxMnVl/mowKqnIxrf362PtJwoPsTU/syw2ZSNYZfR4JM3jS9P6rQ87DtyUqOMN11v2mGx3 9E+cEiG8fVhi0UF+IiYQSjXxx5hzkwf670DQbEwMUTXnzDob53slbA7m8xx+34n+PEV2kEzUR2y GRXCmfJ+yahems9vTdzDJXFAsa08Jdm4eK5g2WgkWiXWdd7i7k1IK6Dm22lrbjZnoYNNhh6Bzqx UFMz1oRfr/Mdr7w== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has additional variants of the set(_multiple) driver callbacks that return an integer to indicate success or failure. Convert the driver to using them. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-regmap.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c index 05f8781b5204..10d043596247 100644 --- a/drivers/gpio/gpio-regmap.c +++ b/drivers/gpio/gpio-regmap.c @@ -81,33 +81,43 @@ static int gpio_regmap_get(struct gpio_chip *chip, unsigned int offset) return !!(val & mask); } -static void gpio_regmap_set(struct gpio_chip *chip, unsigned int offset, - int val) +static int gpio_regmap_set(struct gpio_chip *chip, unsigned int offset, + int val) { struct gpio_regmap *gpio = gpiochip_get_data(chip); unsigned int base = gpio_regmap_addr(gpio->reg_set_base); unsigned int reg, mask; + int ret; + + ret = gpio->reg_mask_xlate(gpio, base, offset, ®, &mask); + if (ret) + return ret; - gpio->reg_mask_xlate(gpio, base, offset, ®, &mask); if (val) - regmap_update_bits(gpio->regmap, reg, mask, mask); + ret = regmap_update_bits(gpio->regmap, reg, mask, mask); else - regmap_update_bits(gpio->regmap, reg, mask, 0); + ret = regmap_update_bits(gpio->regmap, reg, mask, 0); + + return ret; } -static void gpio_regmap_set_with_clear(struct gpio_chip *chip, - unsigned int offset, int val) +static int gpio_regmap_set_with_clear(struct gpio_chip *chip, + unsigned int offset, int val) { struct gpio_regmap *gpio = gpiochip_get_data(chip); unsigned int base, reg, mask; + int ret; if (val) base = gpio_regmap_addr(gpio->reg_set_base); else base = gpio_regmap_addr(gpio->reg_clr_base); - gpio->reg_mask_xlate(gpio, base, offset, ®, &mask); - regmap_write(gpio->regmap, reg, mask); + ret = gpio->reg_mask_xlate(gpio, base, offset, ®, &mask); + if (ret) + return ret; + + return regmap_write(gpio->regmap, reg, mask); } static int gpio_regmap_get_direction(struct gpio_chip *chip, @@ -266,9 +276,9 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config chip->free = gpiochip_generic_free; chip->get = gpio_regmap_get; if (gpio->reg_set_base && gpio->reg_clr_base) - chip->set = gpio_regmap_set_with_clear; + chip->set_rv = gpio_regmap_set_with_clear; else if (gpio->reg_set_base) - chip->set = gpio_regmap_set; + chip->set_rv = gpio_regmap_set; chip->get_direction = gpio_regmap_get_direction; if (gpio->reg_dir_in_base || gpio->reg_dir_out_base) { From patchwork Thu Feb 20 09:57:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866904 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (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 6428D1F1500 for ; Thu, 20 Feb 2025 09:57:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045448; cv=none; b=pHa1xrXQFJvPh7VyLVDp33PMmV6hlwNxcn/kJDttNju2g3AbV0Juibp96qtjhZOpma5NftOCI0Y4Y5EgsbZd55Ne/dAF2uNgrBPMSogiu0nRfh8FPkxW08CtC/s6YCCAHO/2alg9g6gyH8Bzn0Wk+PkiDLdHcpoaDkXHlfb/1Rc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045448; c=relaxed/simple; bh=/Ff+/OqEGQuwjPFFhcefFTdmHFXyIRq7IO5qzezURx8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O+OigZcYAxgSV33m2/US93VwkWuePYmxBgJCw6hhkY60Gw+2eJS9/8RiGIWanXcRNA8n6laiJN5HnCanOAB+oeHGM8ovBN6X5NY+Fi/JWMem5VuEMwnjrLubhEyzFsWQ/kwiF3ecJYdWpoMmtmG7xnQiJyHFe/hBkFAbttnVOI4= 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=lF/40cZk; arc=none smtp.client-ip=209.85.221.42 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="lF/40cZk" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso338244f8f.3 for ; Thu, 20 Feb 2025 01:57:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045444; x=1740650244; 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=z3oFs5X1gZZFfJwu6ZVPPpOgjFQqYIa51CiYnHWU6rw=; b=lF/40cZk23GWXGP+Ozm7DdTACO5J/ft2/P4LX0nIddVVufDipr72qxEghOIXKc/1VK u5udNGTkjsjU22Lj+39Br68HGUuXB3+ZhldVq/S3oBDqf0Cu0Ku80GC/XYER0IuWXXWM mH0PpzAPc/TWQWVFRz1QNHL2LJqxgb+JuTTFD2v7p7euURrSrMerRL3PXCDkGAJ8AG3J dpieCf4sj40qWKvOV2OMqKzTsJqO6cG4OQ3lsMm5S6d98nTO+v379wgcTEYrMWKupGQ5 rAIdx6du1fizEb9U8e8y3st6uCp0/eASfrVqUdpqBQNFgMyZCuptpi2kOnX75d6q9Jlo ZU3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045444; x=1740650244; 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=z3oFs5X1gZZFfJwu6ZVPPpOgjFQqYIa51CiYnHWU6rw=; b=hRznUeCjQc+0wPkjznWZWGTwMgiihSFfSEiGnSYqUX5bE3StE14sG3qN2zeYVJJr1t NDnHoN6LPutxT+KVQ1w5LxFxGwDogCgYINmaWddX1RPqV0PFk+86/9kW3O8gO2aZDMx0 IAmN/7EmiIqYwh3/BWegbB5OhOMuYmCTRvpXu+WQb4X0bkiQDK34Gfy8XZHQrvJ7YhP1 ZhzPYX6IILyz4E0WwvrsYlBW0Unuvi8JHiiWPO3fPiuS48YrfK1p5t0UkLNYdAgEFuJp pLcVfs/Wu9WtMMsKzPKZZvy4Z5U1r6p4J+92iVx1cEf1/Tdbb6wTDQjvUxb+yVX3xliL AZlQ== X-Gm-Message-State: AOJu0Yy+B5710ZA97AN7zQ9jcggIb+zbfJwY4cslGAgfVN1IMJMLvjLJ ZldQAY5M85AU6xcTE8AMOSd2xZRPl2QWsrE5kZuOFfZ6YHz1F+thpSi/qPQbATY= X-Gm-Gg: ASbGncuNBaEbv6D4e2katK1v5oePr3w89iwhZTBMzhs/Xz1EEgQL5wJ4V7H61k7Aleu PDUxB1ZJbEiB37VG+Ks7Vf1ZMq1tuYQ3JP1vQiYELEcDFLcG8EVjsDgymBz1ClNfuskGMLFO4rx J7kXH2MYHL9clk/JT8nYsLqUYXW8YkkJ22CDUduUsZrVHYPzF7zp2KlTDCrVZEV5iQlYUUNS/1M bkM9mRPBrD0K2RuGA1AYffTrhB41Yx5GFJAkyKW84Az8s/MJLXuJ/G6kO2gFdlSYRuTPma4K149 0/nOb8Q= X-Google-Smtp-Source: AGHT+IG4koPMq4d/kWM7jjnrpRi9hoQupFNWVEn+zQLxJivAibFsoAtG2ivLHXahXFe6K8N/OdF6Ww== X-Received: by 2002:a5d:6d81:0:b0:38d:d0ca:fbd5 with SMTP id ffacd0b85a97d-38f33f44dd0mr14690055f8f.22.1740045444507; Thu, 20 Feb 2025 01:57:24 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:24 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:06 +0100 Subject: [PATCH v2 09/15] gpio: mockup: use value returning setters Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-9-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2196; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=VSIrrAiqQMzfQ2RbViWZHWMw01hZZbPdlbrH76WUpQM=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx4NBRhTZZI2IRa0wAEudNdvd8vSNspG+iH8 dtwq9oSmI2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8eAAKCRARpy6gFHHX csvZEADWHatjtI8neovtNs1eGIVpjfWxIf7F+HiDhKB1vkA1LMogCSvwre1xJKttLVZslsCJP3F 8yOYbXQAj/aqKBGC13mJ3yrxSeCapTZfQv5nZpDJvIGH608V4sZfgCcOHpxpblSTKlTFa0GRpYc XxMyMzEoC3wrk1CsRHJ9QLCxJrbzy4XfnaIB2fE+nQcp7IRMwFJx2zAyYmgaHEkHYDMywCK/oh/ FnWJB08mBD4+33MsigaqIQooXsCqNGFOesCDbzgbXAL4TzTwThT/NduCRd/OiQDKFV8SWDxQkP8 Zb7fiGHyBKyvfzXXhiiQkBxRBeKu9eRMmbyz1hmMwWItepl4bHqnfdMo3aXyC7Cu5BbQKmKQMAC 9dYkrkiDmmfA4JIDPOl8PfXqCrjc0lAR0E1CbtfZxgO2tSvZO3Lumo5Sk68dq76dKim79LwG0GE 8PLrgUDZ6TGEutIvsWTpc2TyK5VOlB6b98cVNsIfKtD3DVjbiIaQzclhTOHz6SIQntXNrGyuC12 Bw7AfrGZSdOIfxEIRZVED3+StIZTF6cOE8t+9yhzmOYkEu0Yjv0/sMZRZ4JiIMqjLUxzjPoCKEt lGegrPH4EL6PrFla/7/Wx0WijYG5bG8Y7XbPiRGNuwDJYB//uXgd89WusYYRN/XzY/+aGBgKoge Im/j3WznzGNx+IA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has additional variants of the set(_multiple) driver callbacks that return an integer to indicate success or failure. Convert the driver to using them. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index d39c6618bade..266c0953d914 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -122,7 +122,7 @@ static void __gpio_mockup_set(struct gpio_mockup_chip *chip, chip->lines[offset].value = !!value; } -static void gpio_mockup_set(struct gpio_chip *gc, +static int gpio_mockup_set(struct gpio_chip *gc, unsigned int offset, int value) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); @@ -130,10 +130,12 @@ static void gpio_mockup_set(struct gpio_chip *gc, guard(mutex)(&chip->lock); __gpio_mockup_set(chip, offset, value); + + return 0; } -static void gpio_mockup_set_multiple(struct gpio_chip *gc, - unsigned long *mask, unsigned long *bits) +static int gpio_mockup_set_multiple(struct gpio_chip *gc, + unsigned long *mask, unsigned long *bits) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); unsigned int bit; @@ -142,6 +144,8 @@ static void gpio_mockup_set_multiple(struct gpio_chip *gc, for_each_set_bit(bit, mask, gc->ngpio) __gpio_mockup_set(chip, bit, test_bit(bit, bits)); + + return 0; } static int gpio_mockup_apply_pull(struct gpio_mockup_chip *chip, @@ -445,9 +449,9 @@ static int gpio_mockup_probe(struct platform_device *pdev) gc->owner = THIS_MODULE; gc->parent = dev; gc->get = gpio_mockup_get; - gc->set = gpio_mockup_set; + gc->set_rv = gpio_mockup_set; gc->get_multiple = gpio_mockup_get_multiple; - gc->set_multiple = gpio_mockup_set_multiple; + gc->set_multiple_rv = gpio_mockup_set_multiple; gc->direction_output = gpio_mockup_dirout; gc->direction_input = gpio_mockup_dirin; gc->get_direction = gpio_mockup_get_direction; From patchwork Thu Feb 20 09:57:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866903 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 1ABC51F417D for ; Thu, 20 Feb 2025 09:57:27 +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=1740045450; cv=none; b=guvAVf4kJA3NVF3+94e38xrgXL+opTGQZDiWkQcw+aCwVfhDZuSsbRbIkVbi34oP+oCCEmC/odaOiy9xdi8G8lc7bHJz/E8vhv07jrqK2YPyjvHZ82iibr5mSJKni5sA4mtSEjyRHN+/6R2L3gEtxcpSJyXzSvJFe7yAiGNqLjc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045450; c=relaxed/simple; bh=Enef4cJKJS09Gj6WI9qsS02j1I+VlFZmtf1bwlaQO2k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DPjedz68kwr9VIlnLq22/UJm/l1Xzu5mqWyBRRY8j/VuCzN4bon/C2NqL6qX/I1NQauqsrQ9o2q/7EHC46JmLQyQFVNqIcgelzv1XPDQ9w5nNxKyjOv1Vp/7mRAUTdKwr2px/v5YZsOMdR4UkOGcRppH0GtqrsgznocBNpZoTgo= 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=I47cAUjo; 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="I47cAUjo" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43690d4605dso4153965e9.0 for ; Thu, 20 Feb 2025 01:57:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045446; x=1740650246; 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=kFj3TAoXlLf9as8kjepaZLFMmsnL8wmxW74MRLbaHG4=; b=I47cAUjod9XpoGxsStU9teiqtTdTY2/DAHu+Xud9TBbt0LbfN50XYWOINACsYNh4HN Iu92HaU7PuusVkXRpG1W/Nej17c5RNkln1I06saCEpKaUmbyM/ke3EQoM18kxMsK6470 C0eknDd6UyhwQKXV5YAsU/B57ztRXH+Rnk4kiQZVFBamcQe5vYkAAM/hq3wtZK7oZWt/ qHF+v2XpHVjz+m22cKgDLBlGQtdfXhRbESqaFt80n8eSejQF6xRY0qCl1CXicDPdm7fC qEhGHBIXa0S+6fWqKCV33rMqPkANwenjuKgWL19PLGl2RJFrPYlhGaWFTceRMn2Lv6sV B+kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045446; x=1740650246; 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=kFj3TAoXlLf9as8kjepaZLFMmsnL8wmxW74MRLbaHG4=; b=D0erOLmq0yfUqnhSjgEvP15CIWny07KcrgPBd2IyJgg5cBqioVCmTFjYK0z5D/dM5K Yht/tWSVwRHCBOnHUstvTBexwKbMAyOdyW5/6tQR1KbGm7DbVYPJWtrFqQNn2Nc672CZ q1y+2V135e9IohLeHJRS5Da/Wsi+BOkhcyr9s9qCafePL8JimfOEgMyMNvaevqK8ZgOD 0sGqV/3nVQr5m0P5n+oTHavc6FJfDtqatco6V6n/gZsG81MD3hUp9EaZxxOelhYIPHUx W30k0ca0nfaiOkpp/vQRuXUa+QK1U6AHaWJ3p+L0Jaf9vfX8u4KhU2kUMivkDaVNsyt+ 9ApA== X-Gm-Message-State: AOJu0YxJboP9XtXu3P7JVaRdT98PhrmYhrQAf4NC0s0ij0JhL30JoYMT TdMUou0MMLDxSSWlW19Ro9AsFOFXJ90fAxGA07pmkHLibYAgp/FFdo70esz2GhA= X-Gm-Gg: ASbGnctkoF+vBeBSJntMjTuriB7+TWH6ui4rH1d7I0Uy8QAwglRdKGhIoCahNjsnpIR vuXdhBLgybWXn4PhmE51x9w7o/YFoZ+zxiGrsPmG1QgFXTLPRmGPBMAU2i0hnOEDaMmAsoIXXwt u/fx9yZEgKielRfd08iX0nMpmEShDDoZfVwrsGJwct5cV0uRWa/REMdWo0F0ENcklxqMY3T/CwE Xb5zXwAi54COBruX9RUGABw1Dye9Up5Sla7l1DZL4wdsEG/8PkdIWMcoCBFTog1XUInfsi+AgKh ADAXP/A= X-Google-Smtp-Source: AGHT+IHZ/4ypng7/Mf7BbqmPLwdiwtlI2cnP9YvswrAy4gvWNgi3caTDM9umvq55d4WsrVVwRuSdaw== X-Received: by 2002:a5d:6484:0:b0:38f:4c30:7cdd with SMTP id ffacd0b85a97d-38f4c307ec0mr12116273f8f.37.1740045446427; Thu, 20 Feb 2025 01:57:26 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:25 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:08 +0100 Subject: [PATCH v2 11/15] gpio: max77650: use value returning setters Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-11-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1923; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=ud09vHY02XViXfaw2eD51Q7LQfSy2x8XEgnHffEdPlg=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx43gFxRicC6+87AczX0jflaVhzn/pJ1X/Yl opHyNglcAuJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8eAAKCRARpy6gFHHX cj33EADiL6KzJWR2xcC82uIKj9EZSjz7C8AjeaQwc2mKPIROG9GioV6OMq2j86QkRiJQnvkiD/i 2hWL8lgmpiZFmQETu5W3ai9InFTFYQQvFerXo0RRrQwqVU8lcMPiHik7AgnVhWVYwUCKCo6hYnT r4xoc2iyt4ntv6w5eGTuwSvYuJ2p1h7wFsD0YKH/Dm3kcPNpOnRdDBM5fRVCZYb4PYODF8AGPkp rYXGaubNMdHXC5fiMlF81+aNnsEi66/6gUwMbqHrk/yJxSGOxLHEGWouEYDZYG+ppPJpnYb380R QH+njw9t3PkK9BlAAMoKC1uyP3LyqupMURWDts/z9Ii9GxSq/FX9CUaFm5qqA6BrtNs+cISrDeg TFlwwLv5wmawBjv17Pl4OxD9zEptFilB/yWdq5iXQKL6tGkjesuafFaSViWT89OF9+ppi37Jm5d 76frI2dD+X9fkbxEf2FdJlu5e3Xi12HmU2cQpb7gQ1W7DY8TBg2j4muuHaTInEP1MCu6JpUGdCQ bXk1FIvPJfrtkx4AcnxPQ4+SPasoh9UFeG5JvOKxQuz2X3M2zX79BUY9EZO6JmZTot1XibuKlwn QzGEc8F3ACLDGoRk92hnWp5T2Gi0PocBr/lDatZ6iw7AOW2YJ123bh/+FA7zMs5tboXiN6xYbVc 3ivtZzaqOKWgH3w== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has additional variants of the set(_multiple) driver callbacks that return an integer to indicate success or failure. Convert the driver to using them. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-max77650.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpio/gpio-max77650.c b/drivers/gpio/gpio-max77650.c index 3075f2513c6f..a553e141059f 100644 --- a/drivers/gpio/gpio-max77650.c +++ b/drivers/gpio/gpio-max77650.c @@ -62,18 +62,16 @@ static int max77650_gpio_direction_output(struct gpio_chip *gc, MAX77650_REG_CNFG_GPIO, mask, regval); } -static void max77650_gpio_set_value(struct gpio_chip *gc, - unsigned int offset, int value) +static int max77650_gpio_set_value(struct gpio_chip *gc, + unsigned int offset, int value) { struct max77650_gpio_chip *chip = gpiochip_get_data(gc); - int rv, regval; + int regval; regval = value ? MAX77650_GPIO_OUT_HIGH : MAX77650_GPIO_OUT_LOW; - rv = regmap_update_bits(chip->map, MAX77650_REG_CNFG_GPIO, - MAX77650_GPIO_OUTVAL_MASK, regval); - if (rv) - dev_err(gc->parent, "cannot set GPIO value: %d\n", rv); + return regmap_update_bits(chip->map, MAX77650_REG_CNFG_GPIO, + MAX77650_GPIO_OUTVAL_MASK, regval); } static int max77650_gpio_get_value(struct gpio_chip *gc, @@ -168,7 +166,7 @@ static int max77650_gpio_probe(struct platform_device *pdev) chip->gc.direction_input = max77650_gpio_direction_input; chip->gc.direction_output = max77650_gpio_direction_output; - chip->gc.set = max77650_gpio_set_value; + chip->gc.set_rv = max77650_gpio_set_value; chip->gc.get = max77650_gpio_get_value; chip->gc.get_direction = max77650_gpio_get_direction; chip->gc.set_config = max77650_gpio_set_config; From patchwork Thu Feb 20 09:57:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866902 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.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 B50F01F4E41 for ; Thu, 20 Feb 2025 09:57:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045452; cv=none; b=q8WF2E7CNOtHf9ALVpmm0EfynXin41r4Mhp7YTwKjKFmgvsfwf28L341do9b6+4FzZq2jDCe4MAK4Cnp2XcpksxGcxUgL3hGrOZ12LLKlMDHTuGuX1zBX9jE1lyLRHc4P9vZScQg45Hqcou1uCuYPq8nhSxey/hU8ZRFw6MacWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045452; c=relaxed/simple; bh=n+TH3QwIs/9uPj1mmf+rdGvSnjCoYaYnZgclWP17JjQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pD0oJ4dgG3KMmK947TMoIR1XaMpNDmF6Xe9tdZ9c7+E9unH/gQzJrfaDWldsNXO7jXnIFZ0LakaiSh7amW1GfM86cKqatWb9GxjBrUSyjXhsb8sxxwAnm7BWYfHU6r3JIt8nbpBy+xrjLV5d89dY8IjBPt8jP88zpAe7tGD4fHI= 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=boAPdFx5; arc=none smtp.client-ip=209.85.221.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="boAPdFx5" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-38f2f748128so353937f8f.1 for ; Thu, 20 Feb 2025 01:57:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045449; x=1740650249; 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=Y8LEMZmaY/K0DBylYOJocGAOmkHBXVSwsNvkehZ97EY=; b=boAPdFx5FiQ/CeolI9NaZVB2l+eOi+rXhnIUwkDQB3B3LPwYXDwOpFQ7A1ewX5N99M t9dorhYdxhxgESEIjkTwr/+1pU0NIFIP08CW26ISdyMjTceebPgRJID5PJW2Yge6iHPe tvm295RVtHY197O+790OO+nOaOPeq3KiCRtUli45pUc1smA4IIZl4NBhkmjshV43r+vc MONOWDuoL0tSqcJ/5kBbeK1GHv36likb55aY3BDohpn5YKP2bwUrMGvn8Xo4dCLJmqvE sfXU1Y3kGXdCHSkf+kDQg8Nmgr7km9RW/Sgsj1fjJj7J5peM+uWyIVz9/kSrvnQHwxEy iu4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045449; x=1740650249; 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=Y8LEMZmaY/K0DBylYOJocGAOmkHBXVSwsNvkehZ97EY=; b=XUNoReQciWygfAv6ncsUPSxbwPzT+exjdQ4NijjXCISmZT/CKLasMnIAszEGbp5//+ ah4frng8Zo9k1Vwip+FmLLMvyna9kHyXJuipwsIIXIlm+0Hp3Ox7ZJUBUDuLaPftJ/SL YMLuLKRULNJUJYX8PsPqBRfmDE8FgFbPToZI1/FNRJkrLqM4iUi/t1ITBH7H+NzA9Ye7 B3YQH4i6c4NLq5cTkHZt9EQW4OT6I1Iw2y2KDzAsIafA4HcJDbE9jLY2ukKFa3RUIp/o TOzaeTY/fO/vXpQWs//ImOvlce8yyBynUxkbY737xkXSHpkZj6emcCy0ZZbN7kKiO9nj 2P0Q== X-Gm-Message-State: AOJu0YxEFMYN8XEv2lTXZG4Sj3K7GINv8uPrj0y6TI8WIexUsDONQpTY ETrJtVr6KnSgMgl0BMb4XlYkNM6rYXmVE7x6sY6HtQe0nMMnikx+Ehe4LRyTOHE= X-Gm-Gg: ASbGncuv3CHZolhLa5ctDfm4zUu4VNnsOoWNjTbRVhPeesDVvef3czE+nBLo+3koWTc gWfPT+2eRyrqklEb68WmesdbmDWdCIHaWnCMXj1AsdoySQZb4RS3Beo5ar/pzwmHZPPiiPea5b9 LYipSgJnwDV7/XVNBTH1Sbg6+8t3cSIW3oEDvbu2ha6VzFNexat9NZJ8UWgCvGThsnAuNurgx61 6FiON7zE2GQww8jf1OXU734RQvkF/gzw4HoooNRQFz+6H5FnrZg2h3KxiBlSpHNlpaoMAxDoEka os9zv7Y= X-Google-Smtp-Source: AGHT+IF1/LvA44pROgzHToT0t6L3xZPubpp60IAA/AjC9drm7MYOoChVBC/SyvcP70lIVZCQLh9C7g== X-Received: by 2002:a5d:64ed:0:b0:38f:2a84:7542 with SMTP id ffacd0b85a97d-38f33f5234emr19078647f8f.28.1740045448918; Thu, 20 Feb 2025 01:57:28 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:28 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:11 +0100 Subject: [PATCH v2 14/15] gpio: davinci: use value returning setters Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-14-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1574; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=P7oRD3XbMGXwz0WyRLRGqXdeOYh1TFkveSpKDzByQn0=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx5OEt1zYeiNgNWPNOyoX25Kx6V0aJbfCm0G GbhS8zbr8yJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8eQAKCRARpy6gFHHX cvIbEACq8bSoC8gkgeXxg0dW/ASqLdn/spq/rhUMVbwUrcsdzH5nk8F2NEwYv6LmgMgMEIM8DOd 4wWz8kx/y4mHMLaZKGaHsns6oqD1j+BTOZlPpGkaLXImu1q8BMoLM0micdESHDOPCV8aQgTstTa HcQhGXJwooDXTPwgJI5hFxwzZYuTR/qCbYgFbOpiWn+pVkafXXZfADijv20ftPmEe/lFnU9wuE6 ozgSzqTC2FvWnSnXuPCfNwEr+Z7DWgPMR3hVE7eaVe3ebdcaA2KedRlhZrxN2NdTrMFwTwUHYp7 EXwH2nEvKdiOiu9T1yDL111Q3qaPueWLGGGCnI5yUu5ljU+InNHselUBSS7vTHTrIzhClJJW8zA Dwln0+jWJH1ixy06por4FLKSEJcyH5TTe2y2JZcY+IaUL93Eok+bEZ059Q3/K7Qv+fAOu/fWTzG +ODYTzaFGqjel+TnWuP/c+vDYI7v4pWEQgM7f0TLDL5Q+B7HfFxvP4lyFKwryn+3IeFnK1VqucU Oequ52gXiNvr5EyU6DCEdsVBEvQomfYpyM1XUyDsYibQTSMZRmRaMx6YD+T69fx2+iilFoSyWjL r2SCxAhZZE2qGsDNzLdJfLU/cNYlD6C2CSwNb+9Hhb27K6784sRnLFHtpdDFG+MYVD1t84VD0AL 6zIhUgL656jrm/A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has additional variants of the set(_multiple) driver callbacks that return an integer to indicate success or failure. Convert the driver to using them. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-davinci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 8c033e8cf3c9..63fc7888c1d4 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -139,7 +139,7 @@ static int davinci_gpio_get(struct gpio_chip *chip, unsigned offset) /* * Assuming the pin is muxed as a gpio output, set its output value. */ -static void +static int davinci_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct davinci_gpio_controller *d = gpiochip_get_data(chip); @@ -150,6 +150,8 @@ davinci_gpio_set(struct gpio_chip *chip, unsigned offset, int value) writel_relaxed(__gpio_mask(offset), value ? &g->set_data : &g->clr_data); + + return 0; } static int davinci_gpio_probe(struct platform_device *pdev) @@ -209,7 +211,7 @@ static int davinci_gpio_probe(struct platform_device *pdev) chips->chip.direction_input = davinci_direction_in; chips->chip.get = davinci_gpio_get; chips->chip.direction_output = davinci_direction_out; - chips->chip.set = davinci_gpio_set; + chips->chip.set_rv = davinci_gpio_set; chips->chip.ngpio = ngpio; chips->chip.base = -1; From patchwork Thu Feb 20 09:57:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 866901 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.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 1F75A1F7089 for ; Thu, 20 Feb 2025 09:57:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045455; cv=none; b=sTUG0OJWaMAbIjrIF/2kxVmPAmeLRNSxn9MmGncTwCFBT+URceQqDyZXN/ANiBrpxqIyfKGVd5w5VdmvXVDymcdre+gBKivs7hz8Fek5yUUTix9mFhAsYPzknRv88Efs3OiAYKpuK1+CpSgIx3K2O8u4NG+YdcKWp+fgPfBF+Tk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740045455; c=relaxed/simple; bh=5q+ozCGvBlVKS0bQz6pJVL03Ts8jJDfVfcDaV/932UI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n9Fbb536XLTvhjgIrLerI4PxWi8oRho0TNBJCv7sjMi9oeweBWh5LRfC7SbsmV8Jt24yadTsvRKrC4wXEsEyjf8x3aYF2F4EkbX+jTd9RWOsQIKKkxLvrKipchn+8bLrqJQj4eNWJHdGHFnL/sB1DLImqFUjHlw9WhjyKfaQrQI= 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=3VjTw9Dj; arc=none smtp.client-ip=209.85.221.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="3VjTw9Dj" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso338290f8f.3 for ; Thu, 20 Feb 2025 01:57:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1740045451; x=1740650251; 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=6Lu5UW1vhx5BjNJKHUqstOFRRMZJhr1Zsm1iPcXqqQ0=; b=3VjTw9Dj1KCllwIcUdImXroqnN0VmcNiRUcAxwE9UCCfWpuFpvNDMnh4Co46E/kAS/ wdfljYB5Balf4WfHyWEGIGY40TRr0nrFuvwsWfwzK53MEkaA5lPY3jet/7Du9zA8KnYo +Q4/WS3iJ3kQfrqUyNyOEd57VEHcIhM1+kXV1qGe06XlycsJfmYO1Ah6kty2cf3W20EL xpRABssOBIjxY/0S7JCXjYZIf5Nm1sKNrh9/qgIYxzLO5xs6vw+3jOVjP8OmLZFzBpj6 4cjeuG0i9fCm6rbQQiSQISqCbiFBdR1UUb5jJH7qVK4ANrQiy7LmzhoZQqpC2xZBOkYS e6fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740045451; x=1740650251; 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=6Lu5UW1vhx5BjNJKHUqstOFRRMZJhr1Zsm1iPcXqqQ0=; b=gwyj38wK1QpSixs0GH8oPN4Y6MYphNWttSL5PHVwPzUA1PdfjHr1Qii67R2Nlg9Dyx CNywA+55T/qzsZUOQuHaSF+bgs54uk+PmKHIM/SUQAonRPWQ/Gro3ItgOUNracQavLJj jwRM+wgj5oaXaO9Ust9B1oRkLDJhlQO8sjea8CUB1eh8M5Q24c6OF+yFWNFcGmF0aLyT mLrxhCfcozhuTaS6laNcejxBXyjqXRwwhwxgGXebnRl8BYL0rO1FEvc0bmkORw1uLJH2 fdRJ6VXd5bor9f8oaaryUcx2iFFNQVE997aV1TdWhGpC9Sy6gKIJ5SPoKFn18adAkQBy 8GFw== X-Gm-Message-State: AOJu0YyFPQSSuq/NS3nXzOcL8QI5cSzJOJUbbd9gASoiPWBbAX3Uh5Xa 8B7ejWQR/sO/7OrvblSbeC0XZvk5XlUEApQdAkWRT+Eps8lGBvDdbYdZlWIGre8= X-Gm-Gg: ASbGnctDk69775Q9w8Dxpei4c3SVW8vMwVsAh+C46AldUaqqHbadPz4KspqZVxasm17 GqsWKpRDokw0cmsV6gtfybglR9aO3Vge2AKrjAek7vUTgkQqZrya1GCIwuKm0yiZx6x6M5NeUf7 mUnOEx1uNz1+noZ8KIPSKCRBfwXf1qGfJSlVkHO4e6HCv/qIf37SNmPR0zELviDId0fUroJkWGh qyuVQwkxnuZLOxQoGH/9HMAkf2ypqv7feNCxQWfIvUJT2rZl8FfLXnydR6eavs+7xALTN1mc16R 6rzJ1yA= X-Google-Smtp-Source: AGHT+IHb1/ED6JU7/ktNUR0J94Bg2Zy3TWE3fvNC/JsHAq0gU0pnKj87k9wLwuouk1T7gFwq11Eipg== X-Received: by 2002:a5d:4f0d:0:b0:38a:615b:9ec0 with SMTP id ffacd0b85a97d-38f3417149emr17792955f8f.54.1740045449816; Thu, 20 Feb 2025 01:57:29 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e2e4:418d:7462:9cf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259d65dfsm20509174f8f.64.2025.02.20.01.57.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 01:57:29 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 20 Feb 2025 10:57:12 +0100 Subject: [PATCH v2 15/15] gpio: mvebu: use value returning setters Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250220-gpio-set-retval-v2-15-bc4cfd38dae3@linaro.org> References: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> In-Reply-To: <20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Walle , Bamvor Jian Zhang , Geert Uytterhoeven , Keerthy , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1722; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=YB2ETZzeSuK+oO9OalIOyMZ8Kn0vhHKwlZK7hmcN1ck=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBntvx50Z/qtp4HVTkNMOwSdS2Uq1in7tcnTkFkZ SFXTXNCsOCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ7b8eQAKCRARpy6gFHHX chpKD/9PfUAL5jRXD8svFFPSWC3ozmUvcSqjB921UX/5orReLzAcrYLgy0gExzwMVJocX42+nxV 1x2PcEcjWOnT7lOO9qyDHyq62rHVgKcqsbJbDV9AQf6D5G7MsfZGLmMmt4nD99hT0p77+V6Ki1B iKkruCcOxQZLKyPUpLNDILH1sKdsDDTvYUDh+11sLyDcrM0xfB3+2OOxbIqNBMijpY/3qdEokX4 tG6XWTsyzF5H3RCno4GFkBBy/LS9vcx2AFpNo2+uFs8c+Avy6aiu/MSmVf3gyKkZyKwuGVFQl+5 1drSIMnr3xbuR+JnVZfjvXQySqV8XAJJHB1LjN0hoP5cFO6Xz8unPMR8U/Xi/xIEcKuPLD2eGYg H3OMzO+6ik5Ze049zDV+728tT6AV7o8khI+Lxhk9ITtDIzoFf8mFVCaEimdUxVx4dLlI3YIXVBo PXyh3/+npyr3+FS4FLFGODM9xfvUmTxWXRyvMvmX7i4H08tVB3oLYJmXD7GCfYs2fpQy64USE8/ h/wVyQZ5gypJI0AdkBMA29Od7rU/XAis5kuJIHmz61c+OtlM64kJA58MwHJFHdwci7+7jBX90FR gGhWMq4eFgYZFCoDYV1uteqpLBQEHtRgb/h6E2NARirlPF9RkNlaKP+43kIC4LopEXdOn+HVG/R larCpF3f0JX8QKg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has additional variants of the set(_multiple) driver callbacks that return an integer to indicate success or failure. Convert the driver to using them. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mvebu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 363bad286c32..3604abcb6fec 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -298,12 +298,12 @@ static unsigned int mvebu_pwmreg_blink_off_duration(struct mvebu_pwm *mvpwm) /* * Functions implementing the gpio_chip methods */ -static void mvebu_gpio_set(struct gpio_chip *chip, unsigned int pin, int value) +static int mvebu_gpio_set(struct gpio_chip *chip, unsigned int pin, int value) { struct mvebu_gpio_chip *mvchip = gpiochip_get_data(chip); - regmap_update_bits(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, - BIT(pin), value ? BIT(pin) : 0); + return regmap_update_bits(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, + BIT(pin), value ? BIT(pin) : 0); } static int mvebu_gpio_get(struct gpio_chip *chip, unsigned int pin) @@ -1173,7 +1173,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev) mvchip->chip.direction_input = mvebu_gpio_direction_input; mvchip->chip.get = mvebu_gpio_get; mvchip->chip.direction_output = mvebu_gpio_direction_output; - mvchip->chip.set = mvebu_gpio_set; + mvchip->chip.set_rv = mvebu_gpio_set; if (have_irqs) mvchip->chip.to_irq = mvebu_gpio_to_irq; mvchip->chip.base = id * MVEBU_MAX_GPIO_PER_BANK;