From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2395BD2; Mon, 4 Dec 2023 03:40:48 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2FE49152B; Mon, 4 Dec 2023 03:41:35 -0800 (PST) Received: from bogus (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3DCBA3F6C4; Mon, 4 Dec 2023 03:40:46 -0800 (PST) Date: Mon, 4 Dec 2023 11:40:43 +0000 From: Sudeep Holla To: James Clark Cc: Anshuman Khandual , linux-arm-kernel@lists.infradead.org, suzuki.poulose@arm.com, Sudeep Holla , Lorenzo Pieralisi , Mike Leach , Maxime Coquelin , Alexandre Torgue , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-stm32@st-md-mailman.stormreply.com Subject: Re: [PATCH V2 5/7] coresight: tmc: Move ACPI support from AMBA driver to platform driver Message-ID: References: <20231201062053.1268492-1-anshuman.khandual@arm.com> <20231201062053.1268492-6-anshuman.khandual@arm.com> Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Mon, Dec 04, 2023 at 10:54:15AM +0000, James Clark wrote: > > > On 01/12/2023 06:20, Anshuman Khandual wrote: > > Add support for the tmc devices in the platform driver, which can then be > > used on ACPI based platforms. This change would now allow runtime power > > management for ACPI based systems. The driver would try to enable the APB > > clock if available. > > > [...] > > -module_amba_driver(tmc_driver); > > +static int tmc_platform_probe(struct platform_device *pdev) > > +{ > > + struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > + struct tmc_drvdata *drvdata; > > + int ret = 0; > > + > > + drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); > > + if (!drvdata) > > + return -ENOMEM; > > + > > + drvdata->pclk = coresight_get_enable_apb_pclk(&pdev->dev); > > + if (IS_ERR(drvdata->pclk)) > > + return -ENODEV; > > + > > + dev_set_drvdata(&pdev->dev, drvdata); > > + pm_runtime_get_noresume(&pdev->dev); > > + pm_runtime_set_active(&pdev->dev); > > + pm_runtime_enable(&pdev->dev); > > + > > + ret = __tmc_probe(&pdev->dev, res, NULL); > > + if (ret) { > > + pm_runtime_put_noidle(&pdev->dev); > > + pm_runtime_disable(&pdev->dev); > > + } > > I'm not sure if these pm_runtime()s are right because there is already a > put inside of __tmc_probe() if it fails. If you unload and then reload > all the coresight modules with these patches you get these errors which > are new: > Ah good find. I have just tested with ACPI and these modules as built-in to be more specific. -- Regards, Sudeep