Re: [PATCH 1/2] platform/x86: uniwill: Add MECHREVO Jiaolong 16K (GM6BG0Q)

From: Armin Wolf

Date: Sun Nov 01 2026 - 12:19:58 EST


Am 23.10.26 um 05:48 schrieb dydydd:

Add a DMI entry for the MECHREVO Jiaolong 16K, which is built by Uniwill
on the GM6BG0Q board (BIOS project ID "IDQ", EC version 1.24).

The feature set was determined by testing every sysfs attribute exposed
by the driver on the actual machine:

- fn_lock, super_key_enable and touchpad_toggle_enable are writable and
take effect
- the battery exposes charge_types (Trickle/Standard/Long_Life) instead
of charge_control_end_threshold, so BATTERY_CHARGE_MODES is used
- cpu_temp, gpu_temp, fan1_input and fan2_input report plausible values
- the keyboard backlight is RGB with four brightness levels
- ac_auto_boot and usb_powershare_high are writable
- usb_c_power_priority switches between charging and performance
- ctgp_offset is writable

Hi,

thanks for the patch, did you verify that the individual sysfs attributes
are not only writable, but also generate the desired effect? The EC will
simply ignore any write request for unsupported features, so having a
write succeed does not necessarily imply that the feature is supported
on a given machine.

Thanks,
Armin Wolf

This machine has no lightbar, so UNIWILL_FEATURE_LIGHTBAR is left out.

Tested on: MECHREVO Jiaolong16K Series GM6BG0Q, BIOS N.1.19MRO15,
EC 1.24, AMD Rembrandt, NVIDIA RTX 4060 Mobile.

Signed-off-by: dydydd <admin@xxxxxxxxx>
---
drivers/platform/x86/uniwill/uniwill-acpi.c | 26 +++++++++++++++++++++
1 file changed, 26 insertions(+)

diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
index 7a2eeaec..94ed83ed 100644
--- a/drivers/platform/x86/uniwill/uniwill-acpi.c
+++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
@@ -2677,6 +2677,24 @@ static struct uniwill_device_descriptor machenike_l16p_descriptor __initdata = {
.kbd_led_max_brightness = 4,
};
+static struct uniwill_device_descriptor mechrevo_gm6bg0q_descriptor __initdata = {
+ .features = UNIWILL_FEATURE_FN_LOCK |
+ UNIWILL_FEATURE_SUPER_KEY |
+ UNIWILL_FEATURE_TOUCHPAD_TOGGLE |
+ UNIWILL_FEATURE_BATTERY_CHARGE_MODES |
+ UNIWILL_FEATURE_CPU_TEMP |
+ UNIWILL_FEATURE_GPU_TEMP |
+ UNIWILL_FEATURE_PRIMARY_FAN |
+ UNIWILL_FEATURE_SECONDARY_FAN |
+ UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
+ UNIWILL_FEATURE_USB_C_POWER_PRIORITY |
+ UNIWILL_FEATURE_KEYBOARD_BACKLIGHT |
+ UNIWILL_FEATURE_AC_AUTO_BOOT |
+ UNIWILL_FEATURE_USB_POWERSHARE,
+ .kbd_led_single_color = false,
+ .kbd_led_max_brightness = 4,
+};
+
static struct uniwill_device_descriptor lapqc71a_lapqc71b_descriptor __initdata = {
.features = UNIWILL_FEATURE_SUPER_KEY |
UNIWILL_FEATURE_LIGHTBAR |
@@ -2877,6 +2895,14 @@ static const struct dmi_system_id uniwill_dmi_table[] __initconst = {
},
.driver_data = &machenike_l16p_descriptor,
},
+ {
+ .ident = "MECHREVO Jiaolong 16K GM6BG0Q",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "MECHREVO"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "GM6BG0Q"),
+ },
+ .driver_data = &mechrevo_gm6bg0q_descriptor,
+ },
{
.ident = "XMG FUSION 15 (L19)",
.matches = {