From: Hans de Goede <hdegoede@redhat.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Mika Westerberg" <mika.westerberg@linux.intel.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Linus Walleij" <linus.walleij@linaro.org>
Cc: Hans de Goede <hdegoede@redhat.com>,
platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: [PATCH 2/8] gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010
Date: Sat, 9 Sep 2023 16:18:10 +0200 [thread overview]
Message-ID: <20230909141816.58358-3-hdegoede@redhat.com> (raw)
In-Reply-To: <20230909141816.58358-1-hdegoede@redhat.com>
On the Peaq C1010 2-in-1 INT33FC:00 pin 3 is connected to
a "dolby" button. At the ACPI level an _AEI event-handler
is connected which sets an ACPI variable to 1 on both
edges. This variable can be polled + cleared to 0 using WMI.
Since the variable is set on both edges the WMI interface is pretty
useless even when polling. So instead of writing a custom WMI
driver for this the x86-android-tablets code instantiates
a gpio-keys platform device for the "dolby" button.
Add an ignore_interrupt quirk for INT33FC:00 pin 3 on the Peaq C1010,
so that it is not seen as busy when the gpio-keys driver requests it.
Note this replaces a hack in x86-android-tablets where it would
call acpi_gpiochip_free_interrupts() on the INT33FC:00 GPIO
controller. acpi_gpiochip_free_interrupts() is considered private
(internal) gpiolib API so x86-android-tablets should stop using it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/gpio/gpiolib-acpi.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 80b9650a2424..583ac5da9d41 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1654,6 +1654,26 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
.ignore_wake = "SYNA1202:00@16",
},
},
+ {
+ /*
+ * On the Peaq C1010 2-in-1 INT33FC:00 pin 3 is connected to
+ * a "dolby" button. At the ACPI level an _AEI event-handler
+ * is connected which sets an ACPI variable to 1 on both
+ * edges. This variable can be polled + cleared to 0 using
+ * WMI. But since the variable is set on both edges the WMI
+ * interface is pretty useless even when polling.
+ * So instead the x86-android-tablets code instantiates
+ * a gpio-keys platform device for it.
+ * Ignore the _AEI handler for the pin, so that it is not busy.
+ */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"),
+ },
+ .driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+ .ignore_interrupt = "INT33FC:00@3",
+ },
+ },
{} /* Terminating entry */
};
--
2.41.0
next prev parent reply other threads:[~2023-09-09 16:25 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-09 14:18 [PATCH 0/8] x86-android-tablets: Stop using gpiolib private APIs Hans de Goede
2023-09-09 14:18 ` [PATCH 1/8] gpiolib: acpi: Check if a GPIO is listed in ignore_interrupt earlier Hans de Goede
2023-09-10 7:51 ` Andy Shevchenko
2023-09-11 5:24 ` Mika Westerberg
2023-09-11 9:50 ` Bartosz Golaszewski
2023-09-09 14:18 ` Hans de Goede [this message]
2023-09-10 7:53 ` [PATCH 2/8] gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010 Andy Shevchenko
2023-09-11 5:24 ` Mika Westerberg
2023-09-11 9:51 ` Bartosz Golaszewski
2023-09-09 14:18 ` [PATCH 3/8] platform/x86: x86-android-tablets: Remove invalid_aei_gpiochip from " Hans de Goede
2023-09-11 9:52 ` Bartosz Golaszewski
2023-09-09 14:18 ` [PATCH 4/8] platform/x86: x86-android-tablets: Remove invalid_aei_gpiochip support Hans de Goede
2023-09-10 7:56 ` Andy Shevchenko
2023-09-10 7:57 ` Andy Shevchenko
2023-09-09 14:18 ` [PATCH 5/8] platform/x86: x86-android-tablets: Create a platform_device from module_init() Hans de Goede
2023-09-10 8:07 ` Andy Shevchenko
2023-09-10 11:19 ` Hans de Goede
2023-09-09 14:18 ` [PATCH 6/8] platform/x86: x86-android-tablets: Stop using gpiolib private APIs Hans de Goede
2023-09-10 8:24 ` Andy Shevchenko
2023-09-10 11:26 ` Hans de Goede
2023-09-11 12:49 ` Bartosz Golaszewski
2023-09-11 12:56 ` Andy Shevchenko
2023-09-11 12:59 ` Hans de Goede
2023-09-11 12:59 ` Bartosz Golaszewski
2023-09-10 11:28 ` Hans de Goede
2023-09-11 12:50 ` Bartosz Golaszewski
2023-09-11 13:07 ` Hans de Goede
2023-09-11 13:18 ` Bartosz Golaszewski
2023-09-11 13:32 ` Hans de Goede
2023-09-11 13:37 ` Bartosz Golaszewski
2023-09-11 13:53 ` Hans de Goede
2023-09-11 14:04 ` Bartosz Golaszewski
2023-09-11 14:12 ` Hans de Goede
2023-09-11 15:36 ` Andy Shevchenko
2023-09-11 16:03 ` Bartosz Golaszewski
2023-09-09 14:18 ` [PATCH 7/8] platform/x86: x86-android-tablets: Use platform-device as gpio-keys parent Hans de Goede
2023-09-09 14:18 ` [PATCH 8/8] platform/x86: x86-android-tablets: Drop "linux,power-supply-name" from lenovo_yt3_bq25892_0_props[] Hans de Goede
2023-09-11 8:18 ` [PATCH 0/8] x86-android-tablets: Stop using gpiolib private APIs Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230909141816.58358-3-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=andy@kernel.org \
--cc=brgl@bgdev.pl \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox