diff --git a/patches.suse/drm-amdgpu-update-drm_display_info-correctly-when-th.patch b/patches.suse/drm-amdgpu-update-drm_display_info-correctly-when-th.patch new file mode 100644 index 0000000..02e7b39 --- /dev/null +++ b/patches.suse/drm-amdgpu-update-drm_display_info-correctly-when-th.patch @@ -0,0 +1,70 @@ +From 20543be93ca45968f344261c1a997177e51bd7e1 Mon Sep 17 00:00:00 2001 +From: Claudio Suarez +Date: Sun, 17 Oct 2021 13:34:58 +0200 +Subject: [PATCH] drm/amdgpu: update drm_display_info correctly when the edid is read +Git-commit: 20543be93ca45968f344261c1a997177e51bd7e1 +Patch-mainline: v5.17-rc1 +References: git-fixes + +drm_display_info is updated by drm_get_edid() or +drm_connector_update_edid_property(). In the amdgpu driver it is almost +always updated when the edid is read in amdgpu_connector_get_edid(), +but not always. Change amdgpu_connector_get_edid() and +amdgpu_connector_free_edid() to keep drm_display_info updated. + +Reviewed-by: Harry Wentland +Signed-off-by: Claudio Suarez +Signed-off-by: Alex Deucher +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 5 ++++- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +index df1f9b88a53f..e5fc5a1ea394 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +@@ -315,8 +315,10 @@ static void amdgpu_connector_get_edid(struct drm_connector *connector) + if (!amdgpu_connector->edid) { + /* some laptops provide a hardcoded edid in rom for LCDs */ + if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || +- (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) ++ (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) { + amdgpu_connector->edid = amdgpu_connector_get_hardcoded_edid(adev); ++ drm_connector_update_edid_property(connector, amdgpu_connector->edid); ++ } + } + } + +@@ -326,6 +328,7 @@ static void amdgpu_connector_free_edid(struct drm_connector *connector) + + kfree(amdgpu_connector->edid); + amdgpu_connector->edid = NULL; ++ drm_connector_update_edid_property(connector, NULL); + } + + static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 0585ae44e555..151f3559e0ae 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -2950,13 +2950,12 @@ void amdgpu_dm_update_connector_after_detect( + aconnector->edid = + (struct edid *)sink->dc_edid.raw_edid; + +- drm_connector_update_edid_property(connector, +- aconnector->edid); + if (aconnector->dc_link->aux_mode) + drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux, + aconnector->edid); + } + ++ drm_connector_update_edid_property(connector, aconnector->edid); + amdgpu_dm_update_freesync_caps(connector, aconnector->edid); + update_connector_ext_caps(aconnector); + } else { +-- +2.35.3 + diff --git a/series.conf b/series.conf index 22b15d4..9917c1b 100644 --- a/series.conf +++ b/series.conf @@ -8449,6 +8449,7 @@ patches.suse/drm-radeon-radeon_kms-Fix-a-NULL-pointer-dereference.patch patches.suse/drm-amd-display-Fix-bug-in-debugfs-crc_win_update-en.patch patches.suse/drm-amd-display-Fix-out-of-bounds-access-on-DNC31-st.patch + patches.suse/drm-amdgpu-update-drm_display_info-correctly-when-th.patch patches.suse/drm-amd-amdgpu-fix-psp-tmr-bo-pin-count-leak-in-SRIO.patch patches.suse/drm-amd-amdgpu-fix-gmc-bo-pin-count-leak-in-SRIOV.patch patches.suse/gpu-host1x-Drop-excess-kernel-doc-entry-key.patch