diff options
Diffstat (limited to 'drivers/platform/x86/wmi.c')
-rw-r--r-- | drivers/platform/x86/wmi.c | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 060e4236f932..d21f3fa25823 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1153,77 +1153,6 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev) return 0; } -static int ec_read_multiple(u8 address, u8 *buffer, size_t bytes) -{ - size_t i; - int ret; - - for (i = 0; i < bytes; i++) { - ret = ec_read(address + i, &buffer[i]); - if (ret < 0) - return ret; - } - - return 0; -} - -static int ec_write_multiple(u8 address, u8 *buffer, size_t bytes) -{ - size_t i; - int ret; - - for (i = 0; i < bytes; i++) { - ret = ec_write(address + i, buffer[i]); - if (ret < 0) - return ret; - } - - return 0; -} - -/* - * WMI can have EmbeddedControl access regions. In which case, we just want to - * hand these off to the EC driver. - */ -static acpi_status -acpi_wmi_ec_space_handler(u32 function, acpi_physical_address address, - u32 bits, u64 *value, - void *handler_context, void *region_context) -{ - int bytes = bits / BITS_PER_BYTE; - int ret; - - if (!value) - return AE_NULL_ENTRY; - - if (!bytes || bytes > sizeof(*value)) - return AE_BAD_PARAMETER; - - if (address > U8_MAX || address + bytes - 1 > U8_MAX) - return AE_BAD_PARAMETER; - - if (function != ACPI_READ && function != ACPI_WRITE) - return AE_BAD_PARAMETER; - - if (function == ACPI_READ) - ret = ec_read_multiple(address, (u8 *)value, bytes); - else - ret = ec_write_multiple(address, (u8 *)value, bytes); - - switch (ret) { - case -EINVAL: - return AE_BAD_PARAMETER; - case -ENODEV: - return AE_NOT_FOUND; - case -ETIME: - return AE_TIME; - case 0: - return AE_OK; - default: - return AE_ERROR; - } -} - static int wmi_get_notify_data(struct wmi_block *wblock, union acpi_object **obj) { struct acpi_buffer data = { ACPI_ALLOCATE_BUFFER, NULL }; @@ -1338,14 +1267,6 @@ static void acpi_wmi_remove_notify_handler(void *data) acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, acpi_wmi_notify_handler); } -static void acpi_wmi_remove_address_space_handler(void *data) -{ - struct acpi_device *acpi_device = data; - - acpi_remove_address_space_handler(acpi_device->handle, ACPI_ADR_SPACE_EC, - &acpi_wmi_ec_space_handler); -} - static void acpi_wmi_remove_bus_device(void *data) { struct device *wmi_bus_dev = data; @@ -1377,19 +1298,6 @@ static int acpi_wmi_probe(struct platform_device *device) dev_set_drvdata(&device->dev, wmi_bus_dev); - status = acpi_install_address_space_handler(acpi_device->handle, - ACPI_ADR_SPACE_EC, - &acpi_wmi_ec_space_handler, - NULL, NULL); - if (ACPI_FAILURE(status)) { - dev_err(&device->dev, "Error installing EC region handler\n"); - return -ENODEV; - } - error = devm_add_action_or_reset(&device->dev, acpi_wmi_remove_address_space_handler, - acpi_device); - if (error < 0) - return error; - status = acpi_install_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, acpi_wmi_notify_handler, wmi_bus_dev); if (ACPI_FAILURE(status)) { |