linux/drivers/pinctrl
Coiby Xu 47a0001436 pinctrl: amd: remove debounce filter setting in IRQ type setting
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 06abe8291b
("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@linux.intel.com/
    8dcb7a15a5 ("gpiolib: acpi: Take into account debounce settings")
[2] https://github.com/Syniurge/i2c-amd-mp2/issues/11#issuecomment-721331582
[3] https://forum.manjaro.org/t/random-short-touchpad-freezes/30832/28

Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/linux-gpio/CAHp75VcwiGREBUJ0A06EEw-SyabqYsp%2Bdqs2DpSrhaY-2GVdAA%40mail.gmail.com/
BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1887190
Link: https://lore.kernel.org/r/20201125130320.311059-1-coiby.xu@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-04 10:02:18 +01:00
..
actions pinctrl: actions: pinctrl-s900: Constify s900_padinfo[] 2020-09-12 12:15:19 +02:00
aspeed pinctrl: aspeed: Fix GPI only function problem. 2020-11-05 15:32:58 +01:00
bcm pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB 2020-09-29 14:58:56 +02:00
berlin
cirrus pinctrl: madera: Add missing call to pinctrl_unregister_mappings 2020-02-29 00:34:23 +01:00
freescale pinctrl: imx: Support building i.MX pinctrl core driver as module 2020-09-29 13:44:36 +02:00
intel pinctrl: baytrail: Avoid clearing debounce value when turning it off 2020-11-16 12:07:57 +02:00
mediatek Pin control bulk changes for the v5.10 kernel cycle 2020-10-14 15:25:04 -07:00
meson pinctrl: meson: pinctrl-meson-a1: Remove unused const variable 'i2c_slave_groups' 2020-07-16 15:58:12 +02:00
mvebu Pin control bulk changes for the v5.10 kernel cycle 2020-10-14 15:25:04 -07:00
nomadik pinctrl: nomadik: Fix pull direction debug info 2020-08-27 10:25:17 +02:00
nuvoton pinctrl: nuvoton: npcm7xx: Constify static ops structs 2020-09-30 10:37:52 +02:00
pxa pinctrl: pxa: pxa2xx: Remove 'pxa2xx_pinctrl_exit()' which is unused and broken 2020-06-04 00:05:13 +02:00
qcom pinctrl: qcom: sm8250: Specify PDC map 2020-11-10 14:57:05 +01:00
renesas pinctrl: renesas: Reintroduce SH_PFC for common sh-pfc code 2020-09-15 10:04:35 +02:00
samsung pinctrl: samsung: Use bank name as irqchip name 2020-08-04 01:29:10 +02:00
sirf pinctrl: sirf: pinctrl-atlas7: Fix a bunch of documentation misdemeanours 2020-07-16 15:12:38 +02:00
spear pinctrl: spear: simplify the return expression of tvc_connect() 2020-09-29 15:26:25 +02:00
sprd pinctrl: sprd: use module_platform_driver to simplify the code 2020-09-29 14:53:11 +02:00
stm32 pinctrl: stm32: use the hwspin_lock_timeout_in_atomic() API 2020-07-23 15:19:28 +02:00
sunxi pinctrl: sunxi: add support for the Allwinner A100 pin controller 2020-09-12 12:35:42 +02:00
tegra This is the bulk of the pin control changes for the v5.9 2020-08-09 12:52:28 -07:00
ti pinctl: ti: iodelay: Replace HTTP links with HTTPS ones 2020-07-20 16:15:59 +02:00
uniphier pinctrl: uniphier: Replace zero-length array with flexible-array member 2020-02-21 15:36:24 +01:00
visconti pinctrl: visconti: PINCTRL_TMPV7700 should depend on ARCH_VISCONTI 2020-10-07 11:48:44 +02:00
vt8500 pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
zte pinctrl: fix several typos 2020-04-28 13:26:49 +02:00
core.c pinctrl: core: print gpio in pins debugfs file 2020-08-04 01:29:10 +02:00
core.h
devicetree.c pinctrl: devicetree: Keep deferring even on timeout 2020-09-12 18:19:53 +02:00
devicetree.h
Kconfig pinctrl: renesas: Updates for v5.10 2020-09-21 23:43:30 +02:00
Makefile pinctrl: renesas: Updates for v5.10 2020-09-21 23:43:30 +02:00
pinconf-generic.c pinctrl: pinconf-generic: Add function parameter description 'pctldev' 2020-07-16 15:12:39 +02:00
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl: amd: remove debounce filter setting in IRQ type setting 2020-12-04 10:02:18 +01:00
pinctrl-amd.h pinctrl: amd: Add missing pins to the pin group list 2020-10-07 15:37:17 +02:00
pinctrl-artpec6.c pinctrl: artpec6: fix __iomem on reg in set 2020-01-07 13:57:17 +01:00
pinctrl-as3722.c
pinctrl-at91-pio4.c pinctrl: at91-pio4: add support for sama7g5 SoC 2020-09-29 15:28:00 +02:00
pinctrl-at91.c pinctrl: pinctrl-at91: Demote non-kerneldoc header and complete another 2020-07-16 15:13:55 +02:00
pinctrl-at91.h
pinctrl-axp209.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-bm1880.c pinctrl: pinctrl-bm1880: Rename ill documented struct attribute entries 2020-07-16 15:13:55 +02:00
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-da850-pupd.c
pinctrl-da9062.c pinctrl: da9062: Fix error gpiolib.h path 2020-02-28 14:15:53 +01:00
pinctrl-digicolor.c
pinctrl-equilibrium.c
pinctrl-equilibrium.h
pinctrl-falcon.c pinctrl: falcon: fix syntax error 2020-03-09 13:52:37 +01:00
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: ingenic: Fix invalid SSI pins 2020-10-28 16:50:43 +01:00
pinctrl-lantiq.c pinctrl: fix several typos 2020-04-28 13:26:49 +02:00
pinctrl-lantiq.h
pinctrl-lpc18xx.c pinctrl: lpc18xx: Use fallthrough pseudo-keyword 2020-07-17 14:04:57 +02:00
pinctrl-max77620.c
pinctrl-mcp23s08_i2c.c pinctrl: mcp23s08: Split to three parts: core, I²C, SPI 2020-04-16 14:21:23 +02:00
pinctrl-mcp23s08_spi.c pinctrl: mcp23s08: Print error message when regmap init fails 2020-11-05 11:30:31 +01:00
pinctrl-mcp23s08.c pinctrl: mcp23s08: Fix mcp23x17 precious range 2020-09-12 11:31:19 +02:00
pinctrl-mcp23s08.h pinctrl: mcp23s08: Split to three parts: core, I²C, SPI 2020-04-16 14:21:23 +02:00
pinctrl-ocelot.c pinctrl: ocelot: simplify the return expression of ocelot_gpiochip_register() 2020-09-29 15:29:24 +02:00
pinctrl-oxnas.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-palmas.c
pinctrl-pic32.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-rk805.c pinctrl: rk805: Constify rk805_gpio_cfgs 2020-05-12 13:35:33 +02:00
pinctrl-rockchip.c pinctrl: rockchip: create irq mapping in gpio_to_irq 2020-11-04 15:00:28 +01:00
pinctrl-single.c pinctrl: single: fix debug output when #pinctrl-cells = 2 2020-10-01 10:04:53 +02:00
pinctrl-st.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-stmfx.c pinctrl: stmfx: Use irqchip template 2020-08-04 01:29:10 +02:00
pinctrl-sx150x.c pinctrl: sx150x: Fix pinctrl enablement order bug 2020-09-12 18:11:09 +02:00
pinctrl-tb10x.c
pinctrl-u300.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c
pinmux.c pinctrl: pinmux: Add some missing parameter descriptions 2020-07-16 15:12:38 +02:00
pinmux.h