Patch "gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     gpiolib-acpi-add-a-ignore-interrupt-quirk-for-peaq-c.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 7b85a357f506f7b73e2665fd31e403963e3e93fe
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date:   Sat Sep 9 16:18:10 2023 +0200

    gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010
    
    [ Upstream commit 6cc64f6173751d212c9833bde39e856b4f585a3e ]
    
    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@xxxxxxxxxx>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
    Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
    Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
    Acked-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230909141816.58358-3-hdegoede@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index a775d2bdac94f..980ec04892173 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1655,6 +1655,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 */
 };
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux