From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-media@vger.kernel.org, Andy Gross <agross@kernel.org>,
Elliot Berman <eberman@codeaurora.org>
Subject: Re: [PATCH] venus: firmware: Ignore secure call error on first resume
Date: Sun, 8 Mar 2020 15:00:57 -0700 [thread overview]
Message-ID: <20200308220057.GA1098305@builder> (raw)
In-Reply-To: <20200304155809.19637-1-stanimir.varbanov@linaro.org>
On Wed 04 Mar 07:58 PST 2020, Stanimir Varbanov wrote:
> With the latest cleanup in qcom scm driver
I've seen similar issues in other drivers, but I think the culprit is
the following bug fix 'ff34f3cce278 ("firmware: qcom: scm: Ensure 'a0'
status code is treated as signed")', rather than the recent refactoring.
As this is a bug fix it's quite likely to show up in linux-stable as
well and regress older versions, so you should probably Cc stable as
well.
> 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.
>
I'm not sure what the appropriate mechanism is here, but your workaround
seems reasonable.
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> ---
> drivers/media/platform/qcom/venus/firmware.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
> index de6812fb55f4..8801a6a7543d 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.17.1
>
prev parent reply other threads:[~2020-03-08 22:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 15:58 [PATCH] venus: firmware: Ignore secure call error on first resume Stanimir Varbanov
2020-03-08 22:00 ` Bjorn Andersson [this message]
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=20200308220057.GA1098305@builder \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=eberman@codeaurora.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=stanimir.varbanov@linaro.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: link
Be 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.