mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
drm/amd/display: Cleanup uses of the analog flag
In the detect_link_and_local_sink() function, do not modify the EDID capabilities of the display based on the connector. Instead, respect the analog flag better and when the analog flag is set, check that the connector indeed supports analog displays. Suggested-by: Ray Wu <Ray.Wu@amd.com> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Link: https://lore.kernel.org/r/20251113163348.137315-3-timur.kristof@gmail.com Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
b9f55e04ef
commit
d46e422f65
@@ -8820,8 +8820,14 @@ static void amdgpu_dm_connector_add_freesync_modes(struct drm_connector *connect
|
||||
if (!(amdgpu_freesync_vid_mode && drm_edid))
|
||||
return;
|
||||
|
||||
if (!amdgpu_dm_connector->dc_sink || amdgpu_dm_connector->dc_sink->edid_caps.analog ||
|
||||
!dc_supports_vrr(amdgpu_dm_connector->dc_sink->ctx->dce_version))
|
||||
if (!amdgpu_dm_connector->dc_sink || !amdgpu_dm_connector->dc_link)
|
||||
return;
|
||||
|
||||
if (!dc_supports_vrr(amdgpu_dm_connector->dc_sink->ctx->dce_version))
|
||||
return;
|
||||
|
||||
if (dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id) &&
|
||||
amdgpu_dm_connector->dc_sink->edid_caps.analog)
|
||||
return;
|
||||
|
||||
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
|
||||
@@ -8848,7 +8854,10 @@ static int amdgpu_dm_connector_get_modes(struct drm_connector *connector)
|
||||
amdgpu_dm_connector->num_modes +=
|
||||
drm_add_modes_noedid(connector, 1920, 1080);
|
||||
|
||||
if (amdgpu_dm_connector->dc_sink && amdgpu_dm_connector->dc_sink->edid_caps.analog) {
|
||||
if (amdgpu_dm_connector->dc_sink &&
|
||||
amdgpu_dm_connector->dc_link &&
|
||||
amdgpu_dm_connector->dc_sink->edid_caps.analog &&
|
||||
dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id)) {
|
||||
/* Analog monitor connected by DAC load detection.
|
||||
* Add common modes. It will be up to the user to select one that works.
|
||||
*/
|
||||
|
||||
@@ -1224,8 +1224,6 @@ static bool detect_link_and_local_sink(struct dc_link *link,
|
||||
break;
|
||||
}
|
||||
|
||||
sink->edid_caps.analog &= dc_connector_supports_analog(link->link_id.id);
|
||||
|
||||
// Check if edid is the same
|
||||
if ((prev_sink) &&
|
||||
(edid_status == EDID_THE_SAME || edid_status == EDID_OK))
|
||||
|
||||
Reference in New Issue
Block a user