[PATCH v2 1/2] gpiolib: Return label, if set, for IRQ only line

Andy Shevchenko posted 2 patches 1 year, 6 months ago
[PATCH v2 1/2] gpiolib: Return label, if set, for IRQ only line
Posted by Andy Shevchenko 1 year, 6 months ago
If line has been locked as IRQ without requesting,
still check its label and return it, if not NULL.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/gpio/gpiolib.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 73c9f99d141e..a6032b84ba98 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -107,16 +107,16 @@ const char *gpiod_get_label(struct gpio_desc *desc)
 	unsigned long flags;
 
 	flags = READ_ONCE(desc->flags);
-	if (test_bit(FLAG_USED_AS_IRQ, &flags) &&
-	    !test_bit(FLAG_REQUESTED, &flags))
-		return "interrupt";
-
-	if (!test_bit(FLAG_REQUESTED, &flags))
-		return NULL;
 
 	label = srcu_dereference_check(desc->label, &desc->gdev->desc_srcu,
 				srcu_read_lock_held(&desc->gdev->desc_srcu));
 
+	if (test_bit(FLAG_USED_AS_IRQ, &flags))
+		return label->str ?: "interrupt";
+
+	if (!test_bit(FLAG_REQUESTED, &flags))
+		return NULL;
+
 	return label->str;
 }
 
-- 
2.43.0.rc1.1336.g36b5255a03ac
Re: [PATCH v2 1/2] gpiolib: Return label, if set, for IRQ only line
Posted by Linus Walleij 1 year, 6 months ago
On Thu, May 30, 2024 at 9:14 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> If line has been locked as IRQ without requesting,
> still check its label and return it, if not NULL.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

I'm OK with it personally, the perfect solution would be to catenate
"interrupt" to the line name so we don't miss the information that the
line is used for interrupts in case of proper labels, but it's not a big
problem.

Yours,
Linus Walleij