[PATCH] perf: xgene: Use device_get_match_data() to simplify code
tiantao (H)
tiantao6 at huawei.com
Thu Apr 1 10:17:17 BST 2021
在 2021/4/1 17:08, Will Deacon 写道:
> On Thu, Apr 01, 2021 at 11:36:44AM +0800, Tian Tao wrote:
>> Use device_get_match_data() here to simplify the code a bit.
>>
>> Signed-off-by: Tian Tao <tiantao6 at hisilicon.com>
>> ---
>> drivers/perf/xgene_pmu.c | 17 ++---------------
>> 1 file changed, 2 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
>> index ffe3bde..befd2eb 100644
>> --- a/drivers/perf/xgene_pmu.c
>> +++ b/drivers/perf/xgene_pmu.c
>> @@ -1836,7 +1836,6 @@ static int xgene_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
>> static int xgene_pmu_probe(struct platform_device *pdev)
>> {
>> const struct xgene_pmu_data *dev_data;
>> - const struct of_device_id *of_id;
>> struct xgene_pmu *xgene_pmu;
>> struct resource *res;
>> int irq, rc;
>> @@ -1857,21 +1856,9 @@ static int xgene_pmu_probe(struct platform_device *pdev)
>> platform_set_drvdata(pdev, xgene_pmu);
>>
>> version = -EINVAL;
>> - of_id = of_match_device(xgene_pmu_of_match, &pdev->dev);
>> - if (of_id) {
>> - dev_data = (const struct xgene_pmu_data *) of_id->data;
>> - version = dev_data->id;
>> - }
>> -
>> -#ifdef CONFIG_ACPI
>> - if (ACPI_COMPANION(&pdev->dev)) {
>> - const struct acpi_device_id *acpi_id;
>> + dev_data = device_get_match_data(&pdev->dev);
>> + version = dev_data->id;
> What prevents device_get_match_data() from returning NULL? The old code
> handled the case where we didn't get a match.
What about doing it like this?
diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
index ffe3bde..bd89148 100644
--- a/drivers/perf/xgene_pmu.c
+++ b/drivers/perf/xgene_pmu.c
@@ -1836,7 +1836,6 @@ static int xgene_pmu_offline_cpu(unsigned int cpu,
struct hlist_node *node)
static int xgene_pmu_probe(struct platform_device *pdev)
{
const struct xgene_pmu_data *dev_data;
- const struct of_device_id *of_id;
struct xgene_pmu *xgene_pmu;
struct resource *res;
int irq, rc;
@@ -1857,21 +1856,11 @@ static int xgene_pmu_probe(struct
platform_device *pdev)
platform_set_drvdata(pdev, xgene_pmu);
version = -EINVAL;
- of_id = of_match_device(xgene_pmu_of_match, &pdev->dev);
- if (of_id) {
- dev_data = (const struct xgene_pmu_data *) of_id->data;
+ dev_data = device_get_match_data(&pdev->dev);
+ if (dev_data)
version = dev_data->id;
- }
-
-#ifdef CONFIG_ACPI
- if (ACPI_COMPANION(&pdev->dev)) {
- const struct acpi_device_id *acpi_id;
- acpi_id = acpi_match_device(xgene_pmu_acpi_match,
&pdev->dev);
- if (acpi_id)
- version = (int) acpi_id->driver_data;
- }
-#endif
if (version < 0)
return -ENODEV;
--
2.7.4
>
> Will
> .
>
More information about the linux-arm-kernel
mailing list