From 478f519958c5afcfe81f15d4331e12bef656cd7b Mon Sep 17 00:00:00 2001 From: Pranav Mahesh Phansalkar Date: Tue, 20 Sep 2022 15:38:50 -0700 Subject: [PATCH] soc: qcom: aoss: Return error in qmp_send The wait_event_interruptible_timeout api can return ERESTARTSYS if the calling thread is signalled. Update the qmp_send API so that this error is propagated back to the client so they can decide whether the call needs to be retried. Change-Id: I40794a30bc54ceb2f027c19179dbca7f4ed28bcc Signed-off-by: Chris Lew Signed-off-by: Pranav Mahesh Phansalkar (cherry picked from commit 8375788117ea7c7bd0402badf23bdb3440fe46ff) --- drivers/soc/qcom/qcom_aoss.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/soc/qcom/qcom_aoss.c b/drivers/soc/qcom/qcom_aoss.c index dcd10e6cf01f..3d9061a20e34 100644 --- a/drivers/soc/qcom/qcom_aoss.c +++ b/drivers/soc/qcom/qcom_aoss.c @@ -262,6 +262,9 @@ int qmp_send(struct qmp *qmp, const void *data, size_t len) /* Clear message from buffer */ AOSS_INFO("timed out clearing msg: %.*s\n", len, (char *)data); writel(0, qmp->msgram + qmp->offset); + } else if (time_left < 0) { + dev_err(qmp->dev, "wait error %ld\n", time_left); + ret = time_left; } else { ret = 0; AOSS_INFO("ack: %.*s\n", len, (char *)data);