]> git.baikalelectronics.ru Git - kernel.git/commit
platform/x86: x86-android-tablets: Fix EBUSY error when requesting IOAPIC IRQs
authorHans de Goede <hdegoede@redhat.com>
Wed, 23 Feb 2022 13:31:50 +0000 (14:31 +0100)
committerHans de Goede <hdegoede@redhat.com>
Wed, 2 Mar 2022 10:43:45 +0000 (11:43 +0100)
commita9178f566db6939737ad8d2de89a4bd85462e0e7
treeb3b8f992e3b5d44a9e99d88c0b2e5fe05c71cbe4
parentff782cfa28ad5b2a292d9c4984eb7b4437e65571
platform/x86: x86-android-tablets: Fix EBUSY error when requesting IOAPIC IRQs

Sometimes IRQs used by GPIOs in direct-IRQ mode are already registered
because they are used as ACPI "Interrupt () {}" resource for one of the
many bogus I2C devices present in the broken DSDTs of Android x86 tablets.

This is an issue if the existing (bogus) ACPI resource uses different
trigger settings then what is being requested, leading to an -EBUSY
error return of acpi_register_gsi().

Fix this by calling acpi_unregister_gsi() first, so that
the acpi_register_gsi() is allowed to change the trigger settings.

In cases where the GSI has not been registered yet
the acpi_unregister_gsi() is a no-op.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220223133153.730337-3-hdegoede@redhat.com
drivers/platform/x86/x86-android-tablets.c