On Mon, Feb 28, 2022 at 10:15:10PM -0600, Mario Limonciello wrote: > commit 59348401ebed ("platform/x86: amd-pmc: Add special handling for > timer based S0i3 wakeup") adds support for using another platform timer > in lieu of the RTC which doesn't work properly on some systems. This path > was validated and worked well before submission. During the 5.16-rc1 merge > window other patches were merged that caused this to stop working properly. > > When this feature was used with 5.16-rc1 or later some OEM laptops with the > matching firmware requirements from that commit would shutdown instead of > program a timer based wakeup. > > This was bisected to commit 8d89835b0467 ("PM: suspend: Do not pause > cpuidle in the suspend-to-idle path"). This wasn't supposed to cause any > negative impacts and also tested well on both Intel and ARM platforms. > However this changed the semantics of when CPUs are allowed to be in the > deepest state. For the AMD systems in question it appears this causes a > firmware crash for timer based wakeup. > > It's hypothesized to be caused by the `amd-pmc` driver sending `OS_HINT` > and all the CPUs going into a deep state while the timer is still being > programmed. It's likely a firmware bug, but to avoid it don't allow setting > CPUs into the deepest state while using CZN timer wakeup path. > > If later it's discovered that this also occurs from "regular" suspends > without a timer as well or on other silicon, this may be later expanded to > run in the suspend path for more scenarios. > > Cc: stable@xxxxxxxxxxxxxxx # 5.16+ > Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > Link: https://lore.kernel.org/linux-acpi/BL1PR12MB51570F5BD05980A0DCA1F3F4E23A9@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/#mee35f39c41a04b624700ab2621c795367f19c90e > Fixes: 8d89835b0467 ("PM: suspend: Do not pause cpuidle in the suspend-to-idle path") > Fixes: 23f62d7ab25b ("PM: sleep: Pause cpuidle later and resume it earlier during system transitions") > Fixes: 59348401ebed ("platform/x86: amd-pmc: Add special handling for timer based S0i3 wakeup" > Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > Link: https://lore.kernel.org/r/20220223175237.6209-1-mario.limonciello@xxxxxxx > Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > (cherry picked from commit 68af28426b3ca1bf9ba21c7d8bdd0ff639e5134c) > --- > This didn't apply cleanly to 5.16.y because 5.16.y doesn't contain the STB > feature. Manually fixed up the commit for this. > This is *only* intended for 5.16. Now queued up, thanks. greg k-h