* [PATCH v2] gpio: Use str_enable_disable-like helpers
@ 2025-01-14 19:14 Krzysztof Kozlowski
2025-01-14 23:19 ` Doug Berger
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2025-01-14 19:14 UTC (permalink / raw)
To: Doug Berger, Florian Fainelli,
Broadcom internal kernel review list, Linus Walleij,
Bartosz Golaszewski, Andy Shevchenko, Uwe Kleine-König,
Maxime Coquelin, Alexandre Torgue, Kuppuswamy Sathyanarayanan,
Nandor Han, linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches
Cc: Krzysztof Kozlowski
Replace ternary (condition ? "enable" : "disable") syntax with helpers
from string_choices.h because:
1. Simple function call with one argument is easier to read. Ternary
operator has three arguments and with wrapping might lead to quite
long code.
2. Is slightly shorter thus also easier to read.
3. It brings uniformity in the text - same string.
4. Allows deduping by the linker, which results in a smaller binary
file.
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes in v2:
1. Many more files changed.
---
drivers/gpio/gpio-brcmstb.c | 3 ++-
drivers/gpio/gpio-crystalcove.c | 3 ++-
drivers/gpio/gpio-grgpio.c | 3 ++-
drivers/gpio/gpio-mvebu.c | 7 ++++---
drivers/gpio/gpio-nomadik.c | 3 ++-
drivers/gpio/gpio-stmpe.c | 6 +++---
drivers/gpio/gpio-wcove.c | 3 ++-
drivers/gpio/gpio-wm831x.c | 3 ++-
drivers/gpio/gpio-xra1403.c | 3 ++-
drivers/gpio/gpiolib.c | 3 ++-
10 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c
index 491b529d25f8..ca3472977431 100644
--- a/drivers/gpio/gpio-brcmstb.c
+++ b/drivers/gpio/gpio-brcmstb.c
@@ -9,6 +9,7 @@
#include <linux/irqchip/chained_irq.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
+#include <linux/string_choices.h>
enum gio_reg_index {
GIO_REG_ODEN = 0,
@@ -224,7 +225,7 @@ static int brcmstb_gpio_priv_set_wake(struct brcmstb_gpio_priv *priv,
ret = disable_irq_wake(priv->parent_wake_irq);
if (ret)
dev_err(&priv->pdev->dev, "failed to %s wake-up interrupt\n",
- enable ? "enable" : "disable");
+ str_enable_disable(enable));
return ret;
}
diff --git a/drivers/gpio/gpio-crystalcove.c b/drivers/gpio/gpio-crystalcove.c
index 25db014494a4..56effd0f50c7 100644
--- a/drivers/gpio/gpio-crystalcove.c
+++ b/drivers/gpio/gpio-crystalcove.c
@@ -15,6 +15,7 @@
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/seq_file.h>
+#include <linux/string_choices.h>
#include <linux/types.h>
#define CRYSTALCOVE_GPIO_NUM 16
@@ -317,7 +318,7 @@ static void crystalcove_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip
offset = gpio % 8;
seq_printf(s, " gpio-%-2d %s %s %s %s ctlo=%2x,%s %s %s\n",
gpio, ctlo & CTLO_DIR_OUT ? "out" : "in ",
- ctli & 0x1 ? "hi" : "lo",
+ str_hi_lo(ctli & 0x1),
ctli & CTLI_INTCNT_NE ? "fall" : " ",
ctli & CTLI_INTCNT_PE ? "rise" : " ",
ctlo,
diff --git a/drivers/gpio/gpio-grgpio.c b/drivers/gpio/gpio-grgpio.c
index 169f33c41c59..30a0522ae735 100644
--- a/drivers/gpio/gpio-grgpio.c
+++ b/drivers/gpio/gpio-grgpio.c
@@ -30,6 +30,7 @@
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
+#include <linux/string_choices.h>
#define GRGPIO_MAX_NGPIO 32
@@ -438,7 +439,7 @@ static int grgpio_probe(struct platform_device *ofdev)
}
dev_info(dev, "regs=0x%p, base=%d, ngpio=%d, irqs=%s\n",
- priv->regs, gc->base, gc->ngpio, priv->domain ? "on" : "off");
+ priv->regs, gc->base, gc->ngpio, str_on_off(priv->domain));
return 0;
}
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index 5ffb332e9849..363bad286c32 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -49,6 +49,7 @@
#include <linux/pwm.h>
#include <linux/regmap.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
/*
* GPIO unit register offsets.
@@ -907,14 +908,14 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
if (is_out) {
seq_printf(s, " out %s %s\n",
- out & msk ? "hi" : "lo",
+ str_hi_lo(out & msk),
blink & msk ? "(blink )" : "");
continue;
}
seq_printf(s, " in %s (act %s) - IRQ",
- (data_in ^ in_pol) & msk ? "hi" : "lo",
- in_pol & msk ? "lo" : "hi");
+ str_hi_lo((data_in ^ in_pol) & msk),
+ str_lo_hi(in_pol & msk));
if (!((edg_msk | lvl_msk) & msk)) {
seq_puts(s, " disabled\n");
continue;
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index 836f1cc760c2..fa19a44943fd 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -30,6 +30,7 @@
#include <linux/reset.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
#include <linux/types.h>
#include <linux/gpio/gpio-nomadik.h>
@@ -430,7 +431,7 @@ void nmk_gpio_dbg_show_one(struct seq_file *s, struct pinctrl_dev *pctldev,
seq_printf(s, " gpio-%-3d (%-20.20s) out %s %s",
gpio,
label ?: "(none)",
- data_out ? "hi" : "lo",
+ str_hi_lo(data_out),
(mode < 0) ? "unknown" : modes[mode]);
} else {
int irq = chip->to_irq(chip, offset);
diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c
index 75a3633ceddb..2e22e1eb7495 100644
--- a/drivers/gpio/gpio-stmpe.c
+++ b/drivers/gpio/gpio-stmpe.c
@@ -15,6 +15,7 @@
#include <linux/platform_device.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
/*
* These registers are modified under the irq bus lock and cached to avoid
@@ -273,8 +274,7 @@ static void stmpe_dbg_show_one(struct seq_file *s,
if (dir) {
seq_printf(s, " gpio-%-3d (%-20.20s) out %s",
- gpio, label ?: "(none)",
- val ? "hi" : "lo");
+ gpio, label ?: "(none)", str_hi_lo(val));
} else {
u8 edge_det_reg;
u8 rise_reg;
@@ -343,7 +343,7 @@ static void stmpe_dbg_show_one(struct seq_file *s,
seq_printf(s, " gpio-%-3d (%-20.20s) in %s %13s %13s %25s %25s",
gpio, label ?: "(none)",
- val ? "hi" : "lo",
+ str_hi_lo(val),
edge_det_values[edge_det],
irqen ? "IRQ-enabled" : "IRQ-disabled",
rise_values[rise],
diff --git a/drivers/gpio/gpio-wcove.c b/drivers/gpio/gpio-wcove.c
index 94ca9d03c094..1ec24f6f9300 100644
--- a/drivers/gpio/gpio-wcove.c
+++ b/drivers/gpio/gpio-wcove.c
@@ -15,6 +15,7 @@
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/seq_file.h>
+#include <linux/string_choices.h>
/*
* Whiskey Cove PMIC has 13 physical GPIO pins divided into 3 banks:
@@ -393,7 +394,7 @@ static void wcove_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
seq_printf(s, " gpio-%-2d %s %s %s %s ctlo=%2x,%s %s\n",
gpio, ctlo & CTLO_DIR_OUT ? "out" : "in ",
- ctli & 0x1 ? "hi" : "lo",
+ str_hi_lo(ctli & 0x1),
ctli & CTLI_INTCNT_NE ? "fall" : " ",
ctli & CTLI_INTCNT_PE ? "rise" : " ",
ctlo,
diff --git a/drivers/gpio/gpio-wm831x.c b/drivers/gpio/gpio-wm831x.c
index f7d5120ff8f1..61bb83a1e8ae 100644
--- a/drivers/gpio/gpio-wm831x.c
+++ b/drivers/gpio/gpio-wm831x.c
@@ -16,6 +16,7 @@
#include <linux/mfd/core.h>
#include <linux/platform_device.h>
#include <linux/seq_file.h>
+#include <linux/string_choices.h>
#include <linux/mfd/wm831x/core.h>
#include <linux/mfd/wm831x/pdata.h>
@@ -234,7 +235,7 @@ static void wm831x_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
seq_printf(s, " %s %s %s %s%s\n"
" %s%s (0x%4x)\n",
reg & WM831X_GPN_DIR ? "in" : "out",
- wm831x_gpio_get(chip, i) ? "high" : "low",
+ str_high_low(wm831x_gpio_get(chip, i)),
pull,
powerdomain,
reg & WM831X_GPN_POL ? "" : " inverted",
diff --git a/drivers/gpio/gpio-xra1403.c b/drivers/gpio/gpio-xra1403.c
index dc2710c21c50..842cf875bb92 100644
--- a/drivers/gpio/gpio-xra1403.c
+++ b/drivers/gpio/gpio-xra1403.c
@@ -13,6 +13,7 @@
#include <linux/mutex.h>
#include <linux/seq_file.h>
#include <linux/spi/spi.h>
+#include <linux/string_choices.h>
#include <linux/regmap.h>
/* XRA1403 registers */
@@ -140,7 +141,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip)
seq_printf(s, " gpio-%-3d (%-12s) %s %s\n",
chip->base + i, label,
(gcr & BIT(i)) ? "in" : "out",
- (gsr & BIT(i)) ? "hi" : "lo");
+ str_hi_lo(gsr & BIT(i)));
}
}
#else
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 679ed764cb14..be3351583508 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -26,6 +26,7 @@
#include <linux/slab.h>
#include <linux/srcu.h>
#include <linux/string.h>
+#include <linux/string_choices.h>
#include <linux/gpio.h>
#include <linux/gpio/driver.h>
@@ -5007,7 +5008,7 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_device *gdev)
seq_printf(s, " gpio-%-3u (%-20.20s|%-20.20s) %s %s %s%s\n",
gpio, desc->name ?: "", gpiod_get_label(desc),
is_out ? "out" : "in ",
- value >= 0 ? (value ? "hi" : "lo") : "? ",
+ value >= 0 ? str_hi_lo(value) : "? ",
is_irq ? "IRQ " : "",
active_low ? "ACTIVE LOW" : "");
} else if (desc->name) {
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] gpio: Use str_enable_disable-like helpers
2025-01-14 19:14 [PATCH v2] gpio: Use str_enable_disable-like helpers Krzysztof Kozlowski
@ 2025-01-14 23:19 ` Doug Berger
2025-01-15 10:24 ` Charles Keepax
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Doug Berger @ 2025-01-14 23:19 UTC (permalink / raw)
To: Krzysztof Kozlowski, Florian Fainelli,
Broadcom internal kernel review list, Linus Walleij,
Bartosz Golaszewski, Andy Shevchenko, Uwe Kleine-König,
Maxime Coquelin, Alexandre Torgue, Kuppuswamy Sathyanarayanan,
Nandor Han, linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches
On 1/14/2025 11:14 AM, Krzysztof Kozlowski wrote:
> Replace ternary (condition ? "enable" : "disable") syntax with helpers
> from string_choices.h because:
> 1. Simple function call with one argument is easier to read. Ternary
> operator has three arguments and with wrapping might lead to quite
> long code.
> 2. Is slightly shorter thus also easier to read.
> 3. It brings uniformity in the text - same string.
> 4. Allows deduping by the linker, which results in a smaller binary
> file.
>
> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>
> Changes in v2:
> 1. Many more files changed.
> ---
> drivers/gpio/gpio-brcmstb.c | 3 ++-
> drivers/gpio/gpio-crystalcove.c | 3 ++-
> drivers/gpio/gpio-grgpio.c | 3 ++-
> drivers/gpio/gpio-mvebu.c | 7 ++++---
> drivers/gpio/gpio-nomadik.c | 3 ++-
> drivers/gpio/gpio-stmpe.c | 6 +++---
> drivers/gpio/gpio-wcove.c | 3 ++-
> drivers/gpio/gpio-wm831x.c | 3 ++-
> drivers/gpio/gpio-xra1403.c | 3 ++-
> drivers/gpio/gpiolib.c | 3 ++-
> 10 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c
> index 491b529d25f8..ca3472977431 100644
> --- a/drivers/gpio/gpio-brcmstb.c
> +++ b/drivers/gpio/gpio-brcmstb.c
> @@ -9,6 +9,7 @@
> #include <linux/irqchip/chained_irq.h>
> #include <linux/interrupt.h>
> #include <linux/platform_device.h>
> +#include <linux/string_choices.h>
>
> enum gio_reg_index {
> GIO_REG_ODEN = 0,
> @@ -224,7 +225,7 @@ static int brcmstb_gpio_priv_set_wake(struct brcmstb_gpio_priv *priv,
> ret = disable_irq_wake(priv->parent_wake_irq);
> if (ret)
> dev_err(&priv->pdev->dev, "failed to %s wake-up interrupt\n",
> - enable ? "enable" : "disable");
> + str_enable_disable(enable));
> return ret;
> }
>
For gpio-brcmstb:
Acked-by: Doug Berger <opendmb@gmail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] gpio: Use str_enable_disable-like helpers
2025-01-14 19:14 [PATCH v2] gpio: Use str_enable_disable-like helpers Krzysztof Kozlowski
2025-01-14 23:19 ` Doug Berger
@ 2025-01-15 10:24 ` Charles Keepax
2025-01-15 11:51 ` Linus Walleij
2025-02-03 8:13 ` Bartosz Golaszewski
3 siblings, 0 replies; 6+ messages in thread
From: Charles Keepax @ 2025-01-15 10:24 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Doug Berger, Florian Fainelli,
Broadcom internal kernel review list, Linus Walleij,
Bartosz Golaszewski, Andy Shevchenko, Uwe Kleine-König,
Maxime Coquelin, Alexandre Torgue, Kuppuswamy Sathyanarayanan,
Nandor Han, linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches
On Tue, Jan 14, 2025 at 08:14:38PM +0100, Krzysztof Kozlowski wrote:
> Replace ternary (condition ? "enable" : "disable") syntax with helpers
> from string_choices.h because:
> 1. Simple function call with one argument is easier to read. Ternary
> operator has three arguments and with wrapping might lead to quite
> long code.
> 2. Is slightly shorter thus also easier to read.
> 3. It brings uniformity in the text - same string.
> 4. Allows deduping by the linker, which results in a smaller binary
> file.
>
> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
For the Wolfson bits:
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] gpio: Use str_enable_disable-like helpers
2025-01-14 19:14 [PATCH v2] gpio: Use str_enable_disable-like helpers Krzysztof Kozlowski
2025-01-14 23:19 ` Doug Berger
2025-01-15 10:24 ` Charles Keepax
@ 2025-01-15 11:51 ` Linus Walleij
2025-01-15 13:00 ` Krzysztof Kozlowski
2025-02-03 8:13 ` Bartosz Golaszewski
3 siblings, 1 reply; 6+ messages in thread
From: Linus Walleij @ 2025-01-15 11:51 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Doug Berger, Florian Fainelli,
Broadcom internal kernel review list, Bartosz Golaszewski,
Andy Shevchenko, Uwe Kleine-König, Maxime Coquelin,
Alexandre Torgue, Kuppuswamy Sathyanarayanan, Nandor Han,
linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches
On Tue, Jan 14, 2025 at 8:14 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
> Replace ternary (condition ? "enable" : "disable") syntax with helpers
> from string_choices.h because:
> 1. Simple function call with one argument is easier to read. Ternary
> operator has three arguments and with wrapping might lead to quite
> long code.
> 2. Is slightly shorter thus also easier to read.
> 3. It brings uniformity in the text - same string.
> 4. Allows deduping by the linker, which results in a smaller binary
> file.
>
> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
For a while I was critical about the string helpers but since both Andy
and Krzysztof like them, I will consider myself convinced and start to
like them instead.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] gpio: Use str_enable_disable-like helpers
2025-01-15 11:51 ` Linus Walleij
@ 2025-01-15 13:00 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2025-01-15 13:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Doug Berger, Florian Fainelli,
Broadcom internal kernel review list, Bartosz Golaszewski,
Andy Shevchenko, Uwe Kleine-König, Maxime Coquelin,
Alexandre Torgue, Kuppuswamy Sathyanarayanan, Nandor Han,
linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches
On 15/01/2025 12:51, Linus Walleij wrote:
> On Tue, Jan 14, 2025 at 8:14 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>
>> Replace ternary (condition ? "enable" : "disable") syntax with helpers
>> from string_choices.h because:
>> 1. Simple function call with one argument is easier to read. Ternary
>> operator has three arguments and with wrapping might lead to quite
>> long code.
>> 2. Is slightly shorter thus also easier to read.
>> 3. It brings uniformity in the text - same string.
>> 4. Allows deduping by the linker, which results in a smaller binary
>> file.
>>
>> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>
> For a while I was critical about the string helpers but since both Andy
> and Krzysztof like them, I will consider myself convinced and start to
> like them instead.
It is pretty subjective, so I also find reasonable not to accept them to
your subsystem. To me they bring more benefits in complicated cases like:
(data_in ^ in_pol) & msk ? "hi" : "lo",
or from pinctr (note the line break):
seq_puts(s, pin->output_value ?
"high" : "low");
Anyway, thanks for review!
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] gpio: Use str_enable_disable-like helpers
2025-01-14 19:14 [PATCH v2] gpio: Use str_enable_disable-like helpers Krzysztof Kozlowski
` (2 preceding siblings ...)
2025-01-15 11:51 ` Linus Walleij
@ 2025-02-03 8:13 ` Bartosz Golaszewski
3 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2025-02-03 8:13 UTC (permalink / raw)
To: Doug Berger, Florian Fainelli,
Broadcom internal kernel review list, Linus Walleij,
Bartosz Golaszewski, Andy Shevchenko, Uwe Kleine-König,
Maxime Coquelin, Alexandre Torgue, Kuppuswamy Sathyanarayanan,
Nandor Han, linux-gpio, linux-arm-kernel, linux-kernel, linux-pwm,
linux-stm32, patches, Krzysztof Kozlowski
Cc: Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Tue, 14 Jan 2025 20:14:38 +0100, Krzysztof Kozlowski wrote:
> Replace ternary (condition ? "enable" : "disable") syntax with helpers
> from string_choices.h because:
> 1. Simple function call with one argument is easier to read. Ternary
> operator has three arguments and with wrapping might lead to quite
> long code.
> 2. Is slightly shorter thus also easier to read.
> 3. It brings uniformity in the text - same string.
> 4. Allows deduping by the linker, which results in a smaller binary
> file.
>
> [...]
Applied, thanks!
[1/1] gpio: Use str_enable_disable-like helpers
commit: de454ac4fc5a117a4264e8bdf60fca58021574b1
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-02-03 8:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-14 19:14 [PATCH v2] gpio: Use str_enable_disable-like helpers Krzysztof Kozlowski
2025-01-14 23:19 ` Doug Berger
2025-01-15 10:24 ` Charles Keepax
2025-01-15 11:51 ` Linus Walleij
2025-01-15 13:00 ` Krzysztof Kozlowski
2025-02-03 8:13 ` 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).