From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 109F2CD98C7 for ; Thu, 11 Jun 2026 08:04:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=12+KTZ06Uqp94i6oJnEyBNhkHEeZqx0evy/I36BsGQE=; b=Te/1raOAWpqWdi+AKU9STwBqQZ pFZSFBj+1NwhN4WURxZM2mmXiEMbuQnLEP+LS45BaO5L+DWULVbQ4fIQxwJcAzeLTmYvigSEfGGPH oEmHdBlYEeGr0caKnJDSzorvZl/DBnfivM7qewhdcXkulxss1iI1fUbZaaFCltZIqg6N2QQcSL5UX xt+SOkEZjs88lCAmpDTAjiWGLiDz1etnRMn1qaWZFJq8b7UZJhIp0nbIi6D5hWdLa1KmZq/TObfYw xyfymWIFvg9H54xPX9Q7V3FkOxzJ7mpWDFPrg5ab5u/peGUmRO+vTkzF7LMuqqeF2n5/kci3HCpQ1 dTgv0iiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wXaOM-00000008xB4-1yoi; Thu, 11 Jun 2026 08:03:58 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wXaOK-00000008x9y-08TW; Thu, 11 Jun 2026 08:03:57 +0000 Received: from killaraus.ideasonboard.com (2001-14ba-70f3-e800--a06.rev.dnainternet.fi [IPv6:2001:14ba:70f3:e800::a06]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8D10F2D9; Thu, 11 Jun 2026 10:03:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1781165000; bh=czql8aelND/+Ra5O5D9pob19dlWQzYGWJBLuF1qHytA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=jtIWHwucyaOvLiW7gPAPynuYeKSsxb67jvZXAK8GhrMD4WAD/oQa+56HWWPGFeIR+ dAbAAyQkWiluANP+Y7XKVU3i8nasU3LAwPwz47i6naxqIRT/N8ZW7gJvF8Btm3ohXV itK7O3LbSddiftYLq8nvIDNnhB6lf8AaxrUM+vQ4= Date: Thu, 11 Jun 2026 11:03:48 +0300 From: Laurent Pinchart To: Eugen Hristev Cc: Raspberry Pi Kernel Maintenance , Mauro Carvalho Chehab , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Dave Stevenson , Hans Verkuil , Sakari Ailus , Jean-Michel Hautbois , Naushir Patuck , linux-media@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] media: bcm2835-unicam: Fix log status runtime access Message-ID: <20260611080348.GC1758601@killaraus.ideasonboard.com> References: <20260611-bcmpipm-v3-1-c609dacb029f@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20260611-bcmpipm-v3-1-c609dacb029f@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260611_010356_221515_2412B855 X-CRM114-Status: GOOD ( 21.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Jun 11, 2026 at 08:29:55AM +0300, Eugen Hristev wrote: > When requesting log status, the block might be powered off, but registers > are being read. > Avoid reading the registers if the device is not resumed, thus also avoid > powering up the device just for log status. > > Fixes: 392cd78d495f ("media: bcm2835-unicam: Add support for CCP2/CSI2 camera interface") > Signed-off-by: Eugen Hristev > --- > Changes in v3: > - Changed to check return value of pm_runtime_get_if_active() and only call > pm_runtime_put() if the device is active. > - Link to v2: https://patch.msgid.link/20260522-bcmpipm-v2-1-a3da66cbc9f0@kernel.org > > Changes in v2: > - changed to use pm_runtime_get_if_active() > - add corresponding put() > - Link to v1: https://patch.msgid.link/20260521-bcmpipm-v1-1-3eba88d88045@kernel.org > > To: Raspberry Pi Kernel Maintenance > To: Mauro Carvalho Chehab > To: Florian Fainelli > To: Ray Jui > To: Scott Branden > To: Broadcom internal kernel review list > To: Sakari Ailus > To: Jean-Michel Hautbois > To: Laurent Pinchart > To: Hans Verkuil > To: Naushir Patuck > Cc: Dave Stevenson > Cc: linux-media@vger.kernel.org > Cc: linux-rpi-kernel@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/media/platform/broadcom/bcm2835-unicam.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c b/drivers/media/platform/broadcom/bcm2835-unicam.c > index 8d28ba0b59a3..96b51e29bba4 100644 > --- a/drivers/media/platform/broadcom/bcm2835-unicam.c > +++ b/drivers/media/platform/broadcom/bcm2835-unicam.c > @@ -2043,6 +2043,7 @@ static int unicam_log_status(struct file *file, void *fh) > struct unicam_node *node = video_drvdata(file); > struct unicam_device *unicam = node->dev; > u32 reg; > + int pm_active; > > /* status for sub devices */ > v4l2_device_call_all(&unicam->v4l2_dev, 0, core, log_status); > @@ -2052,6 +2053,14 @@ static int unicam_log_status(struct file *file, void *fh) > node->fmt.fmt.pix.width, node->fmt.fmt.pix.height); > dev_info(unicam->dev, "V4L2 format: %08x\n", > node->fmt.fmt.pix.pixelformat); > + > + pm_active = pm_runtime_get_if_active(unicam->dev); > + if (!pm_active) { > + dev_info(unicam->dev, > + "Live data N/A due to device inactive\n"); > + return 0; > + } > + > reg = unicam_reg_read(unicam, UNICAM_IPIPE); > dev_info(unicam->dev, "Unpacking/packing: %u / %u\n", > unicam_get_field(reg, UNICAM_PUM_MASK), > @@ -2065,6 +2074,9 @@ static int unicam_log_status(struct file *file, void *fh) > dev_info(unicam->dev, "Write pointer: %08x\n", > unicam_reg_read(unicam, UNICAM_IBWP)); > > + if (pm_active == 1) > + pm_runtime_put(unicam->dev); As far as I understand, the discussion on v2 concluded there was no need to test pm_active here. Did I miss anything ? > + > return 0; > } > > > --- > base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83 > change-id: 20260521-bcmpipm-6c578e73239c -- Regards, Laurent Pinchart