linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] gpio: sysfs: Try numbered exports if symbolic names fail
@ 2020-12-09 16:18 Linus Walleij
  2020-12-10  8:34 ` Johan Hovold
  0 siblings, 1 reply; 4+ messages in thread
From: Linus Walleij @ 2020-12-09 16:18 UTC (permalink / raw)
  To: linux-gpio
  Cc: Bartosz Golaszewski, Linus Walleij, Manivannan Sadhasivam,
	Johan Hovold

If a GPIO line cannot be exported using a symbolic name from
the .names array in the gpiochip, fall back to using the
"gpioN" naming system instead of just failing.

Cc: Manivannan Sadhasivam <mani@kernel.org>
Cc: Johan Hovold <johan@kernel.org>
Suggested-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpio/gpiolib-sysfs.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
index 728f6c687182..a5a0e9238217 100644
--- a/drivers/gpio/gpiolib-sysfs.c
+++ b/drivers/gpio/gpiolib-sysfs.c
@@ -627,10 +627,24 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
 	if (chip->names && chip->names[offset])
 		ioname = chip->names[offset];
 
-	dev = device_create_with_groups(&gpio_class, &gdev->dev,
-					MKDEV(0, 0), data, gpio_groups,
-					ioname ? ioname : "gpio%u",
-					desc_to_gpio(desc));
+	/*
+	 * If we have a symbolic name for the GPIO we try to use that
+	 * for the exported sysfs device/file, as legacy scripts depend
+	 * on it. If we don't have a symbolic name or if there is a
+	 * namespace collision, we stick with the "gpioN" name.
+	 */
+	dev = NULL;
+	if (ioname)
+		dev = device_create_with_groups(&gpio_class, &gdev->dev,
+						MKDEV(0, 0), data, gpio_groups,
+						ioname,
+						desc_to_gpio(desc));
+	if (IS_ERR_OR_NULL(dev))
+		dev = device_create_with_groups(&gpio_class, &gdev->dev,
+						MKDEV(0, 0), data, gpio_groups,
+						"gpio%u",
+						desc_to_gpio(desc));
+
 	if (IS_ERR(dev)) {
 		status = PTR_ERR(dev);
 		goto err_free_data;
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-12-14  9:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-09 16:18 [PATCH] gpio: sysfs: Try numbered exports if symbolic names fail Linus Walleij
2020-12-10  8:34 ` Johan Hovold
2020-12-11 23:41   ` Linus Walleij
2020-12-14  9:07     ` Johan Hovold

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).