On Wed, Dec 1, 2021 at 2:35 PM Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote: > > On Tue, 2021-11-30 at 07:01 +0100, Thomas Weißschuh wrote: > > Fixes spurious wakeups from s0ix on Lenovo ThinkPad X1 Cargon Gen 9 > > on > > lid close. > > > > These wakeups are generated by interrupts from the ISH on changes to > > the > > lid status. > > > > By disabling the wake IRQ from the ISH we inhibit these spurious > > wakeups while keeping the resume from LID open through the ACPI > > interrupt. > > > > Reports on the Lenovo forums indicate that Lenovo ThinkPad X1 Yoga > > Gen6 > > is also affected. > > > > Fixes: ae02e5d40d5f ("HID: intel-ish-hid: ipc layer") > > BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214855 > > Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx> > Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx> Applied to for-5.16/upstream-fixes in hid.git thanks Cheers, Benjamin > > > --- > > drivers/hid/intel-ish-hid/ipc/pci-ish.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/hid/intel-ish-hid/ipc/pci-ish.c > > b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > > index 1c5039081db2..8e9d9450cb83 100644 > > --- a/drivers/hid/intel-ish-hid/ipc/pci-ish.c > > +++ b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > > @@ -266,7 +266,8 @@ static void __maybe_unused > > ish_resume_handler(struct work_struct *work) > > > > if (ish_should_leave_d0i3(pdev) && !dev->suspend_flag > > && IPC_IS_ISH_ILUP(fwsts)) { > > - disable_irq_wake(pdev->irq); > > + if (device_may_wakeup(&pdev->dev)) > > + disable_irq_wake(pdev->irq); > > > > ish_set_host_ready(dev); > > > > @@ -337,7 +338,8 @@ static int __maybe_unused ish_suspend(struct device > > *device) > > */ > > pci_save_state(pdev); > > > > - enable_irq_wake(pdev->irq); > > + if (device_may_wakeup(&pdev->dev)) > > + enable_irq_wake(pdev->irq); > > } > > } else { > > /* > > > > base-commit: d58071a8a76d779eedab38033ae4c821c30295a5 > >