From patchwork Mon Mar 3 13:18:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998832 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BA6F2C282D1 for ; Mon, 3 Mar 2025 13:24:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=TidBt2SWkGKP+ilcC4ucnacYIVlA19tuK+wOmbWsRkQ=; b=3zJ6WVZVvQxofjnqU8GJPQJzb0 dKsumAXUxrIBIwzTTBJ3z7tgKQA4NvjtOUAyCJK6V6XVPztS8EHvvr0AQTTT1Q8I70sgMMzCIt6V9 5PcbRKKIlp8ghzk0und6XJvuqmrhemINeSPhpyiafXux9M2xXHfPsqWES8xTMDdRjpHc5Eo1zzVXr 8ZMexgXQb25H455iFUj1Y68s1RIBGMA8T26y5ymuuqssirCVUPrdFu8eeQtuwhGiG3H45mhWamera ASrAzypSGm3iqApjVGLe+VsVGWRx5afEkfqpaaHMJSSkx5cmhE3wmf8JuIbRU+MfcdjrlmnXqhCY3 EON6YvKQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5m0-00000000u6F-0k7c; Mon, 03 Mar 2025 13:23:56 +0000 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gu-00000000sVd-3mHa for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:42 +0000 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-439ac3216dcso30218605e9.1 for ; Mon, 03 Mar 2025 05:18:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007919; x=1741612719; darn=lists.infradead.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=TidBt2SWkGKP+ilcC4ucnacYIVlA19tuK+wOmbWsRkQ=; b=lVvshQrqXe+NbgsiUtl8AJ6El16gqvwlNclM875pw2oQ90sORvGNGdHMsMG2WcKdbD eubL1AlaHn4r8gaYt4zrJZiw95/i6dYOkuW1zE58KWfz8dL4e4utTupJYk0CaxAbbDeB r6cLXDdkHfuuTTVbyj4lHC/QP3Ki2sTksfliqQhXPIdI5hWo5nJtJ4nDy6wq0IBWLtZr 3df3s+MKDuJuH+DiTwveWFN1uCZaYdQIiDTEcDex0zqQbhbgE+aYDs2cNoxDTrsvUX2t VuHdSGLq5jZtWgeGW85V0/qMN8B5XVVq85eNXu1WeEDNH5PebAe81lgUyPZFmHSSqURB ykXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007919; x=1741612719; 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=TidBt2SWkGKP+ilcC4ucnacYIVlA19tuK+wOmbWsRkQ=; b=WyYjxeFElgIH4XkmacMj1VpIZiFRO38G2c1xEonDejpFMawUDHhgspvIJ4lcRwgX8t uNfJDSXd2yxYP16byFyj48Nszggw0PFOh9zmTqo3LCgYRwg+X9kp1QsGDzM12ojaJyd0 NZkqbCbFvjICGfvtOm0kksUWK59Hv7P884qbwK+ZqnYUU8sgk7UvG3j8ht9VbEPlLmFv 4xIILe3Cvut3IQqTRblNyzSkT83hQGhUCPjiTTqIO1keYZ2uQRhgmgQ+gTNnBwCKG83h VhPMi4/FkMzqrFrApRWm0QH3ZNgSMggKH5SR0XXE9AcS/+p3lxKoo9Y3MS84J/W4VU9L Rn0g== X-Forwarded-Encrypted: i=1; AJvYcCVMB7PHTiW719mvIz/yMTIx4nN/4O/RFsGsy7LxZIdqyXB8MdZt8Heyg7UOzSBr7TuT5oboDTU5f+p8VhiKTW6l@lists.infradead.org X-Gm-Message-State: AOJu0Yy6keuZq10AsFvP5IF9y8kq3sM6IPhzYxjUVWUqbqnK7Lmwtii6 EJGzG+a8evuCoATXkpHRGQgIDNdL+p38T/0fm2gg6gPtfT8ASsQRzQ/lfgzGPFE= X-Gm-Gg: ASbGncswmFBvNwlfpz20AXcQ/r2pOUY+8cjRw1T/DqDyn3ePt4CMl96rZscQ6o7oSAi c98sp+KFdVbo72enc3dzpdToHs6wFd7kKXgWnqsiqjCB2+q4YOkhkrIpbffD4kA61sJ9mywlNNu un9fh5JldvAAhSz0VBH9i30Jf8Xuj6nHmGM/tZZWojsyFc3cB9MUjZHUY/Zm/Uxb8OWNNgYfTHe 0h/bKfwVqs1UGoUsdBUyaedSW7cPnPayHxnCFlDg2lPbEI+66X7YpjuSWFqxr5G/rP0y6jJ2SYR GB31p/JME53cRTXO6JN+atxl1O2ESGcgwa13hQ== X-Google-Smtp-Source: AGHT+IEGZIkGsjS/ODOZpGkDFGZZ9llwwB4c/+lpidwwZqW9qJGdaX/avIm1867Tn1hlaTWUqZfeFA== X-Received: by 2002:a05:600c:a01:b0:439:8a44:1e65 with SMTP id 5b1f17b1804b1-43ba66e67b6mr114493835e9.7.1741007919063; Mon, 03 Mar 2025 05:18:39 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:38 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:26 +0100 Subject: [PATCH 01/15] gpio: 74x164: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-1-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2379; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=fJTqv/+sZnRFGZ6FlOnt5hhk1BWl5pYK/rnPH5nY6Lg=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawpW8tUrAxZZ/uk/w5xMTaLwsBNhfY98oNOV E6KDpZn+g2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKQAKCRARpy6gFHHX cpXFD/90YRmLFeyVnmIsi24hzo26FQhOWMYIRRDxzqpqNifd2b5mGvcBLkEwjzddss4IcMVw21Q gS0MpbNM+Rc/5g0YTAsQj5MKkpA5BSTvWyBUSA1trgrg0jZycAOGWBzRlpTYds/BH8yhCs/0pi6 jmr90cZ6YXNnwnn6tU8Dmm+VOEDTnJimqBajFU+X9LDauS9ztFrbujTbVnfYMdSVjZHq6ZwLrIi qstWSErBzvhIAgAI0C/a2NrE6fh9Cw405kAE1wNI9DZAIo8gsSfP1leoDzVZ7i/LWurlnBRYmq0 QapIAkzpl/Z1eBJkeS2ZR9OarmJeckFvuZHB96FRxvYG+wCYXxQYz25spUm8V5z4wxtxWKPA+5k 5eA41bD5JlEtpb6QfTBin5dIlQU27UMrYZcZ7t6iBpE/gJyin7Os6R3fZaiM4qXR3wQ5RGYKJQz nGaaq5t6vTwUGDHsrJ4Bo1OQX/HISzfI5SGeaKUXhCfQ+1Geq8bLOD2wTeOt1BKtLvktU6CZh8a 3V4IUfcddbMtemRGIcxcLM7Miy9cC+Kp/vZi4tWNpI6OwWkVg2C5WlBbKprsR39MQ9JqYdzS7RO PS3NYhJUj8YVocKe2vSeRtpW96rU3G1Qru8AXqkzD0URk7Nnbin41UUdW8Y+9ytmXjndYhGT1gh JDb3B9tKdW80oag== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051840_958887_49FADA94 X-CRM114-Status: GOOD ( 12.29 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-74x164.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c index 640ac24b72a2..4dd5c2c330bb 100644 --- a/drivers/gpio/gpio-74x164.c +++ b/drivers/gpio/gpio-74x164.c @@ -50,8 +50,8 @@ static int gen_74x164_get_value(struct gpio_chip *gc, unsigned offset) return !!(chip->buffer[bank] & BIT(pin)); } -static void gen_74x164_set_value(struct gpio_chip *gc, - unsigned offset, int val) +static int gen_74x164_set_value(struct gpio_chip *gc, + unsigned int offset, int val) { struct gen_74x164_chip *chip = gpiochip_get_data(gc); u8 bank = chip->registers - 1 - offset / 8; @@ -64,11 +64,11 @@ static void gen_74x164_set_value(struct gpio_chip *gc, else chip->buffer[bank] &= ~BIT(pin); - __gen_74x164_write_config(chip); + return __gen_74x164_write_config(chip); } -static void gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *mask, - unsigned long *bits) +static int gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *mask, + unsigned long *bits) { struct gen_74x164_chip *chip = gpiochip_get_data(gc); unsigned long offset; @@ -85,7 +85,7 @@ static void gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *mask, chip->buffer[bank] &= ~bankmask; chip->buffer[bank] |= bitmask; } - __gen_74x164_write_config(chip); + return __gen_74x164_write_config(chip); } static int gen_74x164_direction_output(struct gpio_chip *gc, @@ -141,8 +141,8 @@ static int gen_74x164_probe(struct spi_device *spi) chip->gpio_chip.label = spi->modalias; chip->gpio_chip.direction_output = gen_74x164_direction_output; chip->gpio_chip.get = gen_74x164_get_value; - chip->gpio_chip.set = gen_74x164_set_value; - chip->gpio_chip.set_multiple = gen_74x164_set_multiple; + chip->gpio_chip.set_rv = gen_74x164_set_value; + chip->gpio_chip.set_multiple_rv = gen_74x164_set_multiple; chip->gpio_chip.base = -1; chip->gpio_chip.ngpio = GEN_74X164_NUMBER_GPIOS * chip->registers; chip->gpio_chip.can_sleep = true; From patchwork Mon Mar 3 13:18:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998833 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 35801C282CD for ; Mon, 3 Mar 2025 13:25:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=fZ5oJp3c5WFM4WouXer3X9uqb/QndY0s4T1ZVpIJ/XI=; b=hkpgyJt8JtG73Gva6EBKBMSOgs ysXW3GSBP/FhYpktigM10lFc+hyckdq1MSr6KI56jSglkTwEZxRD48Q1PYXTduU+rjcYPUUrjVcDl VN+cbcMF5tGKIMVPPmqLK5/mEumjhTYeWLEzhupV8e7/ocNfdUcBZAgt5sphz8sO7brQLaGt0aaVz 2Z7/tJIU2rgwU6kzfqP/t3IkNWBRkZ1R2YLu3HpwAVmGJafgUv6u3QTgHjzIiLjgBcucnrrZwx5yh ASJyYa4zfPxpDu17mQoLPqvHezwXlqmQtJ362KKFTvACqTnMK3KSJ03SJ2XWbxsh4k25mk9J/4zm7 4QyFp0Vw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5nX-00000000uOA-43rg; Mon, 03 Mar 2025 13:25:31 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gv-00000000sVw-3hI0 for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:43 +0000 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43bbc8b7c65so11520085e9.0 for ; Mon, 03 Mar 2025 05:18:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007920; x=1741612720; darn=lists.infradead.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=fZ5oJp3c5WFM4WouXer3X9uqb/QndY0s4T1ZVpIJ/XI=; b=0kusdpOdwEahAhpPuIm9hqDteddl4OYOLnrlvlbpOnpmeSQtL1dFnsKSM1NMtswD0T 1gaUgFtN47XxxIlUEhXnUlG2hL3QGIUnNi7lczoaTdPc0CDnQlrpdMcsxd3S5THEzHST DuSq+ABz/yOU/8N8A2+HK1oUDbRkt2pLMUZ7y5EqlLZgqtbi8uXae7SlZoTsZcsnJdcZ i1R7bnuCE58CtmrTuupBGW988XWAt5n0wKpcHPWvycdOxp76DBXLCI80XdjiYLpW00am Jgu3qSWlSu5CzlLhAOKGEfFZXB/G1A77SFKRxq1cCQzsQtvYf0tnCEbTFA8g1vzEDKl3 aKQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007920; x=1741612720; 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=fZ5oJp3c5WFM4WouXer3X9uqb/QndY0s4T1ZVpIJ/XI=; b=l7DmKvkWdNoA8gj0W0weVfXBVqWNDj/Q5xlv+U69g8XLdLVLw6KC182wkQzjqH6oeE KKrQTRiaeuIQzkb8do7new2ur5+OhtSdbRLPXGWuZNyKWDxcM+0YypyMbvkleTyuE4BK n4T/YUFyMnZL8CULtCT3F+ze7ghrsB+yNGP6BLQHgjWiKY6Oql0CJazggbTbl3KhUamz fJFGN7SCM7gVfR4B3sxnCt54zbkfWh9tgwOT1sAg3Lwvgz61Fc1OEpHak9JDApGGnjtg 5TYJDG1LRGHCSzq0QvSimYfSrlG19f8AlXjuWLx+MJI4BbUdT4y3ktSN+gXGGAN235WU OpLA== X-Forwarded-Encrypted: i=1; AJvYcCXYgGZhqXkFjI7wV+BCQxw729XkgrDD9IMoPN28wwLtJPNORCt3r/oY1PVedOYV72ITWgMVLVrGtkQAhBeUzC4i@lists.infradead.org X-Gm-Message-State: AOJu0Yw0kqCP+pmvh1EDABYClGJxhC+c479bntJBWI/aVPoxiIDa2gi9 ncsG8MK6WbQtbK+9w3+9F3y+GfuB4NQiCmu11mdkAz7QlEXdjMlyTN1+hav8suA= X-Gm-Gg: ASbGncviFEMBn/QgyKUiqpvjOocaiWAJVAJiKVvW49rF90iMl4yd+Pdm178QoQpXinU onLecT0vZ+MK0PoLP3XzfqhBWNODUYjTZY8T68xn/sFGY7hENFkwZoKG5iG2RVr8zHzYDbV/Orc b8kZw1ydXm8nSdIIjpJZUWxsEZ+UvvSdzQH6bxUofIUOOA0t1oV2gvYekbesWXDuFNiznGrUUqz ZL3eiXNsp+uQw1eGrGAaxQTGVSZMHVH/04InxtFo26obhS9XkBOmtC6HxOKnYuLLQy44czV5b3K je54X/57g6sLlXg5rWFhHm3kfAYojMZzYs1n/w== X-Google-Smtp-Source: AGHT+IG5s1ruT1nmumvD1vz4k/PQPFk73wz70YSES2dlvEwqzkFmq0l7g9gUOgUlEDWIW1/6NKwMVQ== X-Received: by 2002:a05:600c:1990:b0:439:9b80:ca6f with SMTP id 5b1f17b1804b1-43bad205987mr116763645e9.5.1741007920075; Mon, 03 Mar 2025 05:18:40 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:39 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:27 +0100 Subject: [PATCH 02/15] gpio: adnp: use lock guards for the I2C lock MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-2-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5610; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=7cE7tXYd+kBXXnaURava5I+mvo86dKpC24i0n29V+bg=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawpxuJoIV5NMGocJt+m6HFa4mYBXmmZlg4hw 8wwnHfFcfGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKQAKCRARpy6gFHHX cvjzEADPodYCLVwjeMTiGTqPipprljvQCB/GL3xqqTvapt8laajCeEP13MAl+wEQgOI0PZjtgmX IfA0F82Ky3uW/F57NzwGDDUbhJo1kkawv/eZOqQ+iySkYpAjFaF1eV+oboYthMguItGFy3KWAQ5 JqKgAdn7TqGMrZWB4xBd2Nfu71VA+FhqgEXam6X9yeI0uNeMN0yeLZsyxvTZq66ZVrt0yop3Pg5 kp6deFDMu8Jn1//eSLL+8uVpdoKB+Cj7AT/AUl6/5x69brbHiORb03ioq1Nv4XPE2Bva+/oCBw/ aCFfEOyJrsROsvx1dYpcXMWytgBgxj6wM3OhAa4dXuPWGxKFq3inPX7XxK2YoKp/HlfRCs3Bv0Y MPsQNxupceBB6eNWtP3bk0r92+8D0i5+m3NMGz2zq83unvXskmb8q+LiwAQ79DL72CednxwdxTu Bj6tysTCulxtGU5NqYQDAgmXUbdvRiqUrSAmCUQAvmQ2b5Gf+VaMZIj/V+Z7gfj5/emjbGC9rem R+EAqun19YF+NX/B2DOft33MLhn9mZThlbEy6JE1cTaXqDp/Tq2AArFUUx/C0JDRf+HzB+Mx3q5 dNl7v/Pp8yfkP/IZCSnqtnNj1sUXTVN69sTh4L4X2UV96caMerMTa59SIBSU4eZPg8a9MdsOwj/ UB9QF8bbNI/2ffQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051841_961612_65CE735E X-CRM114-Status: GOOD ( 17.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski Reduce the code complexity by using automatic lock guards with the I2C mutex. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-adnp.c | 118 +++++++++++++++++++---------------------------- 1 file changed, 47 insertions(+), 71 deletions(-) diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index 6dafab0cf964..dc87768276ec 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -3,6 +3,7 @@ * Copyright (C) 2011-2012 Avionic Design GmbH */ +#include #include #include #include @@ -101,9 +102,9 @@ static void adnp_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct adnp *adnp = gpiochip_get_data(chip); - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); + __adnp_gpio_set(adnp, offset, value); - mutex_unlock(&adnp->i2c_lock); } static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -114,32 +115,26 @@ static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offset) u8 value; int err; - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); err = adnp_read(adnp, GPIO_DDR(adnp) + reg, &value); if (err < 0) - goto out; + return err; value &= ~BIT(pos); err = adnp_write(adnp, GPIO_DDR(adnp) + reg, value); if (err < 0) - goto out; + return err; err = adnp_read(adnp, GPIO_DDR(adnp) + reg, &value); if (err < 0) - goto out; + return err; - if (value & BIT(pos)) { - err = -EPERM; - goto out; - } + if (value & BIT(pos)) + return -EPERM; - err = 0; - -out: - mutex_unlock(&adnp->i2c_lock); - return err; + return 0; } static int adnp_gpio_direction_output(struct gpio_chip *chip, unsigned offset, @@ -151,33 +146,28 @@ static int adnp_gpio_direction_output(struct gpio_chip *chip, unsigned offset, int err; u8 val; - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); err = adnp_read(adnp, GPIO_DDR(adnp) + reg, &val); if (err < 0) - goto out; + return err; val |= BIT(pos); err = adnp_write(adnp, GPIO_DDR(adnp) + reg, val); if (err < 0) - goto out; + return err; err = adnp_read(adnp, GPIO_DDR(adnp) + reg, &val); if (err < 0) - goto out; + return err; - if (!(val & BIT(pos))) { - err = -EPERM; - goto out; - } + if (!(val & BIT(pos))) + return -EPERM; __adnp_gpio_set(adnp, offset, value); - err = 0; -out: - mutex_unlock(&adnp->i2c_lock); - return err; + return 0; } static void adnp_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) @@ -189,25 +179,24 @@ static void adnp_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) for (i = 0; i < num_regs; i++) { u8 ddr, plr, ier, isr; - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + err = adnp_read(adnp, GPIO_DDR(adnp) + i, &ddr); + if (err < 0) + return; - err = adnp_read(adnp, GPIO_DDR(adnp) + i, &ddr); - if (err < 0) - goto unlock; + err = adnp_read(adnp, GPIO_PLR(adnp) + i, &plr); + if (err < 0) + return; - err = adnp_read(adnp, GPIO_PLR(adnp) + i, &plr); - if (err < 0) - goto unlock; + err = adnp_read(adnp, GPIO_IER(adnp) + i, &ier); + if (err < 0) + return; - err = adnp_read(adnp, GPIO_IER(adnp) + i, &ier); - if (err < 0) - goto unlock; + err = adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); + if (err < 0) + return; - err = adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); - if (err < 0) - goto unlock; - - mutex_unlock(&adnp->i2c_lock); + } for (j = 0; j < 8; j++) { unsigned int bit = (i << adnp->reg_shift) + j; @@ -232,11 +221,6 @@ static void adnp_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) direction, level, interrupt, pending); } } - - return; - -unlock: - mutex_unlock(&adnp->i2c_lock); } static irqreturn_t adnp_irq(int irq, void *data) @@ -252,28 +236,20 @@ static irqreturn_t adnp_irq(int irq, void *data) unsigned long pending; int err; - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + err = adnp_read(adnp, GPIO_PLR(adnp) + i, &level); + if (err < 0) + continue; - err = adnp_read(adnp, GPIO_PLR(adnp) + i, &level); - if (err < 0) { - mutex_unlock(&adnp->i2c_lock); - continue; + err = adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); + if (err < 0) + continue; + + err = adnp_read(adnp, GPIO_IER(adnp) + i, &ier); + if (err < 0) + continue; } - err = adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); - if (err < 0) { - mutex_unlock(&adnp->i2c_lock); - continue; - } - - err = adnp_read(adnp, GPIO_IER(adnp) + i, &ier); - if (err < 0) { - mutex_unlock(&adnp->i2c_lock); - continue; - } - - mutex_unlock(&adnp->i2c_lock); - /* determine pins that changed levels */ changed = level ^ adnp->irq_level[i]; @@ -365,12 +341,12 @@ static void adnp_irq_bus_unlock(struct irq_data *d) struct adnp *adnp = gpiochip_get_data(gc); unsigned int num_regs = 1 << adnp->reg_shift, i; - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + for (i = 0; i < num_regs; i++) + adnp_write(adnp, GPIO_IER(adnp) + i, + adnp->irq_enable[i]); + } - for (i = 0; i < num_regs; i++) - adnp_write(adnp, GPIO_IER(adnp) + i, adnp->irq_enable[i]); - - mutex_unlock(&adnp->i2c_lock); mutex_unlock(&adnp->irq_lock); } From patchwork Mon Mar 3 13:18:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998837 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 26A89C282CD for ; Mon, 3 Mar 2025 13:27:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=X8hAv7noimuIZZQmeIe3WLO3rZ6iIEPRpuvmg5XIUhY=; b=TbEcwW21qIEJWAQIasOnSqYybF s2hBHmbz7fWGaU4utA0Smpv++gG2dlhmDo7Ms6Tz2oIkX0fyz9D0uBr+nz+l3U2GEERo6Y/z3xQDz WU6jhSSXVQD1l1NZPrN8Gk8oDb4ad48+EbH8oV34mrNAscz/5MFJQXhX+NyUXQQBAkYEVKfCXTfAo 2Jj0lDdraOFeENF7rg1RPfshNA/5Gx+gqS+RdyLcmc4cVyc9VpomwF4qaP6/l31pYsPrTfiv2qbit 2jCglGrkeZ8udDFWCv1K6wjY3wrJelRT8DPrPlQf6R3/PM/7HfPJ1v0c5Vu7pT9PoIm09tRUuFVwC 9Hsq2m0Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5p5-00000000unn-2at0; Mon, 03 Mar 2025 13:27:07 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gw-00000000sWj-35IV for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:43 +0000 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-439950a45daso27920595e9.2 for ; Mon, 03 Mar 2025 05:18:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007921; x=1741612721; darn=lists.infradead.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=X8hAv7noimuIZZQmeIe3WLO3rZ6iIEPRpuvmg5XIUhY=; b=Tw14RpEhqm3gio+65OiRegUuRtGmDWOIvRA3QYCbwvgjyqA9aX4sK3occ4Y3/clNi+ OYbjL1cqQKY2z6Z9JKp9niaMZSbXSvsg5X89/YEuZpcIlrOZXZyvcK48uZAduZSbD+wU rMbuRlXKBdm6blgwNVgLzpOur0aarZYdxI4P4Jrddv1SNR66WaucndHCxLmi8f6//EvX 2E4ns22m9GH3xqC9UzU0tQmUNF4Oyc3lztOfxHw3MYBfbfOqKWzeKtU104jOLwB/8QVC ltYlWj0KW+Hi/hDVFQ2+cOTyV3QCI44TJMRfOAMftAZOGkeKJTy7jMSAFskohkeoWnhS xbpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007921; x=1741612721; 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=X8hAv7noimuIZZQmeIe3WLO3rZ6iIEPRpuvmg5XIUhY=; b=D+lWsaBklvccrSRgp6bjq9Mm3JdG0LXhlpljGNDPmjOEhZarUhmY83XCW06CSZiq44 CsERBYJMQLYNJSP/Y8aUe+UjNWYGA0t0WvbaGw04K5gVOgb2cZw1mWSxl/gOJ95a6HnY JQBaQxoywC2eDj6nMW3VSMB8ydPVkwsrVk4Tw56V4qkN6MjWjck7V66/RZd1BbkjgfX3 N52f+59DZxZcXF6Cct2TZ/DA8IQ/s38iwi/j9O3XTkSU5LsXD4NTKedTywZGTK0OmSE0 Zu4HfTeaH7wUhYNsxQkiLXHur+VLTkscgUPYryGrmPTsDRWpau4r3biq01m3J9FheJfL Dilg== X-Forwarded-Encrypted: i=1; AJvYcCVrB49vDiK+jJqf29/RTRdrjVXC67xIVGYRA1GkaSOOvPaS2UxQyCeBN0mUyL168dcw6uog61hjTMbB/5JiolWH@lists.infradead.org X-Gm-Message-State: AOJu0Ywp4ZlZDSmb1QESUpTvhEq7GSgC+iCL4hxjVqHLEUpEy7Q0OSLL gT0W3u7mA1jCQ5IIPR09W0P9eAltzYD+6xLozVTfj5rWbaRZMKW/1v9P3vAf/EA= X-Gm-Gg: ASbGncsvei6xXAoQJ8SKlBsxzuqEzBhmJ+1HmoZecHMu98H8on7KDbskOPWK6VRdYVn DeXoRpbHdILAmwlf2BMdGp8Rk1AiydT0k80KA5u3gUnH5H/6cPPWcBODBtN5HfOOVL91fPvwQxU +4lC4Wp1rIzS8Mha80GNG8cTq/FFkWH13eRVFyAT/XIqH9sAGROVIFmKdeiO2Ma22enlCUGH1mf uoy9hFzCw4m1nP6sMLjF3jdptebfRXixu2jPQETru8zfJkr4rmiyTfddfCB9HGYQf/wkoVUUZn2 Q5+mBG2vNYQ69iM5MtaTh8VBQIWi938f4keReA== X-Google-Smtp-Source: AGHT+IENjU5auSW6uBydmqpRlN4cRim5e7ftx75e07xHAIh+YvS9KyaVM39ESiF/66tXbphMfz7i4g== X-Received: by 2002:a05:600c:3112:b0:439:99d1:d4a4 with SMTP id 5b1f17b1804b1-43ba670a870mr109103405e9.18.1741007921076; Mon, 03 Mar 2025 05:18:41 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:40 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:28 +0100 Subject: [PATCH 03/15] gpio: adnp: use devm_mutex_init() MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-3-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1039; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=rVvnRkyDf21RjdggCKIxDxEyQFvc1fgcMj5lcOy+gbw=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawp7Yvsyrv6sI169Lp9L4rRvfe6m5SnbOO8v UqoONS7cQOJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKQAKCRARpy6gFHHX ctf9EACVXYJIoLFFThB1bopDzr4Y6565Nv71gHd7ciywfLXPYQ6yTBNpZh/2RSmBQB+e+ja86PH CUip+9SBF9kzpxZiGkp6FhfuDN54tAmirDRWrtRODLUV3iHyzK9uH0jo1tXljQOt1NYRquUBhgN bGB/C2ihy4oE6qHKnMakBSbtacDEQp6fbBYxfNGH84kysXmJQV43Mv1NUjNnf/aHFKvNkgWDtin vHcT2e6jtYK1G5qPaEchHbyTOloRaGL4KXF+r87jQrAvoJFh5Qt7IswZ/Fmv1p+Er+tsRg1Dn4Y yYvnyN2mVheduT8LzO4AzsbzrjhkjYvz+vNbkfnZ450m15iY9yEiaCFyFc9WzGuR4PWA4+Vqbtb 79F2tyV/LUQcR35Okda9wZAqhOGnH1EsdPjzfoAjV9UaqS3Dl7KloSMDvc1a5nEL4sX4JzhZgHf 9ZF2kvH0tk3HMIpOQQR/ZbQ1CTCAxX6av1Qdbniwf08+kv/DyzDulxnlVG/qXDQ5LhC5fF3iUpM hdZiVTFUbzMvEXFScb9AF/4l3uK9w2PgNEZjDZ7aIzESl4APeYcOLcMK+vKAIPJUlaOYbOwMBZo lfhFveb81B6cBFCYG0aoXsPcfnT2rUfb4+52AfSHbC6d5HEiyQpdiT+5q5UoentxBKekBIrFEPc Y0M8FNdhHVNmC2g== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051842_785014_F28C6B88 X-CRM114-Status: GOOD ( 11.50 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski The mutex initialized in probe() is never cleaned up. Use devm_mutex_init() to do it automatically. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-adnp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index dc87768276ec..d6ae9cf1eb54 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -482,7 +483,10 @@ static int adnp_i2c_probe(struct i2c_client *client) if (!adnp) return -ENOMEM; - mutex_init(&adnp->i2c_lock); + err = devm_mutex_init(&client->dev, &adnp->i2c_lock); + if (err) + return err; + adnp->client = client; err = adnp_gpio_setup(adnp, num_gpios, device_property_read_bool(dev, "interrupt-controller")); From patchwork Mon Mar 3 13:18:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998838 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8924FC282CD for ; Mon, 3 Mar 2025 13:28:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hFP6OzlnsfQDERRUw+GGdLYipfzpI50/ga4CvHUlY5w=; b=Q05CQEz/BpivyRJKFmLo4XfoK1 +NJ17UT8C8aMc13frvE9aTvnWcjel9J8yd3H8wAyioXEB8NrLIze2oTQpRTM9oot51qfAHTmmF8tJ vOhTXzZLACrkzS2UJ+V7w/1yi5MQYc/FeAPpirzD0Tqt+dODlNPVFI7h1YKlYrD1cLiUziE5M6DGt RVs3DptfIPTlcjspUncMKm5PVqRTs+QflvLjt8x0/MHWeDPts1jcDett88nG9W4tukDmo2gEIxCaq mbZWjrIo2CGlbGwGM5sX3JXuBrHfjWRdDUDvYreaeAM30bcxS7PogWi8x5PEw0qBeLR3n4m8rkbnE dT9dEHuQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5qd-00000000uyt-194L; Mon, 03 Mar 2025 13:28:43 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gx-00000000sXC-3rie for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:45 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-390fdaf2897so1645797f8f.0 for ; Mon, 03 Mar 2025 05:18:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007922; x=1741612722; darn=lists.infradead.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=hFP6OzlnsfQDERRUw+GGdLYipfzpI50/ga4CvHUlY5w=; b=irdB69OQ67esv2WuGqu4EYbP2tDQBA9sH68YP8B5+1/oLwmMl1y/tIk1UOQ38yElgy NQtsnfSm6LYwx4H4ZPjEU2YwVIFFHwpm2T5s9Z+yYA6g5vP9iKmidaxU8MzdZIdzTtPM NoVuDTtZp5vEZ0Gs+/SE9ZNX9DapjyxO77X36ZRjy0T6ocmLcIjMERC9jOPJYObzztyI AL3DRBG6Tjht5ez8Zt8xVKh2vT5Vvb4jJDrqJk8s2TWWsvm6C4G/AFEipXjlKThY9ME7 idzykYMFdOg7Sf1wIhLAYyLvP767pIDN/2duEDxLpUs2KTBN8W0ct6ROhXI7BMAmYR1N aIsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007922; x=1741612722; 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=hFP6OzlnsfQDERRUw+GGdLYipfzpI50/ga4CvHUlY5w=; b=eV7gzbux17BbQPYObpyw6V6GqIKNjqmpDIilrf51QeZaADplDoRGfnKNykUajuzy6h ho/0btDuVs4eRPbPLbMPxm1aLv0vBjUQViXISXg0tDOzm2+L92lT28kjzSM8lrlQpnuU eZRh8ypB23dxtES9jScQ2hmB+uuf0IkUARQFYnC7IF/EV41WFM/wiHWONRGyog9ZYG6h 9n5Yk6n7RsX6tL86cXoXn/4xeBltOaWi1kjkE9LBVd+UL/2wiVtIJM/zFntA2xok3wsU eLUsxSlm+BUNZcYdyPS6CqQAkmOJGFYQnlxdySbtQ2cXSMekpHDgVPGbKAPWwpkgxzw2 aazg== X-Forwarded-Encrypted: i=1; AJvYcCWCJ/zaEcqNXf2biDTxdZrA5CX7gCcFYQ6wA7k8rYVr41I3uzxDua7UkhejFKEqtfg51vaDlJygezcJKisI8mWL@lists.infradead.org X-Gm-Message-State: AOJu0YyF1tPXDyxO3VkuBiJ58WiDJMj8e4lFTiIAZokBHMCGTLW9xzgs tVpqUZl9Sp1MhyWPIsc1Qo5fs5+NbcxVvt1jA3qUOqkg+U4uS/GL7v8eMyKY7m4= X-Gm-Gg: ASbGncuRY4K4f4sznstmW12nywHr5mcj2GgMyPg5bQNtG387EpFRvQE1myNHr/CFYnj gUS4lxs/cInMTUNUS9dnNsNXg/hAQ5lOF7C9m/WtEuHrL1q9l4Er4lBTiNZ7tA3t3YFSo+EdG0h v5V0HLRqkF3AnfEA/dRQ1DNAGdzYTxhyU5oT4Z2a0bqFgLrvTADiyFBxYMHHTgK7Kgiz2jZ/hQT I2w7Yie44GtMUgk8QhLpKorEhvZSMBaPAHULtdeRb3B4O7QCgQoRXeWn6OjzclGY0mM2W1mZYkn mLpFP3/gr56itBlAhPO0OIh0PUlu4CZkgFM8tw== X-Google-Smtp-Source: AGHT+IH4JWES9ARnc+bAEeGbW+TGmzRI13+v2x9lWq0KdFeC2YMdrtpeHPu9rNemD9SH+Vsoyms9pQ== X-Received: by 2002:a5d:47ad:0:b0:38f:3791:c1df with SMTP id ffacd0b85a97d-390ec7cdcd9mr16010467f8f.15.1741007922072; Mon, 03 Mar 2025 05:18:42 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:41 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:29 +0100 Subject: [PATCH 04/15] gpio: adnp: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-4-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2053; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=kaPruJN9Kqnj6pYgKtiRCJyUBIyZUBSHWZ9yCXz+XTc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawqMe3ivpxHTwxjmRFDD+r5+f7Fb5d0Noi1G O5lxfuzzSSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKgAKCRARpy6gFHHX cmp4D/9jaHcQF7O+UdJIKHTVsZUWHdT/ZGnlWy1V3W1/TlaMF97G5wDnkiNu8Abc/PxBzSIt7Vo KBMyBZrdnswEDYNm04jbPBI25aQfX6tWozJEZf9iYmpe9wFlcFTzksQzJpUFBtmKqd6vNbmfItm fCi1KIafodHkdb9RUDWAvSu2oq3iv97mq72cqDYzqnwYTFGE3sRihwrVxQf/zbQxdJ+Bgggp8Zh bqOoleGxS5pKG8fcqro2cd/HEf4VsjNbjq0tFes+XRILE7ef4PWHacVJFLwiHuR6mgfskXZgqGm o0O3Q5FWRrbNpDJhuPWkvn/dR7gqcipLj5GyQgSL4t00/D2oFvkYW5n9LVPpPADv1N/YKiWNr2j HInoAV+f0REw8KC8InxkPcpaErGNaaXwgnrAu5Y9HXWkhzcSjYZfS/1xCmXXQKXwZN+Ln+fX4G1 YccNjDF7ZFOmxClF18WPVkMu9m5kvZjyIqtgnvo/H8X+kMCpX9DR4FsmqOa6rl0KO8IKcge+D7d WobcW2JM7A49kYe/ZlTxhEX1pTfXKAIUfUuy1/o3ocVUdiIZjPjBbkaHyimA74usFeUAxDL1+q8 k3cJxwl8jpJDmJvWpGCh5g+HLssBC0WNpo/UvXCxt3vqB7Wnl7G6Fmsfv/4nQk5KRv4/pPF4sj9 CHJZ/DGf3QGZI2Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051843_962415_D8B01F00 X-CRM114-Status: GOOD ( 13.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-adnp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index d6ae9cf1eb54..b31ce0e337ae 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -80,7 +80,7 @@ static int adnp_gpio_get(struct gpio_chip *chip, unsigned offset) return (value & BIT(pos)) ? 1 : 0; } -static void __adnp_gpio_set(struct adnp *adnp, unsigned offset, int value) +static int __adnp_gpio_set(struct adnp *adnp, unsigned int offset, int value) { unsigned int reg = offset >> adnp->reg_shift; unsigned int pos = offset & 7; @@ -89,23 +89,23 @@ static void __adnp_gpio_set(struct adnp *adnp, unsigned offset, int value) err = adnp_read(adnp, GPIO_PLR(adnp) + reg, &val); if (err < 0) - return; + return err; if (value) val |= BIT(pos); else val &= ~BIT(pos); - adnp_write(adnp, GPIO_PLR(adnp) + reg, val); + return adnp_write(adnp, GPIO_PLR(adnp) + reg, val); } -static void adnp_gpio_set(struct gpio_chip *chip, unsigned offset, int value) +static int adnp_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) { struct adnp *adnp = gpiochip_get_data(chip); guard(mutex)(&adnp->i2c_lock); - __adnp_gpio_set(adnp, offset, value); + return __adnp_gpio_set(adnp, offset, value); } static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -430,7 +430,7 @@ static int adnp_gpio_setup(struct adnp *adnp, unsigned int num_gpios, chip->direction_input = adnp_gpio_direction_input; chip->direction_output = adnp_gpio_direction_output; chip->get = adnp_gpio_get; - chip->set = adnp_gpio_set; + chip->set_rv = adnp_gpio_set; chip->can_sleep = true; if (IS_ENABLED(CONFIG_DEBUG_FS)) From patchwork Mon Mar 3 13:18:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998839 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D9CD3C282D1 for ; Mon, 3 Mar 2025 13:30:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=nNPL1a6roW0ZZry8Zwf4bxHUCK/ikUGMkO2GYygkBZ8=; b=mGQ68Yiblg1fE22b80nsOxpjTu 7XFsr1FMLJUvJYvfH6dOF+RC1Iqx7jk7SBNXca9Ed4EZ6JcE6LifKSTsfHrQHHQ5XNVsdVVhX9jgo 7n1XzL4fv5lI4NNcAqYvHtvlzED91p1pyCa9pix95kaF4wfhXBm4CBQk0fgA8pNZytRgAAzZMg8jX 5E2QUuTqHBArihrTRfWqwp2LNphCfYPgYrGAtEmRQehKL/MWd+RcSHiIzPXsI5y3Td6VNZBncVSqu GXWS5HbDPKK65X9jA8JYp4JxjQe4T6LvBjGdhf0IujS2Q8qXod9uJyM38gs8YaxbpESyK/Lm9CJ3N B2HClf5Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5sA-00000000vIa-3jQX; Mon, 03 Mar 2025 13:30:18 +0000 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gy-00000000sXh-3oLl for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:46 +0000 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-4399d14334aso40803735e9.0 for ; Mon, 03 Mar 2025 05:18:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007923; x=1741612723; darn=lists.infradead.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=nNPL1a6roW0ZZry8Zwf4bxHUCK/ikUGMkO2GYygkBZ8=; b=BMzdj+JoN4cUDnSfEZ6IOJZwqmxHsOna4cs5fefdqOwBymxI9MKXC7att7IHkabwu/ vcgxUeHiMnknFRINELaY5pEhWB7qMq2DzFH9xtCvIku7A1dlauZutGc5+DDj/zFUoQP8 ud18crBIfVH6K+ru+adtcWoFwkWk4u5D3V8DANFpVBWxxpYMAgFd1kz6w8+UK7QERUR2 aNDpbxulBXaN/OwlWbUBF3AhOe8C98kCiagchW8APJSHwHPQOigAW383sdZJNwgoYTes I2n/wLJKTQ4NlkuNOVLyvYZLRur59Cifxv5VXQM2tx/OjQ4XgkEVvvtENCOK4bAvwVy5 P1gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007923; x=1741612723; 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=nNPL1a6roW0ZZry8Zwf4bxHUCK/ikUGMkO2GYygkBZ8=; b=EL02DTbaCfUcGU8JuqkfM37P/Gm0cOtHvpArJGn4v1qhZu9rAseXxNDGz2FSPONQvn QyrycJJNXSCQQOj1ClhQX3Yy5sjuaTCerZBi/CkcDIiEbQqfd+32fu6K/Z9vwPSMgJdz ewsrPPDZQ6FS8Nv167ebfs0mux3Rqmx4/C64wrWgupu5nH7Z5lJ6m0LX100N4Q/f0iZy hMiKyEMI6jtEyzXN9dJfVfmiExkTtrxwj+MhAsilcj3LSiJGZAIA2ApckhoAqvvYSont czhdS+u0VVZsUnXMWeRJeQMWBVGVm+/koDX5uVSp07R0/BNAcKnYK7V0dp811AwXwZFO Me2g== X-Forwarded-Encrypted: i=1; AJvYcCUOn89/PauRQCypjp0srl7+mlnryyNuCHQln/JryD5DCOJZU3AAjlmflG2jbsRUqdfV5hMeSttI8ZkBoX8y5Nie@lists.infradead.org X-Gm-Message-State: AOJu0YwwhoOOMgngM3/3WLiLYssMaDB9j37eajh7fT9MTKW6D3bMgVJm bvS6xaZfLPBMvTG8rG0a6KtB7dcUpLTk2VVpjU0SURPHu/LZY6uEd9PElJKCvkcme1q2jBfHBzG J X-Gm-Gg: ASbGncsgkyHlShV7tjCUTDNKGzzCL2P8UiW6LyMer/s0gI2MgHcC6WMQI7qxhCv9w5D 9BMAfrbCgZ+8yqUTxY2BND2xQLPTSV4BJgikR2GXbwGYj2T1goEgfA3JksLwYLDZ0CiVtRwGAjH JvYy4bbDyeh99D1dcfIlaTzlsXm0QyKkxfhO8Pek//9ye46HwHkVu89UOoivQCu6xSyCtV/E1S5 xtubp9LdQiAyslECDh+rlJA/xCjuWl98bP9+whPG6cOhkg9JA1IxUWEclmgq8MCouwzUnDQ0WzS xAMe2j37zPr3jYBeuHYJyeWrkhOT0YxqmGsIUw== X-Google-Smtp-Source: AGHT+IHbszq+vMxzQMr31b4yJpnsrbZ47M8sVQM15El+wQuWQDwBK5/Bpb/PIWwe1VCZA2bf3aRtzw== X-Received: by 2002:a05:600c:4687:b0:439:88bb:d000 with SMTP id 5b1f17b1804b1-43ba6a83af1mr92775155e9.25.1741007923152; Mon, 03 Mar 2025 05:18:43 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:42 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:30 +0100 Subject: [PATCH 05/15] gpio: adp5520: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-5-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1693; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=SunsCTO9F+EWaLdjYQiV46KnQmX+82e2K+lprMGFRIU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawqgKKxH1y23tQzCweLRSEGjaAyGcRFDUeq/ rVWsBlWpxGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKgAKCRARpy6gFHHX ciKKEACBBk4kHvWvq9gEzt3a5+c5/x2eJ9ofpSxc1k6scdiEyfuTckeG0jNwsnuKnmWGVcZt5+z 8OPcjsT0+csJp3FzC6PGpCSMfbZUtw03JIQJGM8TWeI9ulmBka8MlineJCR5DOERPeRx34SKzD+ BQpvZfcQJngxK3LC+jkQZe5Z1vNINnA7BDbxaIFOcrweYjO+BgKJjE5TmPfdAlBSGC6BUuR1iMj +AhL75DSMv1bbaQ353KeDSeKhL+y1Ze29bKW5TCbzJMdU0kIsHL3BsklC1xldNZa0+Nl55J70Qt X8NPXyh6+Y/YbRI1lA9rrHkJ9XmvP02lU3Qsurs16hAgBT5TtxSHmp/ax0Jm+u3mG6t0Cd1EB4U bEiGB1Si600EmbxI/UWyIyLFISxpvQ0aHnSdL/MplN69ZiSspnqIU1gI3ZbgGznyy5hYAClZcKM 5Gh6uws7oGhlSL8ETakeFWliTxMEZj3T+TyK2r8NHvLubPVo5c4IN6eRulRk3upWDvAhnK8n6Aw 7hl194jwWCTYD+4ao2kfFKnSMSf6scU7P6tKw7vMRCW2aW114kU8SvfGV/Yf29RiKRL5db1W3vW ljM/LPc8eoRpobP5W2hQn7HrIohEw9zv/cYH3w41EC2Ac6mfFQetDtaT/UQXRPoAI2yR8rIsbd7 V96KA6HPqQ2Ei1A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051844_960505_E0BB033F X-CRM114-Status: GOOD ( 11.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 Acked-by: Michael Hennerich --- drivers/gpio/gpio-adp5520.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-adp5520.c b/drivers/gpio/gpio-adp5520.c index c55e821c63b6..57d12c10cbda 100644 --- a/drivers/gpio/gpio-adp5520.c +++ b/drivers/gpio/gpio-adp5520.c @@ -40,16 +40,18 @@ static int adp5520_gpio_get_value(struct gpio_chip *chip, unsigned off) return !!(reg_val & dev->lut[off]); } -static void adp5520_gpio_set_value(struct gpio_chip *chip, - unsigned off, int val) +static int adp5520_gpio_set_value(struct gpio_chip *chip, + unsigned int off, int val) { struct adp5520_gpio *dev; dev = gpiochip_get_data(chip); if (val) - adp5520_set_bits(dev->master, ADP5520_GPIO_OUT, dev->lut[off]); + return adp5520_set_bits(dev->master, ADP5520_GPIO_OUT, + dev->lut[off]); else - adp5520_clr_bits(dev->master, ADP5520_GPIO_OUT, dev->lut[off]); + return adp5520_clr_bits(dev->master, ADP5520_GPIO_OUT, + dev->lut[off]); } static int adp5520_gpio_direction_input(struct gpio_chip *chip, unsigned off) @@ -120,7 +122,7 @@ static int adp5520_gpio_probe(struct platform_device *pdev) gc->direction_input = adp5520_gpio_direction_input; gc->direction_output = adp5520_gpio_direction_output; gc->get = adp5520_gpio_get_value; - gc->set = adp5520_gpio_set_value; + gc->set_rv = adp5520_gpio_set_value; gc->can_sleep = true; gc->base = pdata->gpio_start; From patchwork Mon Mar 3 13:18:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998862 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EFB23C282CD for ; Mon, 3 Mar 2025 13:32:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vBMDp7aHXRNt/RwICrg1q5Lp1fT8OK4mUnztK4V4pSU=; b=aczq319RchrQox/mhQE2CwM3dy At/RHsnAcMENTl5sjLawJBQb2Zwjnp0c3d7lW8mz00Tkmihs4DoSnI41TcTH6+WecSusE1wmbItRB /3O7cwB1wYzPLY+O2NTqQRanjpcgfXmbR2oN4HUjBpIBaognAgdWYwRAeIKJ/8U8m39oerkzifu0P s7+t6SEFNBWw0PPEEa78iIVUIMoHprzOSuopKeQOS567V6hLF8c7H5d4fK0xT8HuLpQL7pCLqKCWb lscD40OgV/eocJoU0izbO5IboZlGtBb66h0tJ5qAJwSU3AFKREubmYC2kfT4VpJ7scw5LRigQKRbx JS06V5yQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5tj-00000000vku-2wmG; Mon, 03 Mar 2025 13:31:55 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5gz-00000000sYk-2dqO for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:46 +0000 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-439846bc7eeso27977085e9.3 for ; Mon, 03 Mar 2025 05:18:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007924; x=1741612724; darn=lists.infradead.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=vBMDp7aHXRNt/RwICrg1q5Lp1fT8OK4mUnztK4V4pSU=; b=DIC0iTEgIJxWgg8OAeatYr+NRTMdko6ORfNVDETknz2MqGxDWTRXhi6VC95nMwPNaE B4jRXn9lbwuA1Bba4pR4YdmGZ2fiCSAF1lxQfu675nqKlvWyYCmRiwJVET/T/Q21pQvB bsdh7XPbrT96FhrGWAQuZLieZsy6hB6WMYeI88aQn3IGlMTZIQPcyWWoLj8kOUl59L92 CLdAGaLa4pUtV+XRL3+RGNV5IpssLwS9GwMXP9OO2bM5XUonRQv8OmboRyDsepF8htFD Ep1C8dgigLTQDJDNUg3BYqZA6tq5uDaWHJovpS7+fGD7z6CD/teaE5bD9nxkinE+WJLT KBIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007924; x=1741612724; 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=vBMDp7aHXRNt/RwICrg1q5Lp1fT8OK4mUnztK4V4pSU=; b=B1kBlCciAVlRVhftBPVeyyypYbReBVvBT6OlqsNI9q1kfrUduzFecmg0cDv4BkJqV9 /AW6VhusKMdVwepXozn9KQS8EnK6gJAykdcAR/8lba1uCD5yw/8LKLyHj116XsDUVlck 4jia8s+MIm6MeXkbQtgt0HTAh1s6t0cBj2Q3I0seE6AUOjIl4V+ZebkG+Eofd+BIXyMn N+20S0ujWO8sd4Re8p7g0flFALA9OWtxjM2hfFhkZ6W73lUdbQFTrYNQdw+K3//8BgnO uROUTv7EObYMvsyuxprt7XNuY/bVdARiM4Fx7a3n6mO2vpDoCHrJpIXII+u1D98RlwzW e+sQ== X-Forwarded-Encrypted: i=1; AJvYcCUKdjg9VstY8wUZejas/ZLm4WeprFenk43qQPOH7Pw7lUr609vEuIq/sp2KFGtLoVdZcPyosb4McXwJ4QARqi0N@lists.infradead.org X-Gm-Message-State: AOJu0YyUD/g4yCSX7hY+2VZZ23BEtEeZP5LBc8zngiIbYfekpBHTXOit RsLXFFzppR2OR5KhKWKjugUgd+X2cKGsmzp1Y+b8Y+ZaCUb1N8Xs2IzCm/ITAek= X-Gm-Gg: ASbGncsSPXIcubJaKyhT0fHFo1eyEb/mJxHE8nUMWvj5Gf6hjFF8tw/PSBFjRDP4Tjd 7fROvKfidiZB6E04sxSWj/b76RCwbSgYHLRXZz10GYjDr89o+M9FnshrGuKZ/8BIAz/2TOKtbi0 9MNPpiYwWBkBUxs9VGtSjECiW/Zpxv6zs3JnKsESAoczEFW5oo5AFoTZU4qtRl/KA0CwuzBV2ah NhLbWFnZb6nHOWVsCaEpkXnAhsxI3+LMm2VdvNBHEiRNQuFc368utYiD2vm47awm/6lvH2Tm6e9 NqpxpPUFe6as4e2CJD9lD0v0YDwnkZ5Y8l70UQ== X-Google-Smtp-Source: AGHT+IGbJY5Jo+WiS4mPjsCw+ExPOHOSH2GviMjPeJvWFYMKh5onFXn1ZivjmcF8FlnAaeL3hMO2aw== X-Received: by 2002:a05:600c:3b97:b0:43b:c7ad:55c2 with SMTP id 5b1f17b1804b1-43bc7ad56cbmr14809505e9.6.1741007924329; Mon, 03 Mar 2025 05:18:44 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:43 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:31 +0100 Subject: [PATCH 06/15] gpio: adp5585: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-6-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1676; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=rFPESwnteTAwQY6BOrgrkBqbk+imePLRfwcTrSAG+yU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawqPjfHUJ4WPy8suyZvHErNCeJlzfCBlVJei RnIRKpHR8aJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKgAKCRARpy6gFHHX ctpjEACiBsM6B6IoFrKlVbwDZcEaVstk/hylqUDuoVuEF8O+FEE9xkLlNz44NsSw8kzO+pguH4u HKN9AaGuVpIcI4vAQv5lislBsX3xuBv2zHzm49rk+yv935TLT4MKXOAnVI9S2TLfvlEFdCUqjYy xakIdKPXiHkiWCmNrwmy3tqB5HwwbQ9p2NEM8l2+W/TCkmT+Pz2NJ3R4yT6JAjSeZr+2k0d5a0u eB6gdaikIt6DKTSX6pjOtXYEszgjOhzEYBmgB4l0cF5S7EuY3tn9Dnr9UA+YHaCbQ80J5IrMP8d lRK3fBqv5nJHcj51oVIgAUqYZ6xp0rXFaFCfTNRpbgYiojTCkRsX5kp/E0AMt0pPzA7HhXfsdvw 0i6HG/qKEnEk6oOw+kUQKCQKZMKIkHKjvuNgPz0i6mVcAoXFGcP8qSyMEVBIGPdpMlBVkTXxqk8 HI4W0A+4wV2DnsAZIfTNrPfj5kzl/PZ5znHY9+rglJipUo9/pnLLBDLrvwNtJUAtRrJEqVpJcRf Dt7hopEPcrdBWBcaJdswJw2xmw1GScQ6wfnCpvkjveGWaZFpnijBCLytD96kbhMOzY8qneMcr1t yXEogC9FoR/nvMjtW9skEXcr1twoXt1t66yuuNXqbz3LYy6olZT9klECCt3qO5JXfkKmt6lzIW0 4rFJI+Vr50GJimg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051845_677345_F4036422 X-CRM114-Status: GOOD ( 12.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 Acked-by: Michael Hennerich --- drivers/gpio/gpio-adp5585.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-adp5585.c b/drivers/gpio/gpio-adp5585.c index 000d31f09671..d5c0f1b267c8 100644 --- a/drivers/gpio/gpio-adp5585.c +++ b/drivers/gpio/gpio-adp5585.c @@ -86,14 +86,16 @@ static int adp5585_gpio_get_value(struct gpio_chip *chip, unsigned int off) return !!(val & bit); } -static void adp5585_gpio_set_value(struct gpio_chip *chip, unsigned int off, int val) +static int adp5585_gpio_set_value(struct gpio_chip *chip, unsigned int off, + int val) { struct adp5585_gpio_dev *adp5585_gpio = gpiochip_get_data(chip); unsigned int bank = ADP5585_BANK(off); unsigned int bit = ADP5585_BIT(off); - regmap_update_bits(adp5585_gpio->regmap, ADP5585_GPO_DATA_OUT_A + bank, - bit, val ? bit : 0); + return regmap_update_bits(adp5585_gpio->regmap, + ADP5585_GPO_DATA_OUT_A + bank, + bit, val ? bit : 0); } static int adp5585_gpio_set_bias(struct adp5585_gpio_dev *adp5585_gpio, @@ -192,7 +194,7 @@ static int adp5585_gpio_probe(struct platform_device *pdev) gc->direction_input = adp5585_gpio_direction_input; gc->direction_output = adp5585_gpio_direction_output; gc->get = adp5585_gpio_get_value; - gc->set = adp5585_gpio_set_value; + gc->set_rv = adp5585_gpio_set_value; gc->set_config = adp5585_gpio_set_config; gc->can_sleep = true; From patchwork Mon Mar 3 13:18:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998863 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B74E4C282CD for ; Mon, 3 Mar 2025 13:33:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gz+znbWREsKmtzW3OBAmXUrUOCp/yw4x3Y/d/8vV1Bs=; b=bRJ4ze40d4Ui2aEtGU3ipPSd7s Hg8NZFw/4vLRERFci1tbDlGc8ZHlfPbBCcXYbb0qFYfXQMnqXhTVudsvM9nk5B8YPOJ4wXzxE/Arf qq6LG97HkPmReCljjVYyGE9RGAps85hB0hKSpEPGIJHCYQfFta/RiyfyINFGOpc+el44r1RrSL2/m 2Y2WxfvRtHeDXWdHOigaUVaqUJyWHJSstYsEEUbI2m5S2A8sg+3ls8LMAdsIBV2DTueUy42KHXtlB 2mhpFg5W3B8TfwN/sW/rL19fsfKlwrIvxfr+iJIpR0zZBaXmljeJSn8WQev9fE+ssJC1/R+mWSrWa satdy6TQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5vH-00000000w54-1ilM; Mon, 03 Mar 2025 13:33:31 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h0-00000000sZS-3LRf for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:47 +0000 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4394345e4d5so30311795e9.0 for ; Mon, 03 Mar 2025 05:18:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007925; x=1741612725; darn=lists.infradead.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=gz+znbWREsKmtzW3OBAmXUrUOCp/yw4x3Y/d/8vV1Bs=; b=e8pE38cM6Ej32wERZhCKXxpriPGhaWiO32/ScuB3063hQaD5/+W8CQziYsYwx2+NUP TMk/VfAO/7bt/a8VCl075sxNwxw5cHgSriy3YmpXqDif+fBBEj95d9syWeXnl5RHzAa4 jr+lr56etyrRupCpoiN4bVoB6DTV5fjYX/xz8yjQvZxqMLTbG/G9kJ0eEl22M4L1STOJ ppbPnq7feAC7zHAarSuJ63bw+ln0/OF1ey/c4AYpDyHMidzIVLuZzchEGI5GqCeGr7qk FAN7VFi8d3VvJqMorm+bHJPS/a+l46TwxjGLog9RcLYPRkiXtOvMGxLhTr0JK1SWmypZ fLOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007925; x=1741612725; 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=gz+znbWREsKmtzW3OBAmXUrUOCp/yw4x3Y/d/8vV1Bs=; b=dLI/trHWm/IHzBdEv6wWQqPVHeQchROJq+NqNFfiPXDLYOQ+PrybksdAa9Ambj7WqW a7O8WzdH82lVskhD7mFpGWch0iCWLT9VYASY36f0HVX7phWosGf7JsCjA9gy7HoEaPN1 /m5zQu1Wr0BWvQcC9T0SkA3opFt60k3om7Xxi+LRNLEpBetnB452fe30Bv7mfLTUG5wH RvZXb1SdTKojpy89e7YNEHlcMGQz3hm+iO/NJOZhT2ZDJZVHZ3TQC8dPJtze6UQ7GZfd JKsbZSHU6tnVdyF60t3lVONlEkxETLQWyOZSnSUNyUSpSTZhtGBgEkq7u6H5katRt6qC s9QA== X-Forwarded-Encrypted: i=1; AJvYcCWAyYOGRiCrp5fWyJgz6kuOB/ucbvVsdq0wMkoGdE8qxS71OV3GVaXgeoo+EM1xWUpPP1LgM/m/rBVfmr+L2iTs@lists.infradead.org X-Gm-Message-State: AOJu0YxVpB23HvVTth5zKXyCZ6tSIj8rcSt/67VJC3PBd9ju8N71EPd/ 9d0/pp/+8xQzrTwuCGsCaDuB4PixBdw/msqlzzruiojiVaOAaezQh3nzyTAni+53DgQeXVEE5Kh N X-Gm-Gg: ASbGncuat7gWmQR8L0LUDmkGIINRcaB8iZ3BnDiDYxP4np8YAt/4G+VKqpNtJZ4vNAr 0Fz85hdIVhtEyDw6Sn1rcbx7DoeW2kpgl70GpJbzf9+ZsPZP/ySTosysDbeDqlhWFoStIraNfsh 9rUfxNVt2l8Ap5v/z1TaUkUAl5QOnz5PLmmyNbbtzftGrLuo5kzFFOacwIqSdgPCOicFkO00rz0 m5ypTSyNIQmT87RrPUErK5ZudWBVl57VrPE0+sF8Nx7+sO1tPGwOlaR8x1Qg+DM9wg10NZDPF/a TX+vj8kGvm703tfZLxbiXQq2hUqvibROtFnQ1A== X-Google-Smtp-Source: AGHT+IEQW7YZHCrSLWSEknFmca2KCALoGeG/H70z0XerHtGSCpqthigF58jSy3FNcBdb29iDiMLtqA== X-Received: by 2002:a05:600c:5493:b0:43b:c3af:3304 with SMTP id 5b1f17b1804b1-43bc3af34c2mr18251825e9.28.1741007925218; Mon, 03 Mar 2025 05:18:45 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:44 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:32 +0100 Subject: [PATCH 07/15] gpio: altera-a10sr: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-7-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1769; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=92motqkZmcdTqKDZ0pbU5Fpe7KR5fxlrz4Z+U7eO+v4=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawqQygDSg3gkaKutuN+SS1W5PBDPQ7axtGpJ lUog7E6preJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKgAKCRARpy6gFHHX cuH1EACxW2kuBBYKDwQHK83+US5eYzcAEXawXkCLyQoz2XEfFhdxD1QimIFJm1EqYBPUh5CBWOL zxkL3aKSAQoJY9jWFS1zvyq4/gZPTJycJKRXlu+HFjzqz/79hvUZXEuHFyTtXR54uhXDFki5Mb0 4o2PkqsrKtU6lKxwTvH0+TS2/iEM0KOfbz/v95WtFK1jQdXS3aQ4h8CWtCMk38CElYwAVbvkEin FUO2PFSqtIULt6+l0Pz2dCU4CyDlX1gtFbx8WCGsAqEZpCVy8auMyCJxXJKdb+OxQLaHuBviW6t WYshDG8yH/A4XF8qXXQVjKun41VUgQERbIG39PWLFzBy57Mt2aPTwQK2+++qcUzuu0WOIRqiuoA pX58nz5K2Ygn+zXT35ywaDi1a2P0G8L8+ErRo2EuKTZ8Jb20BR8tf7oeKLNu3Bls/15jxGHfaS1 mO8QBHt3R0bLpwCpgNeRiBtS6N7cLl3iqAqhdn7k21X7n8mvTszallAnm3vrD7sYz9ocWHaSA4c CvGPG6EjE+KhtsbPaTm87Z918cA8JFDaq8Ey0dvM2ITRG/Kw7hUBZw7T61YBjIXYTWgun/siEhN QHSXI0VHOtUW40UFWOcUyoi9vM6C3GVuTarMHdLs2kvL7JyDDe/b6yX/ILTUitQx3Bm6dWAdZ33 MEJlJpdfI9kdwAg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051846_840723_494B3BAC X-CRM114-Status: GOOD ( 11.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-altera-a10sr.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpio/gpio-altera-a10sr.c b/drivers/gpio/gpio-altera-a10sr.c index 11edf1fe6c90..77a674cf99e4 100644 --- a/drivers/gpio/gpio-altera-a10sr.c +++ b/drivers/gpio/gpio-altera-a10sr.c @@ -35,15 +35,15 @@ static int altr_a10sr_gpio_get(struct gpio_chip *chip, unsigned int offset) return !!(val & BIT(offset - ALTR_A10SR_LED_VALID_SHIFT)); } -static void altr_a10sr_gpio_set(struct gpio_chip *chip, unsigned int offset, - int value) +static int altr_a10sr_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct altr_a10sr_gpio *gpio = gpiochip_get_data(chip); - regmap_update_bits(gpio->regmap, ALTR_A10SR_LED_REG, - BIT(ALTR_A10SR_LED_VALID_SHIFT + offset), - value ? BIT(ALTR_A10SR_LED_VALID_SHIFT + offset) - : 0); + return regmap_update_bits(gpio->regmap, ALTR_A10SR_LED_REG, + BIT(ALTR_A10SR_LED_VALID_SHIFT + offset), + value ? + BIT(ALTR_A10SR_LED_VALID_SHIFT + offset) : 0); } static int altr_a10sr_gpio_direction_input(struct gpio_chip *gc, @@ -69,7 +69,7 @@ static const struct gpio_chip altr_a10sr_gc = { .label = "altr_a10sr_gpio", .owner = THIS_MODULE, .get = altr_a10sr_gpio_get, - .set = altr_a10sr_gpio_set, + .set_rv = altr_a10sr_gpio_set, .direction_input = altr_a10sr_gpio_direction_input, .direction_output = altr_a10sr_gpio_direction_output, .can_sleep = true, From patchwork Mon Mar 3 13:18:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998864 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5E393C282CD for ; Mon, 3 Mar 2025 13:35:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=/r0MuZTH6RnCwiU0BqdZFY1e9Cm3LvOPjQ1muaLpSVA=; b=ZbmbpaLmgnPfvtbaMi2bDm833A fig3DbW5/U5ODDLycyzbtb2e6NuJrQXZ5xeeLE/lG/u8ibwGvpaFGfkKaqEcQ/ymyI21SOSqxL/+G EOQbE+OFK5v8rjDYNZFsVkST8ElzkOQ7N82hGhoXJVDd3WyVFlJo8TCYuVhJHcP8q1o1NVrWp+Gkm plgiGIkOWE662bUVbrz6GU6rsA0MbBUBayfBbWF10pczFt+UC+qTfGRq/d8If6vQ9Y/gERMZJcoPQ Bf0T60Ify4nE+GflefaI35TGL1dVj7vsNq8EjZq73JilIBsQi2CemEWjcZKxS1z0KQwMgYBRe6Wqe Rw7dg1Ag==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5wo-00000000wPH-0XWO; Mon, 03 Mar 2025 13:35:06 +0000 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h1-00000000sZy-2tg8 for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:48 +0000 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43690d4605dso28099155e9.0 for ; Mon, 03 Mar 2025 05:18:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007926; x=1741612726; darn=lists.infradead.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=/r0MuZTH6RnCwiU0BqdZFY1e9Cm3LvOPjQ1muaLpSVA=; b=EUgs8ZZtuq0fdEoeyY7XeQODCuqejya2DEcbx1IhdtEjd0/M7IeBGNcGfMTG16fP88 4BiH4m0Yha0Y+LheT2tl7cPO6Lefc+wRWk0BUxZLYUuJmAJdWMaAGLrdz0yo6SFpCtmv tphQuPqdKr4dRBeMwRbQMeiipJaL2JqzzC5rLpGcyc5maCYXwnmq9+CYMvFCC708N0Fj wrviVakK2qiTuFSpfxghAvcZBNuES74356RHLW8YvqJRTIOQ2qlpeCpHAqPmKKFxWOya SuMLWQhz/XKbPYvblyExI1hnc6GxJh3BHHnpaxb6bi+5aEaFPKuiuyay0JcxyXqFXun6 i4OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007926; x=1741612726; 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=/r0MuZTH6RnCwiU0BqdZFY1e9Cm3LvOPjQ1muaLpSVA=; b=FLnOHr+c6jB188jJtg9EvQkMGYPFopbVcWJziXEOOEFkV+GAqYzkXon4RPoM17UAYw mactUsyNHDGSY46hKsdDYEmd5LCUCt+c7CDilBsZJysxPgXSBKyQc6aBulist7Adv4Xi uzpdUPDtRER/DbrXfMYQPArbzfNZaYzEGE0ow0wBmBAN3YnO/FhsUCMAIMg+LRJjE8/J NBtYti6JjGr1t9l05GKVWx3yVVqBg+wBkttkatKXv/DyzkMSsPY9dGxbLlIAHzeH50z8 nfw9/idVbLW8tGVfWDf3ykxhyO8ntQ8NO2aXcZsOkxkWK2k3YXUjjw6M5PPHdYeR4RiD KzMA== X-Forwarded-Encrypted: i=1; AJvYcCWbHoXEE4Z2EcbQUp/Aej+WLlWTpWszvV1aG8ClV8qkpu5PQPOQV6wcuV4cb/oYrsF4TyCkLj8nFbEoM3HtJW2a@lists.infradead.org X-Gm-Message-State: AOJu0Yzgf2evzt+zVebY5gg+iA9rPB6sy7NadZGywVcFwvjN7PYszaCW pVqM8h+tosUE1tDeCleMxyT4kSP7nilS7kEjS7bCPQerNr8qh8GkbrM82czmLvM= X-Gm-Gg: ASbGncvHUBt8wbGBebUnBRe5hCu/Sn7oEIxee8a8B/hOEpytxRO7XrD8TlUUMnvp0Y6 3W4TLxR7dhHiOVJPSu2AwNVuOPE4I3RWVNMn9NIbUnX4bZezx3yfz/kpVVfnQhoI9XHWPIjFojP efbw5fw5PQ6B6Ila+CrGmTmL5WxKZO7JkHXGK7ZsSmEpiQw2HVSuM93obZQj0p9A4eupj142weS 58mUesyi7RTFedeGxfFn1x8aaaTKUY4LsOMeYimB2fl499mDxB4iNiXGMEUHg7RJRpZpcyIlEdH UDXMJHrdGYssZuZx6YBeEYnaB4AW5U7dp9lalQ== X-Google-Smtp-Source: AGHT+IHm6EaYBn70SJkUBa0sIwAoFeDNkswqub4neNrYccFomXUwUOGpuKJlkXEU0LDo4dNArOpzqQ== X-Received: by 2002:a05:600c:3ba9:b0:439:9828:c425 with SMTP id 5b1f17b1804b1-43ba66e0a61mr112280175e9.7.1741007926409; Mon, 03 Mar 2025 05:18:46 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:45 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:33 +0100 Subject: [PATCH 08/15] gpio: altera: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-8-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1725; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=SMOq2xgstETx1JyBNH5vYamCTElxv0DKa/FsWx+nPds=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawrqlWF7E8xNzhaiQDDre2OcEVZwl9/RTexY M26Lfz22DaJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKwAKCRARpy6gFHHX cmqwD/4phcgUzCpl6mKnD/IdnZIH9RNk3LmcqASY0VFf4EbXRAfUJVTaMQeDgSgk24dtEjEosuC bpBw1QzXfAFamKZKIQDyNKjXPzE/Hoe1EDCF34rZuNHNHPI0UBjmxJ1HQiXsaiOvcp6YuN90LqU IruTx8dSh8NomvJYZNovzKeon6/LRWzKlWb+uZYczW7uUFTXZL+T5oLS7DO99kqZsTCTfVU6Ul0 3OFRD6NQ0Ihy9l2k1V7lqCDuH+qJyDeuUNq2LtUBuuX+2I8AY3ESBJp2i+MBGELCLWfwR6b1xxT LeM5r6nSFUOHN/2f46OZqPlXo+/06oFEI5JqVGow8tZdNrM6mq6cPa5erpnMrWDBhkLZOUeMhCt DWHujIwH4kTX+GRjsbuNjNbgHqGEDhX4l7xuIqaQFgkjS5/dRaSQ62lfMxG5PRYtYAOb417XaMv 6t9tvs9wnV8Sijw4pvvP23BSDop9+n7LfOH20zHB8z38ZXbJcRKZJoWG+Brj5qdvrQmskwcQC0u MK94saNiUr6TGH1b7JaI0RM1SXCnT+wdiP5hdJBrPc9ZvTC7wVF5ruvBjzyMXjf9DAdh/hou8W1 S4LR1Rq4rbXXTZk3VddxFwUqAmWQKWmlpqvYKvAjKmoq6Au2FAByQj/JHUPyd3iJAIjpfvDLzrN e1HgWPF2h6MAoxw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051847_739010_F3F830C4 X-CRM114-Status: GOOD ( 13.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-altera.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-altera.c b/drivers/gpio/gpio-altera.c index 17ab039c7413..1b28525726d7 100644 --- a/drivers/gpio/gpio-altera.c +++ b/drivers/gpio/gpio-altera.c @@ -113,7 +113,7 @@ static int altera_gpio_get(struct gpio_chip *gc, unsigned offset) return !!(readl(altera_gc->regs + ALTERA_GPIO_DATA) & BIT(offset)); } -static void altera_gpio_set(struct gpio_chip *gc, unsigned offset, int value) +static int altera_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) { struct altera_gpio_chip *altera_gc = gpiochip_get_data(gc); unsigned long flags; @@ -127,6 +127,8 @@ static void altera_gpio_set(struct gpio_chip *gc, unsigned offset, int value) data_reg &= ~BIT(offset); writel(data_reg, altera_gc->regs + ALTERA_GPIO_DATA); raw_spin_unlock_irqrestore(&altera_gc->gpio_lock, flags); + + return 0; } static int altera_gpio_direction_input(struct gpio_chip *gc, unsigned offset) @@ -257,7 +259,7 @@ static int altera_gpio_probe(struct platform_device *pdev) altera_gc->gc.direction_input = altera_gpio_direction_input; altera_gc->gc.direction_output = altera_gpio_direction_output; altera_gc->gc.get = altera_gpio_get; - altera_gc->gc.set = altera_gpio_set; + altera_gc->gc.set_rv = altera_gpio_set; altera_gc->gc.owner = THIS_MODULE; altera_gc->gc.parent = &pdev->dev; altera_gc->gc.base = -1; From patchwork Mon Mar 3 13:18:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998872 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 974BAC282CD for ; Mon, 3 Mar 2025 13:36:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1Eanl17qUXG71sYy7CwEaQ1Eemxd4O2oMCTK+HJwW1c=; b=PNYhrttPqNV5Oz+ZOwO8JT/9NB 2eVlJwgpg19xbu2UBChuJkkdnQoLW6kJc5AA7haLHr6sukHDUr1lOocKXiGd4ZODJoJTzk2m7j+1N L6kkLbon1wA2avqNtStgfrhYEcefmEwpFiizwJdyUbYj7TubrbondK+syvNOvz9tZxu/YWJ8l2ZHG bjhfO2uLT9s6gxM6puiEqSR79nHnOtGIQ5F42NpH4gbODOLCqgtxycHM8BIU8rjx7nBECvMpiMyce edU68CwMUIXzidryPz4WDB+z07UBIHixe2bXTB1omj3pouYsT7TsZOryJZ6Q36uMK9Hfi+h9NprgF +WiiHzjA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5yL-00000000wiC-3AvO; Mon, 03 Mar 2025 13:36:41 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h3-00000000sai-173x for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:50 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-390ec7c2d40so2811890f8f.1 for ; Mon, 03 Mar 2025 05:18:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007927; x=1741612727; darn=lists.infradead.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=1Eanl17qUXG71sYy7CwEaQ1Eemxd4O2oMCTK+HJwW1c=; b=HAPfK5ZcXgNRdUzVqHm5pbcT8Jse0sKFzLZ6gxC0/4aVYId2xTddqNPdJfOzLq5PiV wk+IIqvw+IymjxxTDWzBcK1QWjLlSv8zOspVJzdQfwTeM1sB5nSx+kyFr8wumFtDk/Eh QdJ9CbyuyfeP+52OWL7TC0pi40un1uN412465C5qTwvmypIfXKuap8obM0Ap38fMYZsc /6/0QLCCsJC9qbjx/6fCujljFHyaj1Mt4cYdWdiQUzpW+j//NuPmMxcdzHSggHfbe+ZB IrtgnictnD9ZL9hWAOndCiI0dFrOIH2qLL16CW0qHKpn7nJMmIYQDSrDwE0gDZzePob9 vPnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007927; x=1741612727; 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=1Eanl17qUXG71sYy7CwEaQ1Eemxd4O2oMCTK+HJwW1c=; b=wIIVu6YrtAQzGd4PEwpBKjqNBT1cLyNGqanX9x7k8JECUKr8pQKLF1vTYbkHUD70E5 UHSMxBL8G4JN+TtfbJgJXXWWZUEQsZqtYyB/sBimq62pJV/l73/gpEpGnE177cfVoHm0 QeiWv1tr+FtqnF3POb79ODDfWceQ1nJpYKUURoyBfb8ZFYLV3azRNsVBMoyv7B/OcGcw D0tP1u0upy6RGAt9TxlxpX/RLyUocncIDoVYEj4F9FaypLm1kBdDCCeak/nWqGefTj1k EV6Vve+s9LWdElfHoMTD104mWa7GCVQNh6Dv8oLICKtq3NHaIUpClu7wpBbQvjSB0qgT ikig== X-Forwarded-Encrypted: i=1; AJvYcCWnL4MV78vC3O51ivjFOX2mEyIsVAHb1MIsbGzld7qAykBGJz0w60358y3P2SWhTpZY4CMKk2cdqwVpLSvCcOA6@lists.infradead.org X-Gm-Message-State: AOJu0YzYimcBQ9pc+ZHFIK2qPQlGTryKBKyD0RiHSMQbvrnBCkDaJImn 99rk2j8sraLhjPqHM29Sq7LvT/90ALS0HlSItUlBRZKgUuUyUjWy8PGJXwpV41A= X-Gm-Gg: ASbGnctmP5CqvlFIGfk6nmv3Fzml3qx9F9SoX3ZnEzIsBEmq1okWZCi6EOqGd760KfH k01JZ2DR4vgcdy9sNvFvWeHk4HfX4nk3DAP4nwkf/5XCLJDWB1m0hwyCRXLoSt0BJg6ZSjYefsN 3l9XbGM1kbo/xJGMSRsutLWOYEnryufm/FOLSfqgXTK7HBy0l5a8Zo3AMQpXo7WUC/J/S/qj108 P8lCwBEJ1iOXL+jUVKWsh5D3XAlLBl9oUYs/sb6LoJdnLuoMpjW5JAaLcLJMANmvB/qDxxL0IdM L/aMl0p/mn1zeTJp0wloQGrjq9eiCdm/Go40VA== X-Google-Smtp-Source: AGHT+IG8W48OymLU+IHB9XFSJz4Ws6HhZ4oe3cmcpMbwh3yAlmIGNVglM90Lo5CWs6gLp9klDtqeGg== X-Received: by 2002:a05:6000:188c:b0:38d:e15e:17e1 with SMTP id ffacd0b85a97d-390ec7c6743mr10583036f8f.10.1741007927451; Mon, 03 Mar 2025 05:18:47 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:46 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:34 +0100 Subject: [PATCH 09/15] gpio: amd8111: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-9-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1524; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=IGpiMZp6L9gGWujO4qnSAPvX9iEEZxJHKKOMOCB/YPk=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawrsUI2RWcy6gYPrX/W+WpNP5fdKL0VhBngf HbvtbNwL0SJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKwAKCRARpy6gFHHX cn7uD/9fLib1qmXJVVjOojHi15zCxHxK9YZHqSAzCp7rH94PpJrQVFK0/4M/9A5SA7n/43yhQJt q16nhbWNsd656/N/6DKOmlP3alKPdHDzsIIJLWSCtEG/DUuKltm5rByCe83Q5WN+j72Ppw2dcXM 0QndwPOucqxkqiqLUXTCx9n6rgL9K4/A66JfBJ3k+fnOIKWlQYRad+5Ja54geRp5RofS1D/RWVr r0dy0roFTTJ9ZB4kRj0pkWd7EO3pEYWcI7kSIl0y2+RjrvhSrYLQftUvg/JPPXEXds/8aiJ1Ew3 xURb2djMwd0qp9hk5BgCX8JH8I20ZfXCGI4qWK80k6cMIMu8O3qyTd4CapXeIhFIHj760lTqZLb 98+Poi2DamuEmj56LQN6R0v4nx4PIQWNEWYclzSyIMD/ThQZwtG9+MThzU9Baz+XhENutJBT5CO YRWrfqqV+XAKVNMeeE9szHW2C1uPqGMrLIar0g97JpGjqpHv3qPaIaZHWlq6E9tntQctjiMJ4se XimBq7eoM6qsxJRvRSXx4GSUb0TkysTs4XTpOZJf0LeCfU1UTnlQrIAPP5scSCe57es8PqKeVM4 NhHNMAzFCUJvtRyNFSbOtJziCjPmw/weTEqrkCmM3p9OIBCRqEtfHh8aCuFfn13QvOXKYFsU9fZ vV6G4nC/fyB2SOQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051849_307227_1364B1C8 X-CRM114-Status: GOOD ( 12.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-amd8111.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-amd8111.c b/drivers/gpio/gpio-amd8111.c index 3377667a28de..425d8472f744 100644 --- a/drivers/gpio/gpio-amd8111.c +++ b/drivers/gpio/gpio-amd8111.c @@ -94,7 +94,7 @@ static void amd_gpio_free(struct gpio_chip *chip, unsigned offset) iowrite8(agp->orig[offset], agp->pm + AMD_REG_GPIO(offset)); } -static void amd_gpio_set(struct gpio_chip *chip, unsigned offset, int value) +static int amd_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) { struct amd_gpio *agp = gpiochip_get_data(chip); u8 temp; @@ -107,6 +107,8 @@ static void amd_gpio_set(struct gpio_chip *chip, unsigned offset, int value) spin_unlock_irqrestore(&agp->lock, flags); dev_dbg(&agp->pdev->dev, "Setting gpio %d, value %d, reg=%02x\n", offset, !!value, temp); + + return 0; } static int amd_gpio_get(struct gpio_chip *chip, unsigned offset) @@ -163,7 +165,7 @@ static struct amd_gpio gp = { .ngpio = 32, .request = amd_gpio_request, .free = amd_gpio_free, - .set = amd_gpio_set, + .set_rv = amd_gpio_set, .get = amd_gpio_get, .direction_output = amd_gpio_dirout, .direction_input = amd_gpio_dirin, From patchwork Mon Mar 3 13:18:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998873 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9D75DC282CD for ; Mon, 3 Mar 2025 13:38:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tcjPMcYJBZ0o2cTrKN4oQq7L05UvaqKLS11WKTvT3CY=; b=foPRMaHj0Ga0NUL/4CPpkfN176 SoBEiMobRjzvlQvUZuxrVdaXffCjCs64A/GpU+4dyC71qrl78t2RKPi7+LUA3hNQLAt6Vx+csFScy qBU1MpRh4B6UwhjGT7P83mpq/dvx7HlTKvWe0jAW6nw083J9/9PFyjt5CC+9FpNC0WNoy102q6INJ F8h9axUZXoH2lwgGaciUzlw+4khm3N3RXWNNDmcKNiR5yu8Kx9gGR9XOPTWK583JXF7ZOZ0xipPpP aKfkNTleoSblKyyYLokmDUlliQDMmT+gCcdC+AuwtSceIkh1RKWp104WWmQ48XM+Rf2JcyCrwwGvA L3F1rlGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp5zu-00000000x3z-2Lue; Mon, 03 Mar 2025 13:38:18 +0000 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h4-00000000sbA-0s7q for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:51 +0000 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43bc6a6aaf7so4830355e9.2 for ; Mon, 03 Mar 2025 05:18:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007929; x=1741612729; darn=lists.infradead.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=tcjPMcYJBZ0o2cTrKN4oQq7L05UvaqKLS11WKTvT3CY=; b=RrkHeU70OE1MiWr/PqErWDwRDFxFW8k2eLmxTQeLHmtzZGW4r2TdmLUupJ1faYbuhA 3uWWdes9NK8OI6vUoWLud3DUCoCyyR2Uyb08gVkj6BlhzpalNZBAo54TVnGQ+/BWPqd2 IcM6fu8UQZNPdWlgCvTH4nq9+ccf7PCwBw3A1pJW225pnBlTtQQclsHYXGOhe5uegBG8 +cvqi6zVDgtfISCMlSKiHauUvXJ0Z4hcBEyunmZnMKTcPX5y/8+kyU1CGk85WhU7EikY 3RzltM+pQP9PJyLkTual9+t5CZNHsZXmSmWJVYpCHFcl11r9rryKZ20mwCFRUMg3P1n4 EgCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007929; x=1741612729; 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=tcjPMcYJBZ0o2cTrKN4oQq7L05UvaqKLS11WKTvT3CY=; b=rkVOkFgp8suC3Iy/4Z1papcYOmJdrpe7sKfSfs9J56z6cxpMaWErSqOXxPXbvk18QS aW/XiafhzPz5YQj4KRnbWwlESIzPAa59yeEnmOcNJJSvvuryjnMi8/XkSPQK+g7+xYcH o53ZT8YRTnJpuoLBI2zMqWh/32Ma8nygA/cwf+KO8bJHuAFE3SLTcrFarVVHEcQ795+2 4QS/b71W5V2YSo7DQrA+Q4kDNWAcua/mbQrpEwhG13LKIRkG8fqyBm3hbtz1MMwreOcy y776nQRAWE81NVBtooFKNEBv8YihUKq5KrVaQWTJ33bRB7gUuCy2vJrWvOx5fENtRvFw Qrvw== X-Forwarded-Encrypted: i=1; AJvYcCUIWQvDg7dnYSSUUVQxwOQoz0dMw7lpklm6Yw04UDHI7qGiyQ4u5sIfm1xsRcb91n46Krajw9u8GK5AcIpFq+uE@lists.infradead.org X-Gm-Message-State: AOJu0Yy6hfj8WfMFzrZwjO6SaAGfIco01zZ43uQK/ksaQOvUzr038MvJ OLLs/iiZlI04YY4BIvn0od9g3siiPFUSqVwiiihY+T42vzSNt4u60TXlKhJs5rw= X-Gm-Gg: ASbGnctoz3kp84qQ+u+kYJR4tE8EV0E0dpCKvtsqmQgrI+jx5tpbjqwIsJzGTcbJ22j qmzjAPuDeXud6WY3mQWPabhuBfdzKtC/qj6/mezAH3kw4gXW/X2X1Nve8uZLdxS/aMfPXCgf68O Ug61bRZcAOb+YWpM2b+tFFSG/8fM0RIUM2yIjdhkPkHMkRskhyGYFm95DqpnFBqtRLUGEBNWi64 MwkFuFUzj87LCzJ+DnbLHHx89hxSrmVt1JBVpsYLWmNasOax6cxZZjwcP2genUJaVxEFy1L3UDZ K0eak+XSmVPR8+aL/Cv0K5/3Z8mf6959mYrdhg== X-Google-Smtp-Source: AGHT+IFhho4idDCteO0g9jy+tOrP6KrDeOVzx+yLtKrh7942wsW3Cz+EGc7Oxn5Z+QFnIfxYQ2MoJg== X-Received: by 2002:a05:6000:402a:b0:38f:2efb:b829 with SMTP id ffacd0b85a97d-390eca815a6mr10808948f8f.50.1741007928914; Mon, 03 Mar 2025 05:18:48 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:48 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:35 +0100 Subject: [PATCH 10/15] gpio: amd-fch: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-10-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1534; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=9eVt33K4IbRQUOdQWj39q7CiV8Th/sXfepGKt9kNNRE=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawrbxiPGpQVYAB1cWmhKX+ZK1p87IdH7rSqD 6Mm+ENK85+JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKwAKCRARpy6gFHHX clwvEACG9rCLcmUYrp6fcssfEz6AE2R/ukaohKncxCYYbAX/rW2pV6g+qY6GaJWEFP/n+qRUCca ImG6zhs+hxyTBrKTa/UlVdYUJMjn4SC2ZsshH4eCzDYkBTiomLn58bzkxBStRBammI+K8qAMe+W dCldrLdfZs5rcbotRVzZ5euHIH8eaxeLOcc7+h/rjfEPxvoo9Q9OW1xkuXDdlGC84fhe62YuFQc WXdlZUhLBFXpS592viL036bqrGlAxbLiyeipEndPdG55Gjf4PA4N5d+gk/7CTfBaKVfogJoAJpn HXL5h4V2j4ZYkhM162i/zGVjbCjPAAGyLXeXM0iKK2WsHFw7YK85chRrCfeNR27SL+KAggdJFDG x6Sj/xaJb5rI2J6b3G+kLy99d58hPQyaUVABsOxZHbaz1Y3gn+esMOnlMvCmFY3t5/8CQBoaZSz 6XuVOZi5+dPUcDuKWKd7+lUtYO6o6qxcDz0ihzBmZTZHvZ9C/UjaPSGEyWqFZA5uEsY+M/BxYn3 OmTsQWqVYC3khOl1eGCcdDsPjXVl/JBSdtQkwkLTm43s+Mrcn3DM/Z0y0qbEhYFDmcFbEnhvF9A w55Wpdx320FOGUTebh6MXxEg24zWayCUlfM9fuESpR/+LoXYGDpe3LaVTd+KG6tcYr0WqBZEuvy 9Imns1QzMQEPTcA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051850_252524_577D6DF0 X-CRM114-Status: GOOD ( 12.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-amd-fch.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpio-amd-fch.c b/drivers/gpio/gpio-amd-fch.c index 2a21354ed6a0..f8d0cea46049 100644 --- a/drivers/gpio/gpio-amd-fch.c +++ b/drivers/gpio/gpio-amd-fch.c @@ -95,8 +95,7 @@ static int amd_fch_gpio_get_direction(struct gpio_chip *gc, unsigned int gpio) return ret ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN; } -static void amd_fch_gpio_set(struct gpio_chip *gc, - unsigned int gpio, int value) +static int amd_fch_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value) { unsigned long flags; struct amd_fch_gpio_priv *priv = gpiochip_get_data(gc); @@ -113,6 +112,8 @@ static void amd_fch_gpio_set(struct gpio_chip *gc, writel_relaxed(mask, ptr); spin_unlock_irqrestore(&priv->lock, flags); + + return 0; } static int amd_fch_gpio_get(struct gpio_chip *gc, @@ -164,7 +165,7 @@ static int amd_fch_gpio_probe(struct platform_device *pdev) priv->gc.direction_output = amd_fch_gpio_direction_output; priv->gc.get_direction = amd_fch_gpio_get_direction; priv->gc.get = amd_fch_gpio_get; - priv->gc.set = amd_fch_gpio_set; + priv->gc.set_rv = amd_fch_gpio_set; spin_lock_init(&priv->lock); From patchwork Mon Mar 3 13:18:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998874 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3AB86C282CD for ; Mon, 3 Mar 2025 13:40:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=5Axi8YRJzHoLHKP7VK2GqIyJfaSqTW3LqYKFDfDPjWc=; b=4k7SXF3VbUrD9Nj5gU4VrmF5h4 qQElPYFV1lrJqvy4IwHNWP3Xd2uZtKv7zVb9yWZ+QvRrRFLzs0s1VpRphIXWPFHqyDdYjsopVuWZX /qkiHVUHnZKEzlvjHUNVy40Vqn09aJHZO/J3ocs21uf9MQCEukFlccJRB8srEGIlUliA2rQClo1Rm w4t3cq3Yyeg88yA9VWqUaOanBVBSI4iNLPGAMZbZra6PAh7FPhzcpJ/UX4qwZG24m3+zMCwz5Yoed CnBbOUsu0umLPRIZdF/ZlkkmVIcPnN0bC1ZtvhvqB5oFpotrxSrRuIIwDVgo22/VvsNGDcR8CiaJD H9gWpLnA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp61R-00000000xUH-0v5c; Mon, 03 Mar 2025 13:39:53 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h5-00000000sbx-2oVM for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:52 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43995b907cfso27907265e9.3 for ; Mon, 03 Mar 2025 05:18:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007930; x=1741612730; darn=lists.infradead.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=5Axi8YRJzHoLHKP7VK2GqIyJfaSqTW3LqYKFDfDPjWc=; b=qWICj+QubDuxUm+75B0RndzFrRK4S8TULRnYVjO8CfutdVzQow7cjfWqvC2CKFgFkk OKQSGZuICb+49WKPO1HICPQmbQAZh2I8sXkNSI2YrV55MYu+Bt9AWncu0bpIJmXzegkU muDIYF7C+fGa8LJV/oOq8bSFYizuKCgl5FeJWqIYERz0USw3MqgH1ZpKMZI9R5uYxZ+y NcYQIaY7kaXyedSZHPWXtPFf3jE/x9fu2CV/YyE+hJYN0pcKY9x6nKcDL27YRzxvITyB bpKmd3rO229megWdoqZ5dPo0n/NEyDUVTb4yqEkx9l9ECJfLykZCDbZoDPjVTbnuFmPz F0sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007930; x=1741612730; 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=5Axi8YRJzHoLHKP7VK2GqIyJfaSqTW3LqYKFDfDPjWc=; b=EF9USO98rG2dRaMgwEJR96ajR+/kOmwfEfq+HJ8HJNdbFgGEBHsoFbxjby5nAa0Zj/ lgMjpvzCZJQgRCYqlKewmgL2EiwyQHQpS6WwlxtloVu6zTBKLwFlSJ5skFyKkua5xm3i t0BEhzPXTnV+/3p+zZYNhjyGzwc8MhcyPXprm1CUx3sFUVoozjeFe+HCWi5HAoRFpRd3 K6iHOEbHUi0KJuVB73xDCoHYnyh8Avkp7BMj1pqEyX+Vo4gw+MyxM83tfhUG9ogbmtdw xYh/oYVfZ40ID09MNGpy72zY4tZ7JozvbRjFE1UtC6KpvAlwiSwVOrCLu7a2nWAbFAW7 Pwvw== X-Forwarded-Encrypted: i=1; AJvYcCXFAKM67C1xT4tSomv9LNFxU/jR/xlmg+Q5NMxflCaOnZJusbL9ECv9iyL5Q+JgVOPMC9FipoR61+oVL0cDUzGK@lists.infradead.org X-Gm-Message-State: AOJu0Yzvk/ZgesPuCrw2cgl/jHnMSOzJatqxiiqYAu0wBkHYrRDieTLq HXKmkVB0K5e+ZhIMtukRFZnMxpNRyy1n+x0Gziw9lvbAlIitD3AD2+szuVVR1AbYFczt3DCgJFz A X-Gm-Gg: ASbGncsxQTe7nu7jjPZU2NmnKcjqFVi6591d3L24e/hsEHvAGBHUHD7V0nSwJJ3kAe7 lLjdYlqIoWUTuG5wNM1IF14mH5V7Zk7qZ1Zte0KuH/L7lcZGkq7EDu2GtwW6gce67FqjU9r3JNY +Fhq1pjSj28CkjSbB8SSQ8Ig+7oh4PspSCHaC8VUcr4kItQ0vyyIm5gKZ3jtUGdSwobw+AwwC+I C4+I3oOaRxB3Hy6aSSRvEqwY95nBHUWM+igfDB0221305T24LIRucQiRpWQ6huhgYHgbmIEYhzU VLNnA1LNRpEfHx23hEL8ZFptaDktm4usk9gJkg== X-Google-Smtp-Source: AGHT+IEYGtm956aiE024ARJ2YI+wm6oMviFmiaVF8KsdIN5Clg89Ip+CqvEtma0/pMlgb+be7pTlmA== X-Received: by 2002:a05:600c:3ca8:b0:439:84d3:f7ee with SMTP id 5b1f17b1804b1-43ba675d56fmr88856985e9.24.1741007929922; Mon, 03 Mar 2025 05:18:49 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:49 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:36 +0100 Subject: [PATCH 11/15] gpio: arizona: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-11-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1667; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=/sU8cBlWkrzRnahs8pB2nRSYYvpui0zCRmMzsOLe/tU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawraFYt3OLPOcsUJTdWtbmDf7jf8fWbJTlqG F0x+3X77liJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKwAKCRARpy6gFHHX csaTD/9Lb0FTC8KUiNCwa8U+38+asQjGBBJIpJ4m2oHxZOZqIc4wVOq47KeugpmygKJZbDzH9nY VokyB5RQQdWl9/JvjKQkDl3oDwemi0Seq6VX97lRYJ+aTkwO7BQjHHEEVIP3muwuoNhsXDPa579 7wAsmgYPxunC4nioaY9ezXw4eenqB88jwUU/o3+BqgopQAJ5e8X/2JoxQZSo/xAYurmoqiOY6wd p73NKeItCF2pHZyCLxxR6p82URyBidDFAHMLpCd3HfTvKxmRBNm6Ce4obmLcD3HyhPJSLtXiDhZ 9TADKmuz64mhdRBi2DnAlxh2m0pxFAyAt495sG1RU+RFeiDmoqfTcLETX01ozNEpfQanlH2Hu2g srX9bkbJu9VNN5aVa26Uu4H2jn1vnWuc21drG00Uff6xB6M0MhwXu96GWPhbCkTxXPUz4CFlDN5 rNpsy2TmVoIqAOdK/ikHR8/N+/XlOkpvUZzLEwREHABI/4GLxoLb0lACmmtAamOHcDr0JlPrbhL UyNV2+Lmcy1PkrODKfKTXG99i5mDcXnhnbMjTP8DVFB8gyg3nfYwrFUJ2OE98ffd+bZBl6q8Q9m C0z8DgLTTNUabyQIJqqEx6wQDenlo2nt/gKTANo0OX/oLyK0VWh4qHPLHtqQY1XJ9zgAioTCALv zkNFecD6T7gJS9g== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051851_715833_8F979D17 X-CRM114-Status: GOOD ( 12.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski Reviewed-by: Richard Fitzgerald --- drivers/gpio/gpio-arizona.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-arizona.c b/drivers/gpio/gpio-arizona.c index c15fda99120a..e530c94dcce8 100644 --- a/drivers/gpio/gpio-arizona.c +++ b/drivers/gpio/gpio-arizona.c @@ -121,7 +121,8 @@ static int arizona_gpio_direction_out(struct gpio_chip *chip, ARIZONA_GPN_DIR | ARIZONA_GPN_LVL, value); } -static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, int value) +static int arizona_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip); struct arizona *arizona = arizona_gpio->arizona; @@ -129,8 +130,8 @@ static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, int value) if (value) value = ARIZONA_GPN_LVL; - regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset, - ARIZONA_GPN_LVL, value); + return regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset, + ARIZONA_GPN_LVL, value); } static const struct gpio_chip template_chip = { @@ -139,7 +140,7 @@ static const struct gpio_chip template_chip = { .direction_input = arizona_gpio_direction_in, .get = arizona_gpio_get, .direction_output = arizona_gpio_direction_out, - .set = arizona_gpio_set, + .set_rv = arizona_gpio_set, .can_sleep = true, }; From patchwork Mon Mar 3 13:18:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998875 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B4D09C282D1 for ; Mon, 3 Mar 2025 13:41:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lfos9Syg08SqOn+//RWYzG2n1+EfVqjsyXohmBPCw+w=; b=x97BuB/b2dZTPhpXuqNt1M9Omv iT2aSieGKKlFgCuTNrF8iBNtA9WKarIDUk2cw60KOKEEwGgpgSFSO8MvrLClvlc/uaiBUrRl9X4pn dS9XiQ//dxQzxQYV/21Rk+I4sKKXSTsRxA7hqbaN6fbTvqsqwjhg7+78SUETTPq1WxlIYsuVhTJyP ArUpCSNd1F2akeVh+vBh0yH9iLSZmYLaMeXzu8fHq1PhpOpOJ5+yN1UpPgkMdio+oYV1NcYgde7WC LIjE34C4luOVZXq8pKvCmvDPUPn9ksoh3uL855Cjlaj1zH62tmuulC5ZWucgOuBdGHzExuAimMF7D 4qO4SYIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp62y-00000000xlW-3zza; Mon, 03 Mar 2025 13:41:28 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h6-00000000sce-3Hd6 for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:53 +0000 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso46809375e9.1 for ; Mon, 03 Mar 2025 05:18:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007931; x=1741612731; darn=lists.infradead.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=lfos9Syg08SqOn+//RWYzG2n1+EfVqjsyXohmBPCw+w=; b=WGZwVX+mYTYnLJ/3snWQdjo8GJWTY81uR59NKx6ZepshTC01Cja2rC8qb5EbJUiN3l b7o3azy6TlYQQXS/DFbaEmhoEJcuiYNJcs0wIQsYdFrxIb3aKnBm7pzGRx5zQwsHtlXg Ee9IdehraO9LYaa/JdrdzLz7DjmuynbMb2DJuczez99x2gW2W7s2GYqeEFyWydV+ZIzT Y8of6Z/lL8KRodH8VydPqWSi8UTAEzgXCDaESzY4vRxGsxG61xQEFiyWq1SDc/Z9K+Jx 35yA/DJ9XcYz+oz7RZJyxnccYrTpScFVHWacrej3n7UrRgpcWTOqfo87d3AcfgSVveKI MapA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007931; x=1741612731; 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=lfos9Syg08SqOn+//RWYzG2n1+EfVqjsyXohmBPCw+w=; b=TmjeU2yfOzCZ6gfvZaIN/IeHkUhoPPsV+MwScSRuVyQTsXAeg+8bmuHN2/dSGOAZj7 TxwhBVhIYXDHYEGjriq61BE+GWgY0vmUzqk+r5rf0exDqqSUKNq+Nj7uht8cDsI+XiEN JFKvcWtvul+f4N76mbqZ4Qbqd+O6zWYcAQVE4x0ktSjwBEpFJmVTCQl+t99DMG5PquXh TEItqQVm+DQD0KtNBwlRzWcO+Sy8/qZW6sh/OEqTeHae4/v5QGRoTKq8PPTsEol2cfCS eWZYtRnz6u+ZvlIFaPI2Gs9aYEjBfbIhNi6I31fdbOEyEgzMpXB/DEUPYWL7aGw0zZ6D JIjQ== X-Forwarded-Encrypted: i=1; AJvYcCUP2rIPweTaywmeUKdjvtCO1kLWRE0AETA4wlgztZJtvk2Tkf/0+rxMyvlxoF6Tbl5819NUutKpSNM5oSn0rtAm@lists.infradead.org X-Gm-Message-State: AOJu0YyxqUH8gMrxlC7MuyoeLvhJVuf0Wa59oq1KYSrbAa5V51uksJlH sG7sQh1WeOepP+FNoXHUgZUVsIKwQgyaH2cefgbrm4IGh/dNIrotxdNrIj9mDUI= X-Gm-Gg: ASbGncssdfL6bTA8R9rx4OjhNU4XNT2+sl8UZ9ANI+OeCz1Retd+VruAsT/hdUGxuwF NQiVVd3xl0NtDLyzgpt2LSzj5Wb4Q6Ux5TybZU9RzbWYozOhqtfYINUMrnOK9PxEgxeALeBw4nd GadAkHJYNfzX8Y+HwmB5bsMH6C30M4y0r1iLbrFcTGbur+YL8AzkAmLmj80epNt8TTqF44xlCGt 55bB+NpjS98lRV2vJMSrHvl9uEGXTjFL5Yn9dUvfDKt7IiBYFkRKJV7SKl6shNOGxr7Yq8QJvPD M1Y2x0Z6Bychq/JQxyijuAOvHTqxI6Fu1aPIBw== X-Google-Smtp-Source: AGHT+IHXK2frQu5mm5st7OG50mDUgW+ZqOAgaKWtdnfNsGdx2IIR5+MeX+T68WRmGU9N2Zhz+vD07w== X-Received: by 2002:a05:600c:45cc:b0:439:9ee1:86bf with SMTP id 5b1f17b1804b1-43ba7c9b8e2mr134577995e9.7.1741007931114; Mon, 03 Mar 2025 05:18:51 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:50 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:37 +0100 Subject: [PATCH 12/15] gpio: aspeed: use lock guards MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-12-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=10512; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=6Biyqx/oPiy1u29C0+kNxd6YeuL0GXYE5IHU8R6GPkQ=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawre/nLb8HZ9vCTWG9HgoFrpXBkyMmO3uPg+ DkbCvt+1bmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsKwAKCRARpy6gFHHX ct7sD/9yKqknbydRuHgo09mRDQLljVd2RW0HD61Q3y+e/L/B6cyQnjzZKT5uGJ+v6h4lgQv+iXU ka+2zeotaUUZDupvz+c5QV5Z7LA8/PWAP3O7uVp9pdDlIJ9GsdOQg9KbFeQZsTOfhMKXfQTt6PY z0o7Fa+2lJh1TS+J24HnpMcUWXqI1Nu1N3tBj9XiBcJspKwP0iDeP3a2KjMUw3cNX+EPK7a47J3 Snyjbs5wm8baI0fqmEyKL4pt1rZZ5mWecGL4VVpLMLZiCBTrIa+LgvxNGHkL+gKevzXYUnoYKR3 tZKeMyE69KAyE/ZOB1tvR5UmGrw7vjpuPJMpcG4eAIIJswazrvDydIqT4M43TPIevqtqhgQg/YE 6vp6cHKqSigeHfJcLF+msUCUvTtjmSKGBGp0LupdS+uPASKA/O/cfZx4v5tIeG2nPSnQZZl6tqR SIJHEXkhxoclh99WGXVu0GM2vsR9nl22pgPSYkKIwUzKV2epGnm+RVZZYhddELQ3fVhplnYWUnK s6bz7bNOSah0XlLT3p4hQp5s/jkOPlPszWSIJcnxeh5Q05zwmcgbdo4MF2vZBX0iaeCd4y+NI9X c6vgDAzA8oJ1o3lkJ5HWlhwdW/fj54pLrh+XXHSZ+a05AcdBd1vi1UyJ5kHAKf8jITmDJdjkq45 NxSkq37b/jMxB8Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051852_835784_7048DFD6 X-CRM114-Status: GOOD ( 16.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski Reduce the code complexity by using automatic lock guards with the raw spinlock. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-aspeed.c | 101 +++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 63 deletions(-) diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c index 40c1bd80f8b0..e2535aad1026 100644 --- a/drivers/gpio/gpio-aspeed.c +++ b/drivers/gpio/gpio-aspeed.c @@ -5,6 +5,7 @@ * Joel Stanley */ +#include #include #include #include @@ -427,37 +428,33 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_gpio *gpio = gpiochip_get_data(gc); - unsigned long flags; bool copro = false; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro = aspeed_gpio_copro_request(gpio, offset); __aspeed_gpio_set(gc, offset, val); if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); } static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset) { struct aspeed_gpio *gpio = gpiochip_get_data(gc); - unsigned long flags; bool copro = false; if (!have_input(gpio, offset)) return -ENOTSUPP; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); copro = aspeed_gpio_copro_request(gpio, offset); gpio->config->llops->reg_bit_set(gpio, offset, reg_dir, 0); if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return 0; } @@ -465,13 +462,12 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_gpio *gpio = gpiochip_get_data(gc); - unsigned long flags; bool copro = false; if (!have_output(gpio, offset)) return -ENOTSUPP; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); copro = aspeed_gpio_copro_request(gpio, offset); __aspeed_gpio_set(gc, offset, val); @@ -479,7 +475,6 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc, if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); return 0; } @@ -487,7 +482,6 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc, static int aspeed_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) { struct aspeed_gpio *gpio = gpiochip_get_data(gc); - unsigned long flags; u32 val; if (!have_input(gpio, offset)) @@ -496,12 +490,10 @@ static int aspeed_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) if (!have_output(gpio, offset)) return GPIO_LINE_DIRECTION_IN; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); val = gpio->config->llops->reg_bit_get(gpio, offset, reg_dir); - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN; } @@ -527,7 +519,6 @@ static inline int irqd_to_aspeed_gpio_data(struct irq_data *d, static void aspeed_gpio_irq_ack(struct irq_data *d) { struct aspeed_gpio *gpio; - unsigned long flags; int rc, offset; bool copro = false; @@ -535,20 +526,19 @@ static void aspeed_gpio_irq_ack(struct irq_data *d) if (rc) return; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro = aspeed_gpio_copro_request(gpio, offset); gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_status, 1); if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); } static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set) { struct aspeed_gpio *gpio; - unsigned long flags; int rc, offset; bool copro = false; @@ -560,14 +550,14 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set) if (set) gpiochip_enable_irq(&gpio->chip, irqd_to_hwirq(d)); - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro = aspeed_gpio_copro_request(gpio, offset); gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_enable, set); if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); /* Masking the IRQ */ if (!set) @@ -591,7 +581,6 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type) u32 type2 = 0; irq_flow_handler_t handler; struct aspeed_gpio *gpio; - unsigned long flags; int rc, offset; bool copro = false; @@ -620,16 +609,19 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type) return -EINVAL; } - raw_spin_lock_irqsave(&gpio->lock, flags); - copro = aspeed_gpio_copro_request(gpio, offset); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + copro = aspeed_gpio_copro_request(gpio, offset); - gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type0, type0); - gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type1, type1); - gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type2, type2); + gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type0, + type0); + gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type1, + type1); + gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_type2, + type2); - if (copro) - aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); + if (copro) + aspeed_gpio_copro_release(gpio, offset); + } irq_set_handler_locked(d, handler); @@ -686,17 +678,16 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip, unsigned int offset, bool enable) { struct aspeed_gpio *gpio = gpiochip_get_data(chip); - unsigned long flags; bool copro = false; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro = aspeed_gpio_copro_request(gpio, offset); gpio->config->llops->reg_bit_set(gpio, offset, reg_tolerance, enable); if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); return 0; } @@ -798,7 +789,6 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset, { struct aspeed_gpio *gpio = gpiochip_get_data(chip); u32 requested_cycles; - unsigned long flags; int rc; int i; @@ -812,12 +802,12 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset, return rc; } - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); if (timer_allocation_registered(gpio, offset)) { rc = unregister_allocated_timer(gpio, offset); if (rc < 0) - goto out; + return rc; } /* Try to find a timer already configured for the debounce period */ @@ -855,7 +845,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset, * consistency. */ configure_timer(gpio, offset, 0); - goto out; + return rc; } i = j; @@ -863,34 +853,26 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset, iowrite32(requested_cycles, gpio->base + gpio->config->debounce_timers_array[i]); } - if (WARN(i == 0, "Cannot register index of disabled timer\n")) { - rc = -EINVAL; - goto out; - } + if (WARN(i == 0, "Cannot register index of disabled timer\n")) + return -EINVAL; register_allocated_timer(gpio, offset, i); configure_timer(gpio, offset, i); -out: - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } static int disable_debounce(struct gpio_chip *chip, unsigned int offset) { struct aspeed_gpio *gpio = gpiochip_get_data(chip); - unsigned long flags; int rc; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); rc = unregister_allocated_timer(gpio, offset); if (!rc) configure_timer(gpio, offset, 0); - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } @@ -961,7 +943,6 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc, struct aspeed_gpio *gpio = gpiochip_get_data(chip); int rc = 0, bindex, offset = gpio_chip_hwgpio(desc); const struct aspeed_gpio_bank *bank = to_bank(offset); - unsigned long flags; if (!aspeed_gpio_support_copro(gpio)) return -EOPNOTSUPP; @@ -974,13 +955,12 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc, return -EINVAL; bindex = offset >> 3; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); /* Sanity check, this shouldn't happen */ - if (gpio->cf_copro_bankmap[bindex] == 0xff) { - rc = -EIO; - goto bail; - } + if (gpio->cf_copro_bankmap[bindex] == 0xff) + return -EIO; + gpio->cf_copro_bankmap[bindex]++; /* Switch command source */ @@ -994,8 +974,6 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc, *dreg_offset = bank->rdata_reg; if (bit) *bit = GPIO_OFFSET(offset); - bail: - raw_spin_unlock_irqrestore(&gpio->lock, flags); return rc; } EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio); @@ -1009,7 +987,6 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc) struct gpio_chip *chip = gpiod_to_chip(desc); struct aspeed_gpio *gpio = gpiochip_get_data(chip); int rc = 0, bindex, offset = gpio_chip_hwgpio(desc); - unsigned long flags; if (!aspeed_gpio_support_copro(gpio)) return -EOPNOTSUPP; @@ -1021,21 +998,19 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc) return -EINVAL; bindex = offset >> 3; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); /* Sanity check, this shouldn't happen */ - if (gpio->cf_copro_bankmap[bindex] == 0) { - rc = -EIO; - goto bail; - } + if (gpio->cf_copro_bankmap[bindex] == 0) + return -EIO; + gpio->cf_copro_bankmap[bindex]--; /* Switch command source */ if (gpio->cf_copro_bankmap[bindex] == 0) aspeed_gpio_change_cmd_source(gpio, offset, GPIO_CMDSRC_ARM); - bail: - raw_spin_unlock_irqrestore(&gpio->lock, flags); + return rc; } EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio); From patchwork Mon Mar 3 13:18:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 13998876 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 70A73C282CD for ; Mon, 3 Mar 2025 13:43:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=N2T+qUj1+rhYU/lDMmm7CtWMW53IZ3sreca30Qhdgoo=; b=MjBi+jZ7EgQ4QNi4g0w11VXN8G E9GnS5fSrkVzPrgb0xPzMdNe6WEC5ZHaAyM+ogUM/4nnVbTUmSzkhtwXpCpXpKuPq4GHTon9+TtBb D23YDA4uKsZsoV8xX/Nts9uvBboLTtRk0gQC2p4+R/bXRgl+d6qs8AsAkF+fcCrIQKoPiSzzxMaeC KREIQClYT4Bf9eJ9k7UrSIEimLLu3OQGLFMD7TAjIzuRgtO/U0iW8311WA6m86oxygD6YBWYFb2Jc 9pM9usGLzH7KcEKcQUZy5MR/YeuTYpOCwdWxVW+Pf+uBH5k0OhEUjHDWQEQ3nVMK33hN8lCRSGvgt vkTCKufg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp64W-00000000y2L-2hVq; Mon, 03 Mar 2025 13:43:04 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h7-00000000sci-40UQ for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:55 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-439950a45daso27922865e9.2 for ; Mon, 03 Mar 2025 05:18:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007932; x=1741612732; darn=lists.infradead.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=N2T+qUj1+rhYU/lDMmm7CtWMW53IZ3sreca30Qhdgoo=; b=2rOvlRhiDG+KNHFNSXw3z/m7ad7FvNfyU1mlYpxrLZ0Q44+cShpP2UvehsN4j2haR2 DqN5VLtZjJI91mxnEyZus8o6fB2cV0prOOpzjCOamU+pdjmu8wqwVQaOUJSKdY9uCJMj wLyZliYp6aB22wXN7DOlfI/U/Uc+S04sEVr1MYPHb3jTGcrC6i2HTS43swNZG2my3syD 9f57XSh4GlOn6yboI7Vpa1VQFOGqftE/EICmi6RTLnGjCO1iBCvWXrM4+XWDv70vdF6A wFEEWPTgRNyLXwaHtGjnv1G9HXMlkfIpa6y/M4nllnhQWyFR52wXoRuM5X5iQiVX6sgu LA3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007932; x=1741612732; 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=N2T+qUj1+rhYU/lDMmm7CtWMW53IZ3sreca30Qhdgoo=; b=F5pDybRKEuBTp/pnC7JoY5hoFEq6Unc9kl2RLSMCj/fbmi4u1l9TNXHXkv41K7pK/q PyxWwmlz3u9R/jcoSvCwtIqI3ae7hz8loe06xBtohJ7Wv1YmTdIMOfgFIDYAJxqOq4X4 7dTolvi4Yqw/SLZBwnVpoWY9WelVvyUrPC+XF5BkwetXsh+43GszYY0OOI2lhL0uH4Bb jWLEYW2uroGnUqKXBdUcElObmvmko9BMfUF7hPAw5fY06lQPETHJEEnqVm9jU58KyEbT vqoJL1zoJS9bLIlxIluqUhhKIiWhyb7nJ9h88ekghaWT4I/wgITKLLvFBkHrg8rwGoKU Pm+g== X-Forwarded-Encrypted: i=1; AJvYcCUXNHV7N5pn4f1YV/yq16HqAxLDM9lkwuf0UeFzs19wLbmm3uuq6aD5cLZbK25HRWR2M8FGYG6CsJe7K7nLPVIP@lists.infradead.org X-Gm-Message-State: AOJu0Yw5cu6+5z6VQ0ja+/JQSNNMyDZNZexLI+qi/nkXbg1N7++QQ6B/ ptusfkgrgYir4O25zzCb3q6XBqc1qIx1/UNPJ5YASHDbaSRu02oI/h5qc4OCtflSX2bRVRb7HPI 7 X-Gm-Gg: ASbGnct89aSwgt1Sl2x4G5eLGvC0EfjFvWvVSrrA4gS2/L7vQOONu5sO39wbjlmh/Ap tI0hXRiWut4tApyIQ3/TAR2gncpvodfWInwARAAbqHoTuewuHQeRv0fYKs6hRhVPTFy1mhUH0Zv J+W8LTDhqUPWs0g2jXH2asr1GTBa2BtWkXQTeof70blyyHkIiy8GmRvC4b0T9QX9aRK2wx20Suf mp/REGSx0z/FJ641I/hcIArtjLwxBXSuZRmILW2kHnocuY97jmRyZHTONIQ1Ia7pfkttiDJr+3y 1JkuedGysO/sRcwoyBe5j9ur0UHHVJEVaBg6lw== X-Google-Smtp-Source: AGHT+IHrsk8va2f9jUFz0ftD8VEqOjTpXEeQwyIxP0GRFd+ut72EYxcmyfAXXHA/8ZZERm1Ku2/BTQ== X-Received: by 2002:a05:600c:4595:b0:439:955d:c4e2 with SMTP id 5b1f17b1804b1-43ba66f9f99mr109740985e9.13.1741007932175; Mon, 03 Mar 2025 05:18:52 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:51 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:38 +0100 Subject: [PATCH 13/15] gpio: aspeed: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-13-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1579; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=LYFIGRtuwl4aJkBrIp7QZ91bKDFoO6rlmaJc/Y3YEoE=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxaws9K4avm5a3/nXOZWmIQcBvBwL1Vb6W/sh9 OznmQXSmESJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsLAAKCRARpy6gFHHX chT8EADTj6ZZXdeJj6Iyu1AzAb4IyTbPKUbO8J/z8nzq3PyDc5bnoj4WHzueOKKmjcxZKh/WYoI FFA/pLjrW+4GZKcD9eBnMz4mRz8lpCmTpcNAFjkQQHqmQULsLzb+wtCk9oR1vgC13G+/mWED0EC pTlhcx4vALIKG+WXXE9jWt7TlQvoM0lE0PXKW30/ll3nG7gFQOS7PA4eNP9PgMrlv7jX0HurDoi KbgabP3JdgvBY1MD2E4m+O3cRHM98gJTDS5qKQEvlC3GzHeppaYDJDPd03NBaAwPtLZ7as52saM +vGxlehYqbNPl92p66PzhTnKVa2rmQy/9MnGUrxoDJFuLkLi4S8CkMbqZRu+qy+yt9tpeIzFUL1 eXoBzY9hs+kO9qq0cPab32Cs4kvJ0pj6cgWnTlXqwbpk8isnBLDd5Dvy8O5E4y6zlGSWa5qiTC3 MBRxF/68eGz1AeVeDcCuH4xz9FZd0EGTeNoH4nuC5S8kVMwn6hD1lD+nCEs3Y52xMNLU6PHLk5F 5lCN56djX30Hd2YWYLdCvEYrZzprzHncFQgl6CmHJcvnFt4Ln7gVNj1zjO5eY9ZRw9z0JHHY6F3 GUnF5ZKdktPzZ+VnH9pYOOyEqrPpcBmkG24xaMnAg+8iGk6JJVKLigkXXE4Q6aQOsSnvnLWmH32 7R+I4hEhoMhBI9g== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051854_006639_54F760A9 X-CRM114-Status: GOOD ( 13.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-aspeed.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c index e2535aad1026..2d340a343a17 100644 --- a/drivers/gpio/gpio-aspeed.c +++ b/drivers/gpio/gpio-aspeed.c @@ -424,8 +424,7 @@ static void __aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, gpio->config->llops->reg_bit_get(gpio, offset, reg_val); } -static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, - int val) +static int aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_gpio *gpio = gpiochip_get_data(gc); bool copro = false; @@ -438,6 +437,8 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, if (copro) aspeed_gpio_copro_release(gpio, offset); + + return 0; } static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset) @@ -1351,7 +1352,7 @@ static int aspeed_gpio_probe(struct platform_device *pdev) gpio->chip.request = aspeed_gpio_request; gpio->chip.free = aspeed_gpio_free; gpio->chip.get = aspeed_gpio_get; - gpio->chip.set = aspeed_gpio_set; + gpio->chip.set_rv = aspeed_gpio_set; gpio->chip.set_config = aspeed_gpio_set_config; gpio->chip.label = dev_name(&pdev->dev); gpio->chip.base = -1; From patchwork Mon Mar 3 13:18: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: 13998877 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 65D1FC282CD for ; Mon, 3 Mar 2025 13:44:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9Mna2g5kGAQGbITypIOAf332guWttEFjYKfE+wICzl8=; b=gMVq9J+q0b9vgZ6r+e1VVBLrmr vza42ovbpmvwy4rmxrW9sh2XidNsCfEfBSqZu1fWCvGXnp8q5LFCSJ6WY+FmEq2EqbaBhTk/oJobV Gkg+F3/rgQrgtc87IfJeFPlpE2/BKMdBE+w+EcQ49wqIgQzH7K+RINeXcR2cbwGBO7eob4mS1f0IY WlAHbWb++pmi6IB04f2jlgBzU4fPAmYj3L9S7iaBrKTeTpnpJ8PF/QZsSUn0opi2/6uw4QlpvgaGj lZj2fua79GlO9NhPOC5Kh2UczTWFrqB9wmRT9nVG4Ocrpd7+Pvn9POfg3wnbHBhaxxGHj/LpfAaHK wHIHSecw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp664-00000000yC7-1tb7; Mon, 03 Mar 2025 13:44:40 +0000 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5h9-00000000sdH-03cP for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:56 +0000 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4398e3dfc66so39876845e9.0 for ; Mon, 03 Mar 2025 05:18:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007933; x=1741612733; darn=lists.infradead.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=9Mna2g5kGAQGbITypIOAf332guWttEFjYKfE+wICzl8=; b=lpotWGhRxQ1skbKIhfnqg2zIZlMOa+diN0J6AlbFhCGhHodsAuu/lzfEMlJupPS5db QRUwQaww0uAezd/5uyc+psvNcS8RiMzP3FOtbrmJuRhwU0aTpsQZL6ojmJ5ee8QiesH9 1Fs9H7A+uPmwbwv3aJ9eD0WPYy/RBdE4aGyEqk3zy02Q7ITjAgxCuapjYkBskn83fq2j DW+7O0TWgTraMoSKKC6RQXnh+1iVjmsRhiPnGIhkHovNOtIW/ZM/rdl9WlQaJ2LUjmQN ap9MnpTHMdd436DinjEAKco+g3wK60u1ocJYsI7Rtaq5l8VHMAKbmZNQa/4tNFJ+vSsG bhyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007933; x=1741612733; 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=9Mna2g5kGAQGbITypIOAf332guWttEFjYKfE+wICzl8=; b=KX8pYmS7zy5H7lzw68pl90bkX/9OAiYAn8uHk9FL4UM/zC7pM0oejUgrCDFWSjoRb1 kPirSlw574rxmcXl1CAiDesHFznFs9cBelwewdymzjjKQKEFlAc0SjeKLBiBKiRCM/Mp oMOt5C/9yoPxYEAMkAFGyEqTRMUv+ylf0w9MLqvZn0+4gJa1qQE2G0lxoTt70Qnv7jE1 iOrC6KPabut0inXyjwSDD/jJpCujQWTyE+hjupjVbPeDWCb5eB+4DyIJoh/xOndcwdZM DhOTUBdqnsk2aBWOUQDNnpoZFCpiiwL3TwZ7vDM83pw4DfjV4DFKWspS1oXqfKBWkOsg riIg== X-Forwarded-Encrypted: i=1; AJvYcCUW49beqrEPmck8Cc2ix5sB3CTCZzDTr2dpMz2L1btFyPowqQO2tGlKmu9b28VetejE5cXB8uizyg5Ep6CfwxIP@lists.infradead.org X-Gm-Message-State: AOJu0YzCfKV6xJ1GSqoe7Z2qyeePtm4er43Z7x10eKHmu+0fA9koWaYs W+tfMPUP9UYg7Bs+12n467IglDF9hBbjyzOBDUJlZ0Ic6nOSoKbHVRMAEk01Ows= X-Gm-Gg: ASbGnctU4lHb/ueo08XUslmrozQydPSLLUWE5hcI+9LdVUqGryqiPDooeh7SwLzmkFT DR3GO3lEigXojOi15wEFKIaD4Vk4HcuaDL6JdJSBh3MXrtdJJq9zWx3q7tPT3caJFC/rRWDrbtk SizSd1gCiHheg3aL0mJrHgiOAc47lbj2pq0bdGI7mQZptYBT04IISgK9Ftn90MxTSILz0KoB7N6 wnVXBN1x/9LCouUrA/N/xjpW0vl0J1qQQ16fy5cTWgXZIj6EZm15A5OfO+Oybh3vSuyWf52F9ny 3Nmi1IaJtSzicLGwV4vK3Tt/ZS469zVGa813HA== X-Google-Smtp-Source: AGHT+IFY22PCA1a2+aN5bDi5iCcPupeWgrWRYBU3OAd6qR1uqfM8OPw60ciFVK/sAA1n6Y60dhPpwQ== X-Received: by 2002:a05:600c:1392:b0:439:88bb:d002 with SMTP id 5b1f17b1804b1-43ba6727b57mr103602005e9.23.1741007933166; Mon, 03 Mar 2025 05:18:53 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:52 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:39 +0100 Subject: [PATCH 14/15] gpio: aspeed-sgpio: use lock guards MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-14-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5780; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=0qXZl4P6oay9QYtQck71x8HYJPy63jgVqg/jPZp1JP8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxawsJBgL9NLW7b7FCtj23bKQ2kGRMqw9cfP5j kWw5bq4/RWJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsLAAKCRARpy6gFHHX cjEGD/9I/yPodJyzCvoLyTdAs9s5HAxWXV840R+OGBpnA+oBXEY0FEbNiwC/ZRm6SNhGJrpxwfM 0Cw6Nxab1aIHNmI/IkLcksuG5r8U++V+RfblyWmsofiye6Cjmi2k1JY8NHPqGNfxGHSCi05c6hr +o0YH0h4Pkb/XCzt7Xrp9gQxm14ttMk9AnxYSEj8KT53aCRaiacOJeAueSocxP/0plWhJWnLBlE udhOpcnmP2QDd3bu2veRGB05Tb3mO8juN5L0ClWpZH7vfWmJ4tGxo6CLQ/BJCbctfAzExS6R+8Z wrisMCfrjV1zNfFfgvEC9iQXHEXeprwQA+LPKEdM8uUK7wsSIaNYRhgCH2zKOv3tfd84zaa04xA VHJ6Si4eURMZ5f5J26a+xy6d9LHe7hM6r4zG/yOurvpFt5+UdpPnB7K9tC0AtobOSf1nYMXu/Sx xSgB2mwmYmf3UgO0RE9yimPFnwaA4+Q6rMb2bSyqnKDIC9RbqCYCdO0fqjgz0zaWogldF2563Pc rqMkKNXgx38lLXc1hXAjdiEn5FsrcnratZRfM72ETy/jHE1TjvODlvn4UVeKvQg1+yYmrtuOnZ5 D9tcdNqZ961mLhWwMoF//HwFYaND3V9NpBfENgdDRuf/cQg9XmRLHJDhqH0uqZ+Ah5XIdxt1iBe e56xOZfdkwuJ96Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051855_067249_33A289CC X-CRM114-Status: GOOD ( 15.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski Reduce the code complexity by using automatic lock guards with the raw spinlock. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-aspeed-sgpio.c | 76 +++++++++++++++------------------------- 1 file changed, 29 insertions(+), 47 deletions(-) diff --git a/drivers/gpio/gpio-aspeed-sgpio.c b/drivers/gpio/gpio-aspeed-sgpio.c index 34eb26298e32..5ce86de22563 100644 --- a/drivers/gpio/gpio-aspeed-sgpio.c +++ b/drivers/gpio/gpio-aspeed-sgpio.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -170,17 +171,14 @@ static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset) { struct aspeed_sgpio *gpio = gpiochip_get_data(gc); const struct aspeed_sgpio_bank *bank = to_bank(offset); - unsigned long flags; enum aspeed_sgpio_reg reg; int rc = 0; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); reg = aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata; rc = !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset)); - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } @@ -214,13 +212,10 @@ static int sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val) static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_sgpio *gpio = gpiochip_get_data(gc); - unsigned long flags; - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); sgpio_set_value(gc, offset, val); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); } static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset) @@ -231,15 +226,14 @@ static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset) static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_sgpio *gpio = gpiochip_get_data(gc); - unsigned long flags; int rc; /* No special action is required for setting the direction; we'll * error-out in sgpio_set_value if this isn't an output GPIO */ - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + rc = sgpio_set_value(gc, offset, val); - raw_spin_unlock_irqrestore(&gpio->lock, flags); return rc; } @@ -269,7 +263,6 @@ static void aspeed_sgpio_irq_ack(struct irq_data *d) { const struct aspeed_sgpio_bank *bank; struct aspeed_sgpio *gpio; - unsigned long flags; void __iomem *status_addr; int offset; u32 bit; @@ -278,18 +271,15 @@ static void aspeed_sgpio_irq_ack(struct irq_data *d) status_addr = bank_reg(gpio, bank, reg_irq_status); - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); iowrite32(bit, status_addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); } static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set) { const struct aspeed_sgpio_bank *bank; struct aspeed_sgpio *gpio; - unsigned long flags; u32 reg, bit; void __iomem *addr; int offset; @@ -301,17 +291,15 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set) if (set) gpiochip_enable_irq(&gpio->chip, irqd_to_hwirq(d)); - raw_spin_lock_irqsave(&gpio->lock, flags); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + reg = ioread32(addr); + if (set) + reg |= bit; + else + reg &= ~bit; - reg = ioread32(addr); - if (set) - reg |= bit; - else - reg &= ~bit; - - iowrite32(reg, addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); + iowrite32(reg, addr); + } /* Masking the IRQ */ if (!set) @@ -339,7 +327,6 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type) const struct aspeed_sgpio_bank *bank; irq_flow_handler_t handler; struct aspeed_sgpio *gpio; - unsigned long flags; void __iomem *addr; int offset; @@ -366,24 +353,22 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type) return -EINVAL; } - raw_spin_lock_irqsave(&gpio->lock, flags); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + addr = bank_reg(gpio, bank, reg_irq_type0); + reg = ioread32(addr); + reg = (reg & ~bit) | type0; + iowrite32(reg, addr); - addr = bank_reg(gpio, bank, reg_irq_type0); - reg = ioread32(addr); - reg = (reg & ~bit) | type0; - iowrite32(reg, addr); + addr = bank_reg(gpio, bank, reg_irq_type1); + reg = ioread32(addr); + reg = (reg & ~bit) | type1; + iowrite32(reg, addr); - addr = bank_reg(gpio, bank, reg_irq_type1); - reg = ioread32(addr); - reg = (reg & ~bit) | type1; - iowrite32(reg, addr); - - addr = bank_reg(gpio, bank, reg_irq_type2); - reg = ioread32(addr); - reg = (reg & ~bit) | type2; - iowrite32(reg, addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); + addr = bank_reg(gpio, bank, reg_irq_type2); + reg = ioread32(addr); + reg = (reg & ~bit) | type2; + iowrite32(reg, addr); + } irq_set_handler_locked(d, handler); @@ -487,13 +472,12 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip, unsigned int offset, bool enable) { struct aspeed_sgpio *gpio = gpiochip_get_data(chip); - unsigned long flags; void __iomem *reg; u32 val; reg = bank_reg(gpio, to_bank(offset), reg_tolerance); - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); val = readl(reg); @@ -504,8 +488,6 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip, writel(val, reg); - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return 0; } From patchwork Mon Mar 3 13:18: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: 13998879 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 70D48C282CD for ; Mon, 3 Mar 2025 13:46:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=qYy3OxmCTfeXmKWW1VbewLs6rP6H3oG1fco894i6r5M=; b=FaKiS+YNaVDKvmkO7grOeJrSew 9k7YEwc+wmRfA8UEgajqwraM1cPNyRfDuUdVnUxLfPxkZZ4ZYFnn1w3aihe/0ziGSj+LjcR9aXpXf rZSjG+EDm1R1HhwJFD3eP421rsv/k6Y4zOEbsU5eqzDrRbvVfgRnaoQoj2Odp+EOOd2YVH1IfMvEE SnWa+B33z7xlrMMhTl3awzF4UxnldPlmUXz3Rux0GCKUfOdgfq6vnFcBv81TgFX35mEdtaB8TDzmQ xcxC5rl6ofIeYMr+gq7AhYPWJ4/d6UCEqkINAbgRkXzGlx3OePOqR28IT9pMYt0cu9LwhZLyXwYW3 rB8rATMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tp67b-00000000yLV-0O1q; Mon, 03 Mar 2025 13:46:15 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tp5hB-00000000set-3KRc for linux-arm-kernel@lists.infradead.org; Mon, 03 Mar 2025 13:18:58 +0000 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-43bc31227ecso5381885e9.1 for ; Mon, 03 Mar 2025 05:18:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1741007936; x=1741612736; darn=lists.infradead.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=qYy3OxmCTfeXmKWW1VbewLs6rP6H3oG1fco894i6r5M=; b=gDV3EGJidMRvdSjmKba2H89Xv+uLsAXxHExoDFbVlfS3G49Hu3TkEdGwZ0eiStO7Ua F0Vl/ugKTlBPcscqX7WkYrW0gr5lYSr9b73d9vV0WqWfNsG5ATIBchxJtqDc78594jvm hmTNchVbsU2FzlB2zC9ZocB55JFbQXDJkPOr5Wj2eXNIwkVJcMceNraIqtU9eaybnysQ 9wiqiRhQQz9ZOnWu/LErvsyh1BKzMD6doEsSEZpCAQP+ka2tKHeJ2bFdVh5o0wp9Enq3 yvgXmJeth9TVb41FkmdSgLjouq/H9/d7C+AHMGKbsrkynRCOL3TBkGt/5wBy/eeo6NB0 5cow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741007936; x=1741612736; 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=qYy3OxmCTfeXmKWW1VbewLs6rP6H3oG1fco894i6r5M=; b=JnkbdLdRtrBYZupy1ivDKcrpsJZj3eRgh8CWTEkdDIuZWNFznEpTzKCYfYs+7/uOmv 8x7GBwrT0+FdGup0+pCB2uA45tuDNXtsikGzK2OKMzXrv2KIHVFCl6nCs9i8rso+hpkC D4gRY/7HGvMPVKLN0JikQKGTvg89iwWUYkKC6Tvxyod8yhJwI0rXUPPRELKEd+Xnt05r nUK4tM5vE1PZfdPu6qCzWkc7m1JNRST6KvE2b+Xa074uAzaHkIt+DWFrQHID82z3eGjN pAw5ekFvY0goEHEmmx0YvfcGsGWehI2yZqL52kqR7dPrOwLhtwjMMPGj8PNwiBz4vZnn vabw== X-Forwarded-Encrypted: i=1; AJvYcCU3wXiPwOuqu9ELjdKwy7bTVJu+hUwQFXXdAa2UXJ11BF3niyiojRCCK2EswaGqqqjWuVP9c4LrvP5Q+CCjFw+0@lists.infradead.org X-Gm-Message-State: AOJu0YwmeBOcPQXu2pT+bOZvtEaUJ0/lsxTmrKbwpsEqsCCiEA6e/k9s SXOWBNTtwSxhSX7cDAt53W/4I44d5Gl0Lhi9qqjGX4+gGZWq6/FNmHZWlcfnai8= X-Gm-Gg: ASbGnctRplt57gax2gq/Gi7pZdegn73a72qvImUeOcB0KBuuFXohtSaOkCw+mtWlTBN pVO0pPhFu7XGaYVphXlgO45cQuTB/PUYm9CRQDqWO6ucFAKb2f0DiwTNDZvWXrxZ8Q5PoRtqYZU uz1LuO8eY6PcDQVDZW8okj+I6F5u7KHk6i2sX3T4KWzE7HrIC9JATYLsaJfMcEb0IbY5fRqnqXK coIv5u7kmUcRdtMLIZwL7vMmxFIZmGOd3BRmx9qNP35N0N5oY6+jN/s5JyNKsNeYd7ZGloL8NgI ojJJCDk+p+7rCumuv6yZUCjsgzAiLYNYqpTeZQ== X-Google-Smtp-Source: AGHT+IGrzVhEnfUuDCVxi9rV1+Y2pAX00HYe4ND5tnilxpFNSHjqZm+Q1tO//4HTCcPKf55lo23WTw== X-Received: by 2002:a05:600c:4ed4:b0:439:98ca:e3a4 with SMTP id 5b1f17b1804b1-43ba67475aamr98841885e9.19.1741007934650; Mon, 03 Mar 2025 05:18:54 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:664a:9e92:6aa8:6007]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm194821915e9.17.2025.03.03.05.18.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 05:18:53 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Mar 2025 14:18:40 +0100 Subject: [PATCH 15/15] gpio: aspeed-sgpio: use new line value setter callbacks MIME-Version: 1.0 Message-Id: <20250303-gpiochip-set-conversion-v1-15-1d5cceeebf8b@linaro.org> References: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> In-Reply-To: <20250303-gpiochip-set-conversion-v1-0-1d5cceeebf8b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Michael Hennerich , Laurent Pinchart , Mun Yew Tham , Joel Stanley , Andrew Jeffery Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, patches@opensource.cirrus.com, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1486; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=o1RQkjcxzC+TGloaGMTPuFJzidyh+RPMXxMLz3aV4DI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBnxaws57keqtznwsHgFtxTpm4rRaKKUe8Z3RX1S ld6SfCwJGCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ8WsLAAKCRARpy6gFHHX ckXIEADQhVFh09Iq4tEU1jISNlnEkfP7k1ELSZ2IXMcW2dvNP7VqR81V0ZYPQcclqaZcCttaM/0 1t5g/NVwoezK7o4qVsmqkqEYmN/nvkOX0UsVySyJw/0dXUPT/CQHlKIC/erIqkDom3R1svtUd31 J8c4lXQO8LVXCkp4nJAkRYT4Pp8L7ABPoI8raUIP2VV8rjcwdbiVm9WCmlKM4tWAcJUCSL+WNdq P08bBozKKrLOq69Uc92O0nJlOwBqmO4bFPrWVqNuqZLcX4lyWblxe8aftcHYJPVLMNkJ/VGuhSd scoDcPInDpwb45deB+pQKPmVX+r5jj6vzMfSsD3gtmzzVSbaRkjTrA9B2rqjxRO5+w1AwLup7eD dcPbHDmqiZewAlMFEyYu18B6DBXl0+p/kcCHFQHuX+RX7QW5f0TyiwikwKokqYPCvwXVRCDPUUW 8Ro4zYv2Q4eoLzFPK7GbnD8MQO83Fy90ZIxjT4Hsw21lBZiOmicK28b5uSHvoAziBQurQ/M9+r9 tMPeMyCpRPfCCwKF4H7RofC7RJGan9UoZtnZ66gpzw7ne2jNJ0rx2YSXzVoxYEwFv+RX2NRP0UD SxJc01SMF9zx33J3w0C77IRMrapFhhJcw6Ls1/VbuDECgOkpKtB9qH0Cr/4U9XQuMfQ3uo+w/Gt pwY99gL8+uSpR2g== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250303_051857_839813_D9AE7DE0 X-CRM114-Status: GOOD ( 12.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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/gpio/gpio-aspeed-sgpio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpio-aspeed-sgpio.c b/drivers/gpio/gpio-aspeed-sgpio.c index 5ce86de22563..00b31497ecff 100644 --- a/drivers/gpio/gpio-aspeed-sgpio.c +++ b/drivers/gpio/gpio-aspeed-sgpio.c @@ -209,13 +209,13 @@ static int sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val) return 0; } -static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val) +static int aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_sgpio *gpio = gpiochip_get_data(gc); guard(raw_spinlock_irqsave)(&gpio->lock); - sgpio_set_value(gc, offset, val); + return sgpio_set_value(gc, offset, val); } static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset) @@ -596,7 +596,7 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev) gpio->chip.request = NULL; gpio->chip.free = NULL; gpio->chip.get = aspeed_sgpio_get; - gpio->chip.set = aspeed_sgpio_set; + gpio->chip.set_rv = aspeed_sgpio_set; gpio->chip.set_config = aspeed_sgpio_set_config; gpio->chip.label = dev_name(&pdev->dev); gpio->chip.base = -1;