Lower resolution modes corrupt and unusable on laptop display (functional regression in v6.5-rc1)
Before submitting your bug report:
Brief summary of the problem:
With Linux v6.5-rc1, using a low resolution mode on hiDPI laptop is broken in two ways
-
only 2560x1600 mode is available on eDP(correction, this is the case after one of the commits below, but the modes are visible inxrandr
with v6.5-rc1) - if 1280x800 is switched to anyway (
video=eDP-1:1280x800
in kernel parameters, or useautorandr
), the output is corrupt.
Bisect reveals two problematic commits:
commit bd49f19039c1806cd10cff8aaec7f90ebf28f0e9
Author: Joshua Ashton <joshua@froggi.es>
Date: Mon Nov 14 19:52:30 2022 +0000
drm/amd/display: Always set crtcinfo from create_stream_for_sink
Given that we always pass dm_state into here now, this won't ever
trigger anymore.
This is needed for we will always fail mode validation with invalid
clocks or link bandwidth errors.
After this commit (bd49f19039c1), the display will be corrupt and unusable in a low res mode (same symptom as #2655 (closed)). This commit can be reverted to fix the corruption.
The second bad commit is:
commit cb841d27b8767fd88096d06186b5f5de990fd6d0
Author: Harry Wentland <harry.wentland@amd.com>
Date: Fri Apr 1 13:45:29 2022 -0400
drm/amd/display: Always pass connector_state to stream validation
We need the connector_state for colorspace and scaling information
and can get it from connector->state.
After this commit (cb841d27b876), the low resolution modes no longer appear in xrandr, and the laptop always boots to 2560x1600. Reverting this commit against v6.5-rc1 does not fix the issue, the result is a black screen on boot.
Hardware description: HP Pavilion Aero Laptop 13-be0xxx/8916, BIOS F.12 04/11/2023
- CPU: AMD Ryzen 7 5800U with Radeon Graphics
- GPU: [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c1)
- System Memory: 16GB
- Display(s): laptop screen 2560x1600
- Type of Display Connection: eDP
System information:
- Debian 12
- Custom kernel: v6.5-rc1
- AMD official driver version: N/A
How to reproduce the issue:
-
kernel console: add
video=eDP-1:1280x800
to kernel command line -
or xorg: change mode as usual, e.g.
autorandr mobile
(where "mobile" is a pre-saved config for 1280x800)