Re: [PATCH v2 1/2] gpio: tegra186: Simplify GPIO line name prefix handling
From: Bartosz Golaszewski
Date: Tue Feb 17 2026 - 07:18:15 EST
On Tue, 17 Feb 2026 09:14:30 +0100, Prathamesh Shete <pshete@xxxxxxxxxx> said:
> Introduce TEGRA_GPIO_PREFIX() to define the Tegra SoC GPIO name
> prefix in one place. Use it for the Tegra410 COMPUTE and SYSTEM
> controllers so the prefix is "COMPUTE-" and "SYSTEM-" respectively.
>
> Signed-off-by: Prathamesh Shete <pshete@xxxxxxxxxx>
> ---
> Changes in v2:
> * Split the v1 patch into two; this one to simplify prefix handling.
> ---
> drivers/gpio/gpio-tegra186.c | 15 +++++++--------
> 1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpio/gpio-tegra186.c b/drivers/gpio/gpio-tegra186.c
> index 9c874f07be75..f04cc240b5ec 100644
> --- a/drivers/gpio/gpio-tegra186.c
> +++ b/drivers/gpio/gpio-tegra186.c
> @@ -942,12 +942,8 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
> char *name;
>
> for (j = 0; j < port->pins; j++) {
> - if (gpio->soc->prefix)
> - name = devm_kasprintf(gpio->gpio.parent, GFP_KERNEL, "%s-P%s.%02x",
> - gpio->soc->prefix, port->name, j);
> - else
> - name = devm_kasprintf(gpio->gpio.parent, GFP_KERNEL, "P%s.%02x",
> - port->name, j);
> + name = devm_kasprintf(gpio->gpio.parent, GFP_KERNEL, "%sP%s.%02x",
> + gpio->soc->prefix ?: "", port->name, j);
> if (!name)
> return -ENOMEM;
>
> @@ -1373,6 +1369,9 @@ static const struct tegra_gpio_soc tegra256_main_soc = {
> .has_vm_support = true,
> };
>
> +/* Macro to define GPIO name prefix with separator */
> +#define TEGRA_GPIO_PREFIX(_x) _x "-"
> +
> #define TEGRA410_COMPUTE_GPIO_PORT(_name, _bank, _port, _pins) \
> TEGRA_GPIO_PORT(TEGRA410_COMPUTE, _name, _bank, _port, _pins)
>
> @@ -1388,7 +1387,7 @@ static const struct tegra_gpio_soc tegra410_compute_soc = {
> .num_ports = ARRAY_SIZE(tegra410_compute_ports),
> .ports = tegra410_compute_ports,
> .name = "tegra410-gpio-compute",
> - .prefix = "COMPUTE",
> + .prefix = TEGRA_GPIO_PREFIX("COMPUTE"),
> .num_irqs_per_bank = 8,
> .instance = 0,
> };
> @@ -1418,7 +1417,7 @@ static const struct tegra_gpio_soc tegra410_system_soc = {
> .num_ports = ARRAY_SIZE(tegra410_system_ports),
> .ports = tegra410_system_ports,
> .name = "tegra410-gpio-system",
> - .prefix = "SYSTEM",
> + .prefix = TEGRA_GPIO_PREFIX("SYSTEM"),
> .num_irqs_per_bank = 8,
> .instance = 0,
> };
> --
> 2.43.0
>
>
I'm perfectly fine with patch 2/2 but this one is giving me a hard time. What
are we really gaining other than some questionable obfuscation? Keeping the
dash in the format string makes more sense to me and if we ever reuse the
prefix, we'll need to remember about it trimming it. I would drop this patch
and keep just 2/2.
Bartosz