[PATCH] Input: gpio-keys - fix misleading GPIO number

Wei posted 1 patch 1 week ago
drivers/input/keyboard/gpio_keys.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] Input: gpio-keys - fix misleading GPIO number
Posted by Wei 1 week ago
From: Wei Liu <wei.liu@oss.qualcomm.com>

The error log prints button->gpio, which is unset and default to 0
in non-legacy configurations, leading to misleading messages.

Use desc_to_gpio() to report the actual global GPIO number.

Signed-off-by: Wei Liu <wei.liu@oss.qualcomm.com>
---
 drivers/input/keyboard/gpio_keys.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index f9db86da0818..243295a3ea1d 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -584,7 +584,7 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
 				error = irq;
 				dev_err_probe(dev, error,
 					      "Unable to get irq number for GPIO %d\n",
-					      button->gpio);
+					      desc_to_gpio(bdata->gpiod));
 				return error;
 			}
 			bdata->irq = irq;
-- 
2.34.1
Re: [PATCH] Input: gpio-keys - fix misleading GPIO number
Posted by Linus Walleij 1 week ago
On Wed, Sep 24, 2025 at 8:49 AM Wei <wei.liu@oss.qualcomm.com> wrote:

> From: Wei Liu <wei.liu@oss.qualcomm.com>
>
> The error log prints button->gpio, which is unset and default to 0
> in non-legacy configurations, leading to misleading messages.
>
> Use desc_to_gpio() to report the actual global GPIO number.
>
> Signed-off-by: Wei Liu <wei.liu@oss.qualcomm.com>
> ---
>  drivers/input/keyboard/gpio_keys.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> index f9db86da0818..243295a3ea1d 100644
> --- a/drivers/input/keyboard/gpio_keys.c
> +++ b/drivers/input/keyboard/gpio_keys.c
> @@ -584,7 +584,7 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
>                                 error = irq;
>                                 dev_err_probe(dev, error,
>                                               "Unable to get irq number for GPIO %d\n",
> -                                             button->gpio);
> +                                             desc_to_gpio(bdata->gpiod));

That's technically a legacy interface.

Can we just not mention the GPIO number?

The only thing that would actually make sense in this kind
of errors is if we add some new interface like:

const char * get_gpiod_debug_string(gpiod);

that can output the chip and line number from the core.

Yours,
Linus Walleij