Commit 75c487fc authored by Armin Wolf's avatar Armin Wolf Committed by Hans de Goede
Browse files

platform/x86: intel-wmi-sbl-fw-update: Use bus-based WMI interface



Currently, the driver was still using the deprecated GUID-based
interface to query/set data blocks. Use the modern bus-based
interface for this.

Tested with a custom SSDT from the Intel Slim Bootloader project.

Reviewed-by: default avatarJithu Joseph <jithu.joseph@intel.com>
Signed-off-by: default avatarArmin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20231103182526.3524-3-W_Armin@gmx.de


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 7275bf3e
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -25,18 +25,13 @@

static int get_fwu_request(struct device *dev, u32 *out)
{
	struct acpi_buffer result = {ACPI_ALLOCATE_BUFFER, NULL};
	union acpi_object *obj;
	acpi_status status;

	status = wmi_query_block(INTEL_WMI_SBL_GUID, 0, &result);
	if (ACPI_FAILURE(status)) {
		dev_err(dev, "wmi_query_block failed\n");
	obj = wmidev_block_query(to_wmi_device(dev), 0);
	if (!obj)
		return -ENODEV;
	}

	obj = (union acpi_object *)result.pointer;
	if (!obj || obj->type != ACPI_TYPE_INTEGER) {
	if (obj->type != ACPI_TYPE_INTEGER) {
		dev_warn(dev, "wmi_query_block returned invalid value\n");
		kfree(obj);
		return -EINVAL;
@@ -58,7 +53,7 @@ static int set_fwu_request(struct device *dev, u32 in)
	input.length = sizeof(u32);
	input.pointer = &value;

	status = wmi_set_block(INTEL_WMI_SBL_GUID, 0, &input);
	status = wmidev_block_set(to_wmi_device(dev), 0, &input);
	if (ACPI_FAILURE(status)) {
		dev_err(dev, "wmi_set_block failed\n");
		return -ENODEV;
+1 −0
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ MODULE_DEVICE_TABLE(acpi, wmi_device_ids);
static const char * const allow_duplicates[] = {
	"05901221-D566-11D1-B2F0-00A0C9062910",	/* wmi-bmof */
	"8A42EA14-4F2A-FD45-6422-0087F7A7E608",	/* dell-wmi-ddv */
	"44FADEB1-B204-40F2-8581-394BBDC1B651",	/* intel-wmi-sbl-fw-update */
	NULL
};