On Wed, Nov 25, 2020 at 2: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/ > [2] https://github.com/Syniurge/i2c-amd-mp2/issues/11#issuecomment-721331582 > [3] https://forum.manjaro.org/t/random-short-touchpad-freezes/30832/28 > > Cc: Hans de Goede <hdegoede@xxxxxxxxxx> > Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Cc: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1887190 > Link: https://lore.kernel.org/linux-gpio/CAHp75VcwiGREBUJ0A06EEw-SyabqYsp%2Bdqs2DpSrhaY-2GVdAA%40mail.gmail.com/ > Signed-off-by: Coiby Xu <coiby.xu@xxxxxxxxx> > --- > Changelog v4: > - Note in the commit message that this patch depends on other two > patches to fix the broken touchpad [Hans de Goede] > - Add in the commit message that one more touchpad could be fixed. Patch applied for fixes adding a reference to Andy's commit. Thanks for sorting this out! Yours, Linus Walleij