On Wed, Nov 25, 2020 at 3:03 PM Coiby Xu <coiby.xu@xxxxxxxxx> wrote: > > Debounce filter setting should be independent from IRQ type setting > because according to the ACPI specs, there are separate arguments for > specifying debounce timeout and IRQ type in GpioIo() and GpioInt(). > > Together with commit 06abe8291bc31839950f7d0362d9979edc88a666 > ("pinctrl: amd: fix incorrect way to disable debounce filter") and > Andy's patch "gpiolib: acpi: Take into account debounce settings" [1], > this will fix broken touchpads for laptops whose BIOS set the > debounce timeout to a relatively large value. For example, the BIOS > of Lenovo AMD gaming laptops including Legion-5 15ARH05 (R7000), > Legion-5P (R7000P) and IdeaPad Gaming 3 15ARH05, set the debounce > timeout to 124.8ms. This led to the kernel receiving only ~7 HID > reports per second from the Synaptics touchpad > (MSFT0001:00 06CB:7F28). > > Existing touchpads like [2][3] are not troubled by this bug because > the debounce timeout has been set to 0 by the BIOS before enabling > the debounce filter in setting IRQ type. > > [1] https://lore.kernel.org/linux-gpio/20201111222008.39993-11-andriy.shevchenko@xxxxxxxxxxxxxxx/ JFYI: this is nowadays 8dcb7a15a585 ("gpiolib: acpi: Take into account debounce settings") (No need to recend, just an information that can be applied maybe by Linus) > [2] https://github.com/Syniurge/i2c-amd-mp2/issues/11#issuecomment-721331582 > [3] https://forum.manjaro.org/t/random-short-touchpad-freezes/30832/28 -- With Best Regards, Andy Shevchenko