From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF9C91F0E4F for ; Mon, 3 Mar 2025 13:18:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007923; cv=none; b=j326+3yEls7YkLQBYXi/ziiJInFT9K1A+30inS5lHZI32xvoMbwvAIJmB/X1yvoPgVoVPhNQdnVQLt1UEbb6TX0XznMnoHlARFWu3MIXUY69hzfyy/Ox5JK41x1yEHjcJT9yja1p1avfKNOAHx3+kAyJlL8aeCRP1q8VFodE/UY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007923; c=relaxed/simple; bh=9lzejMsgIcVx6o3k2HM9XE0p8xgIq5wdNaTmJJ8s+zI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iUUjM1lha/lgbOxQ9E4F4RpovBUC5ie41PM2jKnHLutCHcyqaD7v1gFvGuz6UnfIybdQd72Ax7ppFclXg6dm7NuCMps5p2KDII2ujTu6QVm4Wgd+Xvg3ILPTqLWMERwwM0z/Nb0DtLw2lBj2RUpXBlEU8JFpTx2rpNZKYHCeEpQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=Fwyvdffa; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="Fwyvdffa" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-439ac3216dcso30218615e9.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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=TidBt2SWkGKP+ilcC4ucnacYIVlA19tuK+wOmbWsRkQ=; b=FwyvdffaDwH2VzM0BeDLEDW21LffWk9fbARXXaFO1ugV159wMmG1Ufm/wqMdwWZURU 4AYRczxNR6s1uF/EzW7mXd78bf1wm34/dLIPKodSvvHNzLK2TZH72wknNy8aGBk1EfK+ PX/XdnTbcfvHdDLf0UyWxKSu48g2O6PwYrA5UasFulq7u9eTosUfQNwZ3+bmBv+q8LIw PkFfw+0mgXorh7rtgoWtRMk5xnt0W5CF8ZPpf4r9PU/q/JBB4qJ34hh9DfCvYxS0wsu1 nbVfsDYC2auVNniJYEz2lpA/lrvzloG9IYuRnKB1C4XBu4oeEvu9j5Wscb29gFgroLNg xaFw== 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=ciNPd+Sr6ygpbmpJeRJwC+ijT9vZa6XaraIbJHQulyAWKjRnSrpzSYZ/JZnzhUHHbE 4GDsk68VQXUciO8RJf4orKofY7LyY7MSYN2/Z1AQ7pJBA70XhCo9enyHEM2VaVUNs52C w8gqFGHxod6OTOl2bv0zJodkTNzmKD852VMv9WVVY62nwsHpaSJGb8HshVGLbsppaK3V H8KJgXipnfufnAQHlNdCSNngrBKG49PZsz/cuZgj/4HYx8OzP7AyojjERUTE3hwuBvHg HZ23qT9RVKcsb7ytdsEFppVQG3EisO9M8MuaLVofzTJmheGYdcQPapjUfJvC/GfuMWPs BhxQ== X-Forwarded-Encrypted: i=1; AJvYcCV8LNLnAgnYP3KUvu0YeGTA7zwlQIPbkF7ilQwonjGAMts3sFCw/7anqTOI72AHzSk43L5sZTeEoZWRwnA=@vger.kernel.org X-Gm-Message-State: AOJu0YxJXkQ89U7Aa7ll80HyfmZl94Bss2v1PuXibxig56rFl2gUB8uV j3XVcXG9ehJzOdIfLiGRulm/ISQL1A3jjMRvsTU15O5Gnecw1NbHrQpskC6qiD4= X-Gm-Gg: ASbGnctTRBBwUp74Pq/R9WXg1i81zWngjqMU7gw8y4xkn5MC5EdSQEuFvOAoad0hd9z uzemx/3LCVpr5QfBHaT/gWG/+csYASv5GflbafLuWbVJJeKBseAwPXu+9UlMjBLHaK3/8Vu/WzB rKzv6tUVSgsVBhMYZEkYTaJednU4VR27L4QWFnzqWdix6CSS7M7PzI/vfQZUhDdgUM13OvbOMxL d5gLqr+aGS/ic58qSRgCIa2xvbRTKPsR0fhXJe2Zfaxgx4TDGXfhUvDErEK4B4/z1GUqwr4qr/0 UTo7cn0TdLE2w+ukRFmwimfVt/fWC5MU6KC42w== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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, uns= igned offset) return !!(chip->buffer[bank] & BIT(pin)); } =20 -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 =3D gpiochip_get_data(gc); u8 bank =3D chip->registers - 1 - offset / 8; @@ -64,11 +64,11 @@ static void gen_74x164_set_value(struct gpio_chip *gc, else chip->buffer[bank] &=3D ~BIT(pin); =20 - __gen_74x164_write_config(chip); + return __gen_74x164_write_config(chip); } =20 -static void gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *m= ask, - unsigned long *bits) +static int gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *ma= sk, + unsigned long *bits) { struct gen_74x164_chip *chip =3D 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] &=3D ~bankmask; chip->buffer[bank] |=3D bitmask; } - __gen_74x164_write_config(chip); + return __gen_74x164_write_config(chip); } =20 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 =3D spi->modalias; chip->gpio_chip.direction_output =3D gen_74x164_direction_output; chip->gpio_chip.get =3D gen_74x164_get_value; - chip->gpio_chip.set =3D gen_74x164_set_value; - chip->gpio_chip.set_multiple =3D gen_74x164_set_multiple; + chip->gpio_chip.set_rv =3D gen_74x164_set_value; + chip->gpio_chip.set_multiple_rv =3D gen_74x164_set_multiple; chip->gpio_chip.base =3D -1; chip->gpio_chip.ngpio =3D GEN_74X164_NUMBER_GPIOS * chip->registers; chip->gpio_chip.can_sleep =3D true; --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0036521018F for ; Mon, 3 Mar 2025 13:18:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007924; cv=none; b=Mf7kKOjy+gnrZkZceKEBermoil39aBBxWetJiGQjrW5SmW8Hwl893ieu5RsVxeUbl7tFsMETtMs+NUOj4ipUOTu6gW5qrDgYtrA5yNmVdRJEfoz2BeDUM3xl4o8xm0aIbGFNG52vQs0LIWbHRNnmzbzLL9VKTkLw3Qnaz4a7iKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007924; c=relaxed/simple; bh=anSaUmMeHudTcMnfZKAkZFKa1ZvxOcZSds714KGyGrw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XSijoc26b/Ba3tWdd3rRTN+Ob4Jt5sVLH/wYJcZyItAfFbKgJoY5CpRFYTx+/YCmGdc1oIlKULuIzsdh83O4jhHxUt62bRacuSq8PVkJcxxGgmlCXxt7jY491Irs/mgwdnnuQYuwF2ALXI9F8jVOSsTioA+9SMKLFuyfUC7AMJA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=j8KUUEra; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="j8KUUEra" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-43bbc8b7c65so11520115e9.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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fZ5oJp3c5WFM4WouXer3X9uqb/QndY0s4T1ZVpIJ/XI=; b=j8KUUErar2T7AjTHAujEJu9Uk/FAb0hKMWIWoz/s0pd9MlzYzAWH4ScoJbnNjPICy0 OInWP6oLG2kFVmZ8GRA3qHWNQHNzHDNq7NXawrN9ZPtW8G6V57GzLOdBsuxoq6zPFN/q fgAUnjJygH5vX7mksebGT8zJF5zhzbLBAshpSXPuR8qnD11Dd07TM1OGSthb9pEFA8Q5 otBmsEmIMMZnjJOPr4Z2rkA5KXwbAzxj2h8GQRMYwHuaWhskLQCMryQMKsODaQrohvpj M061SwGPcAh9jPaJA9XdgzNCWxVOW6fUilXL9qCipXeZgxR7UxFizAPfvrngW2i+/odU WxyQ== 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=rRWTrLvXUP5dqA4ePavJmLTVkY3VM/7A1YHrr3Yugplt8UDKL31BU8IZGRxVxg/ZMa ie7hNSNQb6lM+GpmzgMiDrhjIUnpSr0hyMj02ne/yy+ZZnDpP6pnYsuut7DPVowPUtAK KBF2eB+UOPOLTzq9qJAMM+hHeDJqWWdW2K0i75KQ647jwsnq6fezCXbWI+5eaJUfuPCy HnObn44chNMSpBPUGSL+q0I8Hs1ziSvWi5JpWq/xkjUNiaFAQSzhmrbwsba2FPxzakO3 WA/58mk0+4DIK4fyg+IBqCHdWK0M4i4cY1/VqoZkm09nUSeNc3ufvo/g3476KWnsZnjv Nc6A== X-Forwarded-Encrypted: i=1; AJvYcCVKOEOaG0AHG1Uf93t9BXicCkp4qmEgzPK9J3bK0wbHApr1XG27EuqAOb92MovgINnOf+dYclQz5QyUCLM=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6xlkLdJVZq3oJOGPCx2nklFR2we6H/0PY+YI7uSIxgeFH0zD1 IFFMuwni1ioMSOFU13Kr10so0lreGUzbfJVYMYo3CeTrvRshsvu7PPsgs9UGvB8= X-Gm-Gg: ASbGncvjt8mxgBhu4zw0gEAfCb4qVyV31nNsy3lMixP3nc9TZea53ieME2ayHz+Y5ZQ 0A8cJqFfregvYXUOmtQbLgT2hAp++z39Gw4mZ0Nij8avHydhN7FOzm5XJ0Uq/VkS0d3ai8pbG6l lJs2ylG2niuxrCDsdSp0tHW+F7O5GP8LmDqg8KTUpZyayA45mpX9V7JaKAHn/6VMSsONBkmFDnd DZygzat23Ib7HVBFEua8m7rV8buDzTuopGPwdE63Myb8fW0/OmC2Kh1YXk+VVn2mqgP2FF+hfYC K+pH0gClqgxoDtO61EmkNCaJYLXCvzLGtNeeEg== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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 */ =20 +#include #include #include #include @@ -101,9 +102,9 @@ static void adnp_gpio_set(struct gpio_chip *chip, unsig= ned offset, int value) { struct adnp *adnp =3D gpiochip_get_data(chip); =20 - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); + __adnp_gpio_set(adnp, offset, value); - mutex_unlock(&adnp->i2c_lock); } =20 static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offs= et) @@ -114,32 +115,26 @@ static int adnp_gpio_direction_input(struct gpio_chip= *chip, unsigned offset) u8 value; int err; =20 - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); =20 err =3D adnp_read(adnp, GPIO_DDR(adnp) + reg, &value); if (err < 0) - goto out; + return err; =20 value &=3D ~BIT(pos); =20 err =3D adnp_write(adnp, GPIO_DDR(adnp) + reg, value); if (err < 0) - goto out; + return err; =20 err =3D adnp_read(adnp, GPIO_DDR(adnp) + reg, &value); if (err < 0) - goto out; + return err; =20 - if (value & BIT(pos)) { - err =3D -EPERM; - goto out; - } + if (value & BIT(pos)) + return -EPERM; =20 - err =3D 0; - -out: - mutex_unlock(&adnp->i2c_lock); - return err; + return 0; } =20 static int adnp_gpio_direction_output(struct gpio_chip *chip, unsigned off= set, @@ -151,33 +146,28 @@ static int adnp_gpio_direction_output(struct gpio_chi= p *chip, unsigned offset, int err; u8 val; =20 - mutex_lock(&adnp->i2c_lock); + guard(mutex)(&adnp->i2c_lock); =20 err =3D adnp_read(adnp, GPIO_DDR(adnp) + reg, &val); if (err < 0) - goto out; + return err; =20 val |=3D BIT(pos); =20 err =3D adnp_write(adnp, GPIO_DDR(adnp) + reg, val); if (err < 0) - goto out; + return err; =20 err =3D adnp_read(adnp, GPIO_DDR(adnp) + reg, &val); if (err < 0) - goto out; + return err; =20 - if (!(val & BIT(pos))) { - err =3D -EPERM; - goto out; - } + if (!(val & BIT(pos))) + return -EPERM; =20 __adnp_gpio_set(adnp, offset, value); - err =3D 0; =20 -out: - mutex_unlock(&adnp->i2c_lock); - return err; + return 0; } =20 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, st= ruct gpio_chip *chip) for (i =3D 0; i < num_regs; i++) { u8 ddr, plr, ier, isr; =20 - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + err =3D adnp_read(adnp, GPIO_DDR(adnp) + i, &ddr); + if (err < 0) + return; =20 - err =3D adnp_read(adnp, GPIO_DDR(adnp) + i, &ddr); - if (err < 0) - goto unlock; + err =3D adnp_read(adnp, GPIO_PLR(adnp) + i, &plr); + if (err < 0) + return; =20 - err =3D adnp_read(adnp, GPIO_PLR(adnp) + i, &plr); - if (err < 0) - goto unlock; + err =3D adnp_read(adnp, GPIO_IER(adnp) + i, &ier); + if (err < 0) + return; =20 - err =3D adnp_read(adnp, GPIO_IER(adnp) + i, &ier); - if (err < 0) - goto unlock; + err =3D adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); + if (err < 0) + return; =20 - err =3D adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); - if (err < 0) - goto unlock; - - mutex_unlock(&adnp->i2c_lock); + } =20 for (j =3D 0; j < 8; j++) { unsigned int bit =3D (i << adnp->reg_shift) + j; @@ -232,11 +221,6 @@ static void adnp_gpio_dbg_show(struct seq_file *s, str= uct gpio_chip *chip) direction, level, interrupt, pending); } } - - return; - -unlock: - mutex_unlock(&adnp->i2c_lock); } =20 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; =20 - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + err =3D adnp_read(adnp, GPIO_PLR(adnp) + i, &level); + if (err < 0) + continue; =20 - err =3D adnp_read(adnp, GPIO_PLR(adnp) + i, &level); - if (err < 0) { - mutex_unlock(&adnp->i2c_lock); - continue; + err =3D adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); + if (err < 0) + continue; + + err =3D adnp_read(adnp, GPIO_IER(adnp) + i, &ier); + if (err < 0) + continue; } =20 - err =3D adnp_read(adnp, GPIO_ISR(adnp) + i, &isr); - if (err < 0) { - mutex_unlock(&adnp->i2c_lock); - continue; - } - - err =3D 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 =3D level ^ adnp->irq_level[i]; =20 @@ -365,12 +341,12 @@ static void adnp_irq_bus_unlock(struct irq_data *d) struct adnp *adnp =3D gpiochip_get_data(gc); unsigned int num_regs =3D 1 << adnp->reg_shift, i; =20 - mutex_lock(&adnp->i2c_lock); + scoped_guard(mutex, &adnp->i2c_lock) { + for (i =3D 0; i < num_regs; i++) + adnp_write(adnp, GPIO_IER(adnp) + i, + adnp->irq_enable[i]); + } =20 - for (i =3D 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); } =20 --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D860F21148C for ; Mon, 3 Mar 2025 13:18:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007924; cv=none; b=Dur/6zmuPxpJTQJY7s5QZ8IQD4QhKV4hZrVjEs24Pl56zoW1CgWnGwZWP70vM1n1BH+CeJ6a79lKH/9TKastBqPHOy1D2zYsgwunJTDVj//rDxkS+2BXbgqI18EF4nCfPe6iS/MOsQBWDxMyin4moRtguIBOcyqg/yC+VNwOHrc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007924; c=relaxed/simple; bh=C2FD3r9G96fNyZ/7mG5NtCcGXXprvCDkvpsW+gGA0d8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UAbE92/r3Q9IwQtfQrPy9ZTmmU4Q7tnw0khDVTdsNiXFJbX8p7izknE0nl4Ei1AT4qUJu8Z6MWeF7KwInSGr7YHShU91QwTviE48Ek5sQpk8seuHTxbZEzat0H12npMuoTGYkwL18pn0Qa4+5/9DgoavPQy7NCdIGSG/o1JaD7A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=0L5A1N6g; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="0L5A1N6g" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-43bc0b8520cso5914765e9.1 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=X8hAv7noimuIZZQmeIe3WLO3rZ6iIEPRpuvmg5XIUhY=; b=0L5A1N6g/4nIQQvv2TLNEKO9+X3Pm7PaMyhWiSIlWyUZ3nlZgwdpDILlZSALB2mxc5 Qo96OnHtS5mK8a0YiNozilrvR1O7pMYSuqTg6m5a1hqgys7ButrWYsjJfgmle5KWfuNR YLdlzwsWyIl/HfcSb/YP9yhAF/Q1oh2VzZRNV3oootC+OzY6c/ObdpBV1GvPz95tnroK kJjbzRUUulzCwRBmmWTQe/WAFEeHkdvGI8XZhvcqiEQR3upVYdXndlhpMOcMybAgxkVG m8i7hvkuTmp6dlwRcWjpRFJZfw6W/4OCWy4sQse27ZctW0AmRwK9hACXc78AINdynSg6 bL2Q== 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=UYW1vtlOlddnApQbYbUVrCtZyk60cZtGowXPVTLV70GYonOuAruBgJq3xrBcMoEz6C UlK57D+Skih+RWE44rF6uYwDY3u9lLri4KB7KlexzyT9V0X3O+t8tigA1IAxvECSwMF+ TWgDLhJjAxC0sAXbdfHzsds375nalqo/OM2YNhiwILLK/TVXRpmscOmHjRbzJwxWvipy HjvuzomymvjxqzztHI+znen9K6zwowMZovNa6prOVlejjN5DLRUxjFKcY8sS4KmH+Wn+ aRT6FrCIVD0u4od4wvKwg48KAh2xRIIj+JtWmzxcgNpnhvMzu9SRs3F7j7BiOT5IlrkE F32Q== X-Forwarded-Encrypted: i=1; AJvYcCWMvACppqabLj0DQUJrDETQUWFnVaBkrdb4EqRJusNRBVp4adoBP7j4721F/Uv/5d1gyhLqh3Y6OPu1mho=@vger.kernel.org X-Gm-Message-State: AOJu0YzjtTkb1a61YfraulDYakvHYJIV5pD3rVE/IX23waadQfNq8PkK RLiGMUpk58rY9LhiOuvWzjq3Eeyw4fFlVtm3dR8pIYZlN9vri5LuA51H7u7+OoU= X-Gm-Gg: ASbGncs6lNI7W9D/tOK8T9vZJ9zj3hf9xN3VEjzlyVEnyisxC9KfJD2KcXHX1L/9xVk 9nBVVThf8DZadpJvZSni4MCht/euw7gb7aBLD/lbo6tZQ/XM7B/WxBiEIqa1i1WiV68OaLHwCb2 Vo1Vq8X/Ug3aKU5TC30kFRdJvZ0yYImvPX5pdMlphcDowx/aultbZTSEqUUSEpH8YeFWP8FoHK9 EOCzENp4lYPSHQoRGA6Szf0RNx0g/kUY0F+ay2o94Ed9ftH4VZPwEnEb2laCA52vocV+N3ZJwfS fSj6NcakxDDrTc9h8+9Mahhg15Y1jbdtPA5EcA== 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() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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; =20 - mutex_init(&adnp->i2c_lock); + err =3D devm_mutex_init(&client->dev, &adnp->i2c_lock); + if (err) + return err; + adnp->client =3D client; =20 err =3D adnp_gpio_setup(adnp, num_gpios, device_property_read_bool(dev, "= interrupt-controller")); --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D231920D4E9 for ; Mon, 3 Mar 2025 13:18:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007925; cv=none; b=mMSxHmgiT8mutmBDR6Yo2bwIfuU9139WtWcoQ8hclwkk2Xne3G1Gc6ISjVVyO9PYb9WyXyiiIawVLxX1aefA/JBzj01T1tiRGLsKehVvZxwh2woQgtdeKIsgPx69D9bzNgtKyUvGzUGHBhhp+Kc0V2TBHDl/gpISRposIpmAIBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007925; c=relaxed/simple; bh=V7EBnTsQdSCBlLOBmNG2woZ3wkKd2doIiND3mGdJNIg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QZpTt0tQodQ6wV4OsrTtQnUzMNOqCHHamCuHOW7j7/KH5KpoCs8J6F0YfEaBopxxwe10CQA+PlCj3Gf6dbBzaiUaL9miXdRuVkE6STYPxSLydP1GqAC/QtQL9VKS/iYCG1zg5cUl59fWSYAwSu4pijRKKovWwDUUTMsZosrybC4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=KzxCpQol; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="KzxCpQol" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-390cf7458f5so4146001f8f.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hFP6OzlnsfQDERRUw+GGdLYipfzpI50/ga4CvHUlY5w=; b=KzxCpQolmbQHhiUOeSpBeMCqPy6JA4OuMdbhB74pXQW5SMzX1vJionOHMiEm/7/S2v NbRMaqGWhgq70+EOZ48z1ar2mOWgndUj+QPteHsI8IKv1e2mwYtnLTR+5P+4rKbhGkfA b1QfBAcdNQvDbtiFEx4DYUSPydP6sN40QqMHp3SmqODDmGAFr+ikD11VWkxmQKjfk0Oj 6e+Z/6KiVvcmMWw64jotr3CIPjGgLcEXpIAR0XifaiAoF+gTLiIbc82LzH3biYBlo7DZ DWyTa21ShFI3gNppDHW2YHI++ospfR3lVpUWZ0SIxpIl54A1LJs93/GYfWjyVnGFNdg2 VAVQ== 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=S7WJ4txjcMfJTfRmrT9Kd4YFXdLJlL0nwaSkpiFxYiQHITU26E5oYL5pJtuJk4iXK3 6IwFg9tE17GKZPvoaIXhlQJwM7ot/++ove6jqn1LdCBYN6KTisq8K/HkLJg+u0qGwPNr 8ua+6v+7TYr5RorETuk9f1Fecq5bhVOJdlfl+seDJk/8yOLvMmUcSMP9Pn77ig00q6TG u6rNqUyDbDQ9t2mx1OSQmrNzCs+sG104cGA44Midf44sYiWR2x82Tc6XOP/NXztWCu28 SxwODhtF/+XsPnt4r1F9mfbR8huFVatpCgpGkupivXFXoJT14kOfDeLLN8oizKm8/RWn YT/Q== X-Forwarded-Encrypted: i=1; AJvYcCUXIQ9ebefd/40z3Uitmx2TG+pL9oTjb/838M1iG7fNaUMbhqaaZOkPXeNbLYIwemszvG1iEGlX4j2pU8E=@vger.kernel.org X-Gm-Message-State: AOJu0YzIKJz9aWoL/WPFAURTUBhOS5WvfuGIQXqEXy8JDUa7iVmeIJdz y1g3WdedHWVE8Z9AhZD5gSXC7BWB7hLyULXFF9Xh/HDRMZ4nFY0Ti+LfRPs3GGA= X-Gm-Gg: ASbGncuGfQUBD3BiWykfwSY84zmLNxdDqNW88fprrtnFWV5fHEalI8m8wVB83wCIAvt e4VtBmWdWEdqLl5npxv3kzY763OC7aFXn7sNPgdtCdnYMbh0+B9vzko/AdcQGGviS3GoNhfA/j2 YiYY6GEVfIr51QnSc4N2SLAzfQOAtsiBARBHooD0DoD+3WVCcPveneG7oEx/q5vEAXu5ps1xCeQ bhy7mcxHji6A4yCnh7+xjabr23sxB5lTvD7gFmS18k15nI5lYuFvn2GAfroqGo/5M+uvBEhSn9w AlMjth3jXNsVoI5cOeZdQEJ7wh9knY7DS5eB2Q== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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; } =20 -static void __adnp_gpio_set(struct adnp *adnp, unsigned offset, int value) +static int __adnp_gpio_set(struct adnp *adnp, unsigned int offset, int val= ue) { unsigned int reg =3D offset >> adnp->reg_shift; unsigned int pos =3D offset & 7; @@ -89,23 +89,23 @@ static void __adnp_gpio_set(struct adnp *adnp, unsigned= offset, int value) =20 err =3D adnp_read(adnp, GPIO_PLR(adnp) + reg, &val); if (err < 0) - return; + return err; =20 if (value) val |=3D BIT(pos); else val &=3D ~BIT(pos); =20 - adnp_write(adnp, GPIO_PLR(adnp) + reg, val); + return adnp_write(adnp, GPIO_PLR(adnp) + reg, val); } =20 -static void adnp_gpio_set(struct gpio_chip *chip, unsigned offset, int val= ue) +static int adnp_gpio_set(struct gpio_chip *chip, unsigned int offset, int = value) { struct adnp *adnp =3D gpiochip_get_data(chip); =20 guard(mutex)(&adnp->i2c_lock); =20 - __adnp_gpio_set(adnp, offset, value); + return __adnp_gpio_set(adnp, offset, value); } =20 static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offs= et) @@ -430,7 +430,7 @@ static int adnp_gpio_setup(struct adnp *adnp, unsigned = int num_gpios, chip->direction_input =3D adnp_gpio_direction_input; chip->direction_output =3D adnp_gpio_direction_output; chip->get =3D adnp_gpio_get; - chip->set =3D adnp_gpio_set; + chip->set_rv =3D adnp_gpio_set; chip->can_sleep =3D true; =20 if (IS_ENABLED(CONFIG_DEBUG_FS)) --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B9C26212FB2 for ; Mon, 3 Mar 2025 13:18:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007926; cv=none; b=SJzZB9feZguP4t3cvo1cU4qLETHRPBtAhCjhBYwWbT66CDA4/+vr9Gx4ivFopbfeSYviRLV3GV9pqb9wm6AGj2d+w2AMFTb0v1pFgRyrDAR1OdxM3c7XJkOK6LdYUQgf/SrKXeRbPnYtdKjwl8ncgMaGmTRRyPeGeq+iI6QnS+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007926; c=relaxed/simple; bh=HP8L4PGgf+KVpN6Z70+uun5kKVaoGZCKt//PfEDJsaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V0ELDW0d3AL9+uxmY9cnWeeUjW/usKo/hwrVgjwFRYoR/EAmeSj3H2rae+td5Dbt0IxXIGA8LBbFH4sHOhXXt9R0QUJiqsTSYtXu42Fqhc4tkBWnwDneHgpMVB9fEn1g9mRFoYNbl5tY8MWDRy/kepSUJbOkpkK41xm0+EmAaWQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=OsmyM+T+; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="OsmyM+T+" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4399a1eada3so40593185e9.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=nNPL1a6roW0ZZry8Zwf4bxHUCK/ikUGMkO2GYygkBZ8=; b=OsmyM+T+aF87wruhdN9itFsRarH+C3rhqPOlid8jYumK4ZkE9rFsPS/wYiBTQ/upxa 3jVZYmz7IVw41XVvPTKZ4vlwzdp5ZthSbjHBKwpc+Qk4xAbIR5Lgo4JzcTWFv9itmcuf ecec1OoBPvVbBx61dbhVMdnaz9MNvBzq4Xj8P77/WudJJrmCC7q76qy9ylHmhXAb7SbG sLjhIXUUjgou5uACT5IR46jSFRfaN5wiJreBirqgvhsV1f56/DO8PFr13Qwje8sHbjV4 Qu337aXTBQ9gMjSlC0Ij4ADVcdik+J6PAn3SjlqeXGCijWqxOfqhglxieRQ3X27E6wgO 0eoA== 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=tf7zmAyqWoHgF/sWuDfqeSQJRFkCxH/gZNFbrOvWWJEhhO4q2NHi9urGUJ6kvh5+eP fknhtOQKl7NSro3Xjwm4x27bKRyLQKZPIhMRRuosiH5bmHwoStRFum+sxTfi4P/eL6aE itMkNEfCkviBJ9yvc0fmiePQun0KcH/yHp0UpNZdhWsgxj0Hekm+kJ0eBy5DohcRcHH9 ZzHlCa0YpeTLDNtSx9YbKVBoMfXWs0xmmSLeBKILzYyevb6f9Q61pToRcCJQT1t4+foJ coPRI13Gx0+P2EMULJSArKis72+4FZf4vuO+f5Hfb0PUlVVCVWl2TSQJbvIKymtCuKC4 liZA== X-Forwarded-Encrypted: i=1; AJvYcCV/K0xhASpZl3qTJAqE1rjSI8azVPOEecPsUcw5HKLSCc1dT3KCzfT239CcNGOMr0RFS1CzBFI+OYHoVws=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/SdmqURQfDCJS3OdB5cZsKGGOVE0fZo7L601EyzI/EH/cIHl4 DCukqwlSDS0hUsaheub43o9YisIPNVlbROgUemxwJUUI8gMdiNVSSEQp72to64w= X-Gm-Gg: ASbGncs6a4EG+yh8vcoiIjVkg8M8CP6fHCgCYm71c71kBCqtqcngGecgA8sG/j6i0IY QLfIN4KCPYbOb80A3isQPVkCpy4eBxhZW2SmgPNM8OY5X6oi+/kHkkzSy7+bC10RK6PLPxCHifO zvj4YgTPDxFXoJmCUV1J4o5v0Ua5ItL1rv0Jmu1PwdyaPLFeED+z9pLH8Sq33v/8NzP4K8pEz0D XbodkheKkKdz3hQMmLbefYNEEm7XBWd9FrsdcA5FMmX3J1dcmx+oTZw4G0VYTmNDrch+ugMfbun njp0F30iobIxPRoXzhCVPnhijfX7iBRzvGtz5A== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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-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 *chi= p, unsigned off) return !!(reg_val & dev->lut[off]); } =20 -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 =3D gpiochip_get_data(chip); =20 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]); } =20 static int adp5520_gpio_direction_input(struct gpio_chip *chip, unsigned o= ff) @@ -120,7 +122,7 @@ static int adp5520_gpio_probe(struct platform_device *p= dev) gc->direction_input =3D adp5520_gpio_direction_input; gc->direction_output =3D adp5520_gpio_direction_output; gc->get =3D adp5520_gpio_get_value; - gc->set =3D adp5520_gpio_set_value; + gc->set_rv =3D adp5520_gpio_set_value; gc->can_sleep =3D true; =20 gc->base =3D pdata->gpio_start; --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DAFE2135B8 for ; Mon, 3 Mar 2025 13:18:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007927; cv=none; b=X8rxxIWvsxvMP5EJ+uL06wlah95rK1bJUQGyxX95Egw/vsuoFxNxf8lnnRgr7HrMpndLkkYm/7Hhpg0IybGpfzr3Kq/juXVD3LdWdJxl4NQgQfP11xn/iC/EjyDWvX3l10qN26u9R2XGCDx5s4PuLPmmBW1JqxR7dpLu+J3iR/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007927; c=relaxed/simple; bh=xE+GYYb8RqNByXe+j/oss04d8olPqhLTWGg+X/7h734=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GN8qvTTEqr6qt9CZ3QsktThJSy09245aVsc09kBJ+5YLZ1EBxoVBxkOo6GcnZoz6Bab7kg8iDVlEyPUuAHfNHM0d24hwMBySOxTypmZRgErjeMoIeww8ckGnswPnDJTIl8yFT9U/7/nItZfl14azFkSo7qLYAAMzUuhZ9HiHCCM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=pA/y60mj; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="pA/y60mj" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4394036c0efso27991085e9.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vBMDp7aHXRNt/RwICrg1q5Lp1fT8OK4mUnztK4V4pSU=; b=pA/y60mjG7h+aiCmK/LAfDv9gwjzDB9moFONdvRbeoKDDnq1K/WLsdn0mWO5s0m1Ld lfzxGUIcuJkvC0L2hvLcnxehf9jqHVG+oAq0fKvipjt3mZ1mbxnc875L1VXslMKAtZwH oV4Cldq7DDi7+iWnB+TBLuiN2SWlMVrY8VMLsRPv5dsfjFPBm2k/xdNlOwmZ0Y9y3BZx dxzsI7+/ezH9WAjuQOEHkhoJcGdGWaNn0qaGd+tD07R+7NgXKNf+F+BYtFE2FNhbhLOJ cJYA90c89S21tnqEmXFuhTNuRVWiciTFsTtD09VBZueMgTNDDXqsVdY4kWPUTNPvpfA4 jP2Q== 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=uzyMSIzi46KcefkppbhO31gaaHGtsTaIqpba5B9VKK0CDmm72TOAUv9M8psqc70/L8 phI9w8sFGWXitiBT1mG1OC6M8QVyybdkbRxzeb0b/Clv5ihTsovRGe4pEnTvvQLseT6f NvwzQm86uDm3ixNoTLWmgJk2uA3r8cOc/Mqx/J5fZlxaWJXyIZRNvmxYViEwbT/kqmYe FbDkyh3nB9DQpGsWiavfhOdCULKhwRUokdkukL8K2VLtpF9AlSvyBRSUwFJIc/8AinSC Ujka7RAZmQwGH6yBTpqJ8YTqMbmEcIwCqee3U8GpZw7zRhSpmR3Ji9Y8aBzCiVJBHNsx 1/wA== X-Forwarded-Encrypted: i=1; AJvYcCUePPbrG3Cznubz6i4PKOBGplhV/X7n0dfCgQlpyrbPlkiQ3kQ/lrJ3dP9ZEuboknZthPVlKZELXBiXT9A=@vger.kernel.org X-Gm-Message-State: AOJu0YyI+AtV9Gl6/I4Ax/Hi1JGf/R0GktUHo53CJMcojmGGNIRp3D6n 9Fcgfl9xTRgPeOt5pq5GLoY3zUN7A8eyTC4Fm2s0NMrmO57YGGt4YDjVLihaVWc= X-Gm-Gg: ASbGncv+goHnnXPgcy91EWDsRPkRxBKsxwRouRYfu10EDLu4cHBDhA7uQ8JL0OhLqUv Y0dWtQLS7/7NA1QLDsBMa6AwKhMl/OHLb2mUOuXGi7MfkBJEVz6k+l8XXNqEiqF9KsCeYdhWCNh sxNYuNLRKVn72ICpC+kyx9ZZyvOAjoeHq4kEml681GZMeqAcdhYd6t8QtQXEsQfxjH7BOdgVqxx CvEFbMRoZxucp4qOmQk/pdashZ8aYPYrS8bRJPrjlgWdwNaEdBacJvsAlyx+IAzP98WEengrK3h +xf1kY61hTfoFN+8yrR/PU89Qrf0G3V/orAhxw== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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-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 *chi= p, unsigned int off) return !!(val & bit); } =20 -static void adp5585_gpio_set_value(struct gpio_chip *chip, unsigned int of= f, int val) +static int adp5585_gpio_set_value(struct gpio_chip *chip, unsigned int off, + int val) { struct adp5585_gpio_dev *adp5585_gpio =3D gpiochip_get_data(chip); unsigned int bank =3D ADP5585_BANK(off); unsigned int bit =3D ADP5585_BIT(off); =20 - 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); } =20 static int adp5585_gpio_set_bias(struct adp5585_gpio_dev *adp5585_gpio, @@ -192,7 +194,7 @@ static int adp5585_gpio_probe(struct platform_device *p= dev) gc->direction_input =3D adp5585_gpio_direction_input; gc->direction_output =3D adp5585_gpio_direction_output; gc->get =3D adp5585_gpio_get_value; - gc->set =3D adp5585_gpio_set_value; + gc->set_rv =3D adp5585_gpio_set_value; gc->set_config =3D adp5585_gpio_set_config; gc->can_sleep =3D true; =20 --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CC512139D7 for ; Mon, 3 Mar 2025 13:18:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007928; cv=none; b=gKb+tkE5t6+ByNrh254dClXTzEp+k9YVf3uiqjV2reC0cCDraOWz51jvU6+7BAjLV6GfTzDTAgdZ3SwP/qiqCJw9RO9gkZPy+4yirabA3WXQKn3ssSWjLTvUM+NBx8jLgzUdOLUekQG6DK31k0apXKZe8JWyyNBm+LP+o158U7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007928; c=relaxed/simple; bh=N3wQh8T8R+oyQquFXErkUP6hlk+nCAPLdOcYJoj+EBQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GjWa8RcUlPjvKnXmG5e7fJ9vTrs/JiR1YBFrbiHuWUOtbDblINTHxImByn6k9hKkLqAOreq6jJN+3ENjFNRV/oPCMMCo6Cmwov1kzup0cGKG0mxmxW8MAglq5FN90EPLOAGv0sYpKmS75fm91BQhwwKsj3o9mb2Ww4XNX92/IEI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=AgGcwQpK; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="AgGcwQpK" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-439ac3216dcso30219925e9.1 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gz+znbWREsKmtzW3OBAmXUrUOCp/yw4x3Y/d/8vV1Bs=; b=AgGcwQpKYe+mQ1azxQmPmDBCxDUX1YZ41OESIfHlHsHcCiMMBuvhlABAUiLe7ck8kG ayw1+7AO2ztPuGvgC7c1nS3pal0slKg9CevHYN4nl6ULPqqohgw/0VDLU3ImCWRpPVK/ N2i36bnaEkZP0ogUl+DlbN1xZnuIM3RK5L/XP96WIBklAhC6ipuwEUJaMHAssgKmI38Q nrLsX1mkqIRuguYTuDp6+9o1FV6s1/jzUCt+iscnuTqDV5a8VFH6dzd5JvGhNIQgt3uz PWCfn6b+0uvosNuA8L+mj/7CtgrZGVJMR/Nsw9toc2HYtkFpmnKe8EtPlH0l+SnhgNky 4/yw== 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=EO/S4MxrLud8HMdS/ZLW958EVPYukpYSPK3wAkuWRRRdzwbnwvXNLgs+S9go02x+gw aFyp5yT7WG5RLfv5BKrN9yZrQKcdnc8Uv6/B4FztkqpLLU+s65AjmOgfxT7Z1K/SyWEK CH2DzbeIVDbDkxWCY1dDK3g4axqRMUWZv07iNA0kdIepFLurpsGAug10PVCcCmzRdTYR 4/GlOoQXCSYrAaOcQGKTL2GbILp9YaZt1zjCFPr5oYYlBjIFMh9lNHjt9Of3IUfd1XaS Ghi2xqeYEBTQzq0M5mEvx7iz70gKnk/+WSfomOMvSIVpTSA7PAHDwrMioQPuwr+Y4CbK lXrw== X-Forwarded-Encrypted: i=1; AJvYcCXKQt0Z+aRoJoE6gQmGrSefZ0ZPeXGPu146KN408Pi7CbbzISOP0mKmzwVP6QVWW9cYrD2uC7PE0N8P9vs=@vger.kernel.org X-Gm-Message-State: AOJu0YyZtgsngE2QiZ8LlJrXr5Q8T3oMtJDHRiNA4hNtUANUwFjQWYrE WKWMu2NVqHeNtOrNugPOoGAF7VaiV27G51OFhJu2sIqMD+ylhzTqZ3fxjtSkbDs= X-Gm-Gg: ASbGncsWB3j4M4DXZboUp+bd/Z0Pb9j0swnQRUGmQqp8tO92b0EVSdC9kpi79Sy1yC3 bN/DVd2T0C0bLnPnW8vJw6DDHpBqdLwRnsKLUdQaSiWj1kgxFe0ChMP8CWLD4xGiUabyDoQl6Q7 /gHCChTavVmWfK+pQMeTOMiAw2AXIEtXpPS3ZOcupUaMERsSElDHHwrFh7ICaW1/pLYBtnzDfGF JqlKD8yfotp8KV82oDsrkyBqFwJiiIRVBxTJM7vrnwmRgooletAMhUCab2mnZdwwwIfa/qsKqcT WvgWsdLLwsvb8FcRs9qpFYpCnJLeaPV7YeYVjw== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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-a1= 0sr.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)); } =20 -static void altr_a10sr_gpio_set(struct gpio_chip *chip, unsigned int offse= t, - int value) +static int altr_a10sr_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct altr_a10sr_gpio *gpio =3D gpiochip_get_data(chip); =20 - 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); } =20 static int altr_a10sr_gpio_direction_input(struct gpio_chip *gc, @@ -69,7 +69,7 @@ static const struct gpio_chip altr_a10sr_gc =3D { .label =3D "altr_a10sr_gpio", .owner =3D THIS_MODULE, .get =3D altr_a10sr_gpio_get, - .set =3D altr_a10sr_gpio_set, + .set_rv =3D altr_a10sr_gpio_set, .direction_input =3D altr_a10sr_gpio_direction_input, .direction_output =3D altr_a10sr_gpio_direction_output, .can_sleep =3D true, --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19AE0213E91 for ; Mon, 3 Mar 2025 13:18:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007930; cv=none; b=LryboABUOwXHbT3I4Xrqs2aAvWSkjG5hxaWra2xqivYwAoMt2I1Yuk3FzOGz3WZ218pfisSCH8tgNSy9dROw0gZf8Tk0Lb573NRziK/B/VD9qrZOAfJTzxcCIyX2csXxWLDPJA4hQmOwLGRaDQYNMQSebytw1Eg8uNDwntz0I8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007930; c=relaxed/simple; bh=pNFZLswBAGvHZgnszFpzGA3Zwifb9QpDP0WoiQWGE14=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tqzVApJTXYMxnQ3WRNf6/52kwB9tklV5TOn5HDy1citLLgPfSDlAc2CaDQumXuNylgBL5s6JaMnML5dFqAk+m65nXFvVyfpd8ek1mGkuMtxcgNdr/ql3f/dY/1/BWB2qISKktsRq30yvwb3t0Gir1kP4Xmm6fVQSBebJp8kIndM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=uyMXxpVX; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="uyMXxpVX" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43bc0b8520cso5915845e9.1 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/r0MuZTH6RnCwiU0BqdZFY1e9Cm3LvOPjQ1muaLpSVA=; b=uyMXxpVXvID0PXrjwZjYyxx2FfGD+4e/p68FyjiCRpx7Nl5X5YTO/EuMYUEdHNiIdL mZb198mI5SsJfSF8NvLq1eg5XMRDBv24y+Mrf3BpIGiPr6jG6WhduXqVMei0wKbBOlKB 7MRcMJd5dJSbUg8sZdo0qNgHIg+e3c8Uq88raTYa+6uKvUMXVGnz9o+BW2PMZffXCn86 5/ODKa/9qW9sj4IAOv4DelvX0WZ224Q6wcs7orc8y/2zGsq/0GhbKfpYuX+f5ihkxW1Y 9TRqm/7S54qi1aCTmOhJxojkln0VpheuTRxL/XWcTvDK9eCUxUnFrO3rZSk1mWQYKxvi LSIg== 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=S9uauNRav6IkmUEqMB7h6puukwYvjP6WgV5jjYUM0AeqwgmME4ZqitgZ5/hV14u7CU AK/OHwVwtFfqmA9NbB7oXntb3aRen37lvVzICZNj4i512gGV9gyTlNfcQe4FNP/p4vTr p0hvElKWMdk+pKh5H1JRW8oNNv5JyUcjJXCVMmbYLr5S82gVL+MMGgAcv8Eotyo9h0aK 7wGbK2eNOnEWWIwbharRHtdFRypo6Iss4Qase30pLC0SSBqN43cY8DMvP5UywW8b/xB8 NZ/q5yxex1zUdZwX46TuAcacdcgllQeDAQFcCIHrV3M3P8cVuZG5njVTbwa7r5Snxixr Vghw== X-Forwarded-Encrypted: i=1; AJvYcCVVBkcZFK+j1g09e4dwewC+G0Mprn7TzgfpMy8Qhl41bahHYaTN2rpEwYnCZXNseSFl8VdoZkphwpxP0mE=@vger.kernel.org X-Gm-Message-State: AOJu0YxGTQNB0yaKN3yKAKIi5DZGyNXnJnlR22iWN4ZRJkVlPgJm5Ev2 s/EMr6b4+HXQlEtK7kaZWQ97ngH/nuVHgn0Ne8Xqpv2OUT+1ZiquVOEQH6FMn20= X-Gm-Gg: ASbGnctImdfnY4aGNltXTk8ZcNFNJdBUkBY3cdZ/8W5Kw4HnsY4Ip1/kXup4Y/qLNCQ 11Tj60Y12nudkBQAPfeWd3z11VHX1Me4oLqcvuI82bNE93DCgLU69u6vy+6lMKTAJbHujst1pRS IMM/bj1gCN1WXd/RN5EfDXS7rvBhLO5E44/oRQoIxv41w5hbHG5VdsSJMVZ1Da3vFWnwDUtA3qx HPg1JnwfsMqcPraqtN2azXaYgtKLE9b7unNPi2gsQydO3ZvqKcgFGoRiM2SmIRNWVHmZpFzVQU2 BWTkFxHdUfU0U3U2eeu3wPpjG17mtc4o8znFYQ== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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, unsign= ed offset) return !!(readl(altera_gc->regs + ALTERA_GPIO_DATA) & BIT(offset)); } =20 -static void altera_gpio_set(struct gpio_chip *gc, unsigned offset, int val= ue) +static int altera_gpio_set(struct gpio_chip *gc, unsigned int offset, int = value) { struct altera_gpio_chip *altera_gc =3D gpiochip_get_data(gc); unsigned long flags; @@ -127,6 +127,8 @@ static void altera_gpio_set(struct gpio_chip *gc, unsig= ned offset, int value) data_reg &=3D ~BIT(offset); writel(data_reg, altera_gc->regs + ALTERA_GPIO_DATA); raw_spin_unlock_irqrestore(&altera_gc->gpio_lock, flags); + + return 0; } =20 static int altera_gpio_direction_input(struct gpio_chip *gc, unsigned offs= et) @@ -257,7 +259,7 @@ static int altera_gpio_probe(struct platform_device *pd= ev) altera_gc->gc.direction_input =3D altera_gpio_direction_input; altera_gc->gc.direction_output =3D altera_gpio_direction_output; altera_gc->gc.get =3D altera_gpio_get; - altera_gc->gc.set =3D altera_gpio_set; + altera_gc->gc.set_rv =3D altera_gpio_set; altera_gc->gc.owner =3D THIS_MODULE; altera_gc->gc.parent =3D &pdev->dev; altera_gc->gc.base =3D -1; --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B2B821421E for ; Mon, 3 Mar 2025 13:18:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007930; cv=none; b=nLNr9QxYtcuDtT3sWv2hq9qyoa8R4+wiS1cWgAt+mwjY5xnZqD50c27+0wadBRQr2gSlCTCzYX/jD1BF+f9Avj3ogr6WA5YzaojdwyXWMG9qH9Ju4WBGpxPsWb3Qt40Al3AAt/TPCFjWSwFK8LqJQPoK5oQ6Y/L2kqYB3jcOM40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007930; c=relaxed/simple; bh=aiHZJQb821lhfiQdy435wijwae4OL7CouAwmJZyOTG0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UbBU7WEQQ8ASWUBrpR1/dSTDC+5raTOqWBYvp3su/Cqh8g6ozij6k2PF5RKGZE6JJKwZKoOEcsPEA0g0MBL7DQLIpyCWFXSXDNK8ZUwdhPq2HYFDvjNhveonGxw7ZI924d6O2AtTvB3Ug4kCTCbgcBm/2avvbJ6/LpMYhbz9prs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=RWQwNS+s; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="RWQwNS+s" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-390edaee0cfso2171222f8f.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1Eanl17qUXG71sYy7CwEaQ1Eemxd4O2oMCTK+HJwW1c=; b=RWQwNS+sgkXas+mhfPJqzMLzvslK0qV7odkrnY1Smp1yQlZb0zuGdaVOQ+9R/fRF/N hAoAGpu0PTn8UCJAZO3bPiVVZDa9zVYbWm9rjPZ6SStfe/gIsop9y0qSEQRMcx3bDCRb 43eWaD6ly/cpg7AcBBAKCwEEvItojQUPrWvl27BIUiAs+hl9PvSGhcRU1SREQmQcNg+j vzk7CTUpSxmmghz3dWl+0NhjsM7hghspHlXoJkIkegA6d9/XEY7tw3O3k7cni99sOhOf tKcIrrst65KOBVUz8+gkC6Pce9j9Y0zoZl9513VvVvy8wSLj3ULN950+p75+ml2/Ckmn B1/w== 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=n2aAZoPt18Tlxn9vmqfk4HSlcxZ4vebHZPIf8Dw5yXnYAGrzM3auVEO1eLSGOkQ7Ie yTWJeFjs6XsGVSFHXioCkpUQ3fs9t0Yw9BG4j013lUKypYHBKBNjdiLSTVC96DwS12Vv ChJ3C7pxkVcGzQ3LVrWZYfT9Bl+knkOfc1FAy75+JY8+kN9qKN/NpTXOTQFawbo1ti9f CmCV22xV/kFwKwXTifsqy4OsbmkeWjXMAiTad9bDEprITHsckDqOq84/4avaBHoUbc9P uB1ZgwnFtRGAB4ohyqpy1vq/5g+r5KAAdyxfNl9FASbbxwI6rWu0KCSjMp/EoD/tZNb2 Io5g== X-Forwarded-Encrypted: i=1; AJvYcCVPem4Wm0Ps4O4tu4uIjvCZ5ATLyP9NKJny/EUPQmQzjQIaBgvouWHB4ToO8ayMntbiSoppowxDJ8C1LnY=@vger.kernel.org X-Gm-Message-State: AOJu0YxQmsTmprk4lauMcO9GQgnx/PkOZiy/+tWrOuua6TCMz15JMKYl RigYX8wgs0kVXgvIwb6R/+yr9//7T1LW8kkayVkDvNm+GsbGQjmdIbNn8rie3eI= X-Gm-Gg: ASbGnculxLVHWrtIRvlZGTZ8QbBl8uJQYS5ZkslQFXFL4WZGD8CkfTlzAt2zrKbxRf/ NafY3b+Lvjt1eVdEkPwUUjsmMzXTdw/GTGhaQsZPFL4f43QszB7sPfmwKniUtfu9YcteCyyFISP U/Gr7+8RbJBqm9D9SXtw+wsNi7/CL5Z0fRU7KZiQjKI7yoazmNOJdihVYY4C0F7HI5TH/RSgwNi I2SsWIufARFreTqM3Z+b8hw+1FZCmXCw78r/Yl/Y0Ux4fLjdb7VSxuRWWQUmMYUfl8gwua8JR/5 uVtaAKD6diDAJHwTD8M8qK2/olFtS2N/tBj0ug== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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, unsigne= d offset) iowrite8(agp->orig[offset], agp->pm + AMD_REG_GPIO(offset)); } =20 -static void amd_gpio_set(struct gpio_chip *chip, unsigned offset, int valu= e) +static int amd_gpio_set(struct gpio_chip *chip, unsigned int offset, int v= alue) { struct amd_gpio *agp =3D gpiochip_get_data(chip); u8 temp; @@ -107,6 +107,8 @@ static void amd_gpio_set(struct gpio_chip *chip, unsign= ed offset, int value) spin_unlock_irqrestore(&agp->lock, flags); =20 dev_dbg(&agp->pdev->dev, "Setting gpio %d, value %d, reg=3D%02x\n", offse= t, !!value, temp); + + return 0; } =20 static int amd_gpio_get(struct gpio_chip *chip, unsigned offset) @@ -163,7 +165,7 @@ static struct amd_gpio gp =3D { .ngpio =3D 32, .request =3D amd_gpio_request, .free =3D amd_gpio_free, - .set =3D amd_gpio_set, + .set_rv =3D amd_gpio_set, .get =3D amd_gpio_get, .direction_output =3D amd_gpio_dirout, .direction_input =3D amd_gpio_dirin, --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FB912144C3 for ; Mon, 3 Mar 2025 13:18:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007932; cv=none; b=Qel2FrbeVC+/vrO+62+t23QWEuNBhVi5JXCyXuE4z5UZJ6ep4LZeCwOeatui4NXGh+q5l9LVaZBoPOhMuSe02HcLKofzqckq+MI3f5dMtNGbhE3EB6ymAs7qlb4KaKmi7nMCsm0vHNwAHwlGbrZd8TUach0PBNTCUcMzr4vclW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007932; c=relaxed/simple; bh=deE0/c2nEjbtQwMnECm+JYV28arpOqWDFy92uiuE1c0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kqmkjMTvI49RPJqIa4kPITUz3fvkfsra0nYPz60MDht9LE1X+58lqQUay5IfeIakqHxDYNTXIYlRDvSxmWDyTkxEl+xp+W0efqujIdvXBfo4q2F9F+Ccwr5n5B9HwE7N6yGZBQ4MpsJuPPhk+eSfDT6yIXlrLY4OiYTKCw+W9pk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=zFJ/jA11; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="zFJ/jA11" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4398e3dfc66so39875955e9.0 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=tcjPMcYJBZ0o2cTrKN4oQq7L05UvaqKLS11WKTvT3CY=; b=zFJ/jA11BAupocACLe709UHenndWXTMx/+hw5lKkrGyLV9ZZ34iSJxOScwr7JDh+y7 TpP9Ttzr6QAFZk9evQYthW3HGZmbpmkToHRLeIChot/j1HOdgBDdOl4UUC6d4ue9EZOI g04OL9hOhcc4uzXCrFUAKHAacef8FbCut7QN+HMcdrhtjSS0S2U8HqcNivdXjJkRbpLG 5UsZk9RN5VJ+tTP7fRAHmXwzB57MuBtaNfxrVt/+aXMvDAgIFlTPY7+yblv+dHddlAhe /MEX/o3c5shRuzUIQs46AWUK08iBwnwl6INoFhE4r/vBYEYx8CnMxZnaVtC8aixw1PN9 St0A== 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=AAszXroqeqLxkeGJQ13o7dsu6LDsG/EizxVOUK662iVFyk7E7SVqjA1RY1lN8qqyVK l5xCAIQqu6wDRAVv3WGM33bGCpJlA3qSWyBfFPhPS2NjOARF6AzBkfWxLpKNo6MaODSc +LotJTvDMyXzMzRawiMrZuvU+pozjYUUhvlGrdQqJrF4okhAzXK6umXdURQuvSFu8j1L +0S1VAhHvst2nzV4/uXOKnrfXuqgmxotm9yfgp+fYXvNWRsU6JIq1B+v4TRTf1BbFrti NkX8DPGO/kMMGEGpjlTTHeq7v9sQWfAQ1TSoQdUUZtO3H4ISyzcXhHikLI924mPkWiJv mE3g== X-Forwarded-Encrypted: i=1; AJvYcCVVtgS+SfXn2XjapOor9lE1gbOqhM8kDF3d2nTT9nzKmwvY+9pPpWjmNYnqUSIe0uvUBq8nmMKOBA8ApdQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyQjcKJ7NH4x9CMWZ5JJtEkxV46wl5TcXe0f1+KVFDBA2E9WyN9 xh8tnLcYMeykVL887kDjkoLwJySWooMmWFkmz+oZrGu2UfthmZ1TOxjQNjKX01s= X-Gm-Gg: ASbGncvUwWk+Fw6iZyN3Cjc+wtHc61WQka0F7vcVe9GyXUytNphK6U04Y82GqNSthzK W/slZ4I2PZgCRQBpr9BBgPpnNq88vXoitYH1ddKA9dVT19Vp3ZEuGykI6C1t8pZr5Nu8dt4xpWj zgEF6XXMDvuTM8qOIGidZjb9dLCLKZQ/6jyqo7NEcy0aozwpjGieJqrXmnxaW23NdVguPCPbgoG qSDyJwN/7sI6U+4W2r+1u7g6bpFJNH6T/S2og0YAB4Ooqgilknh5ykreE3h0+Kl0tO/8Pd4BX9n 2oWFQYuil6+ENyMnwDWwjffgTbCseHQLzOPidw== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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 *g= c, unsigned int gpio) return ret ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN; } =20 -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 v= alue) { unsigned long flags; struct amd_fch_gpio_priv *priv =3D gpiochip_get_data(gc); @@ -113,6 +112,8 @@ static void amd_fch_gpio_set(struct gpio_chip *gc, writel_relaxed(mask, ptr); =20 spin_unlock_irqrestore(&priv->lock, flags); + + return 0; } =20 static int amd_fch_gpio_get(struct gpio_chip *gc, @@ -164,7 +165,7 @@ static int amd_fch_gpio_probe(struct platform_device *p= dev) priv->gc.direction_output =3D amd_fch_gpio_direction_output; priv->gc.get_direction =3D amd_fch_gpio_get_direction; priv->gc.get =3D amd_fch_gpio_get; - priv->gc.set =3D amd_fch_gpio_set; + priv->gc.set_rv =3D amd_fch_gpio_set; =20 spin_lock_init(&priv->lock); =20 --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 967F72147F8 for ; Mon, 3 Mar 2025 13:18:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007933; cv=none; b=aqwA76TnZFHv++oQXdRDqB1O02C5AMMSdyYCQn84CXSzLP7Iys9BXXLny2EI4CiBV8/TxuaEWwsKvgzyJjUvKRQqCqxEwW77m9DKEcUZoZe3JyOzxb8fPWzXHCJ6sSuLKCU0PqBIder5FWUqvPP85pIoOI/dfyaEl0VkEzTvC8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007933; c=relaxed/simple; bh=J1ebPfDsymL89EYyjnHLGCQ5SmI12B8EdLVOUvf6DkQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fO4J6Bxzy83pkQv3wX8iFSR/RYiZ+XgdutkT0/mwow/4zVWN/1KWctfRuGo4EHp34rw6leEEliz1zCCWmIPo16ZW3qMPKjmFMLaySGrLR+vft+X3dMrGeFgD82+v7jX7+UJCDCvcwUtxZ/S3YFaJeogXBNZjEo+dq06CGQoAYPI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=UUb9VCzB; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="UUb9VCzB" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-43bc0b8520cso5916685e9.1 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5Axi8YRJzHoLHKP7VK2GqIyJfaSqTW3LqYKFDfDPjWc=; b=UUb9VCzBdF7zOpKTNlTvdgwcbmqhRb8jTB580yFqg1bxKW/QYBbAi9wZx+6rABxblu reV0UhNwEr6RiPSIXekxOhHfDgpKrArlNeGRLKznozpB9unylh0lohqzVj9qq6Z0Q6vT alG8pz6HQoWHi17FPYWvVtuQ0w6LIwSFhwIT0Oip8eYQrPzakzck9xyG1CMPboreI+J7 0BFFHzcDeyWNURTrJePT3dms4cKMlwgahC7RoWt5fRhKmi5q/Pyiz9vLe6pByIU7FldQ MwinrfUuDa20XnkIPD7SMvzThmdlqEgVtLHQwqLkMItKRG0nQ+ialglVsWdK1Q73dCR4 xXsQ== 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=ZmcsxML25Yu4Pl54vZarnHrFhdppAyRDl2VyzhqjAIRhnRSQUq88UHI3ySZcpaKFLf RODNjKEz/sqLv/b+oGXRlYd3uXq+3Icr2XZ4b+VgJLtwpALxMP+3Acy1y1zeBTrxhGK0 WF9klBV6gvZpq6L8v0LbzySTUB9R4wpuDid1VW405Eat+6b6Q4bPTriF4SM2GKbajW9T CkZ7HWkQXNaa5Dhwr2Beife48Ye3kz9VbFC+etoqxeuxBowXtjqKoVhgCAG+bB16gibH 3FC9Nosx6jRWemvc71P7WH729kGfYheWUrgN/IWNYidQ+vmNpojRMSLYeihXZu/s7EYb 26IQ== X-Forwarded-Encrypted: i=1; AJvYcCXiZaOdIj3Q0ilCUnArNmjxpCynpew77jP32M6oiMi5YG0JM/sHZdS4Yq3Fixjms3ugKbboxGHCFNxoLss=@vger.kernel.org X-Gm-Message-State: AOJu0YzJWw6o8+FGZOXOkfAQLREIou9esQ4dcQ2SuqHlj5odE2+ynUgD j7NGpbgQosJDMHHSSx3xogUAIivYf2NMKEcZHpPTi2eT3xAQuh+/Fvds+Oxj8rQ= X-Gm-Gg: ASbGncsOuxkAogdmD3vB/bG8Iqai6gJGXiH0tx2jj4CokmkMZju+AcKZMBuPhVl4cV9 rAJ3FT0nQdej3YywwJzzMq59QuYlhqxZp2FRC9ebPrt7s9cFPF/h2EGr6Q65j/rOKg63CRlGD9h SrooKHkuVtwEFH8/+tkZepuB4b3b9Bj3Gg3EftanbRxrbbG4F7/dE8/QMNP4GFC5komIDjfRlgd iPB32xhi4clsmZXcs5FX5m6RKeHkOsk6HZSLUdx03TIuvd55dH2/YChKyK5tAci7TjQLh95g32h /fEyqHeuidtbwhr+AUI1UjsyfHeSFxZao3wE3A== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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); } =20 -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 =3D gpiochip_get_data(chip); struct arizona *arizona =3D arizona_gpio->arizona; @@ -129,8 +130,8 @@ static void arizona_gpio_set(struct gpio_chip *chip, un= signed offset, int value) if (value) value =3D ARIZONA_GPN_LVL; =20 - 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); } =20 static const struct gpio_chip template_chip =3D { @@ -139,7 +140,7 @@ static const struct gpio_chip template_chip =3D { .direction_input =3D arizona_gpio_direction_in, .get =3D arizona_gpio_get, .direction_output =3D arizona_gpio_direction_out, - .set =3D arizona_gpio_set, + .set_rv =3D arizona_gpio_set, .can_sleep =3D true, }; =20 --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1016214A70 for ; Mon, 3 Mar 2025 13:18:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007934; cv=none; b=fj5CeuD1CAgGmefzefE1V6xBsmIgawe/caqCaO9fAJ9OVkp22SsjECHyFPF2g+DsNpTtG0BucqyPGeowp6UU/VnUuK9+K2p9C1LEeAYccVjrhJlP6cVU8x8U5GUvXJyzL8D9Bl2b07mBl41xVQuLPLG6vaFqQDpddMcsgzRMz5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007934; c=relaxed/simple; bh=vlo1sOpINhYxlANjGKB2TZCc7AQtX8YGKke1Q97h0SI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HbmF3oKq6P+C/ApUoWBLPyd3/6uJO9aNQe7GSTzkMHTF35ENILSm3D54Poseio7PCMwQEWxGkBUbN/ZBXbjxFrDVuHBjXm5TpcavoQp1WK1JCPxX3VNxPoAk87DHmWnYOXrQHe6f9FABUm+cy9sJo/wbPsdNqR/8clVWAAB7050= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=NbLTLPSf; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="NbLTLPSf" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43bbb440520so11702655e9.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=lfos9Syg08SqOn+//RWYzG2n1+EfVqjsyXohmBPCw+w=; b=NbLTLPSfsZw69VITbK91w98F7jLMKxNfPwJ4DPzT4Old3sMPOSPCztmr5KZ5R4+9No 9MOkrBbyOkLWQQLBT938GX6x70o9XouCO25ew7nbLA1iY3Z/ISLvNYcSRw/55xXalAaN 8IDM4pPS3pQb4NaWPRP0SW6mmbzGU+JcyX6Xy1EkFAZqaZATm1LpgIMZV/e9Qm9M5ODS PvxjUBviaUjFO3yYA39z2QzlAPz6Eo0/v6ViNVZQ2FQVt7RslQiNK+lM766KvjqlN3gG UYeqpvsLzaFITEZUXXjnNMcsPGxTS3fwaOu+43dnQJpf6o9vlrvlWUfvqBirrVLl5vGs Lg8g== 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=BNcCOYyL4o7Uz4+8BnGNFqinv8SIcuaUkHe3RP9kD4+qFr8Dt6Gfe1DmMq7T1nZCpy yooCA2R/igQ+g59xVGsLtdvDNbBYmEyRtV2bDxOHHBbdxnEiKAomdRE8XWC6R+leouY1 bcqb8P9tCiAvTyqgfG76Z7nCvg+z9vRdD4U5zJA1BVCXeTAmmj6RkqX1Uv85o+fxOpEr enAr7hlvEDXa7h1C1MR5rd7w2Q9MI+KHURT1SRyWSEM/BZfV1/9XdOjq0OHMfjFHDuFi UqUjTkfIZhJol30VHsuZCCT9w52HtV2cS8kkz8tJ/a9cDQlcHS3KBnZ3q88eqEOZljUZ NklQ== X-Forwarded-Encrypted: i=1; AJvYcCV+z1UfC9hOtRK1nsJXGsT1W/fGz+jIF6pGo4yjah825UF1M0JKojn/wXpa99HMwIZi3Ewtpnv2f223f/Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyPMZ4uyM+c1375FCrrOgUSrq8IjXLERwYaZ3UVr37Cae1v3AxS zPyV6oi/HbU6mbpa3F/CIUJFgUDL6U+kCGVwnZtpgx+Gbr38yieEQlYwAh7OLv8= X-Gm-Gg: ASbGncvejNFj42CILpiNzBgGDRYXx6p65TsPWSLZLgNYmEl534WyfDEtbLQqVu/Lfct Hu8fRM1fBkC9p/Ff9jO2uKxyLThRMYQLy6oTlZnoeTDh7ljQWOrCxCfx4pJxcSbRuUVtp6+KtoA 6lTW3oD3aS3dg/5dVtFAv5Wlr9yn4A41WU4gTbzSbYTyazNBdh1qy87PLuI+ZvhjITQDegoHklP XHL4FjY6GIkJOfE6JN891u/AnLa8A945LpMF66o+72IEtXf2ZU50MUuk99xOolw/Yq5LLZbbk/j M93Kg1GVQKZ2XDlsKiCKTB4juGx1W1IRbd+1Bw== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 From: Bartosz Golaszewski Reduce the code complexity by using automatic lock guards with the raw spinlock. Signed-off-by: Bartosz Golaszewski Reviewed-by: Andrew Jeffery --- 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 */ =20 +#include #include #include #include @@ -427,37 +428,33 @@ static void aspeed_gpio_set(struct gpio_chip *gc, uns= igned int offset, int val) { struct aspeed_gpio *gpio =3D gpiochip_get_data(gc); - unsigned long flags; bool copro =3D false; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro =3D aspeed_gpio_copro_request(gpio, offset); =20 __aspeed_gpio_set(gc, offset, val); =20 if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); } =20 static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset) { struct aspeed_gpio *gpio =3D gpiochip_get_data(gc); - unsigned long flags; bool copro =3D false; =20 if (!have_input(gpio, offset)) return -ENOTSUPP; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 copro =3D 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); =20 - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return 0; } =20 @@ -465,13 +462,12 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val) { struct aspeed_gpio *gpio =3D gpiochip_get_data(gc); - unsigned long flags; bool copro =3D false; =20 if (!have_output(gpio, offset)) return -ENOTSUPP; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 copro =3D 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, =20 if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); =20 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 of= fset) { struct aspeed_gpio *gpio =3D gpiochip_get_data(gc); - unsigned long flags; u32 val; =20 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; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 val =3D gpio->config->llops->reg_bit_get(gpio, offset, reg_dir); =20 - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN; } =20 @@ -527,7 +519,6 @@ static inline int irqd_to_aspeed_gpio_data(struct irq_d= ata *d, static void aspeed_gpio_irq_ack(struct irq_data *d) { struct aspeed_gpio *gpio; - unsigned long flags; int rc, offset; bool copro =3D false; =20 @@ -535,20 +526,19 @@ static void aspeed_gpio_irq_ack(struct irq_data *d) if (rc) return; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro =3D aspeed_gpio_copro_request(gpio, offset); =20 gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_status, 1); =20 if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); } =20 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 =3D false; =20 @@ -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)); =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro =3D aspeed_gpio_copro_request(gpio, offset); =20 gpio->config->llops->reg_bit_set(gpio, offset, reg_irq_enable, set); =20 if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); =20 /* Masking the IRQ */ if (!set) @@ -591,7 +581,6 @@ static int aspeed_gpio_set_type(struct irq_data *d, uns= igned int type) u32 type2 =3D 0; irq_flow_handler_t handler; struct aspeed_gpio *gpio; - unsigned long flags; int rc, offset; bool copro =3D false; =20 @@ -620,16 +609,19 @@ static int aspeed_gpio_set_type(struct irq_data *d, u= nsigned int type) return -EINVAL; } =20 - raw_spin_lock_irqsave(&gpio->lock, flags); - copro =3D aspeed_gpio_copro_request(gpio, offset); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + copro =3D aspeed_gpio_copro_request(gpio, offset); =20 - 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); =20 - if (copro) - aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); + if (copro) + aspeed_gpio_copro_release(gpio, offset); + } =20 irq_set_handler_locked(d, handler); =20 @@ -686,17 +678,16 @@ static int aspeed_gpio_reset_tolerance(struct gpio_ch= ip *chip, unsigned int offset, bool enable) { struct aspeed_gpio *gpio =3D gpiochip_get_data(chip); - unsigned long flags; bool copro =3D false; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + copro =3D aspeed_gpio_copro_request(gpio, offset); =20 gpio->config->llops->reg_bit_set(gpio, offset, reg_tolerance, enable); =20 if (copro) aspeed_gpio_copro_release(gpio, offset); - raw_spin_unlock_irqrestore(&gpio->lock, flags); =20 return 0; } @@ -798,7 +789,6 @@ static int enable_debounce(struct gpio_chip *chip, unsi= gned int offset, { struct aspeed_gpio *gpio =3D gpiochip_get_data(chip); u32 requested_cycles; - unsigned long flags; int rc; int i; =20 @@ -812,12 +802,12 @@ static int enable_debounce(struct gpio_chip *chip, un= signed int offset, return rc; } =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 if (timer_allocation_registered(gpio, offset)) { rc =3D unregister_allocated_timer(gpio, offset); if (rc < 0) - goto out; + return rc; } =20 /* Try to find a timer already configured for the debounce period */ @@ -855,7 +845,7 @@ static int enable_debounce(struct gpio_chip *chip, unsi= gned int offset, * consistency. */ configure_timer(gpio, offset, 0); - goto out; + return rc; } =20 i =3D j; @@ -863,34 +853,26 @@ static int enable_debounce(struct gpio_chip *chip, un= signed int offset, iowrite32(requested_cycles, gpio->base + gpio->config->debounce_timers_a= rray[i]); } =20 - if (WARN(i =3D=3D 0, "Cannot register index of disabled timer\n")) { - rc =3D -EINVAL; - goto out; - } + if (WARN(i =3D=3D 0, "Cannot register index of disabled timer\n")) + return -EINVAL; =20 register_allocated_timer(gpio, offset, i); configure_timer(gpio, offset, i); =20 -out: - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } =20 static int disable_debounce(struct gpio_chip *chip, unsigned int offset) { struct aspeed_gpio *gpio =3D gpiochip_get_data(chip); - unsigned long flags; int rc; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 rc =3D unregister_allocated_timer(gpio, offset); if (!rc) configure_timer(gpio, offset, 0); =20 - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } =20 @@ -961,7 +943,6 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc, struct aspeed_gpio *gpio =3D gpiochip_get_data(chip); int rc =3D 0, bindex, offset =3D gpio_chip_hwgpio(desc); const struct aspeed_gpio_bank *bank =3D to_bank(offset); - unsigned long flags; =20 if (!aspeed_gpio_support_copro(gpio)) return -EOPNOTSUPP; @@ -974,13 +955,12 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *des= c, return -EINVAL; bindex =3D offset >> 3; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 /* Sanity check, this shouldn't happen */ - if (gpio->cf_copro_bankmap[bindex] =3D=3D 0xff) { - rc =3D -EIO; - goto bail; - } + if (gpio->cf_copro_bankmap[bindex] =3D=3D 0xff) + return -EIO; + gpio->cf_copro_bankmap[bindex]++; =20 /* Switch command source */ @@ -994,8 +974,6 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc, *dreg_offset =3D bank->rdata_reg; if (bit) *bit =3D 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 *d= esc) struct gpio_chip *chip =3D gpiod_to_chip(desc); struct aspeed_gpio *gpio =3D gpiochip_get_data(chip); int rc =3D 0, bindex, offset =3D gpio_chip_hwgpio(desc); - unsigned long flags; =20 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 =3D offset >> 3; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 /* Sanity check, this shouldn't happen */ - if (gpio->cf_copro_bankmap[bindex] =3D=3D 0) { - rc =3D -EIO; - goto bail; - } + if (gpio->cf_copro_bankmap[bindex] =3D=3D 0) + return -EIO; + gpio->cf_copro_bankmap[bindex]--; =20 /* Switch command source */ if (gpio->cf_copro_bankmap[bindex] =3D=3D 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); --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 966B0214A8E for ; Mon, 3 Mar 2025 13:18:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007935; cv=none; b=X+oK+nBNZLj4sr49YQjDa6sYG8jtalx2OpMJav+CE3MeAxqKDOmdSEEpSGvjpxjAJHZGHHdohwO9qjQWeVW5sj5nIQgoLCCKRRPyyUXoscEVCFt13X88rEDrUHGaZDoejdbZE2F0yfNrf25o39oMELMWaOpHwXeToImX2pBt328= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007935; c=relaxed/simple; bh=9ppF4aag/8mUCwmIT6ILS41aDAnaQNDafsOCHhvzm30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z1GZAaORUWm9hNnUGAFWdOGxmdm9OBPWuI3ct9vizywGsDJmq8f0eWADR4iJ8plQgpDbmgmjZ2THqLF57cu8Ywmaa8SI6bGuYybOF9qHn5K6rRoi48PvhfJrUtsKB4Kdsp9B6Qv0wTuYWVkMnlOAbrWQVbpw8mgbxWHofLlebp0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=LQO+QnhA; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="LQO+QnhA" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43690d4605dso28100355e9.0 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=N2T+qUj1+rhYU/lDMmm7CtWMW53IZ3sreca30Qhdgoo=; b=LQO+QnhA7NN9y+aVv9UpJlhkjW6jhXrxDTzKKhIxLxPRWEdg30GiLNZt1WDreOZ7UR ZM5Yx7m3phKi3nKmwuvBx5Zo1MyooV1tETZYSb9dlZAGegPvNc/DAdqgVCywSTRhlliV egrC5oRc71KdbcU46doWNfkKEA9yvtbkCW41UUQgFWLF1RrIVD/H5M75+XWNL/nVS/Q7 FX0oGbEbSbuQLTiXaVdmB0LNKI5Rz7TFNIA7Smfw5rLzGmsx9ptp0vzsEnj6S2qdM73C FkWIkvlVN0iyD5BZ04UXGvK3nI+gFPnb0JMvRB7iE/83Ddq0VNfOmcNLWAfIwBNb8zzv rULQ== 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=NwfyMENakmYgCTB080umigKkkDVJkkLUA3GWxmPQCfTSGbDFuTngTH213cGh7urFBf BUSCdExulPx6LgFegAp4EmMAwp0QogeRr9I6/AOeV0X0MDeD5KtLFBXdiJxrIP93bihA XpdGVMjqW5uSL/SxL3BRpd8Eig/tlA8+mAZ0JOj0zVWeH4BH7LtY2QIiaN2z2vEUI+6S qQmBc3BcfZ481N2T8tYejUTEAfECFmT1LDotgo7Nxk5439eomxnqKlSRU3/gdEQukju5 6l4wVQ/GuJECvVHgVidR507fBPRkKx4RasXVUx/XvLCuXLw8zlkx2u3RYOCL1P5+Tavm 7vEA== X-Forwarded-Encrypted: i=1; AJvYcCX+pW3WJVo+nf/G/df67Rj1pF58qgNQt9Aqs3WdFzuCIFcuvub3ZBFqOhAqv8XZcRY4xNgrJwjI3wJ1oLM=@vger.kernel.org X-Gm-Message-State: AOJu0YyZKuf7CUK9OT5BWN6h62q6dJMv812MAWk+cUpwhzOsKWlGPYv9 Co3trKOW50t1nwUT+BcwTxfesxM3kqbSP13xTGvYt0uB18TgyabOEBl5Gos23sI= X-Gm-Gg: ASbGncuzWmmKqCkQcK2+oryD/YnHW/dzBzgvQygtZhWNQlGY93AZHzY9Cru7flly6hD kJS7jTve8J54Lgv8NvtYk9LAL6A2LvlwhlbX+/U7PKY5ZDlZo+3bTz1yeQXXxQzUtRAs0oVtrjd y5Df388/LMpIDa9ke623Us2DObrBV1aXLYlpFUJG2qw9RjpLRkknZ7QA0fYt3K1f2y68IK9ijts qfIzMvJXPCrdadKk10pZMC8Aslq9WUxviMDqS76Nem6p9Eok7nqytZZpTvEqA2kDLAVkmAsId0q Qz1MQ0Cw0ilaZCCD4bBuu9kR0fbapksg/NqdMQ== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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: Andrew Jeffery --- 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, uns= igned int offset, gpio->config->llops->reg_bit_get(gpio, offset, reg_val); } =20 -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 =3D gpiochip_get_data(gc); bool copro =3D false; @@ -438,6 +437,8 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsig= ned int offset, =20 if (copro) aspeed_gpio_copro_release(gpio, offset); + + return 0; } =20 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 =3D aspeed_gpio_request; gpio->chip.free =3D aspeed_gpio_free; gpio->chip.get =3D aspeed_gpio_get; - gpio->chip.set =3D aspeed_gpio_set; + gpio->chip.set_rv =3D aspeed_gpio_set; gpio->chip.set_config =3D aspeed_gpio_set_config; gpio->chip.label =3D dev_name(&pdev->dev); gpio->chip.base =3D -1; --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDECE21505C for ; Mon, 3 Mar 2025 13:18:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007936; cv=none; b=CYA63XO6qNGyKE7O4+EjJ5L/zh17LVPO3M/Y+6EX8R/wenBcQEhTr5Jp30wipRlaQ5OTdbebWREQsD8GP00uKn3wbrmYlO2EaBz1YqSSUKBxb5vRJagDK1Wge8gMC6WIT2B+iyyYsNqec0tFmNzioUlADM5ZFvt20VyV/0VrRIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007936; c=relaxed/simple; bh=gJCT2x0MTbORYrOB0+eP20IuPL7gfsLN+SSPmgQiy48=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fO9X21E549I/5dOAp1VFAg85d0W0/6gfGWY5D+nXpT07JYdQK6289SI9fcLpM5EoSDqIFA50Kj6cD/37FTlcizvR2RTa/wfBoHaScX4v5O83Qf5ww6gzi0YeIKDihrISMf86jwUD6QkCLqeF076q93u1sBKc0LFjn8fz2J3gkT0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=cYAWsUbR; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="cYAWsUbR" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43bbd711eedso9766295e9.3 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9Mna2g5kGAQGbITypIOAf332guWttEFjYKfE+wICzl8=; b=cYAWsUbRJv5Eo4BFu6NUWQjUiXEnOqSFNt/ZkN/pDyEMoLtq5sX5NiyQXdIjAWukBE eFM57fCCrIov/Jcm9TrzvXUH6IbTipsxgWECxyBMIDNoMhzWUU/fveiEOn09cZFWQ/Rv IipgyM5TxnYLiOtKGz7HE5JulJH8Bb5xUy/d8LX7nTicikw9HtYMibi1s7W4i3rKNgGT xRP3KwmdwN72Sb3dlFUX6yUonsdRUby91zG9V1XjVjcDsprjxhlsopARD/GHh4aNdmvj pAukKJguecMZBc0RBGY1EAYoiKKVihaDm+UdvWBM1SVPyCLZBT8uKutySK4OgLn0ROjg /6wQ== 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=iV0D5e/h4O/LuACaH3aKJbNRgfHNpHluxnjjqSU2N76Ruz6XCZE+ehTAvcWysw5rMr M7K5uQEwBLduh3SILfBKsA9UFe2/yZsQdfVGt33lCbXgK0rbqtKa018yVrV76od5oK53 99c7WPW7xALa+z0VRv2hps1CQv9qCpMyCEGjj35Ho3QSD1nL96lB4DT9VzaIJsfTrbMf ZofrhGGNZt8pM/Ired9uDKhUxdVnJcSY8vnYe8Cfa0OlihBuk8P7dm0QeR8n05shvpDe N9AIl5Dcqw1ndOnPLng1TTICgQYTBqcCDJbzL8u1WRdh7kzY9ZLEIpv0tKLc2YXN4G+0 Inpg== X-Forwarded-Encrypted: i=1; AJvYcCWwATv/Lg0AEaMCyzskw3x2IcU+LjQyPSFLC0Ojf5yRo0/+CD7xWkF5OPEDdV0iYw3SwF+a0Lb3x2702h8=@vger.kernel.org X-Gm-Message-State: AOJu0YxHzU/l7NsBYaCFm5cnncgNAgzuHjA/Hdgj8CtGNGNHB/NtvXdY Fy4Z0G+s4eemzAjvIX1NyP31UvFCV5nZMeC/8hrOhpEuZrdZq/Mj3gAuq+O05eU= X-Gm-Gg: ASbGncvo1tsd8fg78WgZo5JtJXQdQGVwwiPh3JJcUQhr+f45Yn0vKTacE8Da7Ve4IyG R8sfdT6CtIDQn/uku1V3zPfaD3KMtrN8dJPzwjcfXCel3HxH3TQrZX6bmAf6UiXcHRQUZgEB0Kl 4WO1OlUGT/SNzLjNmyPLXjPkGEUPRVRKH83gXqjWd4eKQpe6n3sxmrj3bsm11TBeR3t5n2oZVP1 mYhFMeJTG7VE8DbtMzrNPgJZQAfPVEigvMVEpyt1bWgK/vsWYk2g7If8DfUhUjJkIuzqgtiIEe8 WGScdamBzxJrhoLDBDB3EwvVD10mlXt75iSm6Q== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 From: Bartosz Golaszewski Reduce the code complexity by using automatic lock guards with the raw spinlock. Signed-off-by: Bartosz Golaszewski Reviewed-by: Andrew Jeffery --- 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-sg= pio.c index 34eb26298e32..5ce86de22563 100644 --- a/drivers/gpio/gpio-aspeed-sgpio.c +++ b/drivers/gpio/gpio-aspeed-sgpio.c @@ -6,6 +6,7 @@ */ =20 #include +#include #include #include #include @@ -170,17 +171,14 @@ static int aspeed_sgpio_get(struct gpio_chip *gc, uns= igned int offset) { struct aspeed_sgpio *gpio =3D gpiochip_get_data(gc); const struct aspeed_sgpio_bank *bank =3D to_bank(offset); - unsigned long flags; enum aspeed_sgpio_reg reg; int rc =3D 0; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 reg =3D aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata; rc =3D !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset)); =20 - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return rc; } =20 @@ -214,13 +212,10 @@ static int sgpio_set_value(struct gpio_chip *gc, unsi= gned int offset, int val) static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, in= t val) { struct aspeed_sgpio *gpio =3D gpiochip_get_data(gc); - unsigned long flags; =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 sgpio_set_value(gc, offset, val); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); } =20 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 =3D gpiochip_get_data(gc); - unsigned long flags; int rc; =20 /* No special action is required for setting the direction; we'll * error-out in sgpio_set_value if this isn't an output GPIO */ =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); + rc =3D sgpio_set_value(gc, offset, val); - raw_spin_unlock_irqrestore(&gpio->lock, flags); =20 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) =20 status_addr =3D bank_reg(gpio, bank, reg_irq_status); =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 iowrite32(bit, status_addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); } =20 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)); =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + reg =3D ioread32(addr); + if (set) + reg |=3D bit; + else + reg &=3D ~bit; =20 - reg =3D ioread32(addr); - if (set) - reg |=3D bit; - else - reg &=3D ~bit; - - iowrite32(reg, addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); + iowrite32(reg, addr); + } =20 /* Masking the IRQ */ if (!set) @@ -339,7 +327,6 @@ static int aspeed_sgpio_set_type(struct irq_data *d, un= signed 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; =20 @@ -366,24 +353,22 @@ static int aspeed_sgpio_set_type(struct irq_data *d, = unsigned int type) return -EINVAL; } =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + scoped_guard(raw_spinlock_irqsave, &gpio->lock) { + addr =3D bank_reg(gpio, bank, reg_irq_type0); + reg =3D ioread32(addr); + reg =3D (reg & ~bit) | type0; + iowrite32(reg, addr); =20 - addr =3D bank_reg(gpio, bank, reg_irq_type0); - reg =3D ioread32(addr); - reg =3D (reg & ~bit) | type0; - iowrite32(reg, addr); + addr =3D bank_reg(gpio, bank, reg_irq_type1); + reg =3D ioread32(addr); + reg =3D (reg & ~bit) | type1; + iowrite32(reg, addr); =20 - addr =3D bank_reg(gpio, bank, reg_irq_type1); - reg =3D ioread32(addr); - reg =3D (reg & ~bit) | type1; - iowrite32(reg, addr); - - addr =3D bank_reg(gpio, bank, reg_irq_type2); - reg =3D ioread32(addr); - reg =3D (reg & ~bit) | type2; - iowrite32(reg, addr); - - raw_spin_unlock_irqrestore(&gpio->lock, flags); + addr =3D bank_reg(gpio, bank, reg_irq_type2); + reg =3D ioread32(addr); + reg =3D (reg & ~bit) | type2; + iowrite32(reg, addr); + } =20 irq_set_handler_locked(d, handler); =20 @@ -487,13 +472,12 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_c= hip *chip, unsigned int offset, bool enable) { struct aspeed_sgpio *gpio =3D gpiochip_get_data(chip); - unsigned long flags; void __iomem *reg; u32 val; =20 reg =3D bank_reg(gpio, to_bank(offset), reg_tolerance); =20 - raw_spin_lock_irqsave(&gpio->lock, flags); + guard(raw_spinlock_irqsave)(&gpio->lock); =20 val =3D readl(reg); =20 @@ -504,8 +488,6 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chi= p *chip, =20 writel(val, reg); =20 - raw_spin_unlock_irqrestore(&gpio->lock, flags); - return 0; } =20 --=20 2.45.2 From nobody Sun Feb 8 06:22:09 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAE6C21577C for ; Mon, 3 Mar 2025 13:18:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007940; cv=none; b=MMm3iaRtyPEceTRNJGkFpy9/wFqi25VD+wDcfLbmCGYmQg5pTQ3hnGknqV7WtbdRH2rJ1JDyTRStm+sevzKV5V6uDhvqThfNtOGfMWxyaxqZY9TWvofVedEN/YemlzRzEgbxW09EDZ3Jdqz0vzGvhxDq6heXkJFkhP9+Gy0jLQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741007940; c=relaxed/simple; bh=wmxkqe1vFjcLK2jMM+NTo3KMs+4giqwo4Tu94x6rZ5Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lqw94idJ8qYk2KdHdMkNVziv031Zi4XkkwusI8TsFcuaTjoUz8P7ybOVAJBQmSqs2w8IQ29iCuROtWi+L/PX/oJ8ikgGPVEw02ffcfgzzrO9QbqMesXKabH9lWQ0gvKn3LyQfWMM+RZUgvYvsox6JhNaP/oAomRZduRvOaEzPcw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=LShH7kHX; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="LShH7kHX" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4394036c0efso27993365e9.2 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=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qYy3OxmCTfeXmKWW1VbewLs6rP6H3oG1fco894i6r5M=; b=LShH7kHXmNlqf3fu8ym+f1rFLE08mRQ2xXbmsVZYGziaWTsfyeSYIWsA3cpZ1/PmuU jdexayHHhJcOa6t/4RZYk4f1A56R0BC1w8paigKzJXkWCmxTMzRU5X6xxOm79PfmhtX2 OOOu96YJkMSOADEEdGN7XoKCYIWsL8dTFwOlAkcp+9XM8fJma7gkoWaUWKIUzR1nAPUs LqATWxDmmFjuUkKO0mezr5jdt59VEcxGVtMK1eb7KvmfaDmt9WcthKEQCdv5unD0OcUl 8sz04IZZ1qsoq9O/bvs1VHCpCWWRZ5EFAura1CzU6WFU0fIvqUkdSwS5b66/Z++DfSB5 vx+w== 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=I2lH1oNjSEcbWOdHKYhzeB59j5oSG34iR8Yo2s3syeXT9qM38JaQPua3objR/iHoP8 en5SRbtrbeT71hfLL53YoBCV1P/Zdd9nkqjLz4CZbrFT3fovHlabRNVleNOs155sjPJr GresrDL3MZNwpXtLxNONUez7JDhZIsGCjXMUmntFyHHY2vlJDeHP7oj5Arevxwc/0+ej dnZK2NjUH1VzF+y6N3eQMdn5sM+PPMIyE0AiQ/QoL6E3c3jO256N/BuRB4oAm0XZZn6o iJ07v/GF5+HMBpjij+kwvXxYNQqy5BNdmClHPsbrLGvkej301he4qtJCMdvs69yLMqKV g1kQ== X-Forwarded-Encrypted: i=1; AJvYcCXyiUGK5GELf4gKENTIveB6dLhH/WmV8jhpb/XLF97ZDlhZTV0PzkVLkeNSSgoGOucowRHUytStz4kZW8A=@vger.kernel.org X-Gm-Message-State: AOJu0Yxomj7qvYyqh9rpqs7tCRSyz6m2NVmonfWZZtKMwwtB6Wc1ZbIW MiAHDggWIXcClg+zWBl5xGX9ItzXV5NSh7abKPVbsu60ChABt8y2J2lzhIY8kBg= X-Gm-Gg: ASbGncuMngFep510z54QV2BcJxsv/G0w363tkXwQaUEvrC6GbxAgktSQ+YBquXKto0Z lhjVkJvsNXw6pcU85bH/EJPJ6TqLafT0vfUy7/fRTQ1tjQoEnzNXS3QjIkunB0QlAYgg8ZAvk7p iikqQZnMYFwyRyw/JWTVoDE9B5Qw1pYa5lR91vuJJOPWVEqihdu53KFY6yDOmw0XAM+1TZqOxzV TKt0CYaS1AI+GuiQNr9x8HFf9uri4Lqy3Djm5QNOa0CiBm2j3qqvNhs0Q13c5/8hDZNvNxkll25 DD6gtPJxIG6lwytjFZD7x1iTXv3wquRuknpnsA== 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <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 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: Andrew Jeffery --- 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-sg= pio.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, unsi= gned int offset, int val) return 0; } =20 -static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, in= t val) +static int aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int= val) { struct aspeed_sgpio *gpio =3D gpiochip_get_data(gc); =20 guard(raw_spinlock_irqsave)(&gpio->lock); =20 - sgpio_set_value(gc, offset, val); + return sgpio_set_value(gc, offset, val); } =20 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_de= vice *pdev) gpio->chip.request =3D NULL; gpio->chip.free =3D NULL; gpio->chip.get =3D aspeed_sgpio_get; - gpio->chip.set =3D aspeed_sgpio_set; + gpio->chip.set_rv =3D aspeed_sgpio_set; gpio->chip.set_config =3D aspeed_sgpio_set_config; gpio->chip.label =3D dev_name(&pdev->dev); gpio->chip.base =3D -1; --=20 2.45.2