summaryrefslogtreecommitdiff
path: root/drivers/platform/surface/surface3-wmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/platform/surface/surface3-wmi.c')
-rw-r--r--drivers/platform/surface/surface3-wmi.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
index 09ac9cfc40d8..6c8fb7a4dde4 100644
--- a/drivers/platform/surface/surface3-wmi.c
+++ b/drivers/platform/surface/surface3-wmi.c
@@ -116,15 +116,11 @@ static acpi_status s3_wmi_attach_spi_device(acpi_handle handle,
void *data,
void **return_value)
{
- struct acpi_device *adev, **ts_adev;
+ struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
+ struct acpi_device **ts_adev = data;
- if (acpi_bus_get_device(handle, &adev))
- return AE_OK;
-
- ts_adev = data;
-
- if (strncmp(acpi_device_bid(adev), SPI_TS_OBJ_NAME,
- strlen(SPI_TS_OBJ_NAME)))
+ if (!adev || strncmp(acpi_device_bid(adev), SPI_TS_OBJ_NAME,
+ strlen(SPI_TS_OBJ_NAME)))
return AE_OK;
if (*ts_adev) {
@@ -190,14 +186,11 @@ static int s3_wmi_create_and_register_input(struct platform_device *pdev)
error = input_register_device(input);
if (error)
- goto out_err;
+ return error;
s3_wmi.input = input;
return 0;
- out_err:
- input_free_device(s3_wmi.input);
- return error;
}
static int __init s3_wmi_probe(struct platform_device *pdev)
@@ -233,14 +226,13 @@ static int __init s3_wmi_probe(struct platform_device *pdev)
return error;
}
-static int s3_wmi_remove(struct platform_device *device)
+static void s3_wmi_remove(struct platform_device *device)
{
/* remove the hotplug context from the acpi device */
s3_wmi.touchscreen_adev->hp = NULL;
/* reinstall the actual PNPC0C0D LID default handle */
acpi_bus_scan(s3_wmi.pnp0c0d_adev->handle);
- return 0;
}
static int __maybe_unused s3_wmi_resume(struct device *dev)