[PATCH] lib: sbi: Save context for all non-retentive suspend types

Subsystems: library code, the rest

STALE1756d

3 messages, 3 authors, 2021-10-11 · open the first message on its own page

[PATCH] lib: sbi: Save context for all non-retentive suspend types

From: Anup Patel <hidden>
Date: 2021-10-11 05:55:52

Instead of saving context only for default non-retentvie suspend,
we should save CSRs for both default and non-retentive suspend.

Fixes: 74756891cc35 ("lib: sbi: Implement SBI HSM suspend function")
Signed-off-by: Anup Patel <redacted>
---
 lib/sbi/sbi_hsm.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c
index 67890f3..ecd2e45 100644
--- a/lib/sbi/sbi_hsm.c
+++ b/lib/sbi/sbi_hsm.c
@@ -358,12 +358,6 @@ static int __sbi_hsm_suspend_non_ret_default(struct sbi_scratch *scratch,
 {
 	void (*jump_warmboot)(void) = (void (*)(void))scratch->warmboot_addr;
 
-	/*
-	 * Save some of the M-mode CSRs which should be restored after
-	 * resuming from suspend state
-	 */
-	__sbi_hsm_suspend_non_ret_save(scratch);
-
 	/* Wait for interrupt */
 	wfi();
 
@@ -463,6 +457,13 @@ int sbi_hsm_hart_suspend(struct sbi_scratch *scratch, u32 suspend_type,
 	/* Save the suspend type */
 	hdata->suspend_type = suspend_type;
 
+	/*
+	 * Save context which will be restored after resuming from
+	 * non-retentive suspend.
+	 */
+	if (suspend_type & SBI_HSM_SUSP_NON_RET_BIT)
+		__sbi_hsm_suspend_non_ret_save(scratch);
+
 	/* Try platform specific suspend */
 	ret = hsm_device_hart_suspend(suspend_type, scratch->warmboot_addr);
 	if (ret == SBI_ENOTSUPP) {
-- 
2.25.1

[PATCH] lib: sbi: Save context for all non-retentive suspend types

From: Andreas Schwab <hidden>
Date: 2021-10-11 07:55:02

On Okt 11 2021, Anup Patel wrote:
Instead of saving context only for default non-retentvie suspend,
Typo: retentive.

Andreas.

-- 
Andreas Schwab, schwab at linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

[PATCH] lib: sbi: Save context for all non-retentive suspend types

From: Anup Patel <anup@brainfault.org>
Date: 2021-10-11 08:10:47

On Mon, Oct 11, 2021 at 1:25 PM Andreas Schwab [off-list ref] wrote:
On Okt 11 2021, Anup Patel wrote:
quoted
Instead of saving context only for default non-retentvie suspend,
Typo: retentive.
Thanks Andreas, I will update it soon.

Regards,
Anup
Andreas.

--
Andreas Schwab, schwab at linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help