You are not logged in.

#1 2025-12-05 08:36:44

notsuperganang
Member
Registered: 2025-11-14
Posts: 2

[SOLVED] Legion S7 15ACH6 panel brightness does not change

Hi,

I’m having trouble with backlight control on a Lenovo Legion S7 15ACH6: the backlight interfaces under /sys/class/backlight are present and writable, but changing their brightness values does not actually change the panel brightness.

Hardware / software

- Laptop: Lenovo Legion S7 15ACH6 (15.6" 2560x1440 165 Hz internal panel)
- CPU: AMD Ryzen 7 5800H
- dGPU: NVIDIA GeForce RTX 3050 Ti Mobile / Max-Q
- iGPU: AMD Cezanne [Radeon Vega Series / Radeon Mobile Series] (internal panel is driven by the iGPU)
- Distro: Arch Linux
- Kernel: 6.12.60-1-lts
- WM/compositor: Hyprland 0.52.2 (Wayland, started via SDDM)
- NVIDIA driver: 580.105.08 (proprietary)

`inxi -Gazy`:
     Graphics:
  Device-1: NVIDIA GA106M [GeForce RTX 3050 Ti Mobile / Max-Q] vendor: Lenovo
    driver: nvidia v: 580.105.08 alternate: nouveau,nvidia_drm
    non-free: 550-580.xx+ status: current (as of 2025-11; EOL~2026-12-xx)
    arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-2023 pcie:
    gen: 3 speed: 8 GT/s lanes: 8 link-max: gen: 4 speed: 16 GT/s lanes: 16
    ports: active: none empty: DP-1,DP-2,eDP-1 bus-ID: 01:00.0
    chip-ID: 10de:2563 class-ID: 0300
  Device-2: Advanced Micro Devices [AMD/ATI] Cezanne [Radeon Vega Series /
    Radeon Mobile Series] vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5
    code: Vega process: GF 14nm built: 2017-20 pcie: gen: 3 speed: 8 GT/s
    lanes: 16 ports: active: eDP-2 empty: DP-3,DP-4 bus-ID: 06:00.0
    chip-ID: 1002:1638 class-ID: 0300 temp: 61.0 C
  Device-3: Syntek Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-3:2 chip-ID: 174f:2435
    class-ID: 0e02
  Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.9
    compositor: Hyprland v: 0.52.2 driver: X: loaded: modesetting,nvidia
    alternate: fbdev,nouveau,nv,vesa dri: radeonsi gpu: amdgpu display-ID: 1
  Monitor-1: eDP-2 model: BOE Display 0x0a2d built: 2021 res: mode: 2560x1440
    hz: 165 scale: 100% (1) dpi: 189 gamma: 1.2 size: 344x194mm (13.54x7.64")
    diag: 395mm (15.5") ratio: 16:9 modes: max: 2560x1440 min: 640x480
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  Info: Tools: de: kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: nwg-displays,wlr-randr x11: xprop,xrandr

Current kernel command line:

    BOOT_IMAGE=/boot/vmlinuz-linux-lts root=UUID=78e9ed06-98e4-4e5f-9c0d-10102e38a118 rw loglevel=3 quiet nvidia-drm.modeset=1 nvidia_drm.fbdev=1 acpi_backlight=video amdgpu.backlight=

Backlight interfaces and manual tests

`/sys/class/backlight` shows two ACPI video devices:

    $ ls -l /sys/class/backlight
    lrwxrwxrwx 1 root root 0 Dec  5 14:24 acpi_video0 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/backlight/acpi_video0
    lrwxrwxrwx 1 root root 0 Dec  5 14:24 acpi_video1 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/backlight/acpi_video1

Their brightness ranges are:

    $ for d in /sys/class/backlight/*; do
      echo "== $d =="
      cat "$d/brightness"
      cat "$d/max_brightness"
      echo
    done

    == /sys/class/backlight/acpi_video0 ==
    17
    100

    == /sys/class/backlight/acpi_video1 ==
    17
    49

If I change these values manually via sysfs, the numbers update correctly but the panel brightness does not change at all:

    # acpi_video0
    echo 1   | sudo tee /sys/class/backlight/acpi_video0/brightness
    echo 50  | sudo tee /sys/class/backlight/acpi_video0/brightness
    echo 17  | sudo tee /sys/class/backlight/acpi_video0/brightness

    # acpi_video1
    echo 1   | sudo tee /sys/class/backlight/acpi_video1/brightness
    echo 24  | sudo tee /sys/class/backlight/acpi_video1/brightness
    echo 17  | sudo tee /sys/class/backlight/acpi_video1/brightness

In all of these cases, the physical screen brightness stays exactly the same. Desktop brightness controls / hotkeys (which use these interfaces under the hood) behave the same way: they can write to `/sys/class/backlight/acpi_video*/brightness`, but there is no visible effect on the internal panel.

So, in short:

- `/sys/class/backlight/acpi_video0` and `acpi_video1` exist and are writable.
- `brightness` and `max_brightness` values change as expected when I write to them.
- But the actual panel brightness never changes.

What I have tried

- Tried booting with different kernel parameters in `GRUB_CMDLINE_LINUX_DEFAULT` such as:
  - `acpi_backlight=native`
  - `amdgpu.abmlevel=0`
  - `amdgpu.dcdebugmask=0x40010`
  (I also use `nvidia_drm.modeset=1 nvidia_drm.fbdev=1` for PRIME offload, but the display itself is on the iGPU.)
- Disabled any adaptive brightness options in Windows and in UEFI/BIOS.

Thanks in advance for any suggestions on how to get a working backlight interface for this panels. This is the last big annoyance on this machine; otherwise everything works great.

Last edited by notsuperganang (2025-12-23 08:45:33)

Offline

#2 2025-12-23 08:44:43

notsuperganang
Member
Registered: 2025-11-14
Posts: 2

Re: [SOLVED] Legion S7 15ACH6 panel brightness does not change

For anyone experiencing similar issues with brightness control on this laptop model, the solution is straightforward:

The nvidia_wmi_ec_backlight module is already present in the kernel since 5.16+, but requires the correct kernel parameter to function.

Solution:
Edit /etc/default/grub and modify GRUB_CMDLINE_LINUX_DEFAULT to include:

acpi_backlight=nvidia_wmi_ec

Remove any conflicting parameters such as acpi_backlight=video or amdgpu.backlight=0, then regenerate grub config and reboot:

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

After reboot, the nvidia_wmi_ec_backlight interface will be active and brightness control works properly without any adaptive brightness issues.

Verified working on:
- Kernel: 6.12.63-1-lts
- Hardware: Legion Slim 7 15ACH6 (AMD Ryzen 7 5800H + RTX 3050 Ti)
- BIOS mode: Hybrid Graphics (Dynamic)

The key insight is that this laptop requires the nvidia_wmi_ec backlight interface rather than acpi_video or amdgpu_bl interfaces, which do not function correctly on this hardware due to EC-controlled backlight implementation.

Last edited by notsuperganang (2025-12-23 08:45:48)

Offline

Board footer

Powered by FluxBB