diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0651-drm-amd-dal-remove-mst-semaphore.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0651-drm-amd-dal-remove-mst-semaphore.patch | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0651-drm-amd-dal-remove-mst-semaphore.patch b/common/recipes-kernel/linux/files/0651-drm-amd-dal-remove-mst-semaphore.patch new file mode 100644 index 00000000..43565b02 --- /dev/null +++ b/common/recipes-kernel/linux/files/0651-drm-amd-dal-remove-mst-semaphore.patch @@ -0,0 +1,82 @@ +From 653684ef3e912682ec10babaa5e080439b55cc9e Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Fri, 18 Dec 2015 18:46:32 +0800 +Subject: [PATCH 0651/1110] drm/amd/dal: remove mst semaphore + +After fix applied to userspace we do not need +to defer connectors destruction and so can remove +mst semaphore usage + +Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com> +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Harry Wentland <Harry.Wentland@amd.com> +--- + .../drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c | 3 --- + .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 23 ---------------------- + 2 files changed, 26 deletions(-) + +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 e765f57..d47ec32 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 +@@ -333,9 +333,6 @@ static void dm_dp_destroy_mst_connector( + struct drm_device *dev = master->base.dev; + struct amdgpu_device *adev = dev->dev_private; + +- /* wait until reset mode occur */ +- down(&aconnector->mst_sem); +- + drm_connector_unregister(connector); + /* need to nuke the connector */ + drm_modeset_lock_all(dev); +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 492939e..00a0139 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 +@@ -1804,8 +1804,6 @@ void amdgpu_dm_connector_init_helper( + drm_object_attach_property(&aconnector->base.base, + adev->mode_info.underscan_vborder_property, + 0); +- +- sema_init(&aconnector->mst_sem, 1); + } + + /* Note: this function assumes that dc_link_detect() was called for the +@@ -2074,25 +2072,6 @@ static void handle_headless_hotplug( + } + } + +-static void update_connector_sem_state(struct drm_atomic_state *state) +-{ +- struct drm_connector *connector; +- struct drm_connector_state *old_con_state; +- struct amdgpu_connector *aconnector = NULL; +- int i; +- +- for_each_connector_in_state(state, connector, old_con_state, i) { +- aconnector = to_amdgpu_connector(connector); +- if (old_con_state->crtc) { +- if (!connector->state->crtc) +- up(&aconnector->mst_sem); +- } else { +- if (connector->state->crtc) +- down(&aconnector->mst_sem); +- } +- } +-} +- + int amdgpu_dm_atomic_commit( + struct drm_device *dev, + struct drm_atomic_state *state, +@@ -2251,8 +2230,6 @@ int amdgpu_dm_atomic_commit( + /* DC is optimized not to do anything if 'targets' didn't change. */ + dc_commit_targets(dm->dc, commit_targets, commit_targets_count); + +- update_connector_sem_state(state); +- + /* update planes when needed */ + for_each_plane_in_state(state, plane, old_plane_state, i) { + struct drm_plane_state *plane_state = plane->state; +-- +2.7.4 + |