All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Besar Wicaksono <bwicaksono@nvidia.com>
Cc: <will@kernel.org>, <suzuki.poulose@arm.com>,
	<robin.murphy@arm.com>, <ilkka@os.amperecomputing.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
	<mark.rutland@arm.com>, <treding@nvidia.com>,
	<jonathanh@nvidia.com>, <vsethi@nvidia.com>, <rwiley@nvidia.com>,
	<sdonthineni@nvidia.com>, <skelley@nvidia.com>, <ywan@nvidia.com>,
	<mochs@nvidia.com>, <nirmoyd@nvidia.com>
Subject: Re: [PATCH v2 3/8] perf/arm_cspmu: Add arm_cspmu_acpi_dev_get
Date: Thu, 19 Feb 2026 09:40:21 +0000	[thread overview]
Message-ID: <20260219094021.0000465d@huawei.com> (raw)
In-Reply-To: <20260218145809.1622856-4-bwicaksono@nvidia.com>

On Wed, 18 Feb 2026 14:58:04 +0000
Besar Wicaksono <bwicaksono@nvidia.com> wrote:

> Add interface to get ACPI device associated with the
> PMU. This ACPI device may contain additional properties
> not covered by the standard properties.
> 
> Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
> Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Hi Besar,

A drive by review as I was curious.

A few comments inline.
> ---
>  drivers/perf/arm_cspmu/arm_cspmu.c | 22 +++++++++++++++++++++-
>  drivers/perf/arm_cspmu/arm_cspmu.h | 17 ++++++++++++++++-
>  2 files changed, 37 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index 34430b68f602..ab2479c048bb 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -16,7 +16,7 @@
>   * The user should refer to the vendor technical documentation to get details
>   * about the supported events.
>   *
> - * Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
> + * Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
>   *
>   */
>  
> @@ -1132,6 +1132,26 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>  
>  	return 0;
>  }
> +
> +struct acpi_device *arm_cspmu_acpi_dev_get(const struct arm_cspmu *cspmu)
> +{
> +	char hid[16];
> +	char uid[16];

Might as well do
	char hid[16] = { };
	char uid[16] = { };

and drop the memsets below.

> +	const struct acpi_apmt_node *apmt_node;
> +
> +	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
> +	if (!apmt_node || apmt_node->type != ACPI_APMT_NODE_TYPE_ACPI)
> +		return NULL;
> +
> +	memset(hid, 0, sizeof(hid));
> +	memset(uid, 0, sizeof(uid));
> +
> +	memcpy(hid, &apmt_node->inst_primary, sizeof(apmt_node->inst_primary));
> +	snprintf(uid, sizeof(uid), "%u", apmt_node->inst_secondary);
> +
> +	return acpi_dev_get_first_match_dev(hid, uid, -1);
> +}
> +EXPORT_SYMBOL_GPL(arm_cspmu_acpi_dev_get);
>  #else
>  static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>  {
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.h b/drivers/perf/arm_cspmu/arm_cspmu.h
> index cd65a58dbd88..320096673200 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.h
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.h
> @@ -1,13 +1,14 @@
>  /* SPDX-License-Identifier: GPL-2.0
>   *
>   * ARM CoreSight Architecture PMU driver.
> - * Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
> + * Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
>   *
>   */
>  
>  #ifndef __ARM_CSPMU_H__
>  #define __ARM_CSPMU_H__
>  
> +#include <linux/acpi.h>
>  #include <linux/bitfield.h>
>  #include <linux/cpumask.h>
>  #include <linux/device.h>
> @@ -255,4 +256,18 @@ int arm_cspmu_impl_register(const struct arm_cspmu_impl_match *impl_match);
>  /* Unregister vendor backend. */
>  void arm_cspmu_impl_unregister(const struct arm_cspmu_impl_match *impl_match);
>  
> +#if defined(CONFIG_ACPI)
This isn't the same gate as used for whether the function is built. I think that's 
#if defined(CONFIG_ACPI) && defined(CONFIG_ARM64)

Whilst it might work to have them different today I think this is a little more
fragile than would be ideal.

The ARM64 bit seems to be there to allow COMPILE_TEST for
ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU  and to me that smells like a stub or Kconfig
dependency missing.

> +/**
> + * Get ACPI device associated with the PMU.
> + * The caller is responsible for calling acpi_dev_put() on the returned device.
> + */
> +struct acpi_device *arm_cspmu_acpi_dev_get(const struct arm_cspmu *cspmu);
> +#else
> +static inline struct acpi_device *
> +arm_cspmu_acpi_dev_get(const struct arm_cspmu *cspmu)
> +{
> +	return NULL;
> +}
> +#endif
> +
>  #endif /* __ARM_CSPMU_H__ */



  reply	other threads:[~2026-02-19  9:40 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-18 14:58 [PATCH v2 0/8] perf: add NVIDIA Tegra410 Uncore PMU support Besar Wicaksono
2026-02-18 14:58 ` [PATCH v2 1/8] perf/arm_cspmu: nvidia: Rename doc to Tegra241 Besar Wicaksono
2026-02-18 14:58 ` [PATCH v2 2/8] perf/arm_cspmu: nvidia: Add Tegra410 UCF PMU Besar Wicaksono
2026-02-19  9:43   ` Jonathan Cameron
2026-03-05 22:33     ` Besar Wicaksono
2026-02-18 14:58 ` [PATCH v2 3/8] perf/arm_cspmu: Add arm_cspmu_acpi_dev_get Besar Wicaksono
2026-02-19  9:40   ` Jonathan Cameron [this message]
2026-03-05 22:39     ` Besar Wicaksono
2026-02-18 14:58 ` [PATCH v2 4/8] perf/arm_cspmu: nvidia: Add Tegra410 PCIE PMU Besar Wicaksono
2026-02-19 10:06   ` Jonathan Cameron
2026-03-05 23:59     ` Besar Wicaksono
2026-02-18 14:58 ` [PATCH v2 5/8] perf/arm_cspmu: nvidia: Add Tegra410 PCIE-TGT PMU Besar Wicaksono
2026-02-19 10:10   ` Jonathan Cameron
2026-02-18 14:58 ` [PATCH v2 6/8] perf: add NVIDIA Tegra410 CPU Memory Latency PMU Besar Wicaksono
2026-02-19 10:28   ` Jonathan Cameron
2026-02-18 14:58 ` [PATCH v2 7/8] perf: add NVIDIA Tegra410 C2C PMU Besar Wicaksono
2026-02-19 10:55   ` Jonathan Cameron
2026-02-18 14:58 ` [PATCH v2 8/8] arm64: defconfig: Enable NVIDIA TEGRA410 PMU Besar Wicaksono

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=20260219094021.0000465d@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=bwicaksono@nvidia.com \
    --cc=ilkka@os.amperecomputing.com \
    --cc=jonathanh@nvidia.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mochs@nvidia.com \
    --cc=nirmoyd@nvidia.com \
    --cc=robin.murphy@arm.com \
    --cc=rwiley@nvidia.com \
    --cc=sdonthineni@nvidia.com \
    --cc=skelley@nvidia.com \
    --cc=suzuki.poulose@arm.com \
    --cc=treding@nvidia.com \
    --cc=vsethi@nvidia.com \
    --cc=will@kernel.org \
    --cc=ywan@nvidia.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.