From patchwork Mon May 29 06:25:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anshuman Khandual X-Patchwork-Id: 100108 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1319351vqr; Sun, 28 May 2023 23:49:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5mVGQnMDGpHqwUdWxAnZ66UyL2D35j+jdXODF/Z4M7vVLhjoZ+JMzeKH7Rgc0MvE3c78tz X-Received: by 2002:a05:6a20:144f:b0:106:5dff:5db5 with SMTP id a15-20020a056a20144f00b001065dff5db5mr7605937pzi.1.1685342958355; Sun, 28 May 2023 23:49:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685342958; cv=none; d=google.com; s=arc-20160816; b=MY37dqHUweLhF6Yzg9Oid+Ja0NIl4K8LgP4onjMPdX8N89J7PuiqwJL1xaVAuRpZ82 FJTo87qfIe0v1eGKnLGi7WayIC4M6CFzsw9/EXl3FnuLyngZj6g/TfcqYO/5c8x74BzK RBoafv8ZIG2JnXulycrH1MZ7VfvRMptElrDxMntDzvlIAW6XaVlgwYVqyBlGdjQMmy6k GpumiU7qtKxvjUdw8NLixMIXwhqvD4+T9aeFHdoh5oPnSAHBoeXgPeL/i41G99VJgbdq +aQ1fXu+OdY5VV8F91eDWro416Rmntat6UDKnZ/2cU+YkumhCU1BZsHQNG6VCdSwaQJi 03ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=m+e1imscgxxfdaZ4eyi90ayYqSxq81Un1Qj+za5xbdU=; b=HAgQ3+RzQZfyBVY+/dstszjJk7e5UfWl8ozIHHr6sUMz4eM7lt5x3+lgHy0o9Szz4c LyL924mLFbwnBPKhBT75++8XyL14gcZw3FF122mRwg618kV72IgE5PXZH35DAQjhvdMS U3elMBr7zJgch2z59BlS6h9qyUHlM5BBbE+fVq+DnRhV1T/QhupXN7R40APHakvXe5Qb 0T/TrJXBHRg0DZWwRYy5xgmBAMJwHm65Xkbrgh8gvwCzgtGivcURU0mzdNwyfCvMvy/h r98jgAnhWmErHfACIwWloHVni0k2rEiESJjEzfVP0cTmIVK9vv36wNOdURjqOdWSR+tF 4ESg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pi5-20020a17090b1e4500b002535e5e607asi9935723pjb.150.2023.05.28.23.49.05; Sun, 28 May 2023 23:49:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231596AbjE2G1H (ORCPT + 99 others); Mon, 29 May 2023 02:27:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231638AbjE2G05 (ORCPT ); Mon, 29 May 2023 02:26:57 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 0318DC4; Sun, 28 May 2023 23:26:22 -0700 (PDT) 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 7CAC5AB6; Sun, 28 May 2023 23:26:18 -0700 (PDT) Received: from a077893.blr.arm.com (a077893.blr.arm.com [10.162.40.17]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7147E3F6C4; Sun, 28 May 2023 23:25:27 -0700 (PDT) From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, suzuki.poulose@arm.com Cc: scclevenger@os.amperecomputing.com, Anshuman Khandual , Ganapatrao Kulkarni , Rob Herring , Frank Rowand , Russell King , Greg Kroah-Hartman , "Rafael J. Wysocki" , Len Brown , Sudeep Holla , Lorenzo Pieralisi , Mathieu Poirier , Mike Leach , Leo Yan , devicetree@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 1/6] coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier Date: Mon, 29 May 2023 11:55:06 +0530 Message-Id: <20230529062511.52016-2-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230529062511.52016-1-anshuman.khandual@arm.com> References: <20230529062511.52016-1-anshuman.khandual@arm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767210177820105952?= X-GMAIL-MSGID: =?utf-8?q?1767210177820105952?= Allocate and device assign 'struct etmv4_drvdata' earlier during the driver probe, ensuring that it can be retrieved in power management based runtime callbacks if required. This will also help in dropping iomem base address argument from the function etm4_probe() later. Cc: Mathieu Poirier Cc: Suzuki K Poulose Cc: Mike Leach Cc: Leo Yan Cc: coresight@lists.linaro.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual --- .../coresight/coresight-etm4x-core.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c index 4c15fae534f3..7e96293c638f 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -2046,17 +2046,14 @@ static int etm4_add_coresight_dev(struct etm4_init_arg *init_arg) static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid) { - struct etmv4_drvdata *drvdata; + struct etmv4_drvdata *drvdata = dev_get_drvdata(dev); struct csdev_access access = { 0 }; struct etm4_init_arg init_arg = { 0 }; struct etm4_init_arg *delayed; - drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); - if (!drvdata) + if (WARN_ON(!drvdata)) return -ENOMEM; - dev_set_drvdata(dev, drvdata); - if (pm_save_enable == PARAM_PM_SAVE_FIRMWARE) pm_save_enable = coresight_loses_context_with_cpu(dev) ? PARAM_PM_SAVE_SELF_HOSTED : PARAM_PM_SAVE_NEVER; @@ -2108,6 +2105,7 @@ static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid) static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id) { + struct etmv4_drvdata *drvdata; void __iomem *base; struct device *dev = &adev->dev; struct resource *res = &adev->res; @@ -2118,6 +2116,11 @@ static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id) if (IS_ERR(base)) return PTR_ERR(base); + drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + + dev_set_drvdata(dev, drvdata); ret = etm4_probe(dev, base, id->id); if (!ret) pm_runtime_put(&adev->dev); @@ -2127,8 +2130,14 @@ static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id) static int etm4_probe_platform_dev(struct platform_device *pdev) { + struct etmv4_drvdata *drvdata; int ret; + drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + + dev_set_drvdata(&pdev->dev, drvdata); pm_runtime_get_noresume(&pdev->dev); pm_runtime_set_active(&pdev->dev); pm_runtime_enable(&pdev->dev);