From: bugzilla-daemon@kernel.org
To: platform-driver-x86@vger.kernel.org
Subject: [Bug 221583] Lenovo 82KU: keyboard backlight works via Fn+Space but no kbd_backlight LED device exposed
Date: Wed, 03 Jun 2026 20:13:17 +0000 [thread overview]
Message-ID: <bug-221583-215701-AcKLJvGdw0@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-221583-215701@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=221583
--- Comment #5 from Rong Zhang (i@rong.moe) ---
Hi George,
Based on the debugfs dump and acpidump you provided, ideapad-laptop may not be
able to adjust keyboard backlight brightness as it does for other devices due
to the lack of relevant support in the ACPI table.
That being said, if you would like to debug more, enable dynamic debug for EC
with...
echo file drivers/acpi/ec.c +p | sudo tee /proc/dynamic_debug/control
...and cycle through all keyboard backlight brightness levels. Then dump dmesg
to see if any EC queries were executed.
I also have a script (attached at the end) to dump the EC's MMIO region.
Dumping it with different keyboard brightness levels and comparing the dumps
may show some additional information:
sudo bash /path/to/script.sh 0xFE00D400 0xFF 1
Note that dumping MMIO regions could be dangerous, so please save your open
files and sync them to the disk before running the script.
```bash
#!/bin/bash
err() {
echo "$*" >&2
exit 1
}
declare -i base=$1
declare -i len=$2
((base >= 0 && len > 0)) || err "Nothing to dump"
declare -l acc=$3
declare -A supp=(
[1]=1 [2]=2 [4]=4 [8]=8
[byte]=1 [word]=2 [dword]=4 [qword]=8
)
align=${supp[$acc]}
[[ -n "$align" ]] || err "Unsupported access type: $acc"
(( len < align )) && err "Length is too short: $len"
bits=$((align * 8))
mask=$((align - 1))
(( base & mask )) && err "Misaligned base: $base"
declare -A hex2bin=(
[0]=0000 [1]=0001 [2]=0010 [3]=0011
[4]=0100 [5]=0101 [6]=0110 [7]=0111
[8]=1000 [9]=1001 [A]=1010 [B]=1011
[C]=1100 [D]=1101 [E]=1110 [F]=1111
)
for ((off = base; off <= base + len - align; off += align)); do
printf '0x%016X:' "$off"
if ! out=$(busybox devmem "$off" "$bits" 2>&1); then
echo " $out"
continue
fi
printf -v hex "%0$((align * 2))X" "$((out))"
for ((i = ${#hex} - 2; i >= 0; i -= 2)); do
high=${hex:i:1}
low=${hex:i+1:1}
echo -n " ${hex2bin[$high]}${hex2bin[$low]}"
done
echo
done
```
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2026-06-03 20:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 19:47 [Bug 221583] New: Lenovo 82KU: keyboard backlight works via Fn+Space but no kbd_backlight LED device exposed bugzilla-daemon
2026-06-01 17:30 ` [Bug 221583] " bugzilla-daemon
2026-06-01 18:06 ` bugzilla-daemon
2026-06-02 13:44 ` bugzilla-daemon
2026-06-02 20:39 ` bugzilla-daemon
2026-06-03 20:13 ` bugzilla-daemon [this message]
2026-06-03 21:19 ` bugzilla-daemon
2026-06-04 19:19 ` bugzilla-daemon
2026-06-05 0:11 ` bugzilla-daemon
2026-06-05 1:36 ` bugzilla-daemon
2026-06-05 1:40 ` bugzilla-daemon
2026-06-05 1:48 ` bugzilla-daemon
2026-06-05 5:55 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-221583-215701-AcKLJvGdw0@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.