* Re: [PATCH] firmware: psci: Set pm_set_resume/suspend_via_firmware() for SYSTEM_SUSPEND [not found] <20251231162126.7728-1-manivannan.sadhasivam@oss.qualcomm.com> @ 2026-03-24 8:44 ` Lorenzo Pieralisi 2026-05-07 11:48 ` Manivannan Sadhasivam 0 siblings, 1 reply; 2+ messages in thread From: Lorenzo Pieralisi @ 2026-03-24 8:44 UTC (permalink / raw) To: Manivannan Sadhasivam, arnd Cc: mark.rutland, bjorn.andersson, konrad.dybcio, mani, linux-arm-kernel, linux-kernel, Konrad Dybcio, Konrad Dybcio, Sudeep Holla, soc [+Arnd, arm-soc - to pick this up please] On Wed, Dec 31, 2025 at 09:51:26PM +0530, Manivannan Sadhasivam wrote: > From: Konrad Dybcio <konradybcio@kernel.org> > > PSCI specification defines the SYSTEM_SUSPEND feature which enables the > firmware to implement the suspend to RAM (S2RAM) functionality by > transitioning the system to a deeper low power state. When the system > enters such state, the power to the peripheral devices might be removed. So > the respective device drivers must prepare for the possible removal of the > power by performing actions such as shutting down or resetting the device > in their system suspend callbacks. > > The Linux PM framework allows the platform drivers to convey this info to > device drivers by calling the pm_set_suspend_via_firmware() and > pm_set_resume_via_firmware() APIs. > > Hence, if the PSCI firmware supports SYSTEM_SUSPEND feature, call the above > mentioned APIs in the psci_system_suspend_begin() and > psci_system_suspend_enter() callbacks. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> > [mani: reworded the description to be more elaborative] > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> > --- > > This patch was part of an old series that didn't make it to mainline due to > objections in the binding and exposing CPU_SUSPEND as S2RAM patches: > https://lore.kernel.org/all/20241028-topic-cpu_suspend_s2ram-v1-0-9fdd9a04b75c@oss.qualcomm.com/ > > But this patch on its own is useful for platforms implementing the S2RAM > feature in PSCI firmware. So I picked it up, tested on Qcom X1E T14s and > resending it. > > drivers/firmware/psci/psci.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) Acked-by: Lorenzo Pieralisi <lpieralisi@kernel.org> > diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c > index 38ca190d4a22..e73bae6cb23a 100644 > --- a/drivers/firmware/psci/psci.c > +++ b/drivers/firmware/psci/psci.c > @@ -539,12 +539,22 @@ static int psci_system_suspend(unsigned long unused) > > static int psci_system_suspend_enter(suspend_state_t state) > { > + pm_set_resume_via_firmware(); > + > return cpu_suspend(0, psci_system_suspend); > } > > +static int psci_system_suspend_begin(suspend_state_t state) > +{ > + pm_set_suspend_via_firmware(); > + > + return 0; > +} > + > static const struct platform_suspend_ops psci_suspend_ops = { > .valid = suspend_valid_only_mem, > .enter = psci_system_suspend_enter, > + .begin = psci_system_suspend_begin, > }; > > static void __init psci_init_system_reset2(void) > -- > 2.48.1 > ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] firmware: psci: Set pm_set_resume/suspend_via_firmware() for SYSTEM_SUSPEND 2026-03-24 8:44 ` [PATCH] firmware: psci: Set pm_set_resume/suspend_via_firmware() for SYSTEM_SUSPEND Lorenzo Pieralisi @ 2026-05-07 11:48 ` Manivannan Sadhasivam 0 siblings, 0 replies; 2+ messages in thread From: Manivannan Sadhasivam @ 2026-05-07 11:48 UTC (permalink / raw) To: arnd, Lorenzo Pieralisi Cc: Manivannan Sadhasivam, arnd, mark.rutland, bjorn.andersson, konrad.dybcio, linux-arm-kernel, linux-kernel, Konrad Dybcio, Konrad Dybcio, Sudeep Holla, soc On Tue, Mar 24, 2026 at 09:44:41AM +0100, Lorenzo Pieralisi wrote: > [+Arnd, arm-soc - to pick this up please] > Arnd, could you please pick this up? - Mani > On Wed, Dec 31, 2025 at 09:51:26PM +0530, Manivannan Sadhasivam wrote: > > From: Konrad Dybcio <konradybcio@kernel.org> > > > > PSCI specification defines the SYSTEM_SUSPEND feature which enables the > > firmware to implement the suspend to RAM (S2RAM) functionality by > > transitioning the system to a deeper low power state. When the system > > enters such state, the power to the peripheral devices might be removed. So > > the respective device drivers must prepare for the possible removal of the > > power by performing actions such as shutting down or resetting the device > > in their system suspend callbacks. > > > > The Linux PM framework allows the platform drivers to convey this info to > > device drivers by calling the pm_set_suspend_via_firmware() and > > pm_set_resume_via_firmware() APIs. > > > > Hence, if the PSCI firmware supports SYSTEM_SUSPEND feature, call the above > > mentioned APIs in the psci_system_suspend_begin() and > > psci_system_suspend_enter() callbacks. > > > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > > Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> > > [mani: reworded the description to be more elaborative] > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> > > --- > > > > This patch was part of an old series that didn't make it to mainline due to > > objections in the binding and exposing CPU_SUSPEND as S2RAM patches: > > https://lore.kernel.org/all/20241028-topic-cpu_suspend_s2ram-v1-0-9fdd9a04b75c@oss.qualcomm.com/ > > > > But this patch on its own is useful for platforms implementing the S2RAM > > feature in PSCI firmware. So I picked it up, tested on Qcom X1E T14s and > > resending it. > > > > drivers/firmware/psci/psci.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > Acked-by: Lorenzo Pieralisi <lpieralisi@kernel.org> > > > diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c > > index 38ca190d4a22..e73bae6cb23a 100644 > > --- a/drivers/firmware/psci/psci.c > > +++ b/drivers/firmware/psci/psci.c > > @@ -539,12 +539,22 @@ static int psci_system_suspend(unsigned long unused) > > > > static int psci_system_suspend_enter(suspend_state_t state) > > { > > + pm_set_resume_via_firmware(); > > + > > return cpu_suspend(0, psci_system_suspend); > > } > > > > +static int psci_system_suspend_begin(suspend_state_t state) > > +{ > > + pm_set_suspend_via_firmware(); > > + > > + return 0; > > +} > > + > > static const struct platform_suspend_ops psci_suspend_ops = { > > .valid = suspend_valid_only_mem, > > .enter = psci_system_suspend_enter, > > + .begin = psci_system_suspend_begin, > > }; > > > > static void __init psci_init_system_reset2(void) > > -- > > 2.48.1 > > -- மணிவண்ணன் சதாசிவம் ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-07 11:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20251231162126.7728-1-manivannan.sadhasivam@oss.qualcomm.com>
2026-03-24 8:44 ` [PATCH] firmware: psci: Set pm_set_resume/suspend_via_firmware() for SYSTEM_SUSPEND Lorenzo Pieralisi
2026-05-07 11:48 ` Manivannan Sadhasivam
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox