APPLIED: [SRU][R][PATCH 0/1] Fix s0i3 blocked by dangling pipe from pre-OS firmware
Edoardo Canepa
edoardo.canepa at canonical.com
Thu Jul 30 22:18:23 UTC 2026
Applied to R:linux/master-next. Thanks.
On 7/21/26 07:38, ChunAn Wu via kernel-team wrote:
> BugLink: https://bugs.launchpad.net/bugs/2161385
>
> [Impact]
> On AMD DCN platforms, if an external monitor is connected at power-on
> and then unplugged before the display driver loads (for example, at the
> GRUB menu), the system can no longer enter the s0i3 deepest suspend
> state, even though all connectors report disconnected. This causes
> noticeably worse suspend power draw and battery drain on affected
> laptops.
>
> The root cause is that the pre-OS firmware (GOP/vBIOS) lights up a
> front-end for the display that is present at power-on. The driver never
> fully tears this inherited pipe down, and the leftover dangling pipe
> keeps the DCN block from reaching idle, which in turn blocks s0i3.
>
> [Fix]
> Backport the mailing-list proposal from Tom Chung
> (https://lore.kernel.org/amd-gfx/20260709205936.5719-39-george.zhang@amd.com/)
> which adds dc_disable_dangling_timing_generators() to DC core and
> invokes it from amdgpu_dm right after dc_hardware_init(). The helper
> scans every enabled timing generator, classifies each as in-use or
> dangling, and powers down the HW blocks for the dangling pipes so DCN
> can reach idle again.
>
> The patch is not yet merged upstream, so it is carried as
> UBUNTU: SAUCE while validation continues on the affected platform. It
> will be dropped once the upstream version lands and is picked up via
> the normal stable/next flow.
>
> [Test Case]
> 1. Boot with an external monitor attached.
> 2. Unplug the external monitor at the GRUB menu (before the amdgpu
> driver loads).
> 3. Boot to the desktop with only the internal panel connected.
> 4. Suspend the system (systemctl suspend) and confirm via
> /sys/kernel/debug/amd_pmc/s0ix_stats (or the platform's equivalent)
> that s0i3 residency is reached, matching the behavior when no
> external monitor was ever attached.
>
> [Regression Potential]
> The change adds a boot-time teardown path in the AMD display driver
> that only fires when a dangling pipe inherited from pre-OS firmware is
> detected and nothing needs to be preserved. Risk is limited to AMD DCN
> platforms and to the display init path; a bug here could show up as
> missing initial display output or a splash-to-desktop transition
> regression on affected AMD laptops. Mitigated by keeping the change as
> SAUCE and by tracking the upstream review of the same patch.
>
> Tom Chung (1):
> UBUNTU: SAUCE: drm/amd/display: Tear down dangling pipe on boot to fix
> s0i3
>
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++
> drivers/gpu/drm/amd/display/dc/core/dc.c | 109 ++++++++++++++++++
> drivers/gpu/drm/amd/display/dc/dc.h | 2 +
> 3 files changed, 119 insertions(+)
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260731/98466236/attachment.sig>
More information about the kernel-team
mailing list