mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
gpiolib: acpi: Switch to use enum in acpi_gpio_in_ignore_list()
Switch to use enum instead of pointers in acpi_gpio_in_ignore_list() which moves towards isolating the GPIO ACPI and quirk APIs. It will helps splitting them completely in the next changes. No functional changes. Reviewed-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
parent
44aa9861d8
commit
b24fd5bc8e
|
|
@ -350,14 +350,25 @@ static struct gpio_desc *acpi_request_own_gpiod(struct gpio_chip *chip,
|
|||
return desc;
|
||||
}
|
||||
|
||||
static bool acpi_gpio_in_ignore_list(const char *ignore_list, const char *controller_in,
|
||||
unsigned int pin_in)
|
||||
bool acpi_gpio_in_ignore_list(enum acpi_gpio_ignore_list list, const char *controller_in,
|
||||
unsigned int pin_in)
|
||||
{
|
||||
const char *controller, *pin_str;
|
||||
const char *ignore_list, *controller, *pin_str;
|
||||
unsigned int pin;
|
||||
char *endp;
|
||||
int len;
|
||||
|
||||
switch (list) {
|
||||
case ACPI_GPIO_IGNORE_WAKE:
|
||||
ignore_list = ignore_wake;
|
||||
break;
|
||||
case ACPI_GPIO_IGNORE_INTERRUPT:
|
||||
ignore_list = ignore_interrupt;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
controller = ignore_list;
|
||||
while (controller) {
|
||||
pin_str = strchr(controller, '@');
|
||||
|
|
@ -394,7 +405,7 @@ static bool acpi_gpio_irq_is_wake(struct device *parent,
|
|||
if (agpio->wake_capable != ACPI_WAKE_CAPABLE)
|
||||
return false;
|
||||
|
||||
if (acpi_gpio_in_ignore_list(ignore_wake, dev_name(parent), pin)) {
|
||||
if (acpi_gpio_in_ignore_list(ACPI_GPIO_IGNORE_WAKE, dev_name(parent), pin)) {
|
||||
dev_info(parent, "Ignoring wakeup on pin %u\n", pin);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -437,7 +448,7 @@ static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
|
|||
if (!handler)
|
||||
return AE_OK;
|
||||
|
||||
if (acpi_gpio_in_ignore_list(ignore_interrupt, dev_name(chip->parent), pin)) {
|
||||
if (acpi_gpio_in_ignore_list(ACPI_GPIO_IGNORE_INTERRUPT, dev_name(chip->parent), pin)) {
|
||||
dev_info(chip->parent, "Ignoring interrupt on pin %u\n", pin);
|
||||
return AE_OK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,4 +58,12 @@ static inline int acpi_gpio_count(const struct fwnode_handle *fwnode,
|
|||
}
|
||||
#endif
|
||||
|
||||
enum acpi_gpio_ignore_list {
|
||||
ACPI_GPIO_IGNORE_WAKE,
|
||||
ACPI_GPIO_IGNORE_INTERRUPT,
|
||||
};
|
||||
|
||||
bool acpi_gpio_in_ignore_list(enum acpi_gpio_ignore_list list,
|
||||
const char *controller_in, unsigned int pin_in);
|
||||
|
||||
#endif /* GPIOLIB_ACPI_H */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user