Skip to content

Commit 0fb915d

Browse files
superm1alexdeucher
authored andcommitted
drm/amd/display: Only enable common modes for eDP and LVDS
[Why] The main reason common modes are added is for compatibility with clone mode when a laptop is connected to a projector or external monitor. Since commit 978fa2f ("drm/amd/display: Use scaling for non-native resolutions on eDP") when non-native modes are picked for eDP the GPU scalar will be used. This is because it is inconsistent whether eDP panels have the capability to actually drive non-native resolutions. With panels connected to other connectors this limitation generally doesn't exist as we the EDID will advertise support for a number of resolutions and monitors will use built in scaling hardware. Comparing DC and non-DC code paths the non-DC code path only adds common modes for LVDS and eDP whereas the DC codepath does it for all connector types. In the past there was an experiment done to disable common mode adding for eDP and LVDS from commit 6d396e7 ("drm/amd/display: Disable common modes for LVDS") and commit 7948afb ("drm/amd/display: Disable common modes for eDP") but this was reverted in commit a8b79b0 ("drm/amd: Re-enable common modes for eDP and LVDS") because it caused problems with Xorg. [How] Only add common modes for eDP and LVDS for DC, matching the behavior of non-DC. Suggested-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: https://lore.kernel.org/r/20250924161624.1975819-2-mario.limonciello@amd.com Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 4e3b45d commit 0fb915d

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8271,6 +8271,10 @@ static void amdgpu_dm_connector_add_common_modes(struct drm_encoder *encoder,
82718271
{"1920x1200", 1920, 1200}
82728272
};
82738273

8274+
if ((connector->connector_type != DRM_MODE_CONNECTOR_eDP) &&
8275+
(connector->connector_type != DRM_MODE_CONNECTOR_LVDS))
8276+
return;
8277+
82748278
n = ARRAY_SIZE(common_modes);
82758279

82768280
for (i = 0; i < n; i++) {

0 commit comments

Comments
 (0)