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 X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74736C43464 for ; Fri, 18 Sep 2020 15:42:29 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7B2CB208DB for ; Fri, 18 Sep 2020 15:42:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="sHqopTuI"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ZW4D37qo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B2CB208DB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=5/3rBiroVKr2cN+/sKwIgvwPaMMQq9rmyXY1udJhCWQ=; b=sHqopTuIWZGgGYFBjR6e/NhTL s+6iBkbU8W+Lod2l9CUt3qvXbuP7InuAp5MxH54B7o/9Y5BDObyN1qLIR009bM4J2SkgTK1GGZciU VCdBixQvVLtvAkY+HaTYpimCZOdNUZRTr9YmBFtSyLvzUD7BKsGFayAeuD7g/6BKXV2ZujeWiOnHB 6+Pz3fjMavv024TdVIs6OvQYTYFfa1WqWeI0QUMLtTu+YqCE8OaXoxay1cjvDkilqXSFG1PAymgj0 y080fjOfifFCiErRDukiLSlIbV6x7klNwdy+qz9Y6N5lWGqD90ChS2g5LbEt//GcplhD8D6AlBoAe acV06Z5GQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kJIUd-0007RD-HB; Fri, 18 Sep 2020 15:40:11 +0000 Received: from mail-ej1-x642.google.com ([2a00:1450:4864:20::642]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kJIQc-0005kv-4I for linux-arm-kernel@lists.infradead.org; Fri, 18 Sep 2020 15:36:06 +0000 Received: by mail-ej1-x642.google.com with SMTP id o8so8676976ejb.10 for ; Fri, 18 Sep 2020 08:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HWIUDpp1kThzq3StDMu7h2f3pJD2JNvAt+7BUZewv4g=; b=ZW4D37qo6CxQAt2xju97ubtghwwgQT0lKFg9YVIAejsAVbSmO8nGhDYQb6cX0ge7N/ 74zxcJYAejcQzk85T2adCDJiSQ8xx4wgEn+hiJ+oWdzlGWeXFlZDE1/XYCMM1W0+smms h2x02b47E8/9Hmjq4spVfsE4izcSsZziwaplj65UgYreqw43hDnqjP6QPismYNnZTKR5 QW++Eu90vwS01RJvRJM2HZ7hfVbbkm/ogN0qxFlZUgX9YR6nZCy66xmeCCA4UbhUnGeU LwTzkWRvbV9e4V3nAG3S3pznbkNUOmUPxSz1aYXq+LuHM4EHQx3Ya4EtNQ0uvU1LdUSY z31A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HWIUDpp1kThzq3StDMu7h2f3pJD2JNvAt+7BUZewv4g=; b=mI6UT6jTlnRUkl9aPPdShDg3ggnDQYVSnH28jQA7UAWNpMKClOt8W14JptvFPDNeG1 In5vl38EzfiNN2mNuTYYoAdQg5Czl7K1GbyXj+gl8Mh3F0OdjfUIkiLve4O342FBX44k 3ZFNbCsyqmkAMGZR8sdtFzCZziEo2gXJoFGt0A9K7h6vRiXDw/bAsLbaGh4tqTlvprDD zbm9DjRtTtFb1W6rSNqCA6n0MGal3aiU+o+xzgiT0N0VsMNF+X2qHa+9FIqfs5sp0d8E evIJTi9CJIyCY5jV+7eb+RB+x4gmEVG20avOnIQHHXFzgo/gz2Jq+GlwJJAmvX3tYlqq 2o/w== X-Gm-Message-State: AOAM530TgIdT5w2jCRv/oQcBUvdnIXSOHQYfZs/Eqsnq0K6MgJXCh0S+ lVEXqm576tolWw3kBWkLxK/7IBN4DUgmO4/GK8k9gA== X-Google-Smtp-Source: ABdhPJxgbgkzsgK4niQ1CwDk/0xlJv/GmXEdEyBmyL6qTkeNVkoZGsOzLc0j0xG5DU4QaHA0g4PsFWOm+prYZmrf5Pc= X-Received: by 2002:a17:907:110f:: with SMTP id qu15mr38225473ejb.359.1600443359642; Fri, 18 Sep 2020 08:35:59 -0700 (PDT) MIME-Version: 1.0 References: <20200911084119.1080694-1-suzuki.poulose@arm.com> <20200911084119.1080694-18-suzuki.poulose@arm.com> In-Reply-To: <20200911084119.1080694-18-suzuki.poulose@arm.com> From: Mike Leach Date: Fri, 18 Sep 2020 16:35:48 +0100 Message-ID: Subject: Re: [PATCH 17/19] coresight: etm4x: Refactor probing routine To: Suzuki K Poulose X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200918_113602_300789_7F035B40 X-CRM114-Status: GOOD ( 21.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Coresight ML , Anshuman.Khandual@arm.com, Mathieu Poirier , linux-arm-kernel , Leo Yan Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Reviewed-by: Mike Leach On Fri, 11 Sep 2020 at 09:41, Suzuki K Poulose wrote: > > CoreSight ETM with system register access may not have a > memory mapped i/o access. Refactor the ETM specific probing > into a common routine to allow reusing the code for such ETMs. > > Cc: Mathieu Poirier > Cc: Mike Leach > Signed-off-by: Suzuki K Poulose > --- > drivers/hwtracing/coresight/coresight-etm4x.c | 38 ++++++++++++------- > 1 file changed, 24 insertions(+), 14 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c > index dc5ac171db35..7d5f942c2108 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x.c > @@ -1596,14 +1596,11 @@ static void __init etm4_pm_clear(void) > } > } > > -static int etm4_probe(struct amba_device *adev, const struct amba_id *id) > +static int etm4_probe(struct device *dev, void __iomem *base) > { > int ret; > - void __iomem *base; > - struct device *dev = &adev->dev; > struct coresight_platform_data *pdata = NULL; > struct etmv4_drvdata *drvdata; > - struct resource *res = &adev->res; > struct coresight_desc desc = { 0 }; > struct etm_init_arg init_arg = { 0 }; > > @@ -1627,11 +1624,6 @@ static int etm4_probe(struct amba_device *adev, const struct amba_id *id) > if (fwnode_property_present(dev_fwnode(dev), "qcom,skip-power-up")) > drvdata->skip_power_up = true; > > - /* Validity for the resource is already checked by the AMBA core */ > - base = devm_ioremap_resource(dev, res); > - if (IS_ERR(base)) > - return PTR_ERR(base); > - > drvdata->base = base; > > spin_lock_init(&drvdata->spinlock); > @@ -1665,7 +1657,7 @@ static int etm4_probe(struct amba_device *adev, const struct amba_id *id) > ret = PTR_ERR(pdata); > goto err_arch_supported; > } > - adev->dev.platform_data = pdata; > + dev->platform_data = pdata; > > desc.type = CORESIGHT_DEV_TYPE_SOURCE; > desc.subtype.source_subtype = CORESIGHT_DEV_SUBTYPE_SOURCE_PROC; > @@ -1685,7 +1677,6 @@ static int etm4_probe(struct amba_device *adev, const struct amba_id *id) > goto err_arch_supported; > } > > - pm_runtime_put(&adev->dev); > dev_info(&drvdata->csdev->dev, "CPU%d: ETM v%d.%d initialized\n", > drvdata->cpu, etm_devarch_arch(drvdata->arch), > etm_devarch_rev(drvdata->arch)); > @@ -1702,6 +1693,25 @@ static int etm4_probe(struct amba_device *adev, const struct amba_id *id) > return ret; > } > > +static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id) > +{ > + void __iomem *base; > + struct device *dev = &adev->dev; > + struct resource *res = &adev->res; > + int ret; > + > + /* Validity for the resource is already checked by the AMBA core */ > + base = devm_ioremap_resource(dev, res); > + if (IS_ERR(base)) > + return PTR_ERR(base); > + > + ret = etm4_probe(dev, base); > + if (!ret) > + pm_runtime_put(&adev->dev); > + > + return ret; > +} > + > static struct amba_cs_uci_id uci_id_etm4[] = { > { > /* ETMv4 UCI data */ > @@ -1730,12 +1740,12 @@ static const struct amba_id etm4_ids[] = { > {}, > }; > > -static struct amba_driver etm4x_driver = { > +static struct amba_driver etm4x_amba_driver = { > .drv = { > .name = "coresight-etm4x", > .suppress_bind_attrs = true, > }, > - .probe = etm4_probe, > + .probe = etm4_probe_amba, > .id_table = etm4_ids, > }; > > @@ -1749,7 +1759,7 @@ static int __init etm4x_init(void) > if (ret) > return ret; > > - ret = amba_driver_register(&etm4x_driver); > + ret = amba_driver_register(&etm4x_amba_driver); > if (ret) { > pr_err("Error registering etm4x driver\n"); > etm4_pm_clear(); > -- > 2.24.1 > -- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel