summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2022-11-02 11:10:12 -0400
committerAlex Deucher <alexander.deucher@amd.com>2023-09-28 15:36:50 -0400
commit554340133e4f596fc40fd75a58f9cf18b6b8dbbc (patch)
tree0af445cddb6aa705f1cecd6eda1ffaa6848a3cae /drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
parent161d076c2d163d4e6d83e55a6363eb6070eb36b9 (diff)
downloadlinux-stable-554340133e4f596fc40fd75a58f9cf18b6b8dbbc.tar.gz
linux-stable-554340133e4f596fc40fd75a58f9cf18b6b8dbbc.tar.bz2
linux-stable-554340133e4f596fc40fd75a58f9cf18b6b8dbbc.zip
drm/amd/display: Create one virtual connector in DC
[WHAT] Prepare a virtual connector for writeback. Reviewed-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c11
1 files changed, 9 insertions, 2 deletions
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 9c4e84e00708..c53daaddc888 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1693,6 +1693,10 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
init_data.nbio_reg_offsets = adev->reg_offset[NBIO_HWIP][0];
init_data.clk_reg_offsets = adev->reg_offset[CLK_HWIP][0];
+ /* Enable DWB for tested platforms only */
+ if (adev->ip_versions[DCE_HWIP][0] >= IP_VERSION(3, 0, 0))
+ init_data.num_virtual_links = 1;
+
INIT_LIST_HEAD(&adev->dm.da_list);
retrieve_dmi_info(&adev->dm);
@@ -4506,6 +4510,11 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
continue;
}
+ link = dc_get_link_at_index(dm->dc, i);
+
+ if (link->connector_signal == SIGNAL_TYPE_VIRTUAL)
+ continue;
+
aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
if (!aconnector)
goto fail;
@@ -4524,8 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
goto fail;
}
- link = dc_get_link_at_index(dm->dc, i);
-
if (!dc_link_detect_connection_type(link, &new_connection_type))
DRM_ERROR("KMS: Failed to detect connector\n");