* [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks
@ 2025-06-25 8:05 Geert Uytterhoeven
2025-06-25 8:05 ` [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks Geert Uytterhoeven
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2025-06-25 8:05 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Magnus Damm, Wolfram Sang
Cc: linux-gpio, linux-renesas-soc, Geert Uytterhoeven
Hi all,
This patch series converts the R-Car GPIo driver to the new line value
setter callbacks.
Changes compared to v1:
- New patch "gpio: rcar: Remove checks for empty bankmasks".
Thanks for your comments!
[1] https://lore.kernel.org/b648ffcfe6268d3886b134a98908b2f91dbece56.1749801865.git.geert+renesas@glider.be
Geert Uytterhoeven (2):
gpio: rcar: Remove checks for empty bankmasks
gpio: rcar: Use new line value setter callbacks
drivers/gpio/gpio-rcar.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
--
2.43.0
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks
2025-06-25 8:05 [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
@ 2025-06-25 8:05 ` Geert Uytterhoeven
2025-06-25 9:06 ` Wolfram Sang
2025-06-25 8:05 ` [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
2025-06-26 8:53 ` [PATCH v2 0/2] " Bartosz Golaszewski
2 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2025-06-25 8:05 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Magnus Damm, Wolfram Sang
Cc: linux-gpio, linux-renesas-soc, Geert Uytterhoeven
The GPIO core never passes empty bankmasks to the callbacks for handling
multiple signals at once. Remove the superfluous checks, and refactor
the code.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- New.
---
drivers/gpio/gpio-rcar.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
index 18c965ee02c8d368..8416e0430887bd5e 100644
--- a/drivers/gpio/gpio-rcar.c
+++ b/drivers/gpio/gpio-rcar.c
@@ -331,14 +331,11 @@ static int gpio_rcar_get(struct gpio_chip *chip, unsigned offset)
static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
unsigned long *bits)
{
+ u32 bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
struct gpio_rcar_priv *p = gpiochip_get_data(chip);
- u32 bankmask, outputs, m, val = 0;
+ u32 outputs, m, val = 0;
unsigned long flags;
- bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
- if (!bankmask)
- return 0;
-
if (p->info.has_always_in) {
bits[0] = gpio_rcar_read(p, INDT) & bankmask;
return 0;
@@ -372,13 +369,10 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value)
static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
unsigned long *bits)
{
+ u32 bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
struct gpio_rcar_priv *p = gpiochip_get_data(chip);
unsigned long flags;
- u32 val, bankmask;
-
- bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
- if (!bankmask)
- return;
+ u32 val;
raw_spin_lock_irqsave(&p->lock, flags);
val = gpio_rcar_read(p, OUTDT);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks
2025-06-25 8:05 [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
2025-06-25 8:05 ` [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks Geert Uytterhoeven
@ 2025-06-25 8:05 ` Geert Uytterhoeven
2025-06-25 9:08 ` Wolfram Sang
2025-06-26 8:53 ` [PATCH v2 0/2] " Bartosz Golaszewski
2 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2025-06-25 8:05 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Magnus Damm, Wolfram Sang
Cc: linux-gpio, linux-renesas-soc, Geert Uytterhoeven
struct gpio_chip now has callbacks for setting line values that return
integers, so they can indicate failures. Convert the driver to using
them.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- Rebase.
---
drivers/gpio/gpio-rcar.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
index 8416e0430887bd5e..1d121a4275905e09 100644
--- a/drivers/gpio/gpio-rcar.c
+++ b/drivers/gpio/gpio-rcar.c
@@ -356,7 +356,7 @@ static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
return 0;
}
-static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value)
+static int gpio_rcar_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct gpio_rcar_priv *p = gpiochip_get_data(chip);
unsigned long flags;
@@ -364,10 +364,12 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value)
raw_spin_lock_irqsave(&p->lock, flags);
gpio_rcar_modify_bit(p, OUTDT, offset, value);
raw_spin_unlock_irqrestore(&p->lock, flags);
+
+ return 0;
}
-static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
- unsigned long *bits)
+static int gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
+ unsigned long *bits)
{
u32 bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
struct gpio_rcar_priv *p = gpiochip_get_data(chip);
@@ -380,6 +382,8 @@ static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
val |= (bankmask & bits[0]);
gpio_rcar_write(p, OUTDT, val);
raw_spin_unlock_irqrestore(&p->lock, flags);
+
+ return 0;
}
static int gpio_rcar_direction_output(struct gpio_chip *chip, unsigned offset,
@@ -531,8 +535,8 @@ static int gpio_rcar_probe(struct platform_device *pdev)
gpio_chip->get = gpio_rcar_get;
gpio_chip->get_multiple = gpio_rcar_get_multiple;
gpio_chip->direction_output = gpio_rcar_direction_output;
- gpio_chip->set = gpio_rcar_set;
- gpio_chip->set_multiple = gpio_rcar_set_multiple;
+ gpio_chip->set_rv = gpio_rcar_set;
+ gpio_chip->set_multiple_rv = gpio_rcar_set_multiple;
gpio_chip->label = name;
gpio_chip->parent = dev;
gpio_chip->owner = THIS_MODULE;
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks
2025-06-25 8:05 ` [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks Geert Uytterhoeven
@ 2025-06-25 9:06 ` Wolfram Sang
0 siblings, 0 replies; 6+ messages in thread
From: Wolfram Sang @ 2025-06-25 9:06 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Linus Walleij, Bartosz Golaszewski, Magnus Damm, linux-gpio,
linux-renesas-soc
[-- Attachment #1: Type: text/plain, Size: 382 bytes --]
On Wed, Jun 25, 2025 at 10:05:46AM +0200, Geert Uytterhoeven wrote:
> The GPIO core never passes empty bankmasks to the callbacks for handling
> multiple signals at once. Remove the superfluous checks, and refactor
> the code.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Nice cleanup!
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks
2025-06-25 8:05 ` [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
@ 2025-06-25 9:08 ` Wolfram Sang
0 siblings, 0 replies; 6+ messages in thread
From: Wolfram Sang @ 2025-06-25 9:08 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Linus Walleij, Bartosz Golaszewski, Magnus Damm, linux-gpio,
linux-renesas-soc
[-- Attachment #1: Type: text/plain, Size: 426 bytes --]
On Wed, Jun 25, 2025 at 10:05:47AM +0200, Geert Uytterhoeven wrote:
> struct gpio_chip now has callbacks for setting line values that return
> integers, so they can indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Even found the hidden 'unsigned' to 'unsigned int' conversion ;)
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks
2025-06-25 8:05 [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
2025-06-25 8:05 ` [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks Geert Uytterhoeven
2025-06-25 8:05 ` [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
@ 2025-06-26 8:53 ` Bartosz Golaszewski
2 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2025-06-26 8:53 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Magnus Damm, Wolfram Sang,
Geert Uytterhoeven
Cc: Bartosz Golaszewski, linux-gpio, linux-renesas-soc
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Wed, 25 Jun 2025 10:05:45 +0200, Geert Uytterhoeven wrote:
> Hi all,
>
> This patch series converts the R-Car GPIo driver to the new line value
> setter callbacks.
>
> Changes compared to v1:
> - New patch "gpio: rcar: Remove checks for empty bankmasks".
>
> [...]
Applied, thanks!
[1/2] gpio: rcar: Remove checks for empty bankmasks
https://git.kernel.org/brgl/linux/c/28a9ab01f6ac87afb78cb18098bc37a74db0d8f0
[2/2] gpio: rcar: Use new line value setter callbacks
https://git.kernel.org/brgl/linux/c/3315e39e5639ac770782b658e499d45f68ea7d82
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-06-26 8:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-25 8:05 [PATCH v2 0/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
2025-06-25 8:05 ` [PATCH v2 1/2] gpio: rcar: Remove checks for empty bankmasks Geert Uytterhoeven
2025-06-25 9:06 ` Wolfram Sang
2025-06-25 8:05 ` [PATCH v2 2/2] gpio: rcar: Use new line value setter callbacks Geert Uytterhoeven
2025-06-25 9:08 ` Wolfram Sang
2025-06-26 8:53 ` [PATCH v2 0/2] " Bartosz Golaszewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).