Re: [PATCH v2 4/7] platform/x86: uniwill-laptop: Do not enable the charging limit even when forced
From: Ilpo Järvinen
Date: Thu Apr 30 2026 - 09:04:39 EST
On Fri, 17 Apr 2026, Armin Wolf wrote:
> It seems that on some older models (~2020) the battery charging limit
> can permanently damage the battery. Prevent users from enabling this
> feature thru the "force" module parameter to avoid causing permanent
> hardware damage on such devices.
>
> Fixes: d050479693bb ("platform/x86: Add Uniwill laptop driver")
> Link: https://www.reddit.com/r/XMG_gg/comments/ld9yyf/battery_limit_hidden_function_discovered_on/
> Signed-off-by: Armin Wolf <W_Armin@xxxxxx>
> ---
> Documentation/admin-guide/laptops/uniwill-laptop.rst | 10 ++++++++++
> drivers/platform/x86/uniwill/uniwill-acpi.c | 4 ++--
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/admin-guide/laptops/uniwill-laptop.rst b/Documentation/admin-guide/laptops/uniwill-laptop.rst
> index 561334865feb..1f3ca84c7d88 100644
> --- a/Documentation/admin-guide/laptops/uniwill-laptop.rst
> +++ b/Documentation/admin-guide/laptops/uniwill-laptop.rst
> @@ -43,6 +43,11 @@ Support for changing the platform performance mode is currently not implemented.
> Battery Charging Control
> ------------------------
>
> +.. warning:: Some devices do not properly implement the charging threshold interface. Forcing
> + the driver to enable access to said interface on such devices might damage the
> + battery [1]_. Because of this the driver will not enable said feature even when
> + using the ``force`` module parameter.
> +
> The ``uniwill-laptop`` driver supports controlling the battery charge limit. This happens over
> the standard ``charge_control_end_threshold`` power supply sysfs attribute. All values
> between 1 and 100 percent are supported.
> @@ -70,3 +75,8 @@ The ``uniwill-laptop`` driver allows to set the configurable TGP for devices wit
> allow it.
>
> See Documentation/ABI/testing/sysfs-driver-uniwill-laptop for details.
> +
> +References
> +==========
> +
> +.. [1] https://www.reddit.com/r/XMG_gg/comments/ld9yyf/battery_limit_hidden_function_discovered_on/
> diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
> index 7c7ea0e76966..dac80c78ca0b 100644
> --- a/drivers/platform/x86/uniwill/uniwill-acpi.c
> +++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
> @@ -2499,8 +2499,8 @@ static int __init uniwill_init(void)
> }
>
> if (force) {
> - /* Assume that the device supports all features */
> - device_descriptor.features = UINT_MAX;
> + /* Assume that the device supports all features except the charge limit */
> + device_descriptor.features = UINT_MAX & ~UNIWILL_FEATURE_BATTERY;
> pr_warn("Enabling potentially unsupported features\n");
> }
>
>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
--
i.