2024-02-28 18:51:24

by Unnathi Chalicheemala

[permalink] [raw]
Subject: [PATCH 0/3] SCM: Support latest version of waitq-aware firmware

This series adds support for the latest improvements made in SCM
firmware (FW) that allow for multiple wait-queues in FW.

This series has been tested on SA8775P SoC.

P.S. While at Qualcomm, Guru Das Srinagesh authored these patches.
Thanks Guru!

Signed-off-by: Unnathi Chalicheemala <[email protected]>
---
Unnathi Chalicheemala (3):
firmware: qcom-scm: Initialize waitq before setting global __scm
firmware: qcom-scm: Support multiple waitq contexts
firmware: qcom-scm: Remove QCOM_SMC_WAITQ_FLAG_WAKE_ALL

drivers/firmware/qcom/qcom_scm-smc.c | 7 ++-
drivers/firmware/qcom/qcom_scm.c | 85 +++++++++++++++++++++++++-----------
drivers/firmware/qcom/qcom_scm.h | 3 +-
3 files changed, 67 insertions(+), 28 deletions(-)
---
base-commit: 39133352cbed6626956d38ed72012f49b0421e7b
change-id: 20240223-multi_waitq-4942468dc498

Best regards,
--
Unnathi Chalicheemala <[email protected]>



2024-02-28 19:01:54

by Unnathi Chalicheemala

[permalink] [raw]
Subject: [PATCH 3/3] firmware: qcom-scm: Remove QCOM_SMC_WAITQ_FLAG_WAKE_ALL

This will not be supported by current firmware due to firmware
limitations, so remove it.

Signed-off-by: Unnathi Chalicheemala <[email protected]>
---
drivers/firmware/qcom/qcom_scm.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 4606c49ef155..2657372f210f 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -113,7 +113,6 @@ static const u8 qcom_scm_cpu_warm_bits[QCOM_SCM_BOOT_MAX_CPUS] = {
};

#define QCOM_SMC_WAITQ_FLAG_WAKE_ONE BIT(0)
-#define QCOM_SMC_WAITQ_FLAG_WAKE_ALL BIT(1)

static const char * const qcom_scm_convention_names[] = {
[SMC_CONVENTION_UNKNOWN] = "unknown",
@@ -1828,9 +1827,8 @@ static irqreturn_t qcom_scm_irq_handler(int irq, void *data)
goto out;
}

- if (flags != QCOM_SMC_WAITQ_FLAG_WAKE_ONE &&
- flags != QCOM_SMC_WAITQ_FLAG_WAKE_ALL) {
- dev_err(scm->dev, "Invalid flags found for wq_ctx: %u\n", flags);
+ if (flags != QCOM_SMC_WAITQ_FLAG_WAKE_ONE) {
+ dev_err(scm->dev, "Invalid flags received for wq_ctx: %u\n", flags);
goto out;
}


--
2.25.1


2024-03-05 21:13:49

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 3/3] firmware: qcom-scm: Remove QCOM_SMC_WAITQ_FLAG_WAKE_ALL



On 2/28/24 19:50, Unnathi Chalicheemala wrote:
> This will not be supported by current firmware due to firmware
> limitations, so remove it.

"will not be" - but is it today? Has it ever been? Will it ever be?

Remember, you're changing code that needs to keep working on all
platforms from APQ8064 to X1E80100.. If that's only a change on
SM8650 or so, this isn't a valid argument.

Konrad