From: Palmer Dabbelt <palmer@rivosinc.com> To: Conor Dooley <conor@kernel.org> Cc: anup@brainfault.org, rafael@kernel.org, daniel.lezcano@linaro.org, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, aou@eecs.berkeley.edu, linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux@rivosinc.com, Palmer Dabbelt <palmer@rivosinc.com> Subject: [PATCH] cpuidle: riscv-sbi: Stop using non-retentive suspend Date: Mon, 21 Nov 2022 12:56:47 -0800 [thread overview] Message-ID: <20221121205647.23343-1-palmer@rivosinc.com> (raw) From: Palmer Dabbelt <palmer@rivosinc.com> As per [1], whether or not the core can wake up from non-retentive suspend is a platform-specific detail. We don't have any way to encode that, so just stop using them until we've sorted that out. Link: https://github.com/riscv-non-isa/riscv-sbi-doc/issues/98#issuecomment-1288564687 Fixes: 6abf32f1d9c5 ("cpuidle: Add RISC-V SBI CPU idle driver") Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> --- This should allow us to revert 232ccac1bd9b ("clocksource/drivers/riscv: Events are stopped during CPU suspend"), which fixes suspend on the D1 but breaks timers everywhere. --- drivers/cpuidle/cpuidle-riscv-sbi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c index 05fe2902df9a..9d1063a54495 100644 --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -214,6 +214,17 @@ static bool sbi_suspend_state_is_valid(u32 state) if (state > SBI_HSM_SUSPEND_NON_RET_DEFAULT && state < SBI_HSM_SUSPEND_NON_RET_PLATFORM) return false; + + /* + * Whether or not RISC-V systems deliver interrupts to harts in a + * non-retentive suspend state is a platform-specific detail. This can + * leave the hart unable to wake up, so just mark these states as + * unsupported until we have a mechanism to expose these + * platform-specific details to Linux. + */ + if (state & SBI_HSM_SUSP_NON_RET_BIT) + return false; + return true; } -- 2.38.1
WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@rivosinc.com> To: Conor Dooley <conor@kernel.org> Cc: anup@brainfault.org, rafael@kernel.org, daniel.lezcano@linaro.org, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, aou@eecs.berkeley.edu, linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux@rivosinc.com, Palmer Dabbelt <palmer@rivosinc.com> Subject: [PATCH] cpuidle: riscv-sbi: Stop using non-retentive suspend Date: Mon, 21 Nov 2022 12:56:47 -0800 [thread overview] Message-ID: <20221121205647.23343-1-palmer@rivosinc.com> (raw) From: Palmer Dabbelt <palmer@rivosinc.com> As per [1], whether or not the core can wake up from non-retentive suspend is a platform-specific detail. We don't have any way to encode that, so just stop using them until we've sorted that out. Link: https://github.com/riscv-non-isa/riscv-sbi-doc/issues/98#issuecomment-1288564687 Fixes: 6abf32f1d9c5 ("cpuidle: Add RISC-V SBI CPU idle driver") Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> --- This should allow us to revert 232ccac1bd9b ("clocksource/drivers/riscv: Events are stopped during CPU suspend"), which fixes suspend on the D1 but breaks timers everywhere. --- drivers/cpuidle/cpuidle-riscv-sbi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c index 05fe2902df9a..9d1063a54495 100644 --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -214,6 +214,17 @@ static bool sbi_suspend_state_is_valid(u32 state) if (state > SBI_HSM_SUSPEND_NON_RET_DEFAULT && state < SBI_HSM_SUSPEND_NON_RET_PLATFORM) return false; + + /* + * Whether or not RISC-V systems deliver interrupts to harts in a + * non-retentive suspend state is a platform-specific detail. This can + * leave the hart unable to wake up, so just mark these states as + * unsupported until we have a mechanism to expose these + * platform-specific details to Linux. + */ + if (state & SBI_HSM_SUSP_NON_RET_BIT) + return false; + return true; } -- 2.38.1 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
next reply other threads:[~2022-11-21 20:57 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-21 20:56 Palmer Dabbelt [this message] 2022-11-21 20:56 ` [PATCH] cpuidle: riscv-sbi: Stop using non-retentive suspend Palmer Dabbelt 2022-11-21 21:10 ` Conor Dooley 2022-11-21 21:10 ` Conor Dooley 2022-11-22 0:45 ` Samuel Holland 2022-11-22 0:45 ` Samuel Holland 2022-11-22 11:06 ` Conor Dooley 2022-11-22 11:06 ` Conor Dooley 2022-11-23 3:42 ` Samuel Holland 2022-11-23 3:42 ` Samuel Holland 2022-11-23 10:46 ` Conor Dooley 2022-11-23 10:46 ` Conor Dooley 2022-11-22 3:45 ` Anup Patel 2022-11-22 3:45 ` Anup Patel 2022-11-22 5:16 ` Palmer Dabbelt 2022-11-22 5:16 ` Palmer Dabbelt 2022-11-22 5:36 ` Anup Patel 2022-11-22 5:36 ` Anup Patel 2022-11-22 11:19 ` Conor Dooley 2022-11-22 11:19 ` Conor Dooley 2022-11-22 15:28 ` Palmer Dabbelt 2022-11-22 15:28 ` Palmer Dabbelt 2022-11-23 4:38 ` Anup Patel 2022-11-23 4:38 ` Anup Patel 2022-11-23 5:11 ` Samuel Holland 2022-11-23 5:11 ` Samuel Holland 2022-11-23 5:35 ` Anup Patel 2022-11-23 5:35 ` Anup Patel 2022-11-23 5:38 ` Samuel Holland 2022-11-23 5:38 ` Samuel Holland 2022-11-23 6:10 ` Anup Patel 2022-11-23 6:10 ` Anup Patel 2022-11-23 6:27 ` Samuel Holland 2022-11-23 6:27 ` Samuel Holland 2022-11-23 6:41 ` Anup Patel 2022-11-23 6:41 ` Anup Patel 2022-11-23 6:49 ` Samuel Holland 2022-11-23 6:49 ` Samuel Holland 2022-11-23 7:13 ` Anup Patel 2022-11-23 7:13 ` Anup Patel 2022-11-23 10:20 ` Sudeep Holla 2022-11-23 10:20 ` Sudeep Holla 2022-11-23 4:26 ` Anup Patel 2022-11-23 4:26 ` Anup Patel 2022-11-23 10:09 ` Conor Dooley 2022-11-23 10:09 ` Conor Dooley 2022-11-23 10:36 ` Anup Patel 2022-11-23 10:36 ` Anup Patel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221121205647.23343-1-palmer@rivosinc.com \ --to=palmer@rivosinc.com \ --cc=anup@brainfault.org \ --cc=aou@eecs.berkeley.edu \ --cc=conor@kernel.org \ --cc=daniel.lezcano@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=linux@rivosinc.com \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=rafael@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.