[RFC PATCH 1/3] platform/x86: uniwill-laptop: Make super key init lineup with other inits
From: Werner Sembach
Date: Tue Apr 21 2026 - 16:18:13 EST
The super key init, while being trivial, was the only one not in its own
method and before the EC init.
Make an own method and move it after EC init and probe call to make it
consistent with other initialization steps.
Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
---
drivers/platform/x86/uniwill/uniwill-acpi.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
index 766bc1ee192d2..7d1fdbacc6871 100644
--- a/drivers/platform/x86/uniwill/uniwill-acpi.c
+++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
@@ -768,6 +768,14 @@ static ssize_t super_key_enable_show(struct device *dev, struct device_attribute
static DEVICE_ATTR_RW(super_key_enable);
+static int super_key_enable_init(struct uniwill_data *data)
+{
+ if (!uniwill_device_supports(data, UNIWILL_FEATURE_SUPER_KEY))
+ return 0;
+
+ return devm_mutex_init(&data->dev, &data->super_key_lock);
+}
+
static int uniwill_write_touchpad_toggle_enable(struct uniwill_data *data, bool status)
{
unsigned int value;
@@ -1869,10 +1877,6 @@ static int uniwill_probe(struct platform_device *pdev)
data->regmap = regmap;
- ret = devm_mutex_init(&pdev->dev, &data->super_key_lock);
- if (ret < 0)
- return ret;
-
ret = uniwill_ec_init(data);
if (ret < 0)
return ret;
@@ -1890,6 +1894,10 @@ static int uniwill_probe(struct platform_device *pdev)
return ret;
}
+ ret = super_key_enable_init(data);
+ if (ret < 0)
+ return ret;
+
ret = uniwill_battery_init(data);
if (ret < 0)
return ret;
--
2.43.0