platform-drivers-x86 for v5.12-3

A single bugfix (on top of platform-drivers-x86-v5.12-2) to fix spurious
 wakeups from suspend caused by recent intel-hid driver changes.
 
 The following is an automated git shortlog grouped by driver:
 
 intel-hid:
  -  Fix spurious wakeups caused by tablet-mode events during suspend
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmBtg4YUHGhkZWdvZWRl
 QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9x6DQf+MpmnVmDoJ5gB6yvICybA080oz4Vr
 7y9QHHP98ErpS1jROLXxUyrbKksOvc7JBKEEk06soGLX4M7+rv0GgngE43EaK1O/
 7VSW0i59j9wCvMrav8IQL/br/CvJt8oSuJ3YGP4LuM6bgSCzOSyiHYqAcfH8/xhs
 4UZQQWTnhTqmNOOGUOGRqHnT0GqF8S1DD3/dyBlX68TRV0+iNsy0/WCUQCfB9alY
 yqzHqHydFCpApVgaT4MsX4nJSrKDT/X5wBXBFDkBNevCrK2SOp/B4STfbSdB6GRR
 q6hsSIMPo86EHQWY4hkMk1+hi7G572RTyJ6vOi5DJe1bD3cFPJSrm2uO/Q==
 =aUK1
 -----END PGP SIGNATURE-----

Merge tag 'platform-drivers-x86-v5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver fix from Hans de Goede:
 "A single bugfix to fix spurious wakeups from suspend caused by recent
  intel-hid driver changes"

* tag 'platform-drivers-x86-v5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  platform/x86: intel-hid: Fix spurious wakeups caused by tablet-mode events during suspend
This commit is contained in:
Linus Torvalds 2021-04-07 09:14:04 -07:00
commit 5ba091db93

View File

@ -483,11 +483,16 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
goto wakeup;
/*
* Switch events will wake the device and report the new switch
* position to the input subsystem.
* Some devices send (duplicate) tablet-mode events when moved
* around even though the mode has not changed; and they do this
* even when suspended.
* Update the switch state in case it changed and then return
* without waking up to avoid spurious wakeups.
*/
if (priv->switches && (event == 0xcc || event == 0xcd))
goto wakeup;
if (event == 0xcc || event == 0xcd) {
report_tablet_mode_event(priv->switches, event);
return;
}
/* Wake up on 5-button array events only. */
if (event == 0xc0 || !priv->array)
@ -501,9 +506,6 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
wakeup:
pm_wakeup_hard_event(&device->dev);
if (report_tablet_mode_event(priv->switches, event))
return;
return;
}