Public bug reported:

**Package:** linux-image-generic-hwe-26.04 7.0.0-28.28
**Regression:** yes, 7.0.0-27.27 -> 7.0.0-28.28
**Tags:** `regression-update kernel-bug i915 suspend-resume backlight resolute`

## Summary

After upgrading to kernel 7.0.0-28, the internal display backlight does
not come on when resuming from suspend. The machine is running after
resume (it accepted a blind `sudo reboot` typed at the dark screen), but
the backlight stays off. Increasing brightness with the brightness keys
does not bring it on.

The panel is still driving an image: screen contents are legible under a
bright external light. The failure is therefore confined to the
backlight, not a modeset or output failure.

Booting 7.0.0-27 avoids the problem. Booting 7.0.0-28 with
`i915.enable_dpcd_backlight=0` also avoids it.

## Hardware

- **Machine:** Lenovo ThinkPad T480, machine type 20L6S0MD00
- **BIOS:** N24ET81W (1.56), 2025-09-06
- **GPU:** Intel Kaby Lake-R GT2 [UHD Graphics 620] `[8086:5917]` rev 07, 
subsystem `[17aa:225d]` (lspci reports "Lenovo ThinkPad T480 (20L5)")
- **Panel:** LG Display LP140WF6-SPB7 on eDP-1 (model string read from EDID)
- **OS:** Ubuntu 26.04 LTS (resolute)

## Steps to reproduce

1. Boot 7.0.0-28-generic with stock kernel parameters (`quiet splash`).
2. Suspend. The journal records `PM: suspend entry (deep)`.
3. Resume.

**Expected:** display lights up.
**Actual:** panel stays dark. Brightness keys do not recover it.

## Observed: max_brightness differs between the two kernels

Measured on this machine:

| Configuration | `max_brightness` | Resume |
|---|---|---|
| 7.0.0-27, stock cmdline | **1515** | works |
| 7.0.0-28, stock cmdline | **1023** | backlight stays off |
| 7.0.0-28 + `i915.enable_dpcd_backlight=0` | **1515** | works |

`enable_dpcd_backlight` reads `-1` (the default) on 7.0.0-28 when the
failure occurs.

*Interpretation, not measured:* 1023 is 10-bit full scale and 1515 is
not a power-of-two boundary, which suggests the two kernels are driving
the backlight through different control paths, and that the parameter
selects between them. I have not confirmed from the driver which path is
active in either case. That inference rests only on the `max_brightness`
values and on the parameter changing the outcome.

## The failure is silent

No errors or warnings related to the failure appear in the journal for
the affected boots. `PM: suspend exit` completes, and i915 and mei_hdcp
rebind.

Backlight sysfs during the failure, with the panel dark:

```
/sys/class/backlight/intel_backlight/brightness         1023
/sys/class/backlight/intel_backlight/actual_brightness  1023
/sys/class/backlight/intel_backlight/max_brightness     1023
/sys/class/backlight/intel_backlight/bl_power              0
```

`/var/lib/systemd/backlight/pci-0000:00:02.0:backlight:intel_backlight`
contained `1023`, so the saved brightness value was not lost or zeroed.

## Regression range

`linux-image-generic-hwe-26.04` was upgraded 7.0.0-27.27 -> 7.0.0-28.28
on **2026-07-19 18:38 (UTC+1)**, unattended via packagekit
(`Commandline: packagekit role='update-packages'` in
`/var/log/apt/history.log`). 7.0.0-28 first booted 2026-07-22 15:14. The
three-day gap is why the update was not initially suspected.

From `journalctl --list-boots` and suspend entries per boot:

| Kernel | Boots | Suspend entries | Outcome |
|---|---|---|---|
| 7.0.0-27 | 2 | 63 | boots lasted days, spanning many resumes |
| 7.0.0-28 | 3 | 4 | each boot ended 39s to 2min after its first resume |

The short sessions on 7.0.0-28 end in clean systemd shutdowns, from the
machine being rebooted blind at a dark screen.

## Workaround

Add to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, then
`update-grub`:

```
i915.enable_dpcd_backlight=0
```

`max_brightness` returns to 1515 and resume works. Confirmed working
after this change. I have not yet run an extended soak of many suspend
cycles.

## Checked and excluded

- **Not `systemd-backlight` save/restore:** the saved value was intact and 
sysfs read back at maximum while the panel was dark.
- **Not local misconfiguration:** no i915 module parameters set, no 
backlight-related files in `/etc/modprobe.d`, and the cmdline was stock `quiet 
splash` before the workaround was added.
- **A userspace resume hook did not help:** an `/etc/systemd/system-sleep/` 
hook that cycled `bl_power` 4 to 0 and rewrote `brightness` on resume did not 
light the panel. Caveat: I did not independently confirm the hook executed on 
resume, so this is weaker evidence than the rest of this report.

## Not verified

Listing these so they are not read into the report:

- Which backlight control path the driver actually selects in either kernel.
- Whether the machine is network-reachable while the screen is dark.
- The specific upstream commit responsible. I did not bisect, and the shipped 
`linux-image-7.0.0-28-generic` changelog contains only packaging entries, so I 
could not identify a candidate change from the package itself.

## Possibly related prior art

There is a history of this general symptom with DPCD/AUX backlight on
i915. A commit adding a heuristic to choose automatically between AUX
and PWM brightness control was reverted upstream after reportedly
causing "enabling DPCD backlight leads to a black screen after
suspend/resume":

https://www.mail-archive.com/intel-
[email protected]/msg126115.html

That report concerns different and much older hardware (a ThinkPad X1
Carbon 4th Gen and BXT-P), and predates this kernel by many releases. I
offer it only as a pointer to a known failure mode in this area, not as
a claim about the cause here.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: linux-image-7.0.0-28-generic 7.0.0-28.28
ProcVersionSignature: Ubuntu 7.0.0-28.28-generic 7.0.12
Uname: Linux 7.0.0-28-generic x86_64
ApportVersion: 2.34.0-0ubuntu2
Architecture: amd64
AudioDevicesInUse:
 USER        PID ACCESS COMMAND
 /dev/snd/controlC0:  sam        3370 F.... pipewire
                      sam        3389 F.... wireplumber
 /dev/snd/pcmC0D0p:   sam        3370 F...m pipewire
 /dev/snd/seq:        sam        3370 F.... pipewire
CasperMD5CheckResult: pass
CurrentDesktop: KDE
Date: Wed Jul 22 22:51:57 2026
InstallationDate: Installed on 2026-02-13 (159 days ago)
InstallationMedia: Ubuntu 24.04.1 LTS "Noble Numbat" - Release amd64 
(20240827.1)
MachineType: LENOVO 20L6S0MD00
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-7.0.0-28-generic 
root=/dev/mapper/ubuntu--vg-ubuntu--lv ro quiet splash 
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M 
i915.enable_dpcd_backlight=0
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No 
PulseAudio daemon running, or not running as session daemon.
SourcePackage: linux
UpgradeStatus: Upgraded to resolute on 2026-07-09 (13 days ago)
dmi.bios.date: 09/06/2025
dmi.bios.release: 1.56
dmi.bios.vendor: LENOVO
dmi.bios.version: N24ET81W (1.56 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20L6S0MD00
dmi.board.vendor: LENOVO
dmi.board.version: SDK0J40700 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.ec.firmware.release: 1.22
dmi.modalias: 
dmi:bvnLENOVO:bvrN24ET81W(1.56):bd09/06/2025:br1.56:efr1.22:svnLENOVO:pn20L6S0MD00:pvrThinkPadT480:rvnLENOVO:rn20L6S0MD00:rvrSDK0J40700WIN:cvnLENOVO:ct10:cvrNone:skuLENOVO_MT_20L6_BU_Think_FM_ThinkPadT480:pfaThinkPadT480:
dmi.product.family: ThinkPad T480
dmi.product.name: 20L6S0MD00
dmi.product.sku: LENOVO_MT_20L6_BU_Think_FM_ThinkPad T480
dmi.product.version: ThinkPad T480
dmi.sys.vendor: LENOVO

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2161575

Title:
  [regression] 7.0.0-28: eDP backlight stays off after resume on
  ThinkPad T480 (i915 selects DPCD/AUX backlight instead of native PWM)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2161575/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to