Messages in this thread | | | Date | Fri, 1 Jul 2022 12:31:42 +0100 | From | Will Deacon <> | Subject | Re: [PATCH v1 1/1] drivers/perf: thunderx2_pmu: Replace open coded acpi_match_device() |
| |
On Thu, Jun 30, 2022 at 10:51:03PM +0300, Andy Shevchenko wrote: > Replace open coded acpi_match_device() in get_tx2_pmu_type(). > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/perf/thunderx2_pmu.c | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/drivers/perf/thunderx2_pmu.c b/drivers/perf/thunderx2_pmu.c > index 1edb9c03704f..b5a70cc42495 100644 > --- a/drivers/perf/thunderx2_pmu.c > +++ b/drivers/perf/thunderx2_pmu.c > @@ -504,24 +504,19 @@ static void tx2_uncore_event_update(struct perf_event *event) > > static enum tx2_uncore_type get_tx2_pmu_type(struct acpi_device *adev) > { > - int i = 0; > - struct acpi_tx2_pmu_device { > - __u8 id[ACPI_ID_LEN]; > - enum tx2_uncore_type type; > - } devices[] = { > + struct acpi_device_id devices[] = { > {"CAV901D", PMU_TYPE_L3C}, > {"CAV901F", PMU_TYPE_DMC}, > {"CAV901E", PMU_TYPE_CCPI2}, > - {"", PMU_TYPE_INVALID} > + {} > }; > + const struct acpi_device_id *id; > > - while (devices[i].type != PMU_TYPE_INVALID) { > - if (!strcmp(acpi_device_hid(adev), devices[i].id)) > - break; > - i++; > - } > + id = acpi_match_device(adev, devices); > + if (!id) > + return PMU_TYPE_INVALID; > > - return devices[i].type; > + return (enum tx2_uncore_type)id->driver_data;
This doesn't even build for me:
| drivers/perf/thunderx2_pmu.c:515:25: error: incompatible pointer types passing 'struct acpi_device *' to parameter of type 'const struct acpi_device_id *' [-Werror,-Wincompatible-pointer-types] | id = acpi_match_device(adev, devices); | ^~~~ | ./include/linux/acpi.h:713:77: note: passing argument to parameter 'ids' here | const struct acpi_device_id *acpi_match_device(const struct acpi_device_id *ids, | ^ | drivers/perf/thunderx2_pmu.c:515:31: error: incompatible pointer types passing 'struct acpi_device_id [4]' to parameter of type 'const struct device *' [-Werror,-Wincompatible-pointer-types] | id = acpi_match_device(adev, devices); | ^~~~~~~ | ./include/linux/acpi.h:714:34: note: passing argument to parameter 'dev' here | const struct device *dev); | ^ | 2 errors generated. | make[2]: *** [scripts/Makefile.build:249: drivers/perf/thunderx2_pmu.o] Error 1 | make[2]: *** Waiting for unfinished jobs.... | make[1]: *** [scripts/Makefile.build:466: drivers/perf] Error 2 | make[1]: *** Waiting for unfinished jobs.... | make: *** [Makefile:1843: drivers] Error 2 |
Have you tested this at all?
Will
| |