1

gpiolib: Return label, if set, for IRQ only line

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>
Link: https://lore.kernel.org/r/20240530191418.1138003-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
Andy Shevchenko 2024-05-30 22:12:29 +03:00 committed by Bartosz Golaszewski
parent ea95bd8510
commit 5a646e03e9

View File

@ -106,16 +106,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;
}