Re: [PATCH v2 1/2] gpio: tegra186: Simplify GPIO line name prefix handling

From: Jon Hunter

Date: Tue Feb 17 2026 - 08:30:08 EST



On 17/02/2026 12:17, Bartosz Golaszewski wrote:
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.

What we are gaining is by adding the '-' to the prefix directly in the tegra_gpio_soc structure, is that we no longer need the if-else clause in the code to add the dash if the prefix is valid. And this allows us to use the ternary operator instead.

If we drop this patch, then after patch 2/2, we will end up with nested if-else clauses to handle the prefix and multi-socket cases.

Jon

--
nvpublic