From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/3] perf: xgene: Parse PMU subnode from the match table
Date: Thu, 22 Jun 2017 17:39:31 +0100 [thread overview]
Message-ID: <20170622163930.GC25967@leverpostej> (raw)
In-Reply-To: <1496772146-11084-2-git-send-email-hotran@apm.com>
On Tue, Jun 06, 2017 at 11:02:24AM -0700, Hoan Tran wrote:
> This patch parses PMU Subnode from a match table.
>
> Signed-off-by: Hoan Tran <hotran@apm.com>
> ---
> drivers/perf/xgene_pmu.c | 40 ++++++++++++++++++++++++++++++----------
> 1 file changed, 30 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
> index 35b5289..5ffd580 100644
> --- a/drivers/perf/xgene_pmu.c
> +++ b/drivers/perf/xgene_pmu.c
> @@ -1047,9 +1047,35 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
> return NULL;
> }
>
> +static const struct acpi_device_id xgene_pmu_acpi_type_match[] = {
> + {"APMC0D5D", PMU_TYPE_L3C},
> + {"APMC0D5E", PMU_TYPE_IOB},
> + {"APMC0D5F", PMU_TYPE_MCB},
> + {"APMC0D60", PMU_TYPE_MC},
> + {},
> +};
> +
> +static const struct acpi_device_id *xgene_pmu_acpi_match_type(
> + const struct acpi_device_id *ids,
> + struct acpi_device *adev)
> +{
> + const struct acpi_device_id *match_id = NULL;
> + const struct acpi_device_id *id;
> +
Since this was the subject of confusion before, can we please add a
comment here, e.g.
/*
* We have to iterate over the list as acpi_match_device_ids()
* doesn't tell us *which* entry matches, and there's no helper
* that can do thtat for us.
*/
With that:
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> + for (id = ids; id->id[0] || id->cls; id++) {
> + if (!acpi_match_device_ids(adev, id))
> + match_id = id;
> + else if (match_id)
> + break;
> + }
> +
> + return match_id;
> +}
> +
> static acpi_status acpi_pmu_dev_add(acpi_handle handle, u32 level,
> void *data, void **return_value)
> {
> + const struct acpi_device_id *acpi_id;
> struct xgene_pmu *xgene_pmu = data;
> struct xgene_pmu_dev_ctx *ctx;
> struct acpi_device *adev;
> @@ -1059,17 +1085,11 @@ static acpi_status acpi_pmu_dev_add(acpi_handle handle, u32 level,
> if (acpi_bus_get_status(adev) || !adev->status.present)
> return AE_OK;
>
> - if (!strcmp(acpi_device_hid(adev), "APMC0D5D"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_L3C);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D5E"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_IOB);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D5F"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_MCB);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D60"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_MC);
> - else
> - ctx = NULL;
> + acpi_id = xgene_pmu_acpi_match_type(xgene_pmu_acpi_type_match, adev);
> + if (!acpi_id)
> + return AE_OK;
>
> + ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, (u32)acpi_id->driver_data);
> if (!ctx)
> return AE_OK;
>
> --
> 1.9.1
>
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Hoan Tran <hotran@apm.com>
Cc: Will Deacon <will.deacon@arm.com>,
Jonathan Corbet <corbet@lwn.net>, Tai Nguyen <ttnguyen@apm.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
Loc Ho <lho@apm.com>
Subject: Re: [PATCH v3 1/3] perf: xgene: Parse PMU subnode from the match table
Date: Thu, 22 Jun 2017 17:39:31 +0100 [thread overview]
Message-ID: <20170622163930.GC25967@leverpostej> (raw)
In-Reply-To: <1496772146-11084-2-git-send-email-hotran@apm.com>
On Tue, Jun 06, 2017 at 11:02:24AM -0700, Hoan Tran wrote:
> This patch parses PMU Subnode from a match table.
>
> Signed-off-by: Hoan Tran <hotran@apm.com>
> ---
> drivers/perf/xgene_pmu.c | 40 ++++++++++++++++++++++++++++++----------
> 1 file changed, 30 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
> index 35b5289..5ffd580 100644
> --- a/drivers/perf/xgene_pmu.c
> +++ b/drivers/perf/xgene_pmu.c
> @@ -1047,9 +1047,35 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
> return NULL;
> }
>
> +static const struct acpi_device_id xgene_pmu_acpi_type_match[] = {
> + {"APMC0D5D", PMU_TYPE_L3C},
> + {"APMC0D5E", PMU_TYPE_IOB},
> + {"APMC0D5F", PMU_TYPE_MCB},
> + {"APMC0D60", PMU_TYPE_MC},
> + {},
> +};
> +
> +static const struct acpi_device_id *xgene_pmu_acpi_match_type(
> + const struct acpi_device_id *ids,
> + struct acpi_device *adev)
> +{
> + const struct acpi_device_id *match_id = NULL;
> + const struct acpi_device_id *id;
> +
Since this was the subject of confusion before, can we please add a
comment here, e.g.
/*
* We have to iterate over the list as acpi_match_device_ids()
* doesn't tell us *which* entry matches, and there's no helper
* that can do thtat for us.
*/
With that:
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> + for (id = ids; id->id[0] || id->cls; id++) {
> + if (!acpi_match_device_ids(adev, id))
> + match_id = id;
> + else if (match_id)
> + break;
> + }
> +
> + return match_id;
> +}
> +
> static acpi_status acpi_pmu_dev_add(acpi_handle handle, u32 level,
> void *data, void **return_value)
> {
> + const struct acpi_device_id *acpi_id;
> struct xgene_pmu *xgene_pmu = data;
> struct xgene_pmu_dev_ctx *ctx;
> struct acpi_device *adev;
> @@ -1059,17 +1085,11 @@ static acpi_status acpi_pmu_dev_add(acpi_handle handle, u32 level,
> if (acpi_bus_get_status(adev) || !adev->status.present)
> return AE_OK;
>
> - if (!strcmp(acpi_device_hid(adev), "APMC0D5D"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_L3C);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D5E"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_IOB);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D5F"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_MCB);
> - else if (!strcmp(acpi_device_hid(adev), "APMC0D60"))
> - ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, PMU_TYPE_MC);
> - else
> - ctx = NULL;
> + acpi_id = xgene_pmu_acpi_match_type(xgene_pmu_acpi_type_match, adev);
> + if (!acpi_id)
> + return AE_OK;
>
> + ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, (u32)acpi_id->driver_data);
> if (!ctx)
> return AE_OK;
>
> --
> 1.9.1
>
next prev parent reply other threads:[~2017-06-22 16:39 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-06 18:02 [PATCH v3 0/3] perf: xgene: Add support for SoC PMU version 3 Hoan Tran
2017-06-06 18:02 ` Hoan Tran
2017-06-06 18:02 ` [PATCH v3 1/3] perf: xgene: Parse PMU subnode from the match table Hoan Tran
2017-06-06 18:02 ` Hoan Tran
2017-06-22 16:39 ` Mark Rutland [this message]
2017-06-22 16:39 ` Mark Rutland
2017-06-06 18:02 ` [PATCH v3 2/3] perf: xgene: Move PMU leaf functions into function pointer structure Hoan Tran
2017-06-06 18:02 ` Hoan Tran
2017-06-22 17:53 ` Mark Rutland
2017-06-22 17:53 ` Mark Rutland
2017-06-06 18:02 ` [PATCH v3 3/3] perf: xgene: Add support for SoC PMU version 3 Hoan Tran
2017-06-06 18:02 ` Hoan Tran
2017-06-22 17:52 ` Mark Rutland
2017-06-22 17:52 ` Mark Rutland
2017-06-22 18:13 ` Hoan Tran
2017-06-22 18:13 ` Hoan Tran
2017-06-22 18:17 ` Mark Rutland
2017-06-22 18:17 ` Mark Rutland
2017-06-22 18:29 ` Hoan Tran
2017-06-22 18:29 ` Hoan Tran
2017-06-22 18:18 ` Mark Rutland
2017-06-22 18:18 ` Mark Rutland
2017-06-22 18:28 ` Hoan Tran
2017-06-22 18:28 ` Hoan Tran
2017-06-20 18:45 ` [PATCH v3 0/3] " Hoan Tran
2017-06-20 18:45 ` Hoan Tran
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=20170622163930.GC25967@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.