diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2022-12-13 14:27:16 +0100 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2022-12-13 14:27:16 +0100 |
| commit | cfd1f6c16f7deadfe5269a76c1516405c4466481 (patch) | |
| tree | 44c0635e57e9627d9838c0d0d5801381b93ccccd /drivers/input/touchscreen/chipone_icn8505.c | |
| parent | a9d9e46c755a189ccb44d91b8cf737742a975de8 (diff) | |
| parent | fd7b68b763c4dfa65e3c145c624427d5fd11202f (diff) | |
| download | linux-next-cfd1f6c16f7deadfe5269a76c1516405c4466481.tar.gz linux-next-cfd1f6c16f7deadfe5269a76c1516405c4466481.zip | |
Merge branch 'for-6.2/apple' into for-linus
- new quirks for select Apple keyboards (Kerem Karabay, Aditya Garg)
Diffstat (limited to 'drivers/input/touchscreen/chipone_icn8505.c')
| -rw-r--r-- | drivers/input/touchscreen/chipone_icn8505.c | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/drivers/input/touchscreen/chipone_icn8505.c b/drivers/input/touchscreen/chipone_icn8505.c index f9ca5502ac8c..c421f4be2700 100644 --- a/drivers/input/touchscreen/chipone_icn8505.c +++ b/drivers/input/touchscreen/chipone_icn8505.c @@ -364,32 +364,20 @@ static irqreturn_t icn8505_irq(int irq, void *dev_id) static int icn8505_probe_acpi(struct icn8505_data *icn8505, struct device *dev) { - struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; - const char *subsys = "unknown"; - struct acpi_device *adev; - union acpi_object *obj; - acpi_status status; - - adev = ACPI_COMPANION(dev); - if (!adev) - return -ENODEV; + const char *subsys; + int error; - status = acpi_evaluate_object(adev->handle, "_SUB", NULL, &buffer); - if (ACPI_SUCCESS(status)) { - obj = buffer.pointer; - if (obj->type == ACPI_TYPE_STRING) - subsys = obj->string.pointer; - else - dev_warn(dev, "Warning ACPI _SUB did not return a string\n"); - } else { - dev_warn(dev, "Warning ACPI _SUB failed: %#x\n", status); - buffer.pointer = NULL; - } + subsys = acpi_get_subsystem_id(ACPI_HANDLE(dev)); + error = PTR_ERR_OR_ZERO(subsys); + if (error == -ENODATA) + subsys = "unknown"; + else if (error) + return error; snprintf(icn8505->firmware_name, sizeof(icn8505->firmware_name), "chipone/icn8505-%s.fw", subsys); - kfree(buffer.pointer); + kfree_const(subsys); return 0; } |
