Skip to content

Commit 086e81f

Browse files
t-8chbentiss
authored andcommitted
HID: intel-ish-hid: ipc: only enable IRQ wakeup when requested
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: ae02e5d ("HID: intel-ish-hid: ipc layer") BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214855 Signed-off-by: Thomas Weißschuh <[email protected]> Acked-by: Srinivas Pandruvada <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent caff009 commit 086e81f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/hid/intel-ish-hid/ipc/pci-ish.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,8 @@ static void __maybe_unused ish_resume_handler(struct work_struct *work)
266266

267267
if (ish_should_leave_d0i3(pdev) && !dev->suspend_flag
268268
&& IPC_IS_ISH_ILUP(fwsts)) {
269-
disable_irq_wake(pdev->irq);
269+
if (device_may_wakeup(&pdev->dev))
270+
disable_irq_wake(pdev->irq);
270271

271272
ish_set_host_ready(dev);
272273

@@ -337,7 +338,8 @@ static int __maybe_unused ish_suspend(struct device *device)
337338
*/
338339
pci_save_state(pdev);
339340

340-
enable_irq_wake(pdev->irq);
341+
if (device_may_wakeup(&pdev->dev))
342+
enable_irq_wake(pdev->irq);
341343
}
342344
} else {
343345
/*

0 commit comments

Comments
 (0)