> On Dec 8, 2020, at 01:59, Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > Mistakenly the buffers (input and output) become together enabled for a little > period of time during GPIO request. This is problematic, because instead of > initial motive to disable them in the commit af7e3eeb84e2 > ("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 > firmware of some touch pads in an awkward state that needs a full power off > to recover. Fix this by, as stated in a culprit commit, disabling the buffers. > > Fixes: af7e3eeb84e2 ("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@xxxxxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Tested-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> > --- > drivers/pinctrl/intel/pinctrl-intel.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c > index e77145e3b31b..5cd720f5b0e1 100644 > --- a/drivers/pinctrl/intel/pinctrl-intel.c > +++ b/drivers/pinctrl/intel/pinctrl-intel.c > @@ -452,8 +452,8 @@ static void intel_gpio_set_gpio_mode(void __iomem *padcfg0) > value |= PADCFG0_PMODE_GPIO; > > /* Disable input and output buffers */ > - value &= ~PADCFG0_GPIORXDIS; > - value &= ~PADCFG0_GPIOTXDIS; > + value |= PADCFG0_GPIORXDIS; > + value |= PADCFG0_GPIOTXDIS; > > /* Disable SCI/SMI/NMI generation */ > value &= ~(PADCFG0_GPIROUTIOXAPIC | PADCFG0_GPIROUTSCI); > -- > 2.29.2 > >