-
Notifications
You must be signed in to change notification settings - Fork 0
ThinkLight vs. Keyboard Backlight
Note
This page is dedicated exclusively to ThinkPads!
Possible candidate: Bit 6 @ 0x34
Confirmed with X230/T440p/T450s!
Can be turned off (0) and on (1-2) via ACPI/sysfs, get/set/clear BIT(6)/BIT(7) with ectool -w 0x0d -z ... works.
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness - acpi_call:
-
\_SB.PCI0.LPC.EC.HKEY.MLCS 0: Turns backlight off. -
\_SB.PCI0.LPC.EC.HKEY.MLCS 1: Turns backlight on (low). -
\_SB.PCI0.LPC.EC.HKEY.MLCS 2: Turns backlight on (high). -
\_SB.PCI0.LPC.EC.HKEY.MLCG: Correct value (bits) returned...-
0x50200= Backlight off -
0x50201= Backlight on (low) -
0x50202= Backlight on (high)
-
-
Broken, wrong ACPI/sysfs status and can't be controlled via ACPI/sysfs!
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness(always 0) - acpi_call:
-
\_SB.PCI0.LPCB.EC.HKEY.MLCS 0: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 1: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 2: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCG: Wrong value (bits) returned...-
0x200= Backlight off -
0x200= Backlight on (low) -
0x200= Backlight on (high)
-
-
With Patch (CB:92412)
Can be turned off (0) and on (1-2) via ACPI/sysfs, correct status reported.
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness - acpi_call:
-
\_SB.PCI0.LPCB.EC.HKEY.MLCS 0: Turns backlight off. -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 1: Turns backlight on (low). -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 2: Turns backlight on (high). -
\_SB.PCI0.LPCB.EC.HKEY.MLCG: Correct value (bits) returned...-
0x200= Backlight off -
0x201= Backlight on (low) -
0x202= Backlight on (high)
-
-
Either ThinkLight or Backlight, you can't use both at the same time! One disables the other, even when controlled directly via ectool.
Config » Keyboard/Mouse » Keyboard Illumination Control
EC RAM address: 0x01 (bit 2-3 confirmed)
- ThinkLight Only:
0x08(bit 3) - Keyboard Backlight Only:
0x04(bit 2) - Both:
0x00
Can be turned off (0) and on (1-2) via ACPI/sysfs, get/set/clear BIT(6)/BIT(7) with ectool -w 0x0d -z ... works.
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness - acpi_call:
-
\_SB.PCI0.LPC.EC.HKEY.MLCS 0: Turns backlight off. -
\_SB.PCI0.LPC.EC.HKEY.MLCS 1: Turns backlight on (low). -
\_SB.PCI0.LPC.EC.HKEY.MLCS 2: Turns backlight on (high). -
\_SB.PCI0.LPC.EC.HKEY.MLCG: Correct value (bits) returned...-
0x00(0x50200?) = Backlight off -
0x01(0x50201?) = Backlight on (low) -
0x02(0x50202?) = Backlight on (high) -
0x10(0x50210?) = ThinkLight (!) on
-
-
Can be turned off via ACPI/sysfs, but not turned on?! However, correct status reported by all interfaces.
- sysfs:
/sys/class/leds/tpacpi::thinklight/brightness - acpi_call:
-
\_SB.PCI0.LPC.EC.KBLT: Correct value returned. (0x00/0x01) -
\UCMS 13(0x0d): Turns ThinkLight off! -
\UCMS 12(0x0c): Nothing happens...
-
But get/set/clear BIT(1) with ectool -w 0x3b -z ... works. Not an EC bug, looks like ACPI/SMM bug?
Broken, wrong ACPI/sysfs status and can't be controlled via ACPI/sysfs!
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness(always 0 / only 1 with ThinkLight enabled) - acpi_call:
-
\_SB.PCI0.LPCB.EC.HKEY.MLCS 0: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 1: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 2: Nothing happens... (wrong bit in EC RAM toggled) -
\_SB.PCI0.LPCB.EC.HKEY.MLCG: Wrong value (bits) returned...-
0x200= Backlight off -
0x200= Backlight on (low) -
0x200= Backlight on (high) -
0x201= ThinkLight (!) on
-
-
Can be turned off/on via ACPI/sysfs, correct status reported.
- sysfs:
/sys/class/leds/tpacpi::thinklight/brightness - acpi_call:
-
\_SB.PCI0.LPC.EC.KBLT: Correct value returned. (0x00/0x01) -
\UCMS 13(0x0d): Turns ThinkLight off. -
\UCMS 12(0x0c): Turns ThinkLight on.
-
With Patch (CB:92412)
Can be turned off (0) and on (1-2) via ACPI/sysfs, correct status reported.
- sysfs:
/sys/class/leds/tpacpi::kbd_backlight/brightness - acpi_call:
-
\_SB.PCI0.LPCB.EC.HKEY.MLCS 0: Turns backlight off. -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 1: Turns backlight on (low). -
\_SB.PCI0.LPCB.EC.HKEY.MLCS 2: Turns backlight on (high). -
\_SB.PCI0.LPCB.EC.HKEY.MLCG: Correct value (bits) returned...-
0x200= Backlight off -
0x201= Backlight on (low) -
0x202= Backlight on (high) -
0x210= ThinkLight (!) on
-
-
Can be turned off/on via ACPI/sysfs, correct status reported.
- sysfs:
/sys/class/leds/tpacpi::thinklight/brightness - acpi_call:
-
\_SB.PCI0.LPC.EC.KBLT: Correct value returned. (0x00/0x01) -
\UCMS 13(0x0d): Turns ThinkLight off. -
\UCMS 12(0x0c): Turns ThinkLight on.
-
ec-research wiki