+Cc: Hans. I can't speak for AMD, but I think it may be useful for Intel pin control. However, I didn't check what may be the side effects of this change and neither contributor answered to my comments... So, just heads up. On Fri, Apr 24, 2020 at 05:12:01PM +0800, caizhaopeng@xxxxxxxxxxxxx wrote: > From: Caicai <caizhaopeng@xxxxxxxxxxxxx> > > I had tested two Notebook machines, the Intel i5(or amd ryzen) > with elan touchpad, and there's a probability that the touchpad > won't work after going to the S3/S4 to wake up, that it would > appear no more than 15 times. I found that there's no interrupt > to check for /proc/interrupt. It was found that the gpio > interrupt of i2c was also not on top. By adding the gpio > interrupt flags with IRQF_EARLY_RESUME, now the touchpad tested > 200 + times works well. > > Signed-off-by: Caicai <caizhaopeng@xxxxxxxxxxxxx> > --- > drivers/pinctrl/intel/pinctrl-intel.c | 2 +- > drivers/pinctrl/pinctrl-amd.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c > index 8fb6c9668c37..a350dade6aa0 100644 > --- a/drivers/pinctrl/intel/pinctrl-intel.c > +++ b/drivers/pinctrl/intel/pinctrl-intel.c > @@ -1189,7 +1189,7 @@ static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) > * controllers share the same interrupt line. > */ > ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, > - IRQF_SHARED | IRQF_NO_THREAD, > + IRQF_SHARED | IRQF_NO_THREAD | IRQF_EARLY_RESUME, > dev_name(pctrl->dev), pctrl); > if (ret) { > dev_err(pctrl->dev, "failed to request interrupt\n"); > diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c > index 977792654e01..70c37f4da2b1 100644 > --- a/drivers/pinctrl/pinctrl-amd.c > +++ b/drivers/pinctrl/pinctrl-amd.c > @@ -937,7 +937,7 @@ static int amd_gpio_probe(struct platform_device *pdev) > } > > ret = devm_request_irq(&pdev->dev, irq_base, amd_gpio_irq_handler, > - IRQF_SHARED, KBUILD_MODNAME, gpio_dev); > + IRQF_SHARED | IRQF_EARLY_RESUME | IRQF_NO_THREAD, KBUILD_MODNAME, gpio_dev); > if (ret) > goto out2; > > -- > 2.20.1 > > > -- With Best Regards, Andy Shevchenko