Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp34930552rwd; Sun, 9 Jul 2023 23:30:40 -0700 (PDT) X-Google-Smtp-Source: APBJJlHTuycuUs+Q4ufDAOfXmwL7xm2wb3/eAuDm2u9U6iAVFYGy45fgiTia99W7yaCavH9qL77b X-Received: by 2002:a05:6512:3983:b0:4fa:b39f:c629 with SMTP id j3-20020a056512398300b004fab39fc629mr9943291lfu.25.1688970639756; Sun, 09 Jul 2023 23:30:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688970639; cv=none; d=google.com; s=arc-20160816; b=mGkf4LXJaoAcjwVcOxsNo+IaxJa1Xe1HskfW14ca7Evr/4LQwOM8oCGWS0BAZ2Y+Ko zcSW/Dtx29xgS1yXF//AJI7IfkS5lwArRvRcnwFaOmoFzDkOPbbQbYFhudE3+scVCPee WL6xOGv66VHBKufxcImvHZInGVVu6fKWaj0fx6Spna99Kmw6rcmjLQkNwmCnAtkI/Cpk lMoxqXVJxI3JWjnKJkYcx6m0EKa56lfAIIiCWXsTsZpPcVppv8hlrkICGhMHUxPFkb60 vmcoSeUpPlS3hakteycNgO+AP3fO3IWcwl2QvCPi1j+Hp2Nj95Hgr1c1L/b3T4YxfW9y hLfg== 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=d5i0T8bJPB1vnO99QP8D4yoMhXEgTKfhdApv05pOhqw=; fh=PY9h/cLRZw7UBGWy1EIb8bqZUZXcomX82OLAF53kzVA=; b=TNJxS6btfaMyLHCYn1o1lwOdLszX1JATm4JlxPU3YjFGgm3wBQMYSLd/ETtSedBjK3 DkkJ6xKF/NZ6pJ3kI+KLPmn6QLnweP6zUZFiRbUAEjADtfI2MrEF1Rjt514wowPt7o/G JhFo8V8jmP86Nss5DRmWvh3vmo/fVdviuTh9UQ5ODTLeQTZduX3KdMcr3sydQJQnFKPo gI4l6n6BKWhj70eI4xSMTPgVUCaTSGxgzc2YPtD2uwr4tZwN0EL7KMEEtbDM5Y6E7Hsj npe5+6F+tofPfbXYnS7pCMtN0uSTKqwYTC+AMlfj87uCrD5uSvaL7mpT/2PP2sC2uQzs dwvw== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m7-20020a50ef07000000b0051e2767612esi5806201eds.328.2023.07.09.23.30.16; Sun, 09 Jul 2023 23:30:39 -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 S229608AbjGJGZ3 (ORCPT + 99 others); Mon, 10 Jul 2023 02:25:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230466AbjGJGZY (ORCPT ); Mon, 10 Jul 2023 02:25:24 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E4716128; Sun, 9 Jul 2023 23:25: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 B1C05D75; Sun, 9 Jul 2023 23:26:04 -0700 (PDT) Received: from a077893.blr.arm.com (a077893.blr.arm.com [10.162.40.20]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6F0B33F67D; Sun, 9 Jul 2023 23:25:16 -0700 (PDT) From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, suzuki.poulose@arm.com, gregkh@linuxfoundation.org, rafael@kernel.org Cc: Anshuman Khandual , Ganapatrao Kulkarni , Steve Clevenger , Rob Herring , Frank Rowand , Russell King , 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 V6 1/6] coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier Date: Mon, 10 Jul 2023 11:54:55 +0530 Message-Id: <20230710062500.45147-2-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230710062500.45147-1-anshuman.khandual@arm.com> References: <20230710062500.45147-1-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,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 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 7e307022303a..264242ba345b 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); -- 2.25.1