All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Leach <mike.leach@linaro.org>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Coresight ML <coresight@lists.linaro.org>,
	Anshuman.Khandual@arm.com,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Leo Yan <leo.yan@linaro.org>
Subject: Re: [PATCH 17/19] coresight: etm4x: Refactor probing routine
Date: Fri, 18 Sep 2020 16:35:48 +0100	[thread overview]
Message-ID: <CAJ9a7VgJUi10-0BLdz4KE35p7FaidkehOPbEZneAbej7vtOUoA@mail.gmail.com> (raw)
In-Reply-To: <20200911084119.1080694-18-suzuki.poulose@arm.com>

Reviewed-by: Mike Leach <mike.leach@linaro.org>


On Fri, 11 Sep 2020 at 09:41, Suzuki K Poulose <suzuki.poulose@arm.com> 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 <mathieu.poirier@linaro.org>
> Cc: Mike Leach <mike.leach@linaro.org>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  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

  reply	other threads:[~2020-09-18 15:42 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11  8:41 [PATCH 00/19] coresight: Support for ETMv4.4 system instructions Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 01/19] coresight: Introduce device access abstraction Suzuki K Poulose
2020-09-18 15:33   ` Mike Leach
2020-09-11  8:41 ` [PATCH 02/19] coresight: tpiu: Prepare for using coresight " Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 03/19] coresight: Convert coresight_timeout to use " Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 04/19] coresight: Convert claim/disclaim operations to use access wrappers Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 05/19] coresight: Use device access layer for Software lock/unlock operations Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-18 15:52     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 06/19] coresight: etm4x: Always read the registers on the host CPU Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 07/19] coresight: etm4x: Convert all register accesses Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 08/19] coresight: etm4x: Add commentary on the registers Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 09/19] coresight: etm4x: Add sysreg access helpers Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-11  8:41 ` [PATCH 10/19] coresight: etm4x: Define DEVARCH register fields Suzuki K Poulose
2020-09-18 15:34   ` Mike Leach
2020-09-22 10:20     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 11/19] coresight: etm4x: Check for OS and Software Lock Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-22 10:44     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 12/19] coresight: etm4x: Cleanup secure exception level masks Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-22 10:55     ` Suzuki K Poulose
2020-09-22 12:47       ` Mike Leach
2020-09-30 10:32         ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 13/19] coresight: etm4x: Clean up " Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-22 10:59     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 14/19] coresight: etm4x: Detect access early on the target CPU Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 15/19] coresight: etm4x: Use TRCDEVARCH for component discovery Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-22 11:18     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 16/19] coresight: etm4x: Detect system instructions support Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-22 11:59     ` Suzuki K Poulose
2020-09-11  8:41 ` [PATCH 17/19] coresight: etm4x: Refactor probing routine Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach [this message]
2020-09-11  8:41 ` [PATCH 18/19] coresight: etm4x: Add support for sysreg only devices Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-23 11:52     ` Suzuki K Poulose
2020-09-23 16:55       ` Mike Leach
2020-09-11  8:41 ` [PATCH 19/19] dts: bindings: coresight: ETMv4.4 system register access only units Suzuki K Poulose
2020-09-11  8:41   ` Suzuki K Poulose
2020-09-18 15:35   ` Mike Leach
2020-09-18 15:35     ` Mike Leach
2020-09-24  9:48     ` Suzuki K Poulose
2020-09-24  9:48       ` Suzuki K Poulose
2020-09-24 10:08       ` Mike Leach
2020-09-24 10:08         ` Mike Leach
2020-09-18 15:33 ` [PATCH 00/19] coresight: Support for ETMv4.4 system instructions Mike Leach
2020-09-25  9:55   ` Suzuki K Poulose
2020-09-29 16:42     ` Mike Leach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJ9a7VgJUi10-0BLdz4KE35p7FaidkehOPbEZneAbej7vtOUoA@mail.gmail.com \
    --to=mike.leach@linaro.org \
    --cc=Anshuman.Khandual@arm.com \
    --cc=coresight@lists.linaro.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=suzuki.poulose@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.