| From 9a901c64b4c2d22f0c44fac437a4c9ab6f7767b0 Mon Sep 17 00:00:00 2001 |
| From: Stanimir Varbanov <stanimir.varbanov@linaro.org> |
| Date: Wed, 4 Mar 2020 11:09:49 +0100 |
| Subject: [PATCH] media: venus: firmware: Ignore secure call error on first |
| resume |
| |
| commit 2632e7b618a7730969f9782593c29ca53553aa22 upstream. |
| |
| With the latest cleanup in qcom scm driver the secure monitor |
| call for setting the remote processor state returns EINVAL when |
| it is called for the first time and after another scm call |
| auth_and_reset. The error returned from scm call could be ignored |
| because the state transition is already done in auth_and_reset. |
| |
| Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org> |
| Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c |
| index d3d1748a7ef6..33f70e1def94 100644 |
| --- a/drivers/media/platform/qcom/venus/firmware.c |
| +++ b/drivers/media/platform/qcom/venus/firmware.c |
| @@ -44,8 +44,14 @@ static void venus_reset_cpu(struct venus_core *core) |
| |
| int venus_set_hw_state(struct venus_core *core, bool resume) |
| { |
| - if (core->use_tz) |
| - return qcom_scm_set_remote_state(resume, 0); |
| + int ret; |
| + |
| + if (core->use_tz) { |
| + ret = qcom_scm_set_remote_state(resume, 0); |
| + if (resume && ret == -EINVAL) |
| + ret = 0; |
| + return ret; |
| + } |
| |
| if (resume) |
| venus_reset_cpu(core); |
| -- |
| 2.7.4 |
| |