On Mon, 27 Nov 2023 12:05:20 +1300, Luke D. Jones wrote: > This is a fix for the ROG Ally not being able to use the N-Key device after a suspend/resume cycle. > > The root of the issue is that ASUS changed the MCU firmware to dfisconnect the USB0 hub when the > screen is switched off during the s2idle suspend path. I tried many many different tactics to try > and get this s2idle part to work but it seems there are races between this and other subsystems. > > What has so far been reliable and consistent is a manual call to the CSEE method that is called in > ACPI by the Microsoft DSM screen off path followed by a short sleep in asus-wmi. The PM prepare > hook looks to be the earliest possible place. A sleep that is too long ends up with USB subsystem > registering a disconnect, and thus on resume the device paths change. Too short and it is unreliable. > > [...] Thank you for your contribution, it has been applied to my local review-ilpo branch. Note it will show up in the public platform-drivers-x86/review-ilpo branch only once I've pushed my local branch there, which might take a while. The list of commits applied: [1/1] platform/x86: asus-wmi: disable USB0 hub on ROG Ally before suspend commit: e0894ff038d86f30614ec16ec26dacb88c8d2bd4 -- i.