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: Jithu Joseph <jithu.joseph@intel.com> Signed-off-by: Armin Wolf <W_Armin@gmx.de> Link: https://lore.kernel.org/r/20231103182526.3524-3-W_Armin@gmx.de Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
7275bf3e09
commit
75c487fcb6
2 changed files with 5 additions and 9 deletions
|
@ -25,18 +25,13 @@
|
||||||
|
|
||||||
static int get_fwu_request(struct device *dev, u32 *out)
|
static int get_fwu_request(struct device *dev, u32 *out)
|
||||||
{
|
{
|
||||||
struct acpi_buffer result = {ACPI_ALLOCATE_BUFFER, NULL};
|
|
||||||
union acpi_object *obj;
|
union acpi_object *obj;
|
||||||
acpi_status status;
|
|
||||||
|
|
||||||
status = wmi_query_block(INTEL_WMI_SBL_GUID, 0, &result);
|
obj = wmidev_block_query(to_wmi_device(dev), 0);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (!obj)
|
||||||
dev_err(dev, "wmi_query_block failed\n");
|
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
|
||||||
|
|
||||||
obj = (union acpi_object *)result.pointer;
|
if (obj->type != ACPI_TYPE_INTEGER) {
|
||||||
if (!obj || obj->type != ACPI_TYPE_INTEGER) {
|
|
||||||
dev_warn(dev, "wmi_query_block returned invalid value\n");
|
dev_warn(dev, "wmi_query_block returned invalid value\n");
|
||||||
kfree(obj);
|
kfree(obj);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -58,7 +53,7 @@ static int set_fwu_request(struct device *dev, u32 in)
|
||||||
input.length = sizeof(u32);
|
input.length = sizeof(u32);
|
||||||
input.pointer = &value;
|
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)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
dev_err(dev, "wmi_set_block failed\n");
|
dev_err(dev, "wmi_set_block failed\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
|
@ -106,6 +106,7 @@ MODULE_DEVICE_TABLE(acpi, wmi_device_ids);
|
||||||
static const char * const allow_duplicates[] = {
|
static const char * const allow_duplicates[] = {
|
||||||
"05901221-D566-11D1-B2F0-00A0C9062910", /* wmi-bmof */
|
"05901221-D566-11D1-B2F0-00A0C9062910", /* wmi-bmof */
|
||||||
"8A42EA14-4F2A-FD45-6422-0087F7A7E608", /* dell-wmi-ddv */
|
"8A42EA14-4F2A-FD45-6422-0087F7A7E608", /* dell-wmi-ddv */
|
||||||
|
"44FADEB1-B204-40F2-8581-394BBDC1B651", /* intel-wmi-sbl-fw-update */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue