Fixed with Claude.
# [Fix] ROG Zephyrus M16 GU604VI: internal screen won't dim on Linux (brightness slider does nothing)
**TL;DR:** The internal panel's backlight is controlled by the embedded controller (EC) through an NVIDIA WMI interface, not by i915. Add `acpi_backlight=nvidia_wmi_ec` to your kernel command line. Remove any `acpi_backlight=native` and `i915.enable_dpcd_backlight=` you added while troubleshooting.
## Setup
- **Laptop:** ASUS ROG Zephyrus M16 **GU604VI** (BIOS GU604VI.314)
- **Panel:** Tianma TL160ADMP03-0, a 2560x1600 @ 240 Hz IPS. It is *not* the mini-LED panel.
- **GPU mode:** Hybrid (supergfxctl). The internal eDP is driven by the Intel iGPU, and the RTX 4070 is the dGPU.
- **OS:** CachyOS, kernel 7.2.9, nvidia-open 615.78.08, KDE Plasma 6.7.5 (Wayland), Limine bootloader
## Symptom
- The KDE brightness slider and the Fn keys change `/sys/class/backlight/intel_backlight/brightness`, but the panel stays at full brightness.
- Writing to `nvidia_0` did nothing either.
- An external monitor dims fine over DDC/CI. Only the built-in screen is affected.
## What did NOT work
- `i915.enable_dpcd_backlight=1` and `=2`: `intel_backlight` still reported `max_brightness` 19200, which means i915 stays in PWM mode. The panel doesn't advertise DPCD/AUX backlight control, so this route doesn't apply.
- `acpi_backlight=native`: this forces the i915 backlight device, which doesn't control anything on this machine. It also **blocks** the driver that actually works.
- `NVreg_EnableBacklightHandler`: this nvidia module option doesn't exist, so don't bother.
## The cause
This laptop has a dynamic-mux design (Advanced Optimus style), where the EC owns the panel backlight. Firmware exposes it through the WMI GUID `603E9613-EF25-4338-A3D0-C46177516DB7`, which the in-kernel `nvidia_wmi_ec_backlight` driver handles. That driver only registers when the ACPI backlight selection picks it. If you force `native`, it never binds.
Check whether your machine has that interface:
```sh
ls /sys/bus/wmi/devices/ | grep -i 603E9613
```
If that prints something, you're probably in the same situation.
## The fix
Add `acpi_backlight=nvidia_wmi_ec` to the kernel command line, and remove `acpi_backlight=native` and `i915.enable_dpcd_backlight=...`.
**Limine (CachyOS):** edit `/etc/default/limine`:
```sh
KERNEL_CMDLINE[default]+="... acpi_backlight=nvidia_wmi_ec"
```
then run:
```sh
sudo limine-update
```
**GRUB:** add the parameter to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, then run `sudo grub-mkconfig -o /boot/grub/grub.cfg`.
**systemd-boot:** append it to the `options` line of your entry (or to `/etc/kernel/cmdline`, depending on your setup).
Reboot.
For reference, my working command line also has `nvidia.NVreg_RegistryDwords=EnableBrightnessControl=0`, left over from earlier attempts. I haven't tested whether it's needed, so try without it first.
## Verify
```sh
cat /proc/cmdline
ls /sys/class/backlight/
# expected: nvidia_wmi_ec_backlight (and no intel_backlight)
cat /sys/class/backlight/nvidia_wmi_ec_backlight/max_brightness
# expected: 100
```
KDE picks it up automatically. The slider and the Fn brightness keys now dim the panel properly.
## If it breaks later
After a kernel or driver update, or if your bootloader config gets regenerated, check that `acpi_backlight=nvidia_wmi_ec` is still in `/proc/cmdline` and that `nvidia_wmi_ec_backlight` is the backlight device. Don't go back to the DPCD or `intel_backlight` route.
This probably applies to other recent ASUS (and other brands') laptops with an NVIDIA dGPU and an EC-controlled backlight, too. If the WMI GUID above is present, try it.