Duje Mihanović, 2025-08-29T23:08:30+02:00:
> It is possible to put the hardware state of the KTD2801 chip in an
> unknown state by rapidly changing the brightness for a short period of
> time (for example, with a brightness slider). When this happens, the
> brightness is stuck on max and cannot be changed until the chip is power
> cycled.
>
> Fix this by disabling interrupts while the chip is being programmed.
> While at it, make expresswire_power_off() use fsleep() and also unexport
> some functions meant to be internal.
>
> Signed-off-by: Duje Mihanović <d...@dujemihanovic.xyz>

You could also add a Fixes trailer and Cc this to stable so that it gets
backported correctly.

> ---
>  drivers/leds/leds-expresswire.c  | 24 +++++++++++++++++-------
>  include/linux/leds-expresswire.h |  3 ---
>  2 files changed, 17 insertions(+), 10 deletions(-)

I have run this on samsung,coreprimevelte over the weekend and haven't
observed any direct issues with this. I will note that I've had the WiFi
fail to load FW two times while I haven't had that happen to me for
quite some time, still given the nature of the WiFi issues, I believe it
was just a coincidence.

Also when I first loaded this, I was still able to break the chip once,
however it's entirely possible that I just copied over the wrong version
of the module and after a fresh full installation, I have not been able
to reproduce that.

The "laggines" this introduces to the backlight slider is noticable but
pretty much only when trying to change the brightness back and forth
very fast which isn't possible without this patch anyway because it
usually breaks the chip.

Tested-by: Karel Balej <bal...@matfyz.cz>

Reply via email to