diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch b/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch new file mode 100644 index 00000000..25068d12 --- /dev/null +++ b/common/recipes-kernel/linux/files/0597-drm-amd-dal-remove-mst-sink-from-connector-and-link.patch @@ -0,0 +1,42 @@ +From cd50910fc45ff921fa6d02303026231e92a98b36 Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Wed, 9 Dec 2015 20:09:07 +0800 +Subject: [PATCH 0597/1110] drm/amd/dal: remove mst sink from connector and + link + +When we detected that MST sink was disconnected, connector sink +pointer should be cleaned-up and sink should be freed + +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_dm_mst_types.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c +index ca4a244..16c82a2 100644 +--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c ++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c +@@ -68,7 +68,18 @@ dm_dp_mst_detect(struct drm_connector *connector, bool force) + struct amdgpu_connector *aconnector = to_amdgpu_connector(connector); + struct amdgpu_connector *master = aconnector->mst_port; + +- return drm_dp_mst_detect_port(connector, &master->mst_mgr, aconnector->port); ++ enum drm_connector_status status = ++ drm_dp_mst_detect_port( ++ connector, ++ &master->mst_mgr, ++ aconnector->port); ++ ++ if (status == connector_status_disconnected && aconnector->dc_sink) { ++ dc_link_remove_sink(aconnector->dc_link, aconnector->dc_sink); ++ aconnector->dc_sink = NULL; ++ } ++ ++ return status; + } + + static void +-- +2.7.4 + |