From: Linus Walleij linus.walleij@linaro.org
[ Upstream commit 24e78079bf2250874e33da2e7cfbb6db72d3caf4 ]
Some GPIO lines appear named "?" in the lsgpio dump due to their requesting drivers not passing a reasonable label.
Most typically this happens if a device tree node just defines gpios = <...> and not foo-gpios = <...>, the former gets named "foo" and the latter gets named "?".
However the struct device passed in is always valid so let's just label the GPIO with dev_name() on the device if no proper label was passed.
Cc: Reported-by: Jason Kridner jkridner@beagleboard.org Reported-by: Jason Kridner jkridner@beagleboard.org Signed-off-by: Linus Walleij linus.walleij@linaro.org Signed-off-by: Sasha Levin alexander.levin@microsoft.com --- drivers/gpio/gpiolib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 8abdd0035091..c6c499691541 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -3638,7 +3638,8 @@ struct gpio_desc *__must_check gpiod_get_index(struct device *dev, return desc; }
- status = gpiod_request(desc, con_id); + /* If a connection label was passed use that, else use the device name as label */ + status = gpiod_request(desc, con_id ? con_id : dev_name(dev)); if (status < 0) return ERR_PTR(status);