mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
platform/x86/intel/wmi: thunderbolt: Use new buffer-based WMI API
Use the new buffer-based WMI API to avoid having to deal with ACPI at all. Signed-off-by: Armin Wolf <W_Armin@gmx.de> Link: https://patch.msgid.link/20260116204116.4030-7-W_Armin@gmx.de Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
534f685d8a
commit
e210986f52
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
@ -23,24 +22,21 @@ static ssize_t force_power_store(struct device *dev,
|
|||
struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct acpi_buffer input;
|
||||
acpi_status status;
|
||||
struct wmi_buffer buffer;
|
||||
int ret;
|
||||
u8 mode;
|
||||
|
||||
input.length = sizeof(u8);
|
||||
input.pointer = &mode;
|
||||
buffer.length = sizeof(mode);
|
||||
buffer.data = &mode;
|
||||
|
||||
mode = hex_to_bin(buf[0]);
|
||||
dev_dbg(dev, "force_power: storing %#x\n", mode);
|
||||
if (mode == 0 || mode == 1) {
|
||||
status = wmidev_evaluate_method(to_wmi_device(dev), 0, 1, &input, NULL);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
dev_dbg(dev, "force_power: failed to evaluate ACPI method\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
} else {
|
||||
dev_dbg(dev, "force_power: unsupported mode\n");
|
||||
if (mode > 1)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = wmidev_invoke_method(to_wmi_device(dev), 0, 1, &buffer, NULL);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user