Skip to content

Commit e8873c0

Browse files
andy-shevLinus Walleij
authored andcommitted
pinctrl: intel: Actually disable Tx and Rx buffers on GPIO request
Mistakenly the buffers (input and output) become enabled together for a short period of time during GPIO request. This is problematic, because instead of initial motive to disable them in the commit af7e3ee ("pinctrl: intel: Disable input and output buffer when switching to GPIO"), the driven value on the pin, which might be used as an IRQ line, brings firmwares of some touch pads to an awkward state that needs a full power off to recover. Fix this, as stated in the culprit commit, by disabling the buffers. Fixes: af7e3ee ("pinctrl: intel: Disable input and output buffer when switching to GPIO") BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=210497 Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Link: https://lore.kernel.org/r/20201208182403.40435-1-andriy.shevchenko@linux.intel.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1 parent 7aeb353 commit e8873c0

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/pinctrl/intel/pinctrl-intel.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,8 @@ static void intel_gpio_set_gpio_mode(void __iomem *padcfg0)
442442
value |= PADCFG0_PMODE_GPIO;
443443

444444
/* Disable input and output buffers */
445-
value &= ~PADCFG0_GPIORXDIS;
446-
value &= ~PADCFG0_GPIOTXDIS;
445+
value |= PADCFG0_GPIORXDIS;
446+
value |= PADCFG0_GPIOTXDIS;
447447

448448
/* Disable SCI/SMI/NMI generation */
449449
value &= ~(PADCFG0_GPIROUTIOXAPIC | PADCFG0_GPIROUTSCI);

0 commit comments

Comments
 (0)