Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp473263pxf; Thu, 8 Apr 2021 06:58:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTGXfkT337pVkpVls1FnZtYJ25qqBtXzMH8e59gWfvnvybXHJXTj8SiPQi+nZYu12LvAVA X-Received: by 2002:a17:906:4c91:: with SMTP id q17mr10778186eju.0.1617890302980; Thu, 08 Apr 2021 06:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617890302; cv=none; d=google.com; s=arc-20160816; b=pySXBHUflbkkKxR2yhuyVh73KQjxZR3Qyg9FAx8fz9SVB6DSuBW/mE/fWQ/qaoqnAO pplOSFju80e/I4px38P6VBsEHQB9uhf4NLel8Fb17RHYjhBbj1RksD6kj9Go4m4oLbKq ca/Mfl4uXXYxVMmJ/YZu3Stu1xujv6yjIZCfVQGWWuMGse2gikqtGNtamDYX28tYH+NO oNrifJm4NulgKWSNCMQAGgNCpWNOeLSSU7wECpH6EJXj/6dOza0aESZ6U0m5XInHlHg6 YmZst5ulPlOBJTC8e2TywkMgJ1FVYMS982mz+iSGhxQbe8tJDhkajl8h5PpKBUoh77+6 XP8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=6miOsCN9DRTNbPpezNAybueDA0Yo59tqLPZxCeBa914=; b=fj04HQLDm1a59RVsh2dRWmVgXFJBeIHQNMUfZ8NLqwmznF/ZSZXySv2Qgb0/xGiB5Q RYtiTbhp/36LRxFEOuO910yj5jnbS1Ysqka57NpIKrFHd6X+P3wGqvrRbNY/SUgcCJlW 6jory1safPei/xyYN+xY8Yk/lP/F7Vp8reuKUvyA/XO6fpubxE0poSep7n1gfHK8yhb+ E5veaqwcDSlQ9OzuriWPv66ck9lPHy+CQ+PVYABf4CeUvi+QmRolzLrn+0uXLAbWrdIO afAs3wuF1bSZMFsU83OFwqbs3TNaLP6bAjvs4UN3s5+iXXVSOU8R5yOddGmxcMoQF7dt TGBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="JSudo/Yn"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y25si11637184eds.132.2021.04.08.06.57.59; Thu, 08 Apr 2021 06:58:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="JSudo/Yn"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231753AbhDHN5R (ORCPT + 99 others); Thu, 8 Apr 2021 09:57:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230322AbhDHN5R (ORCPT ); Thu, 8 Apr 2021 09:57:17 -0400 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FBC7C061760; Thu, 8 Apr 2021 06:57:06 -0700 (PDT) Received: by mail-wr1-x42e.google.com with SMTP id j5so1282682wrn.4; Thu, 08 Apr 2021 06:57:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=6miOsCN9DRTNbPpezNAybueDA0Yo59tqLPZxCeBa914=; b=JSudo/YnP226VSlYgSaJSXG88wye+oZiMgoE00/4qim7e+dlKR7K6V6ix7W+6+n6Hp ed3JEtXifz3iX3nDYS1Iq34YpurpO0LSYa7YuY1NVx8Fsf+YzKROjh2hXQNxyqjH0T1N CPSlpcJlWh2UMoh3pjJdyey/23FU9nT/3oN9f36SLTPWzlsvp5onThBBCyXavJvm0yZ8 sOX+ZmH6wYeVUHr/a0sYO+OiS+ilNogSb2zStrHQxV/4DLlIF8zLWZrVNmHb+XbUgzku GiBYdi7Ye3M6uDr/xfTk1Ir46f5uEcygEAHKdX0X9GUhq5XMtGvJMb1u5opLU+RtBizm +GrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=6miOsCN9DRTNbPpezNAybueDA0Yo59tqLPZxCeBa914=; b=DL2Bw40Pwf10XLs4mxxziJpgoXjJoQM1AdEkEFPuQ3i+wA8KSCgMpNAWriaEJJelsn JbM4jsw1Cg7H2MO3zS+8Vn563qgfLENyd12F7bd6ONwLJlCGdK+9qgLIC6omp6HLSbqw nJiXRjmUO9C7ofMrvhZj16F2hdMAywIsGAqeiSzKkKxlYLijN8pR949CTDYFBLxSXNHr hp1ZFp+jSztr1elB3EWaBQasBIZszRqIGRu4nliQeQFDmARFl0oiD854MYSYv7dlM+9h /tESaCuUwIoc2TqmImaw3E4ib9Y4YtDO4ydK/zPQA7VKxdn/FqLJAVfZD+foKNhYnHr8 CKIQ== X-Gm-Message-State: AOAM532oDMy4X9Eo2CxpytwC4JlZgm3BFoVwdQRRBhXA2Ylwrv57eQv7 dacwxFss8W3x7h4XYjXy4ys= X-Received: by 2002:a5d:4683:: with SMTP id u3mr11585327wrq.358.1617890224964; Thu, 08 Apr 2021 06:57:04 -0700 (PDT) Received: from arch-thunder.localdomain (a109-49-46-234.cpe.netcabo.pt. [109.49.46.234]) by smtp.gmail.com with ESMTPSA id 3sm10751500wma.45.2021.04.08.06.57.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Apr 2021 06:57:04 -0700 (PDT) Date: Thu, 8 Apr 2021 14:57:02 +0100 From: Rui Miguel Silva To: Dinghao Liu Cc: kjlu@umn.edu, Steve Longerbeam , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-media@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] media: imx: imx7-mipi-csis: Fix runtime PM imbalance in mipi_csis_s_stream Message-ID: <20210408135702.f7ikjvwirvtzsarv@arch-thunder.localdomain> References: <20210408090827.32612-1-dinghao.liu@zju.edu.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210408090827.32612-1-dinghao.liu@zju.edu.cn> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Liu, Thanks for your patch. On Thu, Apr 08, 2021 at 05:08:27PM +0800, Dinghao Liu wrote: > When v4l2_subdev_call() fails, a pairing PM usage counter > decrement is needed to keep the counter balanced. It's the > same for the following error paths in case 'enable' is on. > > Signed-off-by: Dinghao Liu > --- > drivers/staging/media/imx/imx7-mipi-csis.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c b/drivers/staging/media/imx/imx7-mipi-csis.c > index a01a7364b4b9..2a3fff231a40 100644 > --- a/drivers/staging/media/imx/imx7-mipi-csis.c > +++ b/drivers/staging/media/imx/imx7-mipi-csis.c > @@ -627,21 +627,26 @@ static int mipi_csis_s_stream(struct v4l2_subdev *mipi_sd, int enable) > return ret; > } > ret = v4l2_subdev_call(state->src_sd, core, s_power, 1); > - if (ret < 0) > + if (ret < 0) { > + pm_runtime_put_noidle(&state->pdev->dev); I think here we should go completely pm_runtime_put to call the mipi_csis_pm_suspend down the line, right? > return ret; > + } > } > > mutex_lock(&state->lock); > if (enable) { > if (state->flags & ST_SUSPENDED) { > ret = -EBUSY; > + pm_runtime_put_noidle(&state->pdev->dev); since we are in ST_SUSPENDED state, for sure the pm counter was already 0. > goto unlock; > } > > mipi_csis_start_stream(state); > ret = v4l2_subdev_call(state->src_sd, video, s_stream, 1); > - if (ret < 0) > + if (ret < 0) { > + pm_runtime_put_noidle(&state->pdev->dev); here also we need the pm_runtime_put, maybe just changing the unlock tag bellow from: if (!enable) pm_runtime_put(&state->pdev->dev); to if (!enable || (ret < 0)) pm_runtime_put(&state->pdev->dev); will not hurt the first case and will complete the suspend routine afterward in the second case. ------ Cheers, Rui > goto unlock; > + } > > mipi_csis_log_counters(state, true); > > -- > 2.17.1 > >