diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch b/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch new file mode 100644 index 00000000..674c72dc --- /dev/null +++ b/common/recipes-kernel/linux/files/0516-drm-amd-dal-delay-mst-detection-start-till-first-drm.patch @@ -0,0 +1,60 @@ +From 5e1f831ea1b826f9f20e566ec5ac820f5ef0f696 Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Tue, 24 Nov 2015 17:30:44 +0800 +Subject: [PATCH 0516/1110] drm/amd/dal: delay mst detection start till first + drm detect + +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c | 8 ++++---- + drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 8 +++++++- + 2 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c +index beaef70..c3b6715 100644 +--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c ++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c +@@ -331,8 +331,7 @@ bool dc_helpers_dp_mst_start_top_mgr( + struct drm_device *dev = adev->ddev; + struct amdgpu_connector *aconnector = get_connector_for_link(dev, link); + +- if (aconnector) +- drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, true); ++ aconnector->is_mst_connector = true; + + return true; + } +@@ -345,6 +344,7 @@ void dc_helpers_dp_mst_stop_top_mgr( + struct drm_device *dev = adev->ddev; + struct amdgpu_connector *aconnector = get_connector_for_link(dev, link); + +- if (aconnector) +- drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false); ++ drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false); ++ ++ aconnector->is_mst_connector = false; + } +diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c +index bfff48c..59a6a28 100644 +--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c ++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c +@@ -1002,8 +1002,14 @@ amdgpu_dm_connector_detect(struct drm_connector *connector, bool force) + * TODO: check whether we should lock here for mst_mgr.lock + */ + /* set root connector to disconnected */ +- if (aconnector->mst_mgr.mst_state) ++ if (aconnector->is_mst_connector) { ++ if (!aconnector->mst_mgr.mst_state) ++ drm_dp_mst_topology_mgr_set_mst( ++ &aconnector->mst_mgr, ++ true); ++ + return connector_status_disconnected; ++ } + + connected = (NULL != aconnector->dc_sink); + return (connected ? connector_status_connected : +-- +2.7.4 + |