Commit 5a646e03 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Bartosz Golaszewski
Browse files

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: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240530191418.1138003-2-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent ea95bd85
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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;
}