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:
parent
ea95bd8510
commit
5a646e03e9
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user