From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207745; cv=none; d=zohomail.com; s=zohoarc; b=AaxYlCwlL8ypyvMTptygPeWoQTjctktYmEdGiCFvWT3VCb4pUOwnyGTX39oSs3Y2pMX3b1bmxWk1BCjOqJuliwpsqy6SRPGQo0gPm0cjVks/qy4OjM7x5QeJY9GOF1ah8lNYp8tO4ouq4CZ+AT6cLzP54fP5eE713eU7okYYFaM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207745; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5r7OzKRkv47fhzfFSxUspYabIaVgHv3zSrm9kTksCTY=; b=d2cI98cSBVFoG3IbOv7Ve8NAU8WdF185NhWW8M/lhWpFFLbi1Lh05ZbuL8Lgo2daIQ36SRy00BcFDV/TB5fAX48uCWbISAvbPFs4cfV7fEnviPQ938RxX8hbkV3s89895fKsntxGa3nKnVISqiv8STYqTrHYVkK2WAWq7SjZNII= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207745711781.0929490910755; Wed, 5 May 2021 02:42:25 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232525AbhEEJnS (ORCPT ); Wed, 5 May 2021 05:43:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:48216 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231958AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D4B2861106; Wed, 5 May 2021 09:42:18 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHvr-Jj; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207738; bh=Ge/Ah7ICxGTEtJ+zpzc3S/dZD8dc9zPvBoOlbXMznLs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aKdc/dLsQD5sO9k0fCMqOXnJ7qgJpGvzD3Kqmvh7aGjc+vOIc7pwwIUP3UwHCZ3GO nNL/E4OfhDT7M9e/GRXA7RfzmmBq8Amn1JODFN6yHTUIO8Ybviylgr6qLMEYV1DvsO U9Kigw+mIcaBTfuHrNCTPfmiE/R/P1RPhWBCqTNa7CbzP78Lw58K1NP5ulzghcukiN BzOr6k86KO6+W32Wnxg31jRaVclTzaBLR4tJuk5htHWTwaof4PXDRRPd/pVrz+DjiZ y2jjAPEfhLEtVj8Z5tSbwbNdY0VsI9rN3LT6wwxP4ljHZA6sfD42vFsqQH44Skxa0h BmNrU6nJGCccw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Ezequiel Garcia , Greg Kroah-Hartman , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Subject: [PATCH 01/25] staging: media: rkvdec: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:41:51 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. Reviewed-by: Ezequiel Garcia Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/media/rkvdec/rkvdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/= rkvdec/rkvdec.c index d821661d30f3..8c17615f3a7a 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -658,7 +658,7 @@ static void rkvdec_device_run(void *priv) if (WARN_ON(!desc)) return; =20 - ret =3D pm_runtime_get_sync(rkvdec->dev); + ret =3D pm_runtime_resume_and_get(rkvdec->dev); if (ret < 0) { rkvdec_job_finish_no_pm(ctx, VB2_BUF_STATE_ERROR); return; --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207756; cv=none; d=zohomail.com; s=zohoarc; b=SJZVmRWii+spU28E8DZzhr+LU8ch+VV5YtifY9pCrLKEwyDmcn3KFz7TGnkNuufQcZD8nxRLMsoXavelpBmgGR0NVhSUQXgiEp3uHLA2J2n3FRUirDkBTZVS/U9jy446XDLSXYaE9imlmg1OpVEIpiKmxEG7weyrwappwE1WSBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207756; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v90TsbXff/6HaEkiq25pR07ZEPd3x2tTwFoulVzsnEE=; b=fE2c9RuzG+WKJD0iFhtFUy6zs/rjO13vE/+jyKB98c9A4mcXtWVGnrKEBXQvtgBVPAoxj9Ool8jzMX45rxoIdS6Rw4s/JgguzyUrHtEmA30Ij4Y+F9oDaKCoIBY55nK5YFXB3xdU7ld2kLbKwT5MqwAsZzhZHziQNsoYn6MrCzo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207756461195.25991925814276; Wed, 5 May 2021 02:42:36 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232880AbhEEJna (ORCPT ); Wed, 5 May 2021 05:43:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:48574 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232265AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1A6E961410; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHvt-Lf; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=Y6Mm5CQ5FccRV1mq5OQxwJw1oJhZ1ZvSJdtqtRhzZk4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FyMdhJCuzAtmH21EpjHJi9AkSctdAjlolAuDFK9T9+1ZpeeMTuNEg8MvWc3YVlHDM M5Z8ao/2Vj+/WMSzRRKIaPPB3DMfyiEbzx7xCdTzPJohz/n4w4I+wJsfZiG3vfuvTn KxsNLutY32UJby0kkjcChUAbY+NWDNWxDvXi3x91NCienVvc64uFXhFGqv7fJ7sBuj p6s+95Rk7RJBJX3Cyp0ZFpZM1l4ERgXU178uQQDojjxXQN0wDn/7TvnbR0NOW/ZZTQ P8cd9cD250qbzKtNtVCFuX0s7XlZvNqjRkYOea2Mc+WfEgvICojJSUhlz+IwGFzz9B SLcxBj27xLT5Q== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Fabio Estevam , Greg Kroah-Hartman , Mauro Carvalho Chehab , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Rui Miguel Silva , Sascha Hauer , Shawn Guo , Steve Longerbeam , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH 02/25] staging: media: imx7-mipi-csis: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:41:52 +0200 Message-Id: <793a5806a63b6313606fd1c344b9eec41e61a440.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. Acked-by: Rui Miguel Silva Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/media/imx/imx7-mipi-csis.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c b/drivers/staging/m= edia/imx/imx7-mipi-csis.c index 025fdc488bd6..1dc680d94a46 100644 --- a/drivers/staging/media/imx/imx7-mipi-csis.c +++ b/drivers/staging/media/imx/imx7-mipi-csis.c @@ -695,11 +695,10 @@ static int mipi_csis_s_stream(struct v4l2_subdev *mip= i_sd, int enable) =20 mipi_csis_clear_counters(state); =20 - ret =3D pm_runtime_get_sync(&state->pdev->dev); - if (ret < 0) { - pm_runtime_put_noidle(&state->pdev->dev); + ret =3D pm_runtime_resume_and_get(&state->pdev->dev); + if (ret < 0) return ret; - } + ret =3D v4l2_subdev_call(state->src_sd, core, s_power, 1); if (ret < 0 && ret !=3D -ENOIOCTLCMD) goto done; --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207751; cv=none; d=zohomail.com; s=zohoarc; b=QKxrPX4PepXEZ3zbFeIqubeBTHBTCEwCWW54hGR6vFInjM34fYGy7NVERxBlDMUx1bQ6O8IyWx0q9oTSUFnF0vxtapkCppwoUhXu0aN+N+hM2oKiym6CfYfo/h8Zy7BStVFTyPW6T9KAYflYuTTa15CbaYz7JO7IE3IOyw/3Wvk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207751; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dWFvl+pxMJ9njY5SGXkCEwZH/atF+a5H1EPd2cRdPRw=; b=NO6ezXUvkKo92mOATMCAOQL9kw1LTDRO8MKOR26LGGwspcdPaaxqwf5bDKoXge1gcFSn52Mgtg+reecv81/A/FZ5ps7hVXw6vnCNl2oDk9mjqWcv7rAFs0L4+bYmRwfVC236cr2sX7ApM4FPqsI6XKLx6rTXbpZso4inCLH7VH4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 162020775139059.676712216275064; Wed, 5 May 2021 02:42:31 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232750AbhEEJnZ (ORCPT ); Wed, 5 May 2021 05:43:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:48336 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232229AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E0525613F1; Wed, 5 May 2021 09:42:18 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHvx-NG; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207738; bh=k34dpqKksd63uP3WoiZAOKOaT0okl+LOGKtsaw4Wk3E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CSdcfnwMScG5s9vfbU3g9YmCUyWl/x61+5MGF4Mwd2YpY2lCOMAlN9BX8GphMMvbE kjkHkpNMUgrHzHUGt4nYBMXbBmvymIui4D6UjTMQ2ZuA2CEGxmrMR8IhXjRtD1cjGB wzXybke5PnXZQGfVZXjAYgAm/DIdytox4zwRRfsXgpIecapYIkLZVlDMPP733TDu5e Dyz9oHbvPPTgKDzybTYdpHsinm7TEVvRAPqeZO7oBCl/f/eDNDiW7chhaC3erDxKpP jzDcEpJU+ha1hjFYBy1nDCIigJsXTAgnm67AxGnM9dIS/j19CrPyMPN3u7N+7EQxtZ Up9PD0awFliwg== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Andy Gross , Bjorn Andersson , Hans Verkuil , Mauro Carvalho Chehab , Stanimir Varbanov , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 03/25] media: venus: Rework error fail recover logic Date: Wed, 5 May 2021 11:41:53 +0200 Message-Id: <419e346f01af5423485202d624fc144756bd2b11.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The Venus code has a sort of watchdog that attempts to recover from IP errors, implemented as a delayed work job, which calls venus_sys_error_handler(). Right now, it has several issues: 1. It assumes that PM runtime resume never fails 2. It internally runs two while() loops that also assume that PM runtime will never fail to go idle: while (pm_runtime_active(core->dev_dec) || pm_runtime_active(core->dev_enc= )) msleep(10); ... while (core->pmdomains[0] && pm_runtime_active(core->pmdomains[0])) usleep_range(1000, 1500); 3. It uses an OR to merge all return codes and then report to the user 4. If the hardware never recovers, it keeps running on every 10ms, flooding the syslog with 2 messages (so, up to 200 messages per second). Rework the code, in order to prevent that, by: 1. check the return code from PM runtime resume; 2. don't let the while() loops run forever; 3. store the failed event; 4. use warn ratelimited when it fails to recover. Fixes: af2c3834c8ca ("[media] media: venus: adding core part and helper fun= ctions") Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/qcom/venus/core.c | 59 +++++++++++++++++++----- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 54bac7ec14c5..4d0482743c0a 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -78,22 +78,32 @@ static const struct hfi_core_ops venus_core_ops =3D { .event_notify =3D venus_event_notify, }; =20 +#define RPM_WAIT_FOR_IDLE_MAX_ATTEMPTS 10 + static void venus_sys_error_handler(struct work_struct *work) { struct venus_core *core =3D container_of(work, struct venus_core, work.work); - int ret =3D 0; + int ret, i, max_attempts =3D RPM_WAIT_FOR_IDLE_MAX_ATTEMPTS; + bool failed =3D false; + const char *err_msg =3D ""; =20 - pm_runtime_get_sync(core->dev); + ret =3D pm_runtime_get_sync(core->dev); + if (ret < 0) { + err_msg =3D "resume runtime PM\n"; + max_attempts =3D 0; + failed =3D true; + } =20 hfi_core_deinit(core, true); =20 - dev_warn(core->dev, "system error has occurred, starting recovery!\n"); - mutex_lock(&core->lock); =20 - while (pm_runtime_active(core->dev_dec) || pm_runtime_active(core->dev_en= c)) + for (i =3D 0; i < max_attempts; i++) { + if (!pm_runtime_active(core->dev_dec) && !pm_runtime_active(core->dev_en= c)) + break; msleep(10); + } =20 venus_shutdown(core); =20 @@ -101,31 +111,56 @@ static void venus_sys_error_handler(struct work_struc= t *work) =20 pm_runtime_put_sync(core->dev); =20 - while (core->pmdomains[0] && pm_runtime_active(core->pmdomains[0])) + for (i =3D 0; i < max_attempts; i++) { + if (!core->pmdomains[0] || !pm_runtime_active(core->pmdomains[0])) + break; usleep_range(1000, 1500); + } =20 hfi_reinit(core); =20 - pm_runtime_get_sync(core->dev); + ret =3D pm_runtime_get_sync(core->dev); + if (ret < 0) { + err_msg =3D "resume runtime PM\n"; + max_attempts =3D 0; + failed =3D true; + } =20 - ret |=3D venus_boot(core); - ret |=3D hfi_core_resume(core, true); + ret =3D venus_boot(core); + if (ret && !failed) { + err_msg =3D "boot Venus\n"; + failed =3D true; + } + + ret =3D hfi_core_resume(core, true); + if (ret && !failed) { + err_msg =3D "resume HFI\n"; + failed =3D true; + } =20 enable_irq(core->irq); =20 mutex_unlock(&core->lock); =20 - ret |=3D hfi_core_init(core); + ret =3D hfi_core_init(core); + if (ret && !failed) { + err_msg =3D "init HFI\n"; + failed =3D true; + } =20 pm_runtime_put_sync(core->dev); =20 - if (ret) { + if (failed) { disable_irq_nosync(core->irq); - dev_warn(core->dev, "recovery failed (%d)\n", ret); + dev_warn_ratelimited(core->dev, + "System error has occurred, recovery failed to %s\n", + err_msg); schedule_delayed_work(&core->work, msecs_to_jiffies(10)); return; } =20 + dev_warn(core->dev, "system error has occurred (recovered)\n"); + mutex_lock(&core->lock); core->sys_error =3D false; mutex_unlock(&core->lock); --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207749; cv=none; d=zohomail.com; s=zohoarc; b=VLdd/cGEPwK4P5/F2YgBy1k4GX9IUBEm5gSSI38Jw1AOCqm5etpCNObc3TwPY9fNwZhQCbn+tmkKLa0NeSFB4Q3ImO/O6RQZnA65OeKg+okbv3vuiCEQy4kYg9XFtdwWNOLhJ5mQBEqbRFN/rLzi4wJLOGeETeAAQKOwWUDG4GY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207749; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3n/7+9CgADIyWE86Fuc9OuXb+xJyiBAEIAQLKjFOYrg=; b=OmnAd4M3vWFBYiBF1yTM6LMPxmvqgyHyaQyBZkElVvzMolQYGaKlKBBLC8f+zf+p3omw9roZDaAMnCgStvG9hjEw8OAWj+YU8p6vUlWhbyfZXAbECvIa8WFmCpWwgUMtJqxkdjMPZiSGVjrpzHTjBR37juolVDbISc3GtqQ8Q8Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207749160184.76511594388626; Wed, 5 May 2021 02:42:29 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232667AbhEEJnY (ORCPT ); Wed, 5 May 2021 05:43:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:48284 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232160AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DDA71613EC; Wed, 5 May 2021 09:42:18 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHw0-OX; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207738; bh=EG1Xkz5icS6rCKpEKVZN/X2JADr2Ee/ss00sHCZahe0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NCJ17ww5difLY2RZykFODFD3vD68DbAG+YfiIBCcZvlK8erqQD8mJQrDXZHXxOpbu QOhrHl4QnNKgRnJljipxYLtGoES9n/kGUi1ZwMmmgZn5EPhr0rtCe7Oq7HjQgOpPQW o4REwkYpeCvtJ0HW58KM7G9dHDAoHWhN+gDELxc3wcNW8QWBMj8TGXjI9SkpBSf9TI KZxjQZkiLAEL/diYAuBAayXmnxFrkraTwyN7EhWd8CyzXVff2ZgYPxRE9Y6zKt37z/ TFXAlKWup2YHP8W+ljUo1OSeHbkB8hFVn2nCUo/FMmtnlkxBVpkPG2JwPfuVyFEf3i sJCZMjLbKzfcg== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Hans Verkuil , Kamil Debski , Marek Szyprowski , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Sylwester Nawrocki Subject: [PATCH 04/25] media: s5p_cec: decrement usage count if disabled Date: Wed, 5 May 2021 11:41:54 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There's a bug at s5p_cec_adap_enable(): if called to disable the device, it should call pm_runtime_put() instead of pm_runtime_disable(), as the goal here is to decrement the usage_count and not to disable PM runtime. Reported-by: Sylwester Nawrocki Fixes: 1bcbf6f4b6b0 ("[media] cec: s5p-cec: Add s5p-cec driver") Signed-off-by: Mauro Carvalho Chehab --- drivers/media/cec/platform/s5p/s5p_cec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/cec/platform/s5p/s5p_cec.c b/drivers/media/cec/p= latform/s5p/s5p_cec.c index 2a3e7ffefe0a..3c7c4c3c798c 100644 --- a/drivers/media/cec/platform/s5p/s5p_cec.c +++ b/drivers/media/cec/platform/s5p/s5p_cec.c @@ -51,7 +51,7 @@ static int s5p_cec_adap_enable(struct cec_adapter *adap, = bool enable) } else { s5p_cec_mask_tx_interrupts(cec); s5p_cec_mask_rx_interrupts(cec); - pm_runtime_disable(cec->dev); + pm_runtime_put(cec->dev); } =20 return 0; --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207753; cv=none; d=zohomail.com; s=zohoarc; b=Rx9uyAZ7Np6HPuP2NQiJ7ejG3ktTT66ipY4pd6D1kiroQuyeLqQJgSW5KOSrjLz3na3lOqEIfT8NepnL1ZZcSvWV57LfVyVyThfctjCVXEUQLcGNCQRt6LsMwPyhI7ao6YtKgsJOZNsXw9DxszuNCZV2lVkxqGmfK4u5W7cDIQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207753; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZaRdPD0J19JGfyou996jWDTr23RudNwLquh704SCC9Y=; b=MFjHjIUV7YdU0CbiZ7J1E1o0x0wysTU+rm+DXAq8u62QKDZgvgUS3dbJ3IZ6VMu0wprORz7P9RLKl27Ct5DnImQC5VtAHQwhRjNLfcywh1zFMewU2LayT0bmxRNlJInli9HBYkW1tD6Fs2PAmZlHnNnS+Ukvc/uVNzNqRI0OGSU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 16202077531641002.5300539106631; Wed, 5 May 2021 02:42:33 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232796AbhEEJn2 (ORCPT ); Wed, 5 May 2021 05:43:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:48262 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232136AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DA5EE613ED; Wed, 5 May 2021 09:42:18 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHw3-Ph; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207738; bh=G+D62uYOeO3E6zIZOyRsLhX8wVEnwPFM5avER7onHgI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cGJFjveEllVyJRu+S+l9xNWE7UxP6WPat24ylQV7DVcJff2jOVkZaFQgX07UOdk2t tjfv6Nj36v+5JyX1KZlkgGiyq7wIocHJW8grZt+xZm2+8pyXj5WVtkzPP0xHdzHk+u CjgREtYNjvYZCXhCGJZ1n6Rgpslh05hAm0FFQxcp9BtwzpaH7o36raQM3vSw1YYCyf R6d5cJ5d5fXVZBrU5Ghq9Jz+nc9X+UNMPG79Ilj++jV5wIZc/nd9vkojWLTidm2Z4b GmXeFXCMMYbhqyQ1jyckcYCFcRYaztk9kV9kPQlo/AxpK25qcW5BeMAyiCCKBYdWym isb6YRYcS7NYA== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Mauro Carvalho Chehab , Sakari Ailus , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 05/25] media: i2c: ccs-core: return the right error code at suspend Date: Wed, 5 May 2021 11:41:55 +0200 Message-Id: <92cb0f741d16d9eaa9f99f336d826f30ac7a2671.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" If pm_runtime resume logic fails, return the error code provided by it, instead of -EAGAIN, as, depending on what caused it to fail, it may not be something that would be recovered. Fixes: cbba45d43631 ("[media] smiapp: Use runtime PM") Signed-off-by: Mauro Carvalho Chehab --- drivers/media/i2c/ccs/ccs-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-c= ore.c index 9dc3f45da3dc..b05f409014b2 100644 --- a/drivers/media/i2c/ccs/ccs-core.c +++ b/drivers/media/i2c/ccs/ccs-core.c @@ -3093,7 +3093,7 @@ static int __maybe_unused ccs_suspend(struct device *= dev) if (rval < 0) { pm_runtime_put_noidle(dev); =20 - return -EAGAIN; + return rval; } =20 if (sensor->streaming) --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207799; cv=none; d=zohomail.com; s=zohoarc; b=M3SE01q/0fY0n+GIa7k/LfILjJhRch3HZe0Nwo2ATmTPDEL6t2+zT+eLc1nRwNlXtfx0ObnUQwzjOUImnoqbkZV8rl/SaM5IC3ByY3CFnRz1MzAyt0xTLSKaiD8zKbiLiJGul3pNlfZPSmfx2ti91w0tOnxMLRWln/lPDbmt/V4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207799; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7Hi4ZCC9YUmrdeaw/TMtOSdJ+EOF9zJxS0IXjk4Fpr8=; b=kxGXhTTH00lMxcZenVqBcfYGCYQyqCj/pmzyd2dj9NafzuzPA3qbW8K6KNFKReFzpaae4wJENi6EHouJQp/o4J5Ea5RQEA1UwCU5ORgMfs0TA1lyXHnWaBou/6FxYuEnkCP3ORSjm0Eo3WpjyS0L7iYPBw8coUhzQ+osf8WYEs0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 162020779973748.15701896865653; Wed, 5 May 2021 02:43:19 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233213AbhEEJoK (ORCPT ); Wed, 5 May 2021 05:44:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:48620 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232397AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1B01E6140F; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHw6-RN; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=JcIZp6yZMv3qHRfQxdJ/W6eZtpcx5F6VpH0Ap9ywfpI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Li6W/6B6PEyOTmCfqBIvlgMUcPvGhr788mD8SPztiXVf7B0g1vijAlk9+cF3j4nyX YvVsbQWQu8TObhK0NJtCkPgpkI9LYUl/PXdizLvv4e/rYxXA/QSxXzjp66vwAkxXc4 n/ccMwFogr2m8WZgameQQZIYKudzQgfP3RkGE239f48cqZlx3kG7pMWSkRL1m47HE4 LFIXkA6aLre5AiNdNAjZpoOp8zih4WA4DTNXaXmqRRK1F9gmnprrrEHuxZd/+XqSCi pwMakB/BUmI5Q8Gd2RaYindlsy+fSZJ5CDxQqRmf4qeecEbgQ5F4eYKctUcBJGyNcS Qm8kstE46/xog== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , "Paul J. Murphy" , Daniele Alessandrelli , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Dan Carpenter Subject: [PATCH 06/25] media: i2c: imx334: fix the pm runtime get logic Date: Wed, 5 May 2021 11:41:56 +0200 Message-Id: <9552f3daece8bec6869b518410b2998c3fc0a1fc.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The PM runtime get logic is currently broken, as it checks if ret is zero instead of checking if it is an error code, as reported by Dan Carpenter. While here, use the pm_runtime_resume_and_get() as added by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") added pm_runtime_resume_and_get() in order to automatically handle dev->power.usage_count decrement on errors. As a bonus, such function always return zero on success. It should also be noticed that a fail of pm_runtime_get_sync() would potentially result in a spurious runtime_suspend(), instead of using pm_runtime_put_noidle(). Reported-by: Dan Carpenter Reviewed-by: Daniele Alessandrelli Signed-off-by: Mauro Carvalho Chehab --- drivers/media/i2c/imx334.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c index 047aa7658d21..23f28606e570 100644 --- a/drivers/media/i2c/imx334.c +++ b/drivers/media/i2c/imx334.c @@ -717,9 +717,9 @@ static int imx334_set_stream(struct v4l2_subdev *sd, in= t enable) } =20 if (enable) { - ret =3D pm_runtime_get_sync(imx334->dev); - if (ret) - goto error_power_off; + ret =3D pm_runtime_resume_and_get(imx334->dev); + if (ret < 0) + goto error_unlock; =20 ret =3D imx334_start_streaming(imx334); if (ret) @@ -737,6 +737,7 @@ static int imx334_set_stream(struct v4l2_subdev *sd, in= t enable) =20 error_power_off: pm_runtime_put(imx334->dev); +error_unlock: mutex_unlock(&imx334->mutex); =20 return ret; --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207746; cv=none; d=zohomail.com; s=zohoarc; b=SXDvY7lV36EKeOLfOr2kcqKlmfb7F3GkOAE/NoaY1C9tL1ASt/rsui+ME3lvzuX8z3nw04awoRMigN77EUiUUXNuGSmwCS2yL4zgPySBTdU/lcsjJJRLQ3B0IfaRup9/Bb+KCNnn0nbwGr6i/EdJxGedt56DBSBhu2f5d7ljKKA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207746; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OI77eR4nGyZxIXpCKbXz8jMtKZLMEeKKY17oeWDLdic=; b=FpyAMNZVSiYGZIs8ams1mEfq3wmeEZc+lPgOaT8W1dn5hU4d9saPHC/4MyQu0WET+jApZhGmBBUKGeE4s9DxR3eGgwYcRK2aqKotcrf2tuWnR6EPZmivLxrq4G0aU4j2tFTerTzFWfgfhJZd69SNr5nLcgcw4oyPL4vPK6Nh2dM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207746173444.7460673313092; Wed, 5 May 2021 02:42:26 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232591AbhEEJnU (ORCPT ); Wed, 5 May 2021 05:43:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:48246 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232109AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D7FEB613D6; Wed, 5 May 2021 09:42:18 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHw9-Sx; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207738; bh=mnwOoPbSt3peAjkyotn8X7kUrTzZPsSiyyacWXI13wM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bgfruVEEULYmgG8/EtzRxyrlkAlbXqpxHyLYWRYORK3lTHHwyE7wPJ96drcdorIc1 D4GndNvQT0xO0M8kqfe9fdMGZ13MftfEJ7aNDQXUnKYnhAxqwIEdivyt2LzNIvHgyG kHJIUUIyHL9ZZYkaxLrCB/jUI08u1rsRDK6zvm+J6e+8CUZoomYLuKMeHIxlOx4oa3 hj57c8Kq3+kCxjge4PuopSuXt+QDkKzP81q4VppzM+6p+GxklFiqhfK0P8dhMUHExH Ob4zfKSovQbjxrWNOnQ9cG8JpzDBcP0SS/LqlwzybnI4AsnfAwCYVx0qI5iYi3PNX7 cjyOBBv8BA+iw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Ezequiel Garcia , Hans Verkuil , Krzysztof Kozlowski , Mauro Carvalho Chehab , Sylwester Nawrocki , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 07/25] media: exynos-gsc: don't resume at remove time Date: Wed, 5 May 2021 11:41:57 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Calling pm_runtime_get_sync() at driver's removal time is not needed, as this will resume PM runtime. Also, the PM runtime code at pm_runtime_disable() already calls it, if it detects the need. So, change the logic in order to disable PM runtime earlier. Reviewed-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/exynos-gsc/gsc-core.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/p= latform/exynos-gsc/gsc-core.c index 9f41c2e7097a..f49f3322f835 100644 --- a/drivers/media/platform/exynos-gsc/gsc-core.c +++ b/drivers/media/platform/exynos-gsc/gsc-core.c @@ -1210,18 +1210,19 @@ static int gsc_remove(struct platform_device *pdev) struct gsc_dev *gsc =3D platform_get_drvdata(pdev); int i; =20 - pm_runtime_get_sync(&pdev->dev); - gsc_unregister_m2m_device(gsc); v4l2_device_unregister(&gsc->v4l2_dev); =20 vb2_dma_contig_clear_max_seg_size(&pdev->dev); - for (i =3D 0; i < gsc->num_clocks; i++) - clk_disable_unprepare(gsc->clock[i]); =20 - pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); =20 + if (!pm_runtime_status_suspended(&pdev->dev)) + for (i =3D 0; i < gsc->num_clocks; i++) + clk_disable_unprepare(gsc->clock[i]); + + pm_runtime_set_suspended(&pdev->dev); + dev_dbg(&pdev->dev, "%s driver unloaded\n", pdev->name); return 0; } --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207765; cv=none; d=zohomail.com; s=zohoarc; b=R+y0bUQvV7/a08CA3DeI9JHUL1E2UcHW0lxK7d8pe6DeVApDujy7Nev22fncFG0WumW20PZufS5YcXxsfrCfpf13acNDM45TLabRAd/DtC0oBodpJc6KlK6aJEyhYNLFEJQuAcWLcySSun1/HcbmGZ5nmyGMEjeiPW9+DajvloU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207765; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PeH2yNupdb6YP3gWNbcFAVQ1vpfjUUipct6SLHlV93U=; b=X6itM/32OQjWGkZJdjiq6Y7lIeP0qMw4+8WYhstyyufFE6rqZ1GdCMS9pvGt6bLg0eGbakQ8ddytZfO60IYiNWGgGScl7FMUihftmH06vPqHX7u7JwqS9o5MeuIe393SRnNe4MOiroKc1bl0oFnurcFuRMX3s/i5leh0m/D3kps= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 16202077656331015.0076300247727; Wed, 5 May 2021 02:42:45 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232922AbhEEJni (ORCPT ); Wed, 5 May 2021 05:43:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:48634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232414AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3004661417; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHwC-U6; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=ddHMsoQJIeEVxpJKZdA1kNWkPpxjkyAVmGR/xG7ZBGg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n11nVBSoJJrK6LOv5J1TgVtk+WKAJeHa8zqHPGr2rmaI/NlH/NBTMyZb7f5miyt/K EWZTEkOwphSu7IYzIO2dpQa0QbNMQwihy6PTpTXaj9bvbH/KRL65dtZmN+k6hFYMMV i7GjR/27WjjHIGlaXflro8tlT6iC3mn7/dMzOULXeXpmCjhHDij8EeMklc9yb8myt0 9wHo1DdbCuyQ3XGv1wI8NheBpnS0UlXub4LaM220gbWYJRWHjrJNquNWqUtOI7vWW1 1T2sl2BMpqo8qmWNN1NjAVNIP/sE8aHSUAF+3U1MhTn6iWLQyp2L0pKIWS7iop2GQ/ R5CZNFTv40rGw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Alexandre Belloni , Eugen Hristev , Ludovic Desroches , Mauro Carvalho Chehab , Nicolas Ferre , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 08/25] media: atmel: properly get pm_runtime Date: Wed, 5 May 2021 11:41:58 +0200 Message-Id: <975645970144b6c8401ab9bd1243619978a868a9.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There are several issues in the way the atmel driver handles pm_runtime_get_sync(): - it doesn't check return codes; - it doesn't properly decrement the usage_count on all places; - it starts streaming even if pm_runtime_get_sync() fails. - while it tries to get pm_runtime at the clock enable logic, it doesn't check if the operation was suceeded. Replace all occurrences of it to use the new kAPI: pm_runtime_resume_and_get(), which ensures that, if the return code is not negative, the usage_count was incremented. With that, add additional checks when this is called, in order to ensure that errors will be properly addressed. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/atmel/atmel-isc-base.c | 30 ++++++++++++++----- drivers/media/platform/atmel/atmel-isi.c | 19 +++++++++--- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/= platform/atmel/atmel-isc-base.c index fe3ec8d0eaee..ce8e1351fa53 100644 --- a/drivers/media/platform/atmel/atmel-isc-base.c +++ b/drivers/media/platform/atmel/atmel-isc-base.c @@ -294,9 +294,13 @@ static int isc_wait_clk_stable(struct clk_hw *hw) static int isc_clk_prepare(struct clk_hw *hw) { struct isc_clk *isc_clk =3D to_isc_clk(hw); + int ret; =20 - if (isc_clk->id =3D=3D ISC_ISPCK) - pm_runtime_get_sync(isc_clk->dev); + if (isc_clk->id =3D=3D ISC_ISPCK) { + ret =3D pm_runtime_resume_and_get(isc_clk->dev); + if (ret < 0) + return ret; + } =20 return isc_wait_clk_stable(hw); } @@ -353,9 +357,13 @@ static int isc_clk_is_enabled(struct clk_hw *hw) { struct isc_clk *isc_clk =3D to_isc_clk(hw); u32 status; + int ret; =20 - if (isc_clk->id =3D=3D ISC_ISPCK) - pm_runtime_get_sync(isc_clk->dev); + if (isc_clk->id =3D=3D ISC_ISPCK) { + ret =3D pm_runtime_resume_and_get(isc_clk->dev); + if (ret < 0) + return 0; + } =20 regmap_read(isc_clk->regmap, ISC_CLKSR, &status); =20 @@ -807,7 +815,12 @@ static int isc_start_streaming(struct vb2_queue *vq, u= nsigned int count) goto err_start_stream; } =20 - pm_runtime_get_sync(isc->dev); + ret =3D pm_runtime_resume_and_get(isc->dev); + if (ret < 0) { + v4l2_err(&isc->v4l2_dev, "RPM resume failed in subdev %d\n", + ret); + goto err_pm_get; + } =20 ret =3D isc_configure(isc); if (unlikely(ret)) @@ -838,7 +851,7 @@ static int isc_start_streaming(struct vb2_queue *vq, un= signed int count) =20 err_configure: pm_runtime_put_sync(isc->dev); - +err_pm_get: v4l2_subdev_call(isc->current_subdev->sd, video, s_stream, 0); =20 err_start_stream: @@ -1809,6 +1822,7 @@ static void isc_awb_work(struct work_struct *w) u32 baysel; unsigned long flags; u32 min, max; + int ret; =20 /* streaming is not active anymore */ if (isc->stop) @@ -1831,7 +1845,9 @@ static void isc_awb_work(struct work_struct *w) ctrls->hist_id =3D hist_id; baysel =3D isc->config.sd_format->cfa_baycfg << ISC_HIS_CFG_BAYSEL_SHIFT; =20 - pm_runtime_get_sync(isc->dev); + ret =3D pm_runtime_resume_and_get(isc->dev); + if (ret < 0) + return; =20 /* * only update if we have all the required histograms and controls diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platf= orm/atmel/atmel-isi.c index e392b3efe363..5b1dd358f2e6 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -422,7 +422,9 @@ static int start_streaming(struct vb2_queue *vq, unsign= ed int count) struct frame_buffer *buf, *node; int ret; =20 - pm_runtime_get_sync(isi->dev); + ret =3D pm_runtime_resume_and_get(isi->dev); + if (ret < 0) + return ret; =20 /* Enable stream on the sub device */ ret =3D v4l2_subdev_call(isi->entity.subdev, video, s_stream, 1); @@ -782,9 +784,10 @@ static int isi_enum_frameintervals(struct file *file, = void *fh, return 0; } =20 -static void isi_camera_set_bus_param(struct atmel_isi *isi) +static int isi_camera_set_bus_param(struct atmel_isi *isi) { u32 cfg1 =3D 0; + int ret; =20 /* set bus param for ISI */ if (isi->pdata.hsync_act_low) @@ -801,12 +804,16 @@ static void isi_camera_set_bus_param(struct atmel_isi= *isi) cfg1 |=3D ISI_CFG1_THMASK_BEATS_16; =20 /* Enable PM and peripheral clock before operate isi registers */ - pm_runtime_get_sync(isi->dev); + ret =3D pm_runtime_resume_and_get(isi->dev); + if (ret < 0) + return ret; =20 isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); isi_writel(isi, ISI_CFG1, cfg1); =20 pm_runtime_put(isi->dev); + + return 0; } =20 /* -----------------------------------------------------------------------= */ @@ -1085,7 +1092,11 @@ static int isi_graph_notify_complete(struct v4l2_asy= nc_notifier *notifier) dev_err(isi->dev, "No supported mediabus format found\n"); return ret; } - isi_camera_set_bus_param(isi); + ret =3D isi_camera_set_bus_param(isi); + if (ret) { + dev_err(isi->dev, "Can't wake up device\n"); + return ret; + } =20 ret =3D isi_set_default_fmt(isi); if (ret) { --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207808; cv=none; d=zohomail.com; s=zohoarc; b=baqyxz2qA8Z8cHPQ0jaG1yQFVRK+hIqhCK4XV9GW3f24A406z7BJFiyrxDsSym4s4Mvge0OkbWbPL9mUUQfbCqFrLczw7iWsAWnDGstCE1padimH3Q2AMhhSqCd9MNCgcZjZo7V/DwA5jkyu2loBm1dSItcTgDKvMQRLuNlJiVE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207808; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8NehB0bHaN0i3xYOIzTYzlkaJczlWkn3wPru+u3fu2s=; b=ZOt2LCdQz7NDV4IzGCyKAbumQ1KapaDCPglBdyM0JkS6ya2L5b0ubiyxMPjNFt2x19p06iTmWQajVwksZj7MkdX/AbpLoHfQ8ncenjjohOuWd3mVsm8qRnRgkc6bQBGyEZPK327u8qPEVo2D5+gx8hRB7qFm+hsrMX6gtatfxd8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207808414542.0761000983188; Wed, 5 May 2021 02:43:28 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233243AbhEEJoW (ORCPT ); Wed, 5 May 2021 05:44:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:48622 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232400AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1DCD961411; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2q-00AHwF-Vt; Wed, 05 May 2021 11:42:16 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=/VfMQN3+pkon4IAGYHihI8JDgg/MmcbaQd2LgSvJOKs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OJwXWSgCTeFz4nYyd0dPxgy9oWhU8iKG/zEMSgLxJk9nEFTQlcGrcj6aQAzFg8GOx QVVoLds9pHATVB973bb6D5NJ/4900udi760KWYgOCfjTG2huOov9iIGMjl8fYqrUTj tqQjLvebLD9FOGARehRd+WMzGSPCanIGJ36e1RZp7wDOdRn+8ap5QHz3kYwNh9pLf3 FBfnEmhMRBPKhjcZkUJM02ecdANSZeZkA3wBhZcwmg11kwyOLUwolHZZL/5zqltfvg FT8BgIxPvmzD4sDImXahZtGrgOFuiXwD/NEFHYWSMcs7ziApJJZaCfjh5keDxY9TFq ZAUI+Gxg5QIfg== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Ezequiel Garcia , Greg Kroah-Hartman , Hans Verkuil , Mauro Carvalho Chehab , Philipp Zabel , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Subject: [PATCH 09/25] media: hantro: do a PM resume earlier Date: Wed, 5 May 2021 11:41:59 +0200 Message-Id: <82114a4bd9c7bc1188c6a7167a6e74bb3360961d.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The device_run() first enables the clock and then tries to resume PM runtime, checking for errors. Well, if for some reason the pm_runtime can not resume, it would be better to detect it beforehand. So, change the order inside device_run(). Reviewed-by: Ezequiel Garcia Fixes: 775fec69008d ("media: add Rockchip VPU JPEG encoder driver") Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/media/hantro/hantro_drv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/me= dia/hantro/hantro_drv.c index 595e82a82728..4387edaa1d0d 100644 --- a/drivers/staging/media/hantro/hantro_drv.c +++ b/drivers/staging/media/hantro/hantro_drv.c @@ -152,13 +152,14 @@ static void device_run(void *priv) src =3D hantro_get_src_buf(ctx); dst =3D hantro_get_dst_buf(ctx); =20 - ret =3D clk_bulk_enable(ctx->dev->variant->num_clocks, ctx->dev->clocks); - if (ret) - goto err_cancel_job; ret =3D pm_runtime_get_sync(ctx->dev->dev); if (ret < 0) goto err_cancel_job; =20 + ret =3D clk_bulk_enable(ctx->dev->variant->num_clocks, ctx->dev->clocks); + if (ret) + goto err_cancel_job; + v4l2_m2m_buf_copy_metadata(src, dst, true); =20 ctx->codec_ops->run(ctx); --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207809; cv=none; d=zohomail.com; s=zohoarc; b=KgtoHu74Rp3stPGzMjCjEPxSNgwytyF3ftNk1o87sG2Td6nwhTOk4ZY0kjC3pTysu21rQB3xSqr0Xrd0DyUav0h3ajsw8UslQN0UJPdVAxeecIm0VjZcKHk0f1IrT7L3Lwnl2iX/DycYXFP1/YqUYVXTPD5ezBMvjJMW480Rx0Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207809; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YKBKGz6RirFbT3R3XvKNdkNUKRHh2VgmUVvN4yNVxGM=; b=CCQzzisp1ORk++u7SSW9Y915zUsmyoG173zOmqdM7KffV3FGhuZG82yERgw7Aj3oXbMUGtGT+q/227vdK/y6yWL4s5BUYjfGItndcI8uCx9N//634shHy4UbI14q+NVgkG7xftW4qcuh5S3915XezLgpHpBbp/mPP0lTzupVEi4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207809977785.4440721442974; Wed, 5 May 2021 02:43:29 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232934AbhEEJoY (ORCPT ); Wed, 5 May 2021 05:44:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:48606 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232373AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 259DC61413; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwI-1C; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=q4BhlNxVlfORYoTSi6feVaPNYXcgoQfMmzgINIkBslA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gZZ6FCv1SxMi1afk7/pU/SwP6ou74/YfwYgWeC31Q79Id6PKiXTKPuUEwZNpVsIS2 8+l/ox5g5VrLkHNKCukkKp4I5sTifdejUqTXV5dYmccnOkhASD0g8zj66EDZK3UBNL gribrjV4HqU4el2XqHfttulrZbXTkEzPv3voDofmMvNRzIe7XoXIGRujoQkV3nR67a wydyl/+0O4moqE13TVmVrNdtjGZI/1sIyzLrcojS8H7l6GO//qKQJ3VJdk/eGKzxvk 7cLH2bcr5QI7axI8N9yO8LVYUlA3FU9F4AbTkxbbb+PS9O5OS3XQnJL+KiLnOx+UYV Jfh4KEBfJJWmQ== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , "Gustavo A. R. Silva" , Allen Pais , Chuhong Yuan , Ezequiel Garcia , Hans Verkuil , Helen Koike , Lubomir Rintel , Mauro Carvalho Chehab , Sakari Ailus , Vaibhav Gupta , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Jonathan Cameron Subject: [PATCH 10/25] media: marvel-ccic: fix some issues when getting pm_runtime Date: Wed, 5 May 2021 11:42:00 +0200 Message-Id: <0ecf2ea9295dcf08ae6e1ae29ca3bc9ab3221a7c.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Calling pm_runtime_get_sync() is bad, since even when it returns an error, pm_runtime_put*() should be called. So, use instead pm_runtime_resume_and_get(). While here, ensure that the error condition will be checked during clock enable an media open() calls. Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/marvell-ccic/mcam-core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c b/drivers/medi= a/platform/marvell-ccic/mcam-core.c index 141bf5d97a04..ea87110d9073 100644 --- a/drivers/media/platform/marvell-ccic/mcam-core.c +++ b/drivers/media/platform/marvell-ccic/mcam-core.c @@ -918,6 +918,7 @@ static int mclk_enable(struct clk_hw *hw) struct mcam_camera *cam =3D container_of(hw, struct mcam_camera, mclk_hw); int mclk_src; int mclk_div; + int ret; =20 /* * Clock the sensor appropriately. Controller clock should @@ -931,7 +932,9 @@ static int mclk_enable(struct clk_hw *hw) mclk_div =3D 2; } =20 - pm_runtime_get_sync(cam->dev); + ret =3D pm_runtime_resume_and_get(cam->dev); + if (ret < 0) + return ret; clk_enable(cam->clk[0]); mcam_reg_write(cam, REG_CLKCTRL, (mclk_src << 29) | mclk_div); mcam_ctlr_power_up(cam); @@ -1611,7 +1614,9 @@ static int mcam_v4l_open(struct file *filp) ret =3D sensor_call(cam, core, s_power, 1); if (ret) goto out; - pm_runtime_get_sync(cam->dev); + ret =3D pm_runtime_resume_and_get(cam->dev); + if (ret < 0) + goto out; __mcam_cam_reset(cam); mcam_set_config_needed(cam, 1); } --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207814; cv=none; d=zohomail.com; s=zohoarc; b=U0qlO0SpOYOkhvedm7TgftPny/BxuVIygSxHXiNDwKPgGtaDA8sP2c4iFibuWuqECvzyoclx4QphTmv9FChlqoUTn9bjVPdiczla7o1dF0rcvy3A2H11L4h0VsLG9z0Ur53kB5TnplE37m4ewPNIT+iPvjV0VQNbe9isrBuuG9o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207814; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EzCCb+m27jvqAKs/f/gbZSYwnky8XiDJU+IaJBa5yK8=; b=n7uwTVVQyUV14mdYY/Pqzz3YggpGGHrx/ruxl9T8jc6zvGWZrVUzDBP/lrTa5+PvWNsxTfflXdZAE6rvOohiHsp13604IerBl644zkrN0bypP0NQ5jdAZ5DPj9XOsjKj/k6q0K5wcOND1OQg0wnqnvBd1s0alnlUoiZPdJyf47s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207814572753.0744334594298; Wed, 5 May 2021 02:43:34 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233205AbhEEJo1 (ORCPT ); Wed, 5 May 2021 05:44:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:48604 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232372AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1F5EE61415; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwL-2w; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=Dvc8kv3rKA2FJT+3+TlwvMpufC19eU96pvINXTVj9yE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WlacScYsZHSgKh8Ot7sqL1EzbBeavncCcTzCxZIIZTPtaofe6Z8uUJ7AyBMRzB1xR 281CWNgec/9yBilH+h09gCn3Pc9jeBlmUxFChA/rLB8qUGvOmAUQ6f8c0Upw8MV3IC lbVEozVF4xF4YJ7XlSVuU5Bqxnzy1vinOlyC8lOlU64go6JucQHXOoytv0rC6nhs9q e8Fpef25VBTXLf4bf8QVnTniQky8cyVWp3x9BCi+x87Lh8aGBjaQo3BS/v/3WWPu+1 daW42h4iOPWy6rIbYESir2FwHlAB1iBrxi7j9iaEZl/j/6JK1drAAHLwTiNOQa51PI M8X6v1PD/IUQw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Andrew-CT Chen , Houlong Wei , Matthias Brugger , Mauro Carvalho Chehab , Minghsiu Tsai , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, Jonathan Cameron Subject: [PATCH 11/25] media: mdk-mdp: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:01 +0200 Message-Id: <319026fb56190e19ab2b940952ebe8fa233ccb4e.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. While here, fix the return contition of mtk_mdp_m2m_start_streaming(), as it doesn't make any sense to return 0 if the PM runtime failed to resume. Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c b/drivers/media/p= latform/mtk-mdp/mtk_mdp_m2m.c index ace4528cdc5e..f14779e7596e 100644 --- a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c @@ -391,12 +391,12 @@ static int mtk_mdp_m2m_start_streaming(struct vb2_que= ue *q, unsigned int count) struct mtk_mdp_ctx *ctx =3D q->drv_priv; int ret; =20 - ret =3D pm_runtime_get_sync(&ctx->mdp_dev->pdev->dev); + ret =3D pm_runtime_resume_and_get(&ctx->mdp_dev->pdev->dev); if (ret < 0) - mtk_mdp_dbg(1, "[%d] pm_runtime_get_sync failed:%d", + mtk_mdp_dbg(1, "[%d] pm_runtime_resume_and_get failed:%d", ctx->id, ret); =20 - return 0; + return ret; } =20 static void *mtk_mdp_m2m_buf_remove(struct mtk_mdp_ctx *ctx, --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207820; cv=none; d=zohomail.com; s=zohoarc; b=RKHY4DvUoJiNNgkrXnKeCoUcfqth7SJ3RPknnWH5Qhv5crn8xP4HG7dIMNuGgbmVwKagg8potMF1ZwV6dqd/z6SdI9Fv20cmjI38c5OIs4OL+0rbgcnuIGMQZIZ1zGFUhl9v86AljQreFl0oRlMyH4mrB2AHN294OxyJJdwExKY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207820; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=h0ZokSUrSKbeLCRN5iPkvqtkuV1CFwkOhbmum/oG/Yo=; b=TDOUaoS+dDntjAPHMGkz2JsRVtMZosg9S+czvHb26/xjnEW6v28lVqTEK1ap934u4eUo7iM7t+fGM/gYY8M+9oYNs5HEesjiQbRlEjtiTThJ5zivQeY0E0AH3+62WiO8BBcqX0oSDV8dXy/mlOcsJbH0VV6yvxAOhp7DyHL2ajw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207820108550.266397430456; Wed, 5 May 2021 02:43:40 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232403AbhEEJoe (ORCPT ); Wed, 5 May 2021 05:44:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:48634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232508AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D202C61606; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwO-46; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=M0OqSRKx2VDTT/SgJ4SCHzlR1P9bOrIaMFlW3Y8TQtY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lGkPIrfAbN2wWagXexzVBCK7498s77sROlr6HSps02NghpSyC9yLpER7LAgKV9IM0 rhm6m8HtFE0aCp9L8tpM7bMNLdVeRxw7h1DBOUuPJZBSWkmC/TrWU6Y4vnpg1qylWM vaT3Z1zBQgV1uOqOml0XelQtwQ52k0Wq47vnm0doUwqjrdRRDStlSoGiRzuDJ1zEEs 1620rDDoYZJZygKhkvYmlvKxM8AUySmMXNAVtbmUsKleSX0Gq+NSeepxOT8P/bDoQb BZeL8rsde6hDQvdVUOVmkDqH199FAlMWKN1IXFtuhC+QhrltTUXYCv4qaKjE5iKzgo t5bBkosHKLImw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Kieran Bingham , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org Subject: [PATCH 12/25] media: rcar_fdp1: simplify error check logic at fdp_open() Date: Wed, 5 May 2021 11:42:02 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Avoid some code duplication by moving the common error path logit at fdp_open(). Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/rcar_fdp1.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/rcar_fdp1.c b/drivers/media/platform/rc= ar_fdp1.c index 01c1fbb97bf6..d26413fa5205 100644 --- a/drivers/media/platform/rcar_fdp1.c +++ b/drivers/media/platform/rcar_fdp1.c @@ -2117,9 +2117,7 @@ static int fdp1_open(struct file *file) =20 if (ctx->hdl.error) { ret =3D ctx->hdl.error; - v4l2_ctrl_handler_free(&ctx->hdl); - kfree(ctx); - goto done; + goto error_ctx; } =20 ctx->fh.ctrl_handler =3D &ctx->hdl; @@ -2133,10 +2131,7 @@ static int fdp1_open(struct file *file) =20 if (IS_ERR(ctx->fh.m2m_ctx)) { ret =3D PTR_ERR(ctx->fh.m2m_ctx); - - v4l2_ctrl_handler_free(&ctx->hdl); - kfree(ctx); - goto done; + goto error_ctx; } =20 /* Perform any power management required */ @@ -2147,6 +2142,12 @@ static int fdp1_open(struct file *file) dprintk(fdp1, "Created instance: %p, m2m_ctx: %p\n", ctx, ctx->fh.m2m_ctx); =20 + mutex_unlock(&fdp1->dev_mutex); + return 0; + +error_ctx: + v4l2_ctrl_handler_free(&ctx->hdl); + kfree(ctx); done: mutex_unlock(&fdp1->dev_mutex); return ret; --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207771; cv=none; d=zohomail.com; s=zohoarc; b=JOFb48vw/xWSCITsYyWp9D1PjK39kYw1omfb/ZMwMup1aaMK7mal9w9qsm1bkhnsLEeuZ9n5+Pr0IFPh97b1jcvzKaR99rgLOz8+fTJepGrvoMjNJGrdUHQzYV4sqHeBVdqG7PfZpC/RlBfIKdGdyneVWJFOxZnSH1ONE2PhlD8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207771; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZEbVNwcLskFkm728OGnxqhtw+NelARsz/pIsxo1DCG8=; b=RACP9q3Jfy+BmU17kU4wppb1WNScD6RRx3bt2w6NMjwfwqU1jBC4bte4PLhiS5f6ET1a2+Zmf1oiSchncO38rPZcon7EFXr3W09jFMzPZqX2cJVADKwrvXPI8JxBM4oLVf8TEFqDlwS3tGDWA958YuPRSXSAhejAG1YLMK/bg3k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207771851199.96190079199687; Wed, 5 May 2021 02:42:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232981AbhEEJnr (ORCPT ); Wed, 5 May 2021 05:43:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:48650 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232441AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4F5F06142C; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwR-5F; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=nQwSJPLaVBdYjIemEjVYgYFNl6DQmZf6LrKXcLdjxJM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F9WUUhkgAtjIMrRyssd4lqvAgaNoCpjaPTh7w7MGeWRglTuwvS98rekMY6tjnCFfU qN1nJqOXFDSgxykV8A1UP4emDRvb/rsb3LW6ZZhBi5Ucb7BFnz4lMW1ZIpuZosoIDS nQKYca3xqqSVSwNF9R5+gYdxDpyQJz+oBXc0yadciXJRqjDBS4uCl77uXuSRTFGhta kXZxGGiZxKoCrim6BkWlJtAWscRtJXcd8Jrv5qtr7ZLOa2m5+PGFvksDUVVxC96Rru xwL3j/PqrCyZpMKnz23T+WtGdFASUpZxmpX/TewQDPeA56fy040o3GUQv351bIF/IT UXqf5fbLWQNpw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Kieran Bingham , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org Subject: [PATCH 13/25] media: rcar_fdp1: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:03 +0200 Message-Id: <372d88637707ececab77fffaae49d455d90cf24f.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. Also, right now, the driver is ignoring any troubles when trying to do PM resume. So, add the proper error handling for the code. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/rcar_fdp1.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rcar_fdp1.c b/drivers/media/platform/rc= ar_fdp1.c index d26413fa5205..89aac60066d9 100644 --- a/drivers/media/platform/rcar_fdp1.c +++ b/drivers/media/platform/rcar_fdp1.c @@ -2135,7 +2135,9 @@ static int fdp1_open(struct file *file) } =20 /* Perform any power management required */ - pm_runtime_get_sync(fdp1->dev); + ret =3D pm_runtime_resume_and_get(fdp1->dev); + if (ret < 0) + goto error_pm; =20 v4l2_fh_add(&ctx->fh); =20 @@ -2145,6 +2147,8 @@ static int fdp1_open(struct file *file) mutex_unlock(&fdp1->dev_mutex); return 0; =20 +error_pm: + v4l2_m2m_ctx_release(ctx->fh.m2m_ctx); error_ctx: v4l2_ctrl_handler_free(&ctx->hdl); kfree(ctx); @@ -2352,7 +2356,9 @@ static int fdp1_probe(struct platform_device *pdev) =20 /* Power up the cells to read HW */ pm_runtime_enable(&pdev->dev); - pm_runtime_get_sync(fdp1->dev); + ret =3D pm_runtime_resume_and_get(fdp1->dev); + if (ret < 0) + goto disable_pm; =20 hw_version =3D fdp1_read(fdp1, FD1_IP_INTDATA); switch (hw_version) { @@ -2381,6 +2387,9 @@ static int fdp1_probe(struct platform_device *pdev) =20 return 0; =20 +disable_pm: + pm_runtime_disable(fdp1->dev); + release_m2m: v4l2_m2m_release(fdp1->m2m_dev); =20 --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207767; cv=none; d=zohomail.com; s=zohoarc; b=BlgCYPKkBkhycQDcpU7dLUuaHxpYd5ilNCWcXUS3S0STA1p9LptMUl8psP+/Cvyi6fKiG2UkB78vx0SaQCmiHArP9HIifYjRMol+smqc/czZUw+1/1c96lT0EbXn6tuqk4l4vyevWIcxWjvg0Y6k1qObGqSl4oSKsjHJrHfAZNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207767; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CX5nyhxGQLt8kQZhwKTE0FM6WiDteoziHYmPAWLlqck=; b=g4WLhpcryATKHBsiygMODV4HyvO8KxwglZXg6PBEm3YZZh97qZbenL4NLnPnbKnWNdWv4elwx/vmum7i4RP7mWQtkIbKhzLbK62p1+gF0CTYicIwZi+/E65y6Yu9Hw2KNvx0NSMSMnabWyQY2noc7ae0UGouXQjabmCAXGPFiRU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207767439626.6048938387639; Wed, 5 May 2021 02:42:47 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233003AbhEEJnm (ORCPT ); Wed, 5 May 2021 05:43:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:48656 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232435AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 44BC161423; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwU-6x; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=6MhSd0Gx/6VuoMI9uWT2v1VRzcCGAFf3IJvFSMDOw+M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FWPk3sVYJHJFzNk5hqt10Ix93PRAUjxWb5bPNk0UkGojFOgypyd5HMdoKdDdkjIEC FyYah+GV1zFdewE7dpqboFKqO4wcfPy8jGC5Fr+mv44rI/AvHfZRgqZgJ5QVAM0skq ve0rBKhepGUR1xCOq5IhUkPzDbZ/zWc43XQdw4rXgXOS0+t41Tg284oXVBq+WvqG99 MRIMHX5TC5iqXqH6heIRMiTJiln3DUNsQdjDwTagu+R7loMe7/vkynzzdmOGCSsMe+ 2vszbikT8+ly+cOVJZaS+453+Ow+I8yhk2dUcQgcjOIpXPKnuGuNko/ds5ssfsTrOx LOSBaFL3lQSMw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Jacopo Mondi , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Jonathan Cameron Subject: [PATCH 14/25] media: renesas-ceu: Properly check for PM errors Date: Wed, 5 May 2021 11:42:04 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Right now, the driver just assumes that PM runtime resume worked, but it may fail. Well, the pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. So, using it is tricky. Let's replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") and return an error if something bad happens. This should ensure that the PM runtime usage_count will be properly decremented if an error happens at open time. Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/renesas-ceu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/renesas-ceu.c b/drivers/media/platform/= renesas-ceu.c index cd137101d41e..17f01b6e3fe0 100644 --- a/drivers/media/platform/renesas-ceu.c +++ b/drivers/media/platform/renesas-ceu.c @@ -1099,10 +1099,10 @@ static int ceu_open(struct file *file) =20 mutex_lock(&ceudev->mlock); /* Causes soft-reset and sensor power on on first open */ - pm_runtime_get_sync(ceudev->dev); + ret =3D pm_runtime_resume_and_get(ceudev->dev); mutex_unlock(&ceudev->mlock); =20 - return 0; + return ret; } =20 static int ceu_release(struct file *file) --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207777; cv=none; d=zohomail.com; s=zohoarc; b=bPElfQUowzjC8lrZokv0+Bv53t4KcqYjLmJNQ/N/Y5Gqw541VtN/5xcNxgV1RO7t1xICGPuP8b2b5AatECvOpVDkemZ22Zw2GNIMuD2YjpfmK3+rQHeEHzW0OVluwbLN7uFvUaz79W7QGpM3q0e/DHzkOzTEuwuocyRfw3EAEZ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207777; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1ZFzSE2IVuZODd6FC4oh/XS22wnSl52DQoWPZe01+hQ=; b=TVlNwFAJrkYQ6tq0zyjgcdxSKP6XNuhKFGRW9ECiS+bs6gB0p2do7DeYZe5/61ZCoQqu11E+sQsNXDjFMMeZ/P1mfBoMYxyfG/H0IgVkrS/6UAWeYTXCiHz+J+h4LCrlry/Ky8BG+p1gSuPvgIoudyDNLIIvBPN+AXAR5T5xzEg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207777508988.1955972284318; Wed, 5 May 2021 02:42:57 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232888AbhEEJnu (ORCPT ); Wed, 5 May 2021 05:43:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:48636 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232413AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 440076141C; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwX-8H; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=e6cg3vt5gdRSnzuWDjBWlr3jZ9qzDtzBe//Hw9aDZms=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UTRFnfuFAjc8bTsLJzXYCs7bJJiLrJT4aQkq1wE9ELZ6bKZpIV6DU2/2WkfulFbcY cPj0VkZ3DAStETq7XrOAHya7zoBwOUAHf+uBYsaugIK2BUoPEEe3EIZiCXKxs/H3PY S1h4gng4dzYhzkIbwKC4FdNUn5hhX/jlvDXh1hQ2fZlbOI1zLz5ag+IGIh73Y2393A tHkNN1cFwcAc2/pPzizSb1l8tNLjGGzGmumw9eyhWgCrXvEmc52XZSyALnDEbkMIhF AOHskWLYGBMnAxEGxWrWYKHX9r+giFf3kl/zSllgbc8vInNM8g3KVFaa0jolGb1PLT nu9zA4ms+MRMA== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Hans Verkuil , Marek Szyprowski , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Sylwester Nawrocki Subject: [PATCH 15/25] media: s5p: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:05 +0200 Message-Id: <57a141a2c538b253f1c9502a790c370007d2ed83.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. While here, check if the PM runtime error was caught at s5p_cec_adap_enable(). Reviewed-by: Sylwester Nawrocki Acked-by: Marek Szyprowski Signed-off-by: Mauro Carvalho Chehab --- drivers/media/cec/platform/s5p/s5p_cec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/media/cec/platform/s5p/s5p_cec.c b/drivers/media/cec/p= latform/s5p/s5p_cec.c index 3c7c4c3c798c..028a09a7531e 100644 --- a/drivers/media/cec/platform/s5p/s5p_cec.c +++ b/drivers/media/cec/platform/s5p/s5p_cec.c @@ -35,10 +35,13 @@ MODULE_PARM_DESC(debug, "debug level (0-2)"); =20 static int s5p_cec_adap_enable(struct cec_adapter *adap, bool enable) { + int ret; struct s5p_cec_dev *cec =3D cec_get_drvdata(adap); =20 if (enable) { - pm_runtime_get_sync(cec->dev); + ret =3D pm_runtime_resume_and_get(cec->dev); + if (ret < 0) + return ret; =20 s5p_cec_reset(cec); =20 --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207791; cv=none; d=zohomail.com; s=zohoarc; b=cMHZzOA+YjyMhHJNHc0QlqupTapKDX/h3o5P/l3rn/QE+JWdyTrLvgdhjL9WQi+U5TgOlWcz16NiJ+HnclcHZ/SyJ98R6CzAgWNRKQbJlHe3bUd8istFNMoUdbgtIjQlFWhQza3me0/pUNz+jxX6PkajCJk1V7ucPEO1HqweLeY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207791; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=k2DJuqFpeZlG9WMEKZHxWaYe+Z9pbr9CdQBFjVM6YHg=; b=QLXg7TSKRqWxMp7uZVxa56iXXqbNfIQDsiyYvBdf3W9gXQ6AkFSqvQwpYf7bPm3jWIP6tFhhhmAc2kq4pxmMXxgCfg2Zh2lPGjXzUFkjM5mx+mskpOczEeyhugwQtt5IBMcYKY27QAM1PucJiNZwdVf8FxNfYCgzLzj16mebgRk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207791229454.21635966077974; Wed, 5 May 2021 02:43:11 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233160AbhEEJoF (ORCPT ); Wed, 5 May 2021 05:44:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:48574 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232424AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 47E3B61428; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwa-9X; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=y4nTVWcCXCl2Tp3mRU3icn21BALZ6h0HNRov8iGkFYM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DEYZQXq1Ho1jN6BGBs+eKOlKgV7ZCVvxSQYeCPKEJ5K4Lh7t4nl1W1c+l0x4UeTiK h8MrIQBXplcLiiSN0Lfo0vTKuEWm1e+An1LwT9YLCPgLkM2Py+PJsNOzTOeRflsY2d y3m9g/SpZchkXgoKr5jTGM5Hn3b+bYrtjAnsOkapTJGXSrgj7aIUgn8BD5H6RnjcWN 6kxuf1FVax86mJiIZNAaAtuOYy9McxN8OqJ+FS95V4tPRQmCgZiqijz7Bks076Ge+1 ix6s4FMXk05rG/8OTO7IrJanBcxS+XUipl2oWfhEDO/p+q05AQOo2g/lNkOnMmbO6F gyFWR9l/tS74w== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , "Lad, Prabhakar" , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 16/25] media: am437x: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:06 +0200 Message-Id: <8688555079cf30f5848bb020b5ecf0b0132b2c7e.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. While here, ensure that the driver will check if PM runtime resumed at vpfe_initialize_device(). Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/am437x/am437x-vpfe.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/pl= atform/am437x/am437x-vpfe.c index 6cdc77dda0e4..1c9cb9e05fdf 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.c +++ b/drivers/media/platform/am437x/am437x-vpfe.c @@ -1021,7 +1021,9 @@ static int vpfe_initialize_device(struct vpfe_device = *vpfe) if (ret) return ret; =20 - pm_runtime_get_sync(vpfe->pdev); + ret =3D pm_runtime_resume_and_get(vpfe->pdev); + if (ret < 0) + return ret; =20 vpfe_config_enable(&vpfe->ccdc, 1); =20 @@ -2443,7 +2445,11 @@ static int vpfe_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); =20 /* for now just enable it here instead of waiting for the open */ - pm_runtime_get_sync(&pdev->dev); + ret =3D pm_runtime_resume_and_get(&pdev->dev); + if (ret < 0) { + vpfe_err(vpfe, "Unable to resume device.\n"); + goto probe_out_v4l2_unregister; + } =20 vpfe_ccdc_config_defaults(ccdc); =20 @@ -2530,6 +2536,11 @@ static int vpfe_suspend(struct device *dev) =20 /* only do full suspend if streaming has started */ if (vb2_start_streaming_called(&vpfe->buffer_queue)) { + /* + * ignore RPM resume errors here, as it is already too late. + * A check like that should happen earlier, either at + * open() or just before start streaming. + */ pm_runtime_get_sync(dev); vpfe_config_enable(ccdc, 1); =20 --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207783; cv=none; d=zohomail.com; s=zohoarc; b=PsgLpnXJ452m1S2gZ6kddQzIw0ffChe4MTNQNGIlwaPajxUR2mah8t11KPgGhmvCCzWUORusdbYH0WhcyRTXzlOmRgqJGNaBPYHvr0v8YJxiLDeOZpAfSNMpP4IlNWolf60AgMnutCib6UEtl7/X+CKXDc0Y83jNc8mBBVjD+2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207783; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p93T7LDyNoChnZHePl7TEDLQe+VpHkTfn766RIGKKK0=; b=G19dzu+aNXcEVqWNWPMRmeqZuHEEurmNi2Y4CXb/A7x9zZt6+sLWg+tZaBEfvpqNxpA7CsrqBY8wOmeGvMknhufQGcrLZLcK2IN/PrXJAFK/pRGd24c6H0oOj7ttVnGFe2eknVv8Z30CM3ncxvI/R4uu8GcokwFrtKZJcvFVEF0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207783319482.4440744489598; Wed, 5 May 2021 02:43:03 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233103AbhEEJn6 (ORCPT ); Wed, 5 May 2021 05:43:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:48604 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232470AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6D6ED61439; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwd-An; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=yv95pZc4UsMMoYfTxC0OyLxajR1DCqW/qrTj7ueNxF4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TnScnfWdDUtQdxey9nZQxLPAsVWpPMFni947FA4MJ9CXT8WLDh5TtunIydYX1vHfO sxjvFhSL4+UeOGzFQmZbcm3BHY+dj5DXJbZG44h55GA0Ioq3sToDWhW7n8UPhtmt6Q UhT49jdDyKfUzFmZCuKymxLJ6dFs+Y3UbFDGTTzFaeeCOnv20vY7j49GeeO/So4Ok9 3VSZ68pqQDbD3flKD7OvqVgt1jbhQoJJpWupmMknP6KiL5R10Sqke4X7sY70MVc78N f9jy7e/dS673VKjO/7wok+FhtYksHZbHuMk3YXRQsAl9YhI66P5eMu/9DLelCKTt5H d5IckQKvYEGXA== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , "Gustavo A. R. Silva" , Geert Uytterhoeven , Hans Verkuil , Jonathan Cameron , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 17/25] media: sh_vou: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:07 +0200 Message-Id: <7049439982d152c6fba7d46fe8c98ca74c0f7875.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. While here, check if the PM runtime error was caught at open time. Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/sh_vou.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vo= u.c index 4ac48441f22c..ca4310e26c49 100644 --- a/drivers/media/platform/sh_vou.c +++ b/drivers/media/platform/sh_vou.c @@ -1133,7 +1133,11 @@ static int sh_vou_open(struct file *file) if (v4l2_fh_is_singular_file(file) && vou_dev->status =3D=3D SH_VOU_INITIALISING) { /* First open */ - pm_runtime_get_sync(vou_dev->v4l2_dev.dev); + err =3D pm_runtime_resume_and_get(vou_dev->v4l2_dev.dev); + if (err < 0) { + v4l2_fh_release(file); + goto done_open; + } err =3D sh_vou_hw_init(vou_dev); if (err < 0) { pm_runtime_put(vou_dev->v4l2_dev.dev); --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207768; cv=none; d=zohomail.com; s=zohoarc; b=ak9A5bdWfFjJ+xBGgjVzoFZVOCLRmhyvgvJJnSv77luLw8j+JxRSyC4RnN9CAFskm2vwHLdPgPqRR1ZzbjlJV9O4jdwa3zPYI48T338/LHmZza15tXLd6oF9NioudRMetYj3AQWr+ALs+sH4mElfCkHivAGn3feu04wCj6C9RsY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207768; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NuW+KAd/xrl2dTshnq8aqOIb+0lzuagTY5SYke9WJ/w=; b=PkDZPbVDqMPsMu0nARwprKBKRclcZaYSYc6JEIzlZpU9XR1xpu2i48zonqJe64+DWNJDPck1c0m5t/Pb68MfaZ3DIPYXX+xzDcZuza6FknYMcWTzj2LNVeE1ZSDNJlQVEsXy3TpthHDvQBH3mAHTQ9bQ9iG7soOgN1F88ZhfXIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207768548972.2137618192738; Wed, 5 May 2021 02:42:48 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233020AbhEEJnn (ORCPT ); Wed, 5 May 2021 05:43:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:48666 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232450AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 745C861442; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwg-C1; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=jUOSb8B9UNKJb4CE+kKLFa5IDIlxTUV4my+V18i70ck=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pvz3y1mbOSUJt0QSW0upnvSm2Y3anXrjyUxdYZ3k0aLlwT4LaZaNha8HUW0mZdlbr Q92lXHYKY4fS8BRySZyoX2vBkayQSyKr1O67BmOX9WrmpLGEdgs+v27T1qsYyrdg0P CJvdWltm/ibL4jPbaO08LScm2ScyAxPJLuE68I18mwCFd7qPAsvv373PqBq95774I0 df+q6EMijreBjWVwxEN3nFk5n7BzdAYBTmHypk52NiqahPgJs6i5IiUVdWqdFWTGrh tL6RYsE4S4sCgs0nhiUobH/14oMJrduz1/UelMcpaAT6K32ktvObSS9SPb36egAAJB SnyiNSbFfXJ/g== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Andrew-CT Chen , Matthias Brugger , Mauro Carvalho Chehab , Tiffany Lin , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org Subject: [PATCH 18/25] media: mtk-vcodec: fix PM runtime get logic Date: Wed, 5 May 2021 11:42:08 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Currently, the driver just assumes that PM runtime logic succeded resuming the device. That may not be the case, as pm_runtime_get_sync() can fail (but keeping the usage count incremented). Replace the code to use pm_runtime_resume_and_get(), and letting it return the error code. This way, if mtk_vcodec_dec_pw_on() fails, the logic under fops_vcodec_open() will do the right thing and return an error, instead of just assuming that the device is ready to be used. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 4 +++- drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c | 8 +++++--- drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drive= rs/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c index 147dfef1638d..f87dc47d9e63 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c @@ -126,7 +126,9 @@ static int fops_vcodec_open(struct file *file) mtk_vcodec_dec_set_default_params(ctx); =20 if (v4l2_fh_is_singular(&ctx->fh)) { - mtk_vcodec_dec_pw_on(&dev->pm); + ret =3D mtk_vcodec_dec_pw_on(&dev->pm); + if (ret < 0) + goto err_load_fw; /* * Does nothing if firmware was already loaded. */ diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c b/driver= s/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c index ddee7046ce42..6038db96f71c 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c @@ -88,13 +88,15 @@ void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *d= ev) put_device(dev->pm.larbvdec); } =20 -void mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm) +int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm) { int ret; =20 - ret =3D pm_runtime_get_sync(pm->dev); + ret =3D pm_runtime_resume_and_get(pm->dev); if (ret) - mtk_v4l2_err("pm_runtime_get_sync fail %d", ret); + mtk_v4l2_err("pm_runtime_resume_and_get fail %d", ret); + + return ret; } =20 void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h b/driver= s/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h index 872d8bf8cfaf..280aeaefdb65 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h @@ -12,7 +12,7 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *dev); void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev); =20 -void mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm); +int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm); void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm); void mtk_vcodec_dec_clock_on(struct mtk_vcodec_pm *pm); void mtk_vcodec_dec_clock_off(struct mtk_vcodec_pm *pm); --=20 2.30.2 From nobody Fri May 9 23:04:08 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207805; cv=none; d=zohomail.com; s=zohoarc; b=j+P+LfkPSeGmMQKW7EtL6RSSu+8jA970gEZzCjGG8xQH7OqaKBt59t+wmJb4XYMFGPRqlI6f5ZZGXRRjwSLfKcQUPFRfrGuKXoMi6VE+lDHskX3OXSnKyFN64TY6XCZcFRTpW6BA9yzZ5mE2qmq3hQqmg3oA+RANPXphfT2GXRo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207805; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hAzvCMfXmM31wnnMYELCuw2vdG4i0jsxaa94c+IOnPg=; b=N3ghujWUXls9uAT1eXM7+Q+6FFrpuDnbT3uV91ixSvZmgUCs9WSdpXgX2gYY7FljKC1e9RJXfUUOScXC7zTecl4c52SIatB+vCw/Hh9FA8c4focY4UScgQLYTwZXLLUaFpLj4sBncSW1dD0+my8gTOBT5vaMzek7q31kjjhHlRw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207805167791.106339325867; Wed, 5 May 2021 02:43:25 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232874AbhEEJoS (ORCPT ); Wed, 5 May 2021 05:44:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:48572 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232432AbhEEJnQ (ORCPT ); Wed, 5 May 2021 05:43:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 74FF061443; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwj-Dl; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=xqjVaoUsuvsxOD3cWDtjlqWziU1GM7gOpoA6IP+HHjE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=USQxtYLCvlBgP5V/QBTap4t8elEYo77Tb1JnmJSdCTKlUDmhPFWlnGSIPZaJCyloV x+5zQzze2KZs0VukHfF62wzi+yw6y+3VvDnquHBFoVkXk573kcQGUODGVoRGmV/CWy l8HvH85dBOt8yrn9AuSCfEgQuprIKqO1CgHRtiXOyNHXA2wjSCbjBPWpPaPcmsmKp6 w+rNH8Ok5yKHPwN0SbkIp+Jm4wvWbOdI1swTVQvKNqbXxAmhMEBYYuKv7OpwNLvic7 3V/R3+wn/WSfQiwK4xRJhrfFCwRCqYMUKa05ZQLhI5dJKJ1nYbESOjJYu1gIzDEhVa F5Pw9vh6UUS0w== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Andrzej Pietrasiewicz , Jacek Anaszewski , Mauro Carvalho Chehab , Sylwester Nawrocki , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 19/25] media: s5p-jpeg: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:09 +0200 Message-Id: <534deda71f3cf5f865611aa839a5279e43ebe1c9.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. As a plus, pm_runtime_resume_and_get() doesn't return positive numbers, so the return code validation can be removed. Reviewed-by: Sylwester Nawrocki Acked-by: Andrzej Pietrasiewicz Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/s5p-jpeg/jpeg-core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/pl= atform/s5p-jpeg/jpeg-core.c index 026111505f5a..d402e456f27d 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -2566,11 +2566,8 @@ static void s5p_jpeg_buf_queue(struct vb2_buffer *vb) static int s5p_jpeg_start_streaming(struct vb2_queue *q, unsigned int coun= t) { struct s5p_jpeg_ctx *ctx =3D vb2_get_drv_priv(q); - int ret; =20 - ret =3D pm_runtime_get_sync(ctx->jpeg->dev); - - return ret > 0 ? 0 : ret; + return pm_runtime_resume_and_get(ctx->jpeg->dev); } =20 static void s5p_jpeg_stop_streaming(struct vb2_queue *q) --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207777; cv=none; d=zohomail.com; s=zohoarc; b=OMwUSIeDCRr6s2LHlLbz2nbTjPCAmEpd7cd8AjDaE23izR+U3JOXOVQ6a1Tc4gjLDs3X1M4hymDoR/vleuWwQLvWCxaKTsM5mM31bT6mYR41M/7i8z0qAv9N0xuhKhHqYcqPv1ww75nAmHLCkckagESJPE8MnS/b/YZzG7iyOnc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207777; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CpaIcdiJRLfsjusPk2OR7NsDpmL8ZigMPxuia5hd1cM=; b=D0z0sxuJpYY9KZrIeXIZUL2mqlopuJADZR0nculbl9hEtpuXfzhJ23xpGii+A0CumzA7b2FJBUN6OJdm+tcYUWc5d4Y7L1nsE+DAZLmcKxfReW0dLEerfMFW752Y+Yd/nTtW+OUzHdyRpugxVaMsWHJBzohslLNAIiQdDwj7dfg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 162020777792214.986726299375164; Wed, 5 May 2021 02:42:57 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233065AbhEEJnw (ORCPT ); Wed, 5 May 2021 05:43:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:48606 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232479AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7741D61446; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwm-Ew; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=ZvB0kCnsWXmqDZUIE7RhcVC4zNhkwQXSnjsZuZbrwzk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ttN15YcDg/8LjwKPSaQXPIB7se9k3TEAQLs1TFeJzEoPUkKhE7zNBl40yIoQIzapp PF50lMwXs1VeD8D0YRPfnQnnI4iVcCYVnLuLw6ZKzmePdNwIkHNztSWQKvksOXeg3I QZWuOsuCczpPQCtdh/bbs2CQEDYn79FkUVw0kSeCe5R60J/pdDBeaQfQLgPh2zCZDw Q76PFBDtJc3i22trRB42YzJUvIxMnb+AiuGk6LU0jKUjrC9TR5k6zeZu7K/RCD5Qvc oBp8t4q6ixb47deDMFLbX8zT3exft96GZHmyGJHyxT+cNO6Ab5UrhZoVqAB30IQm7q 8406fJdSSP3ig== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Hugues Fruchet , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 20/25] media: sti/delta: use pm_runtime_resume_and_get() Date: Wed, 5 May 2021 11:42:10 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") added pm_runtime_resume_and_get() in order to automatically handle dev->power.usage_count decrement on errors. Use the new API, in order to cleanup the error check logic. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/sti/delta/delta-v4l2.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/= platform/sti/delta/delta-v4l2.c index c691b3d81549..064a00a3084a 100644 --- a/drivers/media/platform/sti/delta/delta-v4l2.c +++ b/drivers/media/platform/sti/delta/delta-v4l2.c @@ -954,10 +954,8 @@ static void delta_run_work(struct work_struct *work) /* enable the hardware */ if (!dec->pm) { ret =3D delta_get_sync(ctx); - if (ret) { - delta_put_autosuspend(ctx); + if (ret) goto err; - } } =20 /* decode this access unit */ @@ -1277,9 +1275,9 @@ int delta_get_sync(struct delta_ctx *ctx) int ret =3D 0; =20 /* enable the hardware */ - ret =3D pm_runtime_get_sync(delta->dev); + ret =3D pm_runtime_resume_and_get(delta->dev); if (ret < 0) { - dev_err(delta->dev, "%s pm_runtime_get_sync failed (%d)\n", + dev_err(delta->dev, "%s pm_runtime_resume_and_get failed (%d)\n", __func__, ret); return ret; } --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207785; cv=none; d=zohomail.com; s=zohoarc; b=T54Sy49DDcLIoNKdc2Ilk//ItOB486pKfOEEZ8R5LB4Uaf1zZcw3Sts3euEbuK1FYpoyG8aPHFar31eRbiqzjdfnU7HMT7DoU8yT6TsGQk786Kb2W52Pd744KR82pIwpgk8ei3vwExWY+OPjA63cyX4ZPJ3ij43x2Y+uNqZrmg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207785; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CNIVpNNuwsLqWC0rl/nWfPA8IsfAPk1FWBY7FQvoIgE=; b=QiqOSsFV7CDnECDUAYJjPkV/Iv3oxoGsY/Fc4XIgn2WPqCv8EL7Ns4ifbl86X1YMgIzfW/o4ygX9+GVafjj4R2fMxyZ9oxHkn+UQ7spwo8cl3DhIyja9XiDqa4noVC256YQ7Qsyqs/d12cGuHT4HG/YgyXBTGgtEO9MpNFaszpo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207785742463.69842172547226; Wed, 5 May 2021 02:43:05 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233128AbhEEJoA (ORCPT ); Wed, 5 May 2021 05:44:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:48670 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232458AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7452861441; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwp-G3; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=364y8EHJw+K9cWcJ3TfK59fyAMvbTh2YZ4HqAVyg8A8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KndRsQn6wUyNi6eN7k33M1w7kqzJ24+MX/2EQ0eQjTL8hFb+QvTYQcVyx3lu26OZz /6e553NH+Go/bMLU3TXK+Y3rjWMtO0RryzewWuUkbMjKDIwFPpi7sfyrBUJs6ny0hC /6HGkeImhGk8ixnl0PFf4rJe+zxn6hmgeZbk2MKJpZTXhUn6M25A/DNR4/iaJIYue7 8cf/K3YZ8ysnQpz04o8qVWiibQ+Hhu5zWH7ec9xHyjTbVCG3qoHupemmTLNl2SmGtr PavTMKvW4zjUj74wRAztvZkpXYiA+ykl0dZxxlTxhhcKse87GIQiPyPryZfwfueTep 3Pp+Z6bLFeeSA== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Chen-Yu Tsai , Jernej Skrabec , Mauro Carvalho Chehab , Maxime Ripard , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-sunxi@lists.linux.dev, Jonathan Cameron Subject: [PATCH 21/25] media: sunxi: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:11 +0200 Message-Id: <0dea9a799700efd0f3ceaf9d25ded282295e2db9.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c b/dri= vers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c index 3f81dd17755c..fbcca59a0517 100644 --- a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c +++ b/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c @@ -494,7 +494,7 @@ static int rotate_start_streaming(struct vb2_queue *vq,= unsigned int count) struct device *dev =3D ctx->dev->dev; int ret; =20 - ret =3D pm_runtime_get_sync(dev); + ret =3D pm_runtime_resume_and_get(dev); if (ret < 0) { dev_err(dev, "Failed to enable module\n"); =20 --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207779; cv=none; d=zohomail.com; s=zohoarc; b=LtK3EH5xX9CR8V9ZLlocce9kfwmxWhPf5S0TGAWeAmdVyzJ5PJI5T19SQw6LJUCZXeIP0KV6auEHFbAv4Hqcd+oNpus432y9hluDXhs03a1+YRjnjEUAnS7uQs3MI1xFmFnSUWFearV3zeIo4R3IuhqpProR+n+B1DoTqc8VRwg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207779; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Bh3WCbYmBm+OjcVWc+YNhagdhkKFLbLM6WNezAuLjJc=; b=iP5zhThVTDbCFKvJf4JTYCst76stFKWR3I448Ye0uGsv0BUuYX4ruiqCuP7LPWfOyAMyj2OjGxmC2nrX/95DKv048NYEGzN4WMjEaAhKa71acmKcJC5Hk4XD8r27Y9k2YN3B/6hckjgl+FLptulH5XoVdsEkxjlxtSu0ysmSAKw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207779679219.04544151894572; Wed, 5 May 2021 02:42:59 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232856AbhEEJnz (ORCPT ); Wed, 5 May 2021 05:43:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:48694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232483AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B8A4361582; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHws-H9; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=+rTtVWoWq20JhxgxmIT+9kZE/lGmMC43nyN1Fh8TG7g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mf9MOyq5thATWWFz9Hfbj8qgxuAvW3JlflD7XQ0cH5Zuor+EZfGkN4Clt6QuA/wuw y//8rOn0wy+PwGVwJR2l2zPRdRAbICxiV10Wht8HhYN9kDf5fwiiGAn5z5+dYRFycg hcs3nteUDogm5vKp4HJiP89KL9dsunC2XF1E+Wy/Yx0g7iHfrGfyqn8+fMGVt3jbap e5CeeWJz/kEw+yVPIXc444DK3B1iQAnTorL0d3P3Fcf0VUbnjuH6RvYudx2oVunGDL MiRntCkCTFvqR19/Zc6WvKZ8WwuoyEiSriT7RmDlXB+pCovVcwfinqKW+5jGx7TF05 whTs4hBFXexEQ== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Fabien Dessenne , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 22/25] media: sti/bdisp: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:12 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. The bdisp_start_streaming() doesn't take it into account, which would unbalance PM usage counter at bdisp_stop_streaming(). The logic at bdisp_probe() is correct, but the best is to use the same call along the driver. So, replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/sti/bdisp/bdisp-v4l2.c b/drivers/media/= platform/sti/bdisp/bdisp-v4l2.c index 060ca85f64d5..85288da9d2ae 100644 --- a/drivers/media/platform/sti/bdisp/bdisp-v4l2.c +++ b/drivers/media/platform/sti/bdisp/bdisp-v4l2.c @@ -499,7 +499,7 @@ static int bdisp_start_streaming(struct vb2_queue *q, u= nsigned int count) { struct bdisp_ctx *ctx =3D q->drv_priv; struct vb2_v4l2_buffer *buf; - int ret =3D pm_runtime_get_sync(ctx->bdisp_dev->dev); + int ret =3D pm_runtime_resume_and_get(ctx->bdisp_dev->dev); =20 if (ret < 0) { dev_err(ctx->bdisp_dev->dev, "failed to set runtime PM\n"); @@ -1364,10 +1364,10 @@ static int bdisp_probe(struct platform_device *pdev) =20 /* Power management */ pm_runtime_enable(dev); - ret =3D pm_runtime_get_sync(dev); + ret =3D pm_runtime_resume_and_get(dev); if (ret < 0) { dev_err(dev, "failed to set PM\n"); - goto err_pm; + goto err_remove; } =20 /* Filters */ @@ -1395,6 +1395,7 @@ static int bdisp_probe(struct platform_device *pdev) bdisp_hw_free_filters(bdisp->dev); err_pm: pm_runtime_put(dev); +err_remove: bdisp_debugfs_remove(bdisp); v4l2_device_unregister(&bdisp->v4l2_dev); err_clk: --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207788; cv=none; d=zohomail.com; s=zohoarc; b=AJMKmT0lR3mL4V9Bff196J85vGaRo8RerUXEO7RJSxRRFBHJGSzuurrqzkrlk5z3jyYKHHySvmXJV8mDb48znpxQmzsvCXgNLuMTifTt8fy7PH9Cm7yJMBO7HM9UbQhOwFHlZcmsD9ykA4RolVdWIhsy4sEZrPauP3hILJi3nW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207788; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+V/2KgUnu/LcluN4ClAjTKBcD2xNHHy8kg3yBbzaRmE=; b=QQKykhSCkI3BraXZjq5r8MMMTF41MI775uCT4dyfrEiqCaB3i/pdrh4kSOCffvNqalvhQYPv78BDkFKtBblRcyHYMvasKV0S1D1Uguv6mW2J9O3vLTBBwy3Arsv6o5OYqpzXMWqnteEa1XCjxQAHqMCiIMt2v4QB8Tr6+vg99nA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 16202077885631011.9800772339735; Wed, 5 May 2021 02:43:08 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232441AbhEEJoD (ORCPT ); Wed, 5 May 2021 05:44:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:48622 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232486AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 95F5A61476; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwv-J0; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=lRJ3n/3+0Uz/DBoeHwgXYdPz/aOz29/E1f/JBv9ZJSI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sr/JrECuqbum39pjXZUdbX+yOi4Clsm9QETjmsY3BYuf4DeYbhJwkR+kydCEf1GcG FiJeK8/n/KTDIHv1GDr6wm7/ho2TpPBwDI142inU0hbNKneMcd9nHL05ccbNPSdULm ENW9ToSY8zkKBj8h5B4NzoVet5tx2sGDPOvU6CKLKndwcdDAze4abbfVHJmmpNGm6i SY3MADG+LwmpFH1DdQnEC50VtZRf1y5RUC+ENOCGPtxKThZ0gqu3pBZ8IdZm1Jj8d8 U+G6sSNQ7FJrTLzhK3erTivE4F2vDXjrzOPVlrTfxMXrjFT5iLQXqBcKy1fXxkAsPz e5hiXdQ7AOhpw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Krzysztof Kozlowski , Mauro Carvalho Chehab , Sylwester Nawrocki , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 23/25] media: exynos4-is: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:13 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. On some places, this is ok, but on others the usage count ended being unbalanced on failures. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. As a bonus, such function always return zero on success. So, some code can be simplified. Reviewed-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/exynos4-is/fimc-capture.c | 6 ++---- drivers/media/platform/exynos4-is/fimc-is.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-isp-video.c | 3 +-- drivers/media/platform/exynos4-is/fimc-isp.c | 7 +++---- drivers/media/platform/exynos4-is/fimc-lite.c | 5 +++-- drivers/media/platform/exynos4-is/fimc-m2m.c | 5 +---- drivers/media/platform/exynos4-is/media-dev.c | 9 +++------ drivers/media/platform/exynos4-is/mipi-csis.c | 10 ++++------ 8 files changed, 19 insertions(+), 30 deletions(-) diff --git a/drivers/media/platform/exynos4-is/fimc-capture.c b/drivers/med= ia/platform/exynos4-is/fimc-capture.c index 13c838d3f947..0da36443173c 100644 --- a/drivers/media/platform/exynos4-is/fimc-capture.c +++ b/drivers/media/platform/exynos4-is/fimc-capture.c @@ -478,11 +478,9 @@ static int fimc_capture_open(struct file *file) goto unlock; =20 set_bit(ST_CAPT_BUSY, &fimc->state); - ret =3D pm_runtime_get_sync(&fimc->pdev->dev); - if (ret < 0) { - pm_runtime_put_sync(&fimc->pdev->dev); + ret =3D pm_runtime_resume_and_get(&fimc->pdev->dev); + if (ret < 0) goto unlock; - } =20 ret =3D v4l2_fh_open(file); if (ret) { diff --git a/drivers/media/platform/exynos4-is/fimc-is.c b/drivers/media/pl= atform/exynos4-is/fimc-is.c index 972d9601d236..1b24f5bfc4af 100644 --- a/drivers/media/platform/exynos4-is/fimc-is.c +++ b/drivers/media/platform/exynos4-is/fimc-is.c @@ -828,9 +828,9 @@ static int fimc_is_probe(struct platform_device *pdev) goto err_irq; } =20 - ret =3D pm_runtime_get_sync(dev); + ret =3D pm_runtime_resume_and_get(dev); if (ret < 0) - goto err_pm; + goto err_irq; =20 vb2_dma_contig_set_max_seg_size(dev, DMA_BIT_MASK(32)); =20 diff --git a/drivers/media/platform/exynos4-is/fimc-isp-video.c b/drivers/m= edia/platform/exynos4-is/fimc-isp-video.c index 612b9872afc8..8d9dc597deaa 100644 --- a/drivers/media/platform/exynos4-is/fimc-isp-video.c +++ b/drivers/media/platform/exynos4-is/fimc-isp-video.c @@ -275,7 +275,7 @@ static int isp_video_open(struct file *file) if (ret < 0) goto unlock; =20 - ret =3D pm_runtime_get_sync(&isp->pdev->dev); + ret =3D pm_runtime_resume_and_get(&isp->pdev->dev); if (ret < 0) goto rel_fh; =20 @@ -293,7 +293,6 @@ static int isp_video_open(struct file *file) if (!ret) goto unlock; rel_fh: - pm_runtime_put_noidle(&isp->pdev->dev); v4l2_fh_release(file); unlock: mutex_unlock(&isp->video_lock); diff --git a/drivers/media/platform/exynos4-is/fimc-isp.c b/drivers/media/p= latform/exynos4-is/fimc-isp.c index a77c49b18511..74b49d30901e 100644 --- a/drivers/media/platform/exynos4-is/fimc-isp.c +++ b/drivers/media/platform/exynos4-is/fimc-isp.c @@ -304,11 +304,10 @@ static int fimc_isp_subdev_s_power(struct v4l2_subdev= *sd, int on) pr_debug("on: %d\n", on); =20 if (on) { - ret =3D pm_runtime_get_sync(&is->pdev->dev); - if (ret < 0) { - pm_runtime_put(&is->pdev->dev); + ret =3D pm_runtime_resume_and_get(&is->pdev->dev); + if (ret < 0) return ret; - } + set_bit(IS_ST_PWR_ON, &is->state); =20 ret =3D fimc_is_start_firmware(is); diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/= platform/exynos4-is/fimc-lite.c index fe20af3a7178..4d8b18078ff3 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.c +++ b/drivers/media/platform/exynos4-is/fimc-lite.c @@ -469,9 +469,9 @@ static int fimc_lite_open(struct file *file) } =20 set_bit(ST_FLITE_IN_USE, &fimc->state); - ret =3D pm_runtime_get_sync(&fimc->pdev->dev); + ret =3D pm_runtime_resume_and_get(&fimc->pdev->dev); if (ret < 0) - goto err_pm; + goto err_in_use; =20 ret =3D v4l2_fh_open(file); if (ret < 0) @@ -499,6 +499,7 @@ static int fimc_lite_open(struct file *file) v4l2_fh_release(file); err_pm: pm_runtime_put_sync(&fimc->pdev->dev); +err_in_use: clear_bit(ST_FLITE_IN_USE, &fimc->state); unlock: mutex_unlock(&fimc->lock); diff --git a/drivers/media/platform/exynos4-is/fimc-m2m.c b/drivers/media/p= latform/exynos4-is/fimc-m2m.c index c9704a147e5c..df8e2aa454d8 100644 --- a/drivers/media/platform/exynos4-is/fimc-m2m.c +++ b/drivers/media/platform/exynos4-is/fimc-m2m.c @@ -73,17 +73,14 @@ static void fimc_m2m_shutdown(struct fimc_ctx *ctx) static int start_streaming(struct vb2_queue *q, unsigned int count) { struct fimc_ctx *ctx =3D q->drv_priv; - int ret; =20 - ret =3D pm_runtime_get_sync(&ctx->fimc_dev->pdev->dev); - return ret > 0 ? 0 : ret; + return pm_runtime_resume_and_get(&ctx->fimc_dev->pdev->dev); } =20 static void stop_streaming(struct vb2_queue *q) { struct fimc_ctx *ctx =3D q->drv_priv; =20 - fimc_m2m_shutdown(ctx); fimc_m2m_job_finish(ctx, VB2_BUF_STATE_ERROR); pm_runtime_put(&ctx->fimc_dev->pdev->dev); diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/= platform/exynos4-is/media-dev.c index 13d192ba4aa6..e025178db06c 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c @@ -512,11 +512,9 @@ static int fimc_md_register_sensor_entities(struct fim= c_md *fmd) if (!fmd->pmf) return -ENXIO; =20 - ret =3D pm_runtime_get_sync(fmd->pmf); - if (ret < 0) { - pm_runtime_put(fmd->pmf); + ret =3D pm_runtime_resume_and_get(fmd->pmf); + if (ret < 0) return ret; - } =20 fmd->num_sensors =3D 0; =20 @@ -1291,8 +1289,7 @@ static int cam_clk_prepare(struct clk_hw *hw) if (camclk->fmd->pmf =3D=3D NULL) return -ENODEV; =20 - ret =3D pm_runtime_get_sync(camclk->fmd->pmf); - return ret < 0 ? ret : 0; + return pm_runtime_resume_and_get(camclk->fmd->pmf); } =20 static void cam_clk_unprepare(struct clk_hw *hw) diff --git a/drivers/media/platform/exynos4-is/mipi-csis.c b/drivers/media/= platform/exynos4-is/mipi-csis.c index 1aac167abb17..ebf39c856894 100644 --- a/drivers/media/platform/exynos4-is/mipi-csis.c +++ b/drivers/media/platform/exynos4-is/mipi-csis.c @@ -494,7 +494,7 @@ static int s5pcsis_s_power(struct v4l2_subdev *sd, int = on) struct device *dev =3D &state->pdev->dev; =20 if (on) - return pm_runtime_get_sync(dev); + return pm_runtime_resume_and_get(dev); =20 return pm_runtime_put_sync(dev); } @@ -509,11 +509,9 @@ static int s5pcsis_s_stream(struct v4l2_subdev *sd, in= t enable) =20 if (enable) { s5pcsis_clear_counters(state); - ret =3D pm_runtime_get_sync(&state->pdev->dev); - if (ret && ret !=3D 1) { - pm_runtime_put_noidle(&state->pdev->dev); + ret =3D pm_runtime_resume_and_get(&state->pdev->dev); + if (ret < 0) return ret; - } } =20 mutex_lock(&state->lock); @@ -535,7 +533,7 @@ static int s5pcsis_s_stream(struct v4l2_subdev *sd, int= enable) if (!enable) pm_runtime_put(&state->pdev->dev); =20 - return ret =3D=3D 1 ? 0 : ret; + return ret; } =20 static int s5pcsis_enum_mbus_code(struct v4l2_subdev *sd, --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207792; cv=none; d=zohomail.com; s=zohoarc; b=icBJ2gZ2XHPJO4zx9f9NjI2+XGyrtMQPf+D7E0TTQgoOK2mj0apMToO7Nva+CY3ByGQgBxpRKd3GLxrSfogZ/hE/2avyUxxGGa6vlG5tCJmDhGrFSxqg/5MaBbQsyBQ/ksybn4FSAzuvzNvwt7GeS0GZGf6xc5zXTGFhvY2NMRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207792; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VNEOna0FvfCtdSxUv8VtYOThdORXnEupmtnJj7M4fkk=; b=fVTHzUMirILMijrtWMeATkvXL1SF23dZxJOw/ioFAdYjy9ytAQxw54W9JcQ0q8bcWSqtM6e9vwCw29N7lvlQTxquKdG/VJIwhS7mgntItMgVRIJVttIE+R5idybCTiecZxAB+RhTxl2SfYG9sJxP/NE9kbVSMxEKeiIbbqlyuMY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207792837960.088943196879; Wed, 5 May 2021 02:43:12 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233186AbhEEJoI (ORCPT ); Wed, 5 May 2021 05:44:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:48692 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232495AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9E07561574; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHwy-KJ; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=YXL+gA4goxj5s7MMwTgNIwMfazgaE4VAbN8eHBvZ4x4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uOp+Ty69wRZVl3P+vvXIUlGYDh3ay+6S+YyfcKN1CT3Jme/0sPsvIppoJDG83Ju8R 8xYian6y1N4CZxugY3gFZJbOoyS0leNUBXNYaws9CSN8nc8wzyAjmlJS5E/4BaecLP 6+7NnEgLJrYAd4E/vIZF1lqkOYW2A2IDBy4RtoVjNxejWauNkwc0YbOS3NtcI5KJba vnIB7fVnDhzE9bdEVsVQYJtcakBROkoOhTXOTFQSpI8hCUbnPKXkZ8liJpfnCqqtqS fCoSll02cfuw87x5iK/Nhwaey5Oiw27cL09Plyan79ObHMLRlUJXbqLptv0Hm4niUw IPv5nnCUdmdTw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Ezequiel Garcia , Hans Verkuil , Krzysztof Kozlowski , Mauro Carvalho Chehab , Sylwester Nawrocki , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 24/25] media: exynos-gsc: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:14 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. Replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter, avoiding a potential PM usage counter leak. As a bonus, as pm_runtime_get_sync() always return 0 on success, the logic can be simplified. Reviewed-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/exynos-gsc/gsc-m2m.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/media/platform/exynos-gsc/gsc-m2m.c b/drivers/media/pl= atform/exynos-gsc/gsc-m2m.c index 27a3c92c73bc..f1cf847d1cc2 100644 --- a/drivers/media/platform/exynos-gsc/gsc-m2m.c +++ b/drivers/media/platform/exynos-gsc/gsc-m2m.c @@ -56,10 +56,8 @@ static void __gsc_m2m_job_abort(struct gsc_ctx *ctx) static int gsc_m2m_start_streaming(struct vb2_queue *q, unsigned int count) { struct gsc_ctx *ctx =3D q->drv_priv; - int ret; =20 - ret =3D pm_runtime_get_sync(&ctx->gsc_dev->pdev->dev); - return ret > 0 ? 0 : ret; + return pm_runtime_resume_and_get(&ctx->gsc_dev->pdev->dev); } =20 static void __gsc_m2m_cleanup_queue(struct gsc_ctx *ctx) --=20 2.30.2 From nobody Fri May 9 23:04:09 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1620207816; cv=none; d=zohomail.com; s=zohoarc; b=BrDGuZzgsfejuW83rZVpmmvqGmcZdZK1OuO56sWLmopC+9ka5IFx5fbjts07VhAzrll6icPvT+O6tqMu/o7ZWmnOvhv7L0VemdJYqgjNUM98JSMIMQGZ/2oCwxjOhS/C5AJOMGCehXvcIaw0N3aLwo0bFm35ARpXBLlR+IiHiHI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620207816; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7PRpEnIfDNVLSHN736hfsdOudMwTN6Kn+s5pMBF+3Pw=; b=nIc9oGBEu2pAq7R3jIL/jcQtpf+G8ZPm75Xo6r9y4cldORo+QiS+Gn6iM/G94Vw8Fm71FxNYZWAuIYA3aOdUlFWpz/sy4yQnbwnmXhM8phy+G/Se+thijua6RQKe/dqZvvRk2mkhmJ5yfim0Cdd8kAeEemHIA+Oc5q1AuilMItk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1620207816904765.5628142480539; Wed, 5 May 2021 02:43:36 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232796AbhEEJoc (ORCPT ); Wed, 5 May 2021 05:44:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:48708 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232504AbhEEJnR (ORCPT ); Wed, 5 May 2021 05:43:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id BA8CE61581; Wed, 5 May 2021 09:42:19 +0000 (UTC) Received: by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1leE2r-00AHx1-Lz; Wed, 05 May 2021 11:42:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620207739; bh=n8BdYNFKHpGuvTsaDKiqExH9RPNm4SzImqrTD24XJEw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D5T/Giy9UwbacLo5/r243zsPBZ7bkoG9N39UtkebzGibE2JzsvfvECZm6Zbguc6Uu GTLD3m8D6+iHXCihxX/T3oEYcyShEYVZ6ZuebL91GQWXu2ErP1Pin4TxjkmC0Z3Mn4 /Rlz+WQTgF+x/qdH+qzMCxRvzMCOQpnUsbHZsPs2Oi0fV4xStJEi6cNxY96KVK42Ee lfbW+cPG8uR0sAT5xyjz37bkVSrTe7am2zPJQAnYECVG0ALKFGx2k9aPchNc6zBr/E Ursdkl9WjSgrF4HHILE35g25HfkopYqDbw/2QlF3c7I64raujdA+cbcWmF0ZLGalk4 daiAuIpELUvOw== From: Mauro Carvalho Chehab Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Mauro Carvalho Chehab , Mauro Carvalho Chehab , Sakari Ailus , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 25/25] media: i2c: ccs-core: fix pm_runtime_get_sync() usage count Date: Wed, 5 May 2021 11:42:15 +0200 Message-Id: <83ec24acb15f17e2ce589575c2f5eb7bdd1daf28.1620207353.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The pm_runtime_get_sync() internally increments the dev->power.usage_count without decrementing it, even on errors. There is a bug at ccs_pm_get_init(): when this function returns an error, the stream is not started, and RPM usage_count should not be incremented. However, if the calls to v4l2_ctrl_handler_setup() return errors, it will be kept incremented. At ccs_suspend() the best is to replace it by the new pm_runtime_resume_and_get(), introduced by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal wi= th usage counter") in order to properly decrement the usage counter automatically, in the case of errors. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/i2c/ccs/ccs-core.c | 39 ++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-c= ore.c index b05f409014b2..04c3ab9e37b4 100644 --- a/drivers/media/i2c/ccs/ccs-core.c +++ b/drivers/media/i2c/ccs/ccs-core.c @@ -1880,21 +1880,33 @@ static int ccs_pm_get_init(struct ccs_sensor *senso= r) struct i2c_client *client =3D v4l2_get_subdevdata(&sensor->src->sd); int rval; =20 + /* + * It can't use pm_runtime_resume_and_get() here, as the driver + * relies at the returned value to detect if the device was already + * active or not. + */ rval =3D pm_runtime_get_sync(&client->dev); - if (rval < 0) { - pm_runtime_put_noidle(&client->dev); + if (rval < 0) + goto error; =20 - return rval; - } else if (!rval) { - rval =3D v4l2_ctrl_handler_setup(&sensor->pixel_array-> - ctrl_handler); - if (rval) - return rval; + /* Device was already active, so don't set controls */ + if (rval =3D=3D 1) + return 0; =20 - return v4l2_ctrl_handler_setup(&sensor->src->ctrl_handler); - } + /* Restore V4L2 controls to the suspended device */ + rval =3D v4l2_ctrl_handler_setup(&sensor->pixel_array->ctrl_handler); + if (rval) + goto error; =20 + rval =3D v4l2_ctrl_handler_setup(&sensor->src->ctrl_handler); + if (rval) + goto error; + + /* Keep PM runtime usage_count incremented on success */ return 0; +error: + pm_runtime_put_noidle(&client->dev); + return rval; } =20 static int ccs_set_stream(struct v4l2_subdev *subdev, int enable) @@ -3089,12 +3101,9 @@ static int __maybe_unused ccs_suspend(struct device = *dev) bool streaming =3D sensor->streaming; int rval; =20 - rval =3D pm_runtime_get_sync(dev); - if (rval < 0) { - pm_runtime_put_noidle(dev); - + rval =3D pm_runtime_resume_and_get(dev); + if (rval < 0) return rval; - } =20 if (sensor->streaming) ccs_stop_streaming(sensor); --=20 2.30.2