Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3567771imm; Mon, 4 Jun 2018 05:56:17 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJ5rSkB5evjLZM3BB0kMCPAhbXmvk4g69QS5FPuYXpw3PbuQa8I5iD7e5HxRnZvuKL0Ocvq X-Received: by 2002:a63:7986:: with SMTP id u128-v6mr840756pgc.273.1528116977463; Mon, 04 Jun 2018 05:56:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528116977; cv=none; d=google.com; s=arc-20160816; b=orSbDQAywum0aZQLvmzzz9vG2YGMnnjmsPMl3X7+o1I43X3IzvgUbZ+GLyCy58fhwq uKPvhpCkEvyOauMOcN2CPDhIg6Gva7NLTZgpGKlgmuP5bQvlryehigZoM2gdXAv3DvGR v2cbr3cw3dfxyNj9CYrCMt8NxMVLNYOLuzlr8JvLiTKPvsWcZlKDPjpCtr3AKIvF5SeE CF/2qGKgqPSUL+KGiCef9R7+CRR3JZIiVO/mSdVIi4McfDcnMG4HFwTkZDb5m4PIWD7e 6sYTBdeExFlgk3TXEIBNexATgjEtT67L9aam+suSccPvql9arVzz40+WIu2zjllK1DjR YvKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=mDOJlLELCuw6eb6ED+UELr3if4i1lHcCJJ1xageYEZg=; b=GfH703aiPgfG/YwQmx7S2hH3nRE+GvYa42HFRk5Y96SO0fnL4HNwLHpry5jff1PXqH 7MkV0Iia32F+cI4UBdBUZuSRT0RXH0ly9bJcUQI3sVRLBOJgJ05i6mmEbf2VSdhOdZ1i nmnNY7FFw8n3peX6e9Ci47DKPJho6qPGOprw9Hgnez27CTec9Ys+Hi4KPiDOz4OJXEXy FI0KynJc4Rip9/1Nlgbeb8UF36J4uxz0ZkWnjtL5EYLmYyZJfc3+EfnQ8bl3GzOIvGem ZyirLWa0zBdxPn8VXkZtntvARYU67eYpMoUCrcR46+QFPb0mFx8hWTiMprQQtMgj1cA7 /1hg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=MO0k7Cyl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v5-v6si3584156pgs.15.2018.06.04.05.56.03; Mon, 04 Jun 2018 05:56:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=MO0k7Cyl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753001AbeFDMyl (ORCPT + 99 others); Mon, 4 Jun 2018 08:54:41 -0400 Received: from mail-vk0-f65.google.com ([209.85.213.65]:46805 "EHLO mail-vk0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752258AbeFDMyj (ORCPT ); Mon, 4 Jun 2018 08:54:39 -0400 Received: by mail-vk0-f65.google.com with SMTP id b134-v6so5179808vke.13 for ; Mon, 04 Jun 2018 05:54:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=mDOJlLELCuw6eb6ED+UELr3if4i1lHcCJJ1xageYEZg=; b=MO0k7Cylh+MPHiOls4QaosZwGPYaBykRNcM7fBUmgpp6irNt35b6g+LP43QX9ZJiTf aXAbEio0AXdx02aUs2p7ZtoVyxXGR7TG0o8pRZx0C0YVqx5l3v8RBKCwAFDQsGeZJoIZ ssbLYi0zvP1tKWDupRaOijLh5pQrOBkxosYo4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=mDOJlLELCuw6eb6ED+UELr3if4i1lHcCJJ1xageYEZg=; b=pGVai3bLWTGtWE5msi081V17TwG9KZDSsXGo7dOt18EtkeDip1/RUej1FD3PD8YK9v /+FzVQvoU163eEtv6MayfTfBR7o5DfLgg/aNvN5SVXgLlQleS6kGqUD8ylFMVGv9fEPt NQRK3wvpShdoQ9KMYoWhWwn4/Jx6MrbhgI9ySJQj++/FWvEPOvrDBQY0g5bNFgQ5c0tf VSeUs8CWgFPE5Hf4KtyrY1gPwka14JA+pzQxs15T7nrKhK1tvONQRzJJCHxM68aQkFPC HQ8j3S7Wl9iTZaCpjU1HkyZOGk2GSONTT7SJScas6vxpzmvVoL6Ve3p+i3yXTKOTIJrG NnrA== X-Gm-Message-State: APt69E1AiDOxjNPfpaoj3w9jprVS33oc4/A8vKBN34Q0Kz1Y/PKByc13 rESxH7PQsmSaNBB/DpwdU+cEIEBONPY= X-Received: by 2002:a1f:2a53:: with SMTP id q80-v6mr4897618vkq.72.1528116878689; Mon, 04 Jun 2018 05:54:38 -0700 (PDT) Received: from mail-ua0-f169.google.com (mail-ua0-f169.google.com. [209.85.217.169]) by smtp.gmail.com with ESMTPSA id w5-v6sm961253uaw.7.2018.06.04.05.54.37 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Jun 2018 05:54:37 -0700 (PDT) Received: by mail-ua0-f169.google.com with SMTP id z16-v6so2028571uaz.10 for ; Mon, 04 Jun 2018 05:54:37 -0700 (PDT) X-Received: by 2002:ab0:38e:: with SMTP id 14-v6mr13797191uau.93.1528116877009; Mon, 04 Jun 2018 05:54:37 -0700 (PDT) MIME-Version: 1.0 References: <1527884768-22392-1-git-send-email-vgarodia@codeaurora.org> <1527884768-22392-3-git-send-email-vgarodia@codeaurora.org> <20180601212117.GD11565@jcrouse-lnx.qualcomm.com> In-Reply-To: <20180601212117.GD11565@jcrouse-lnx.qualcomm.com> From: Tomasz Figa Date: Mon, 4 Jun 2018 21:54:25 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 2/5] media: venus: add a routine to set venus state To: vgarodia@codeaurora.org, Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , andy.gross@linaro.org, bjorn.andersson@linaro.org, Stanimir Varbanov , Linux Media Mailing List , Linux Kernel Mailing List , linux-arm-msm , linux-soc@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Courbot Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jordan, Vikash, On Sat, Jun 2, 2018 at 6:21 AM Jordan Crouse 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. > > > + 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. > > > + 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. > > > + 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. 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; Best regards, Tomasz