|
Takashi Iwai |
b695fa |
From 20543be93ca45968f344261c1a997177e51bd7e1 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
b695fa |
From: Claudio Suarez <cssk@net-c.es>
|
|
Takashi Iwai |
b695fa |
Date: Sun, 17 Oct 2021 13:34:58 +0200
|
|
Takashi Iwai |
b695fa |
Subject: [PATCH] drm/amdgpu: update drm_display_info correctly when the edid is read
|
|
Takashi Iwai |
b695fa |
Git-commit: 20543be93ca45968f344261c1a997177e51bd7e1
|
|
Takashi Iwai |
b695fa |
Patch-mainline: v5.17-rc1
|
|
Takashi Iwai |
b695fa |
References: git-fixes
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
drm_display_info is updated by drm_get_edid() or
|
|
Takashi Iwai |
b695fa |
drm_connector_update_edid_property(). In the amdgpu driver it is almost
|
|
Takashi Iwai |
b695fa |
always updated when the edid is read in amdgpu_connector_get_edid(),
|
|
Takashi Iwai |
b695fa |
but not always. Change amdgpu_connector_get_edid() and
|
|
Takashi Iwai |
b695fa |
amdgpu_connector_free_edid() to keep drm_display_info updated.
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
|
|
Takashi Iwai |
b695fa |
Signed-off-by: Claudio Suarez <cssk@net-c.es>
|
|
Takashi Iwai |
b695fa |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
Takashi Iwai |
b695fa |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
---
|
|
Takashi Iwai |
b695fa |
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 5 ++++-
|
|
Takashi Iwai |
b695fa |
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
|
|
Takashi Iwai |
b695fa |
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
|
|
Takashi Iwai |
b695fa |
index df1f9b88a53f..e5fc5a1ea394 100644
|
|
Takashi Iwai |
b695fa |
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
|
|
Takashi Iwai |
b695fa |
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
|
|
Takashi Iwai |
b695fa |
@@ -315,8 +315,10 @@ static void amdgpu_connector_get_edid(struct drm_connector *connector)
|
|
Takashi Iwai |
b695fa |
if (!amdgpu_connector->edid) {
|
|
Takashi Iwai |
b695fa |
/* some laptops provide a hardcoded edid in rom for LCDs */
|
|
Takashi Iwai |
b695fa |
if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) ||
|
|
Takashi Iwai |
b695fa |
- (connector->connector_type == DRM_MODE_CONNECTOR_eDP)))
|
|
Takashi Iwai |
b695fa |
+ (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) {
|
|
Takashi Iwai |
b695fa |
amdgpu_connector->edid = amdgpu_connector_get_hardcoded_edid(adev);
|
|
Takashi Iwai |
b695fa |
+ drm_connector_update_edid_property(connector, amdgpu_connector->edid);
|
|
Takashi Iwai |
b695fa |
+ }
|
|
Takashi Iwai |
b695fa |
}
|
|
Takashi Iwai |
b695fa |
}
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
@@ -326,6 +328,7 @@ static void amdgpu_connector_free_edid(struct drm_connector *connector)
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
kfree(amdgpu_connector->edid);
|
|
Takashi Iwai |
b695fa |
amdgpu_connector->edid = NULL;
|
|
Takashi Iwai |
b695fa |
+ drm_connector_update_edid_property(connector, NULL);
|
|
Takashi Iwai |
b695fa |
}
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector)
|
|
Takashi Iwai |
b695fa |
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
|
Takashi Iwai |
b695fa |
index 0585ae44e555..151f3559e0ae 100644
|
|
Takashi Iwai |
b695fa |
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
|
Takashi Iwai |
b695fa |
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
|
Takashi Iwai |
b695fa |
@@ -2950,13 +2950,12 @@ void amdgpu_dm_update_connector_after_detect(
|
|
Takashi Iwai |
b695fa |
aconnector->edid =
|
|
Takashi Iwai |
b695fa |
(struct edid *)sink->dc_edid.raw_edid;
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
- drm_connector_update_edid_property(connector,
|
|
Takashi Iwai |
b695fa |
- aconnector->edid);
|
|
Takashi Iwai |
b695fa |
if (aconnector->dc_link->aux_mode)
|
|
Takashi Iwai |
b695fa |
drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
|
|
Takashi Iwai |
b695fa |
aconnector->edid);
|
|
Takashi Iwai |
b695fa |
}
|
|
Takashi Iwai |
b695fa |
|
|
Takashi Iwai |
b695fa |
+ drm_connector_update_edid_property(connector, aconnector->edid);
|
|
Takashi Iwai |
b695fa |
amdgpu_dm_update_freesync_caps(connector, aconnector->edid);
|
|
Takashi Iwai |
b695fa |
update_connector_ext_caps(aconnector);
|
|
Takashi Iwai |
b695fa |
} else {
|
|
Takashi Iwai |
b695fa |
--
|
|
Takashi Iwai |
b695fa |
2.35.3
|
|
Takashi Iwai |
b695fa |
|