aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch118
1 files changed, 0 insertions, 118 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch
deleted file mode 100644
index 2499c651..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.14.71/0433-drm-amd-display-Use-dc_update_surfaces_for_stream-fo.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 2a9dcc8e5425684a789db36644235ea81c80a160 Mon Sep 17 00:00:00 2001
-From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Date: Mon, 15 May 2017 13:59:31 -0400
-Subject: [PATCH 0433/4131] drm/amd/display: Use dc_update_surfaces_for_stream
- for flip.
-
-Today we use special interface for flip because of fear of cuncurency issues
-over dc->current_ctx. This should be no longer an issue when flipping on
-multiple CRTCs concurently since for fast update (as flip is) no new context
-is created and the exsisitng is not destroyed. For full updates case when
-removing or adding streams on once CRTC while flipping on another
-Adding all current active CRTC's states to the atomic commit in
-amdgpu_dm_atomic_check will garntee that any such full update commit
-will wait for completion of any outstanding flip.
-
-Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Reviewed-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Acked-by: Harry Wentland <Harry.Wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 ++++++---
- .../drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 23 +++++++++++++++++++++-
- 2 files changed, 28 insertions(+), 4 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 4e9899c..ec68463 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -1349,6 +1349,7 @@ static void dm_page_flip(struct amdgpu_device *adev,
- struct amdgpu_crtc *acrtc;
- const struct dc_stream *stream;
- struct dc_flip_addrs addr = { {0} };
-+ struct dc_surface_update surface_updates[1] = { {0} };
-
- /*
- * TODO risk of concurrency issues
-@@ -1411,9 +1412,11 @@ static void dm_page_flip(struct amdgpu_device *adev,
- acrtc->base.state->event = NULL;
- }
-
-- dc_flip_surface_addrs(adev->dm.dc,
-- dc_stream_get_status(stream)->surfaces,
-- &addr, 1);
-+ surface_updates->surface = dc_stream_get_status(stream)->surfaces[0];
-+ surface_updates->flip_addr = &addr;
-+
-+
-+ dc_update_surfaces_for_stream(adev->dm.dc, surface_updates, 1, stream);
-
- DRM_DEBUG_DRIVER("%s Flipping to hi: 0x%x, low: 0x%x \n",
- __func__,
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
-index 00cc385..c0f2699 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
-@@ -3079,6 +3079,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
- struct dc *dc = adev->dm.dc;
- bool need_to_validate = false;
- struct validate_context *context;
-+ bool wait_4_prev_commits = false;
-
- ret = drm_atomic_helper_check(dev, state);
-
-@@ -3155,6 +3156,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
-
- new_stream_count++;
- need_to_validate = true;
-+ wait_4_prev_commits = true;
- break;
- }
-
-@@ -3200,6 +3202,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
-
- new_stream_count++;
- need_to_validate = true;
-+ wait_4_prev_commits = true;
-
- break;
- }
-@@ -3211,6 +3214,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
- set,
- set_count,
- acrtc->stream);
-+ wait_4_prev_commits = true;
- }
- break;
- }
-@@ -3303,9 +3307,26 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
-
- context = dc_get_validate_context(dc, set, set_count);
-
-- if (need_to_validate == false || set_count == 0 || context)
-+ if (need_to_validate == false || set_count == 0 || context) {
-+
- ret = 0;
-
-+ if (wait_4_prev_commits) {
-+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
-+ struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
-+ struct drm_crtc_state *crtc_state;
-+
-+ if (acrtc->stream) {
-+ crtc_state = drm_atomic_get_crtc_state(state, crtc);
-+ if (IS_ERR(crtc_state)) {
-+ ret = PTR_ERR(crtc_state);
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ }
-+
- if (context) {
- dc_resource_validate_ctx_destruct(context);
- dm_free(context);
---
-2.7.4
-