From: Vikash Garodia <vgarodia@codeaurora.org>
To: Tomasz Figa <tfiga@chromium.org>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
andy.gross@linaro.org, bjorn.andersson@linaro.org,
Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-arm-msm <linux-arm-msm@vger.kernel.org>,
linux-soc@vger.kernel.org, devicetree@vger.kernel.org,
Alexandre Courbot <acourbot@chromium.org>
Subject: Re: [PATCH v2 2/5] media: venus: add a routine to set venus state
Date: Wed, 04 Jul 2018 13:29:33 +0530 [thread overview]
Message-ID: <ca7567c1df773f1223d919fab28f1460@codeaurora.org> (raw)
In-Reply-To: <CAAFQd5DH2i+8ZJ+s2XUnmFHwxXKLF6z_=w0Z-RFs=W9oVvrJgw@mail.gmail.com>
Hi Jordan, Tomasz,
Thanks for your valuable review comments.
On 2018-06-04 18:24, Tomasz Figa wrote:
> Hi Jordan, Vikash,
>
> On Sat, Jun 2, 2018 at 6:21 AM Jordan Crouse <jcrouse@codeaurora.org>
> wrote:
>>
>> On Sat, Jun 02, 2018 at 01:56:05AM +0530, Vikash Garodia wrote:
> [snip]
>> > +int venus_set_hw_state(enum tzbsp_video_state state, struct venus_core *core)
>> > +{
>> > + int ret;
>> > + struct device *dev = core->dev;
>>
>> If you get rid of the log message as you should, you don't need this.
Would prefer to keep the log for cases when enum is expanded while the
switch does
not handle it.
>> > + void __iomem *reg_base = core->base;
>> > +
>> > + switch (state) {
>> > + case TZBSP_VIDEO_SUSPEND:
>> > + if (qcom_scm_is_available())
>> > + ret = qcom_scm_set_remote_state(TZBSP_VIDEO_SUSPEND, 0);
>> > + else
>> > + writel_relaxed(1, reg_base + WRAPPER_A9SS_SW_RESET);
>>
>> You can just use core->base here and not bother making a local
>> variable for it.
Ok.
>> > + break;
>> > + case TZBSP_VIDEO_RESUME:
>> > + if (qcom_scm_is_available())
>> > + ret = qcom_scm_set_remote_state(TZBSP_VIDEO_RESUME, 0);
>> > + else
>> > + venus_reset_hw(core);
>> > + break;
>> > + default:
>> > + dev_err(dev, "invalid state\n");
>>
>> state is a enum - you are highly unlikely to be calling it in your own
>> code with
>> a random value. It is smart to have the default, but you don't need
>> the log
>> message - that is just wasted space in the binary.
Incase enum is expanded while the switch does not handle it, default
will be useful.
>> > + break;
>> > + }
>>
>> There are three paths in the switch statement that could end up with
>> 'ret' being
>> uninitialized here. Set it to 0 when you declare it.
> Does this actually compile? The compiler should detect that ret is
> used uninitialized. Setting it to 0 at declaration time actually
> prevents compiler from doing that and makes it impossible to catch
> cases when the ret should actually be non-zero, e.g. the invalid enum
> value case.
It does compile while it gave me failure while doing the functional
validation.
I have fixed it in next series of patch.
> Given that this function is supposed to substitute existing calls into
> qcom_scm_set_remote_state(), why not just do something like this:
>
> if (qcom_scm_is_available())
> return qcom_scm_set_remote_state(state, 0);
>
> switch (state) {
> case TZBSP_VIDEO_SUSPEND:
> writel_relaxed(1, reg_base + WRAPPER_A9SS_SW_RESET);
> break;
> case TZBSP_VIDEO_RESUME:
> venus_reset_hw(core);
> break;
> }
>
> return 0;
This will not work as driver will write on the register irrespective of
scm
availability.
> Best regards,
> Tomasz
next prev parent reply other threads:[~2018-07-04 7:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-01 20:26 [PATCH v2 0/5] Venus updates - PIL Vikash Garodia
2018-06-01 20:26 ` [PATCH v2 1/5] media: venus: add a routine to reset ARM9 Vikash Garodia
2018-06-01 22:15 ` Stanimir Varbanov
2018-06-05 10:57 ` Vinod
2018-06-06 1:34 ` Alexandre Courbot
2018-07-04 8:35 ` Vikash Garodia
2018-06-22 23:15 ` Bjorn Andersson
2018-06-01 20:26 ` [PATCH v2 2/5] media: venus: add a routine to set venus state Vikash Garodia
2018-06-01 21:21 ` Jordan Crouse
2018-06-04 12:54 ` Tomasz Figa
2018-07-04 7:59 ` Vikash Garodia [this message]
2018-07-04 9:00 ` Tomasz Figa
2018-07-04 9:41 ` Vikash Garodia
2018-07-04 10:08 ` Tomasz Figa
2018-06-04 13:50 ` Stanimir Varbanov
2018-07-04 8:08 ` Vikash Garodia
2018-06-05 11:03 ` Vinod
2018-06-01 20:26 ` [PATCH v2 3/5] venus: add check to make scm calls Vikash Garodia
2018-06-01 21:22 ` Jordan Crouse
2018-06-04 12:58 ` Tomasz Figa
2018-06-22 23:19 ` Bjorn Andersson
2018-06-01 20:26 ` [PATCH v2 4/5] media: venus: add no TZ boot and shutdown routine Vikash Garodia
2018-06-01 21:30 ` Jordan Crouse
2018-06-04 13:09 ` Tomasz Figa
2018-06-01 20:26 ` [PATCH v2 5/5] venus: register separate driver for firmware device Vikash Garodia
2018-06-01 21:32 ` Jordan Crouse
2018-06-04 13:18 ` Tomasz Figa
2018-06-04 13:56 ` Stanimir Varbanov
2018-06-05 4:08 ` Tomasz Figa
2018-06-05 8:45 ` Stanimir Varbanov
2018-06-06 5:41 ` Tomasz Figa
2018-06-06 16:46 ` Bjorn Andersson
2018-06-05 21:07 ` Rob Herring
2018-06-06 4:46 ` Tomasz Figa
2018-06-06 12:53 ` Rob Herring
2018-06-06 13:03 ` Vikash Garodia
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=ca7567c1df773f1223d919fab28f1460@codeaurora.org \
--to=vgarodia@codeaurora.org \
--cc=acourbot@chromium.org \
--cc=andy.gross@linaro.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@xs4all.nl \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-soc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
--cc=stanimir.varbanov@linaro.org \
--cc=tfiga@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).