Re: [PATCH v2 1/1] platform/x86: xo15-ebook: Replace open coded acpi_match_device()
From: Hans de Goede
Date: Fri Oct 06 2023 - 11:35:14 EST
Hi,
On 10/6/23 17:31, Andy Shevchenko wrote:
> Replace open coded acpi_match_device() in ebook_switch_add().
>
> Note, while it is a bit longer it is more robust in case
> more IDs will be added.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Regards,
Hans
p.s.
This driver too really should be converted to not be an acpi_driver
instead it should bind to the instantiated platform_device
for the adev, but that would require someone with actual
hw access to test the conversion ...
> ---
> v2: fixed compilation error
> drivers/platform/x86/xo15-ebook.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
> index 391f7ea4431e..2ae8a58adcd0 100644
> --- a/drivers/platform/x86/xo15-ebook.c
> +++ b/drivers/platform/x86/xo15-ebook.c
> @@ -81,9 +81,9 @@ static SIMPLE_DEV_PM_OPS(ebook_switch_pm, NULL, ebook_switch_resume);
>
> static int ebook_switch_add(struct acpi_device *device)
> {
> + const struct acpi_device_id *id;
> struct ebook_switch *button;
> struct input_dev *input;
> - const char *hid = acpi_device_hid(device);
> char *name, *class;
> int error;
>
> @@ -102,8 +102,9 @@ static int ebook_switch_add(struct acpi_device *device)
> name = acpi_device_name(device);
> class = acpi_device_class(device);
>
> - if (strcmp(hid, XO15_EBOOK_HID)) {
> - pr_err("Unsupported hid [%s]\n", hid);
> + id = acpi_match_device(ebook_device_ids, device);
> + if (!id) {
> + dev_err(&device->dev, "Unsupported hid\n");
> error = -ENODEV;
> goto err_free_input;
> }
> @@ -111,7 +112,7 @@ static int ebook_switch_add(struct acpi_device *device)
> strcpy(name, XO15_EBOOK_DEVICE_NAME);
> sprintf(class, "%s/%s", XO15_EBOOK_CLASS, XO15_EBOOK_SUBCLASS);
>
> - snprintf(button->phys, sizeof(button->phys), "%s/button/input0", hid);
> + snprintf(button->phys, sizeof(button->phys), "%s/button/input0", id->id);
>
> input->name = name;
> input->phys = button->phys;