From mboxrd@z Thu Jan 1 00:00:00 1970 From: sudeep.holla@arm.com (Sudeep Holla) Date: Tue, 21 Feb 2017 18:45:13 +0000 Subject: [PATCH/RFC 0/6] PSCI: Fix non-PMIC wake-up if SYSTEM_SUSPEND cuts power In-Reply-To: <94167d3a-e005-3af0-d290-a1086684d570@arm.com> References: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> <69ab75a1-2e04-19e2-d1ad-12ca1cfc7625@arm.com> <445b2f49-5d15-30af-a431-1c4edcd049a4@arm.com> <81df65a9-d2f1-26df-a977-5265feba25a3@arm.com> <94167d3a-e005-3af0-d290-a1086684d570@arm.com> Message-ID: <3c8b3f2d-8604-f999-4208-a82f171b64f2@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 21/02/17 18:27, Sudeep Holla wrote: > > > On 21/02/17 17:51, Sudeep Holla wrote: >> >> >> On 21/02/17 17:34, Geert Uytterhoeven wrote: > > [...] > >>> >>> The SoC can wake-up. It's just not guaranteed that it can wake-up using >>> the wakeup-source configured from Linux. Which wakeup-sources are available >>> depends on the actual PSCI implementation. It's not specified by the PSCI >>> specification. >>> >>>> Just botching whatever shallow state you can enter on a particular SoC >>>> into standard "mem" state sounds *horrible* to me. >>> >>> That's more or less what /sys/power/mem_sleep does, though. >>> >> >> OK, I will go through that in detail. >> > > OK, I went through the patch and the main intention is was added. > So I will begin by summarizing my understanding: > > A new suspend interface(/sys/power/mem_sleep) is added to allow the > "mem" string in /sys/power/state to represent multiple things that can > be selected. > > Before: > A. echo freeze > /sys/power/state ---> Enters s2idle > B. echo mem > /sys/power/state ---> Enters s2r(a.k.a now deep mem sleep) > > After: > 1. echo freeze > /sys/power/state ---> Enters s2idle still same > 2. echo s2idle > /sys/power/mem_sleep > echo mem > /sys/power/state ---> Also enter s2idle > 3. echo deep > /sys/power/mem_sleep > echo mem > /sys/power/state ---> Also enter s2r(same as [B] above) > > Please note I have carefully dropped standby/shallow as we will not > support that state on ARM64 platforms(refer previous discussions for the > same) > > Now IIUC, you need 2 above. So, since this new interface allow mem to > mean "s2idle", we need to fix the core to register default suspend_ops > to achieve what you need. I take this back, you have everything you need in place, nothing needs to be done. I just checked again. If I don't register PSCI suspend_ops, I still get mem in /sys/power/state with s2idle in /sys/power/mem_sleep which is exactly what we need. Again we don't support standby/shallow state on ARM64/PSCI. -- Regards, Sudeep