aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch143
1 files changed, 143 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch
new file mode 100644
index 00000000..659f7f7a
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0463-drm-amd-display-Fix-page-flip-after-daniel-s-acquire.patch
@@ -0,0 +1,143 @@
+From 3615906e5563b773a70b51d74159a201d7b31a61 Mon Sep 17 00:00:00 2001
+From: Harry Wentland <harry.wentland@amd.com>
+Date: Fri, 7 Apr 2017 11:16:18 -0400
+Subject: [PATCH 0463/4131] drm/amd/display: Fix page flip after daniel's
+ acquire_ctx change
+
+See 38b6441e4e75 drm/atomic-helper: Remove the backoff hack from set_config
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ .../drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 22 ++++------------------
+ drivers/gpu/drm/amd/display/include/dpcd_defs.h | 2 +-
+ include/drm/drm_dp_helper.h | 20 ++++++++++++++++++++
+ 3 files changed, 25 insertions(+), 19 deletions(-)
+
+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 4dd0f4b..1180194 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
+@@ -1091,7 +1091,8 @@ void amdgpu_dm_crtc_destroy(struct drm_crtc *crtc)
+ static int amdgpu_atomic_helper_page_flip(struct drm_crtc *crtc,
+ struct drm_framebuffer *fb,
+ struct drm_pending_vblank_event *event,
+- uint32_t flags)
++ uint32_t flags,
++ struct drm_modeset_acquire_ctx *ctx)
+ {
+ struct drm_plane *plane = crtc->primary;
+ struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
+@@ -1108,8 +1109,8 @@ static int amdgpu_atomic_helper_page_flip(struct drm_crtc *crtc,
+ if (ret)
+ return ret;
+
+- state->acquire_ctx = drm_modeset_legacy_acquire_ctx(crtc);
+-retry:
++ state->acquire_ctx = ctx;
++
+ crtc_state = drm_atomic_get_crtc_state(state, crtc);
+ if (IS_ERR(crtc_state)) {
+ ret = PTR_ERR(crtc_state);
+@@ -1144,25 +1145,10 @@ static int amdgpu_atomic_helper_page_flip(struct drm_crtc *crtc,
+ /* Driver takes ownership of state on successful async commit. */
+ return 0;
+ fail:
+- if (ret == -EDEADLK)
+- goto backoff;
+-
+ if (ret)
+ drm_crtc_vblank_put(crtc);
+
+ return ret;
+-backoff:
+- drm_atomic_state_clear(state);
+- drm_atomic_legacy_backoff(state);
+-
+- /*
+- * Someone might have exchanged the framebuffer while we dropped locks
+- * in the backoff code. We need to fix up the fb refcount tracking the
+- * core does for us.
+- */
+- plane->old_fb = plane->fb;
+-
+- goto retry;
+ }
+
+ /* Implemented only the options currently availible for the driver */
+diff --git a/drivers/gpu/drm/amd/display/include/dpcd_defs.h b/drivers/gpu/drm/amd/display/include/dpcd_defs.h
+index 482f8b2..d8e52e3 100644
+--- a/drivers/gpu/drm/amd/display/include/dpcd_defs.h
++++ b/drivers/gpu/drm/amd/display/include/dpcd_defs.h
+@@ -26,7 +26,7 @@
+ #ifndef __DAL_DPCD_DEFS_H__
+ #define __DAL_DPCD_DEFS_H__
+
+-#include "drm_dp_helper.h"
++#include <drm/drm_dp_helper.h>
+
+ enum dpcd_revision {
+ DPCD_REV_10 = 0x10,
+diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
+index 8fd7cb5..9a84c32 100644
+--- a/include/drm/drm_dp_helper.h
++++ b/include/drm/drm_dp_helper.h
+@@ -511,6 +511,8 @@
+ # define DP_ADJUST_PRE_EMPHASIS_LANE1_MASK 0xc0
+ # define DP_ADJUST_PRE_EMPHASIS_LANE1_SHIFT 6
+
++#define DP_ADJUST_REQUEST_POST_CURSOR2 0x20c
++
+ #define DP_TEST_REQUEST 0x218
+ # define DP_TEST_LINK_TRAINING (1 << 0)
+ # define DP_TEST_LINK_VIDEO_PATTERN (1 << 1)
+@@ -583,6 +585,8 @@
+
+ #define DP_TEST_REFRESH_RATE_NUMERATOR 0x234
+
++#define DP_TEST_MISC0 0x232
++
+ #define DP_TEST_CRC_R_CR 0x240
+ #define DP_TEST_CRC_G_Y 0x242
+ #define DP_TEST_CRC_B_CB 0x244
+@@ -591,6 +595,18 @@
+ # define DP_TEST_CRC_SUPPORTED (1 << 5)
+ # define DP_TEST_COUNT_MASK 0xf
+
++#define DP_TEST_PHY_PATTERN 0x248
++#define DP_TEST_80BIT_CUSTOM_PATTERN_7_0 0x250
++#define DP_TEST_80BIT_CUSTOM_PATTERN_15_8 0x251
++#define DP_TEST_80BIT_CUSTOM_PATTERN_23_16 0x252
++#define DP_TEST_80BIT_CUSTOM_PATTERN_31_24 0x253
++#define DP_TEST_80BIT_CUSTOM_PATTERN_39_32 0x254
++#define DP_TEST_80BIT_CUSTOM_PATTERN_47_40 0x255
++#define DP_TEST_80BIT_CUSTOM_PATTERN_55_48 0x256
++#define DP_TEST_80BIT_CUSTOM_PATTERN_63_56 0x257
++#define DP_TEST_80BIT_CUSTOM_PATTERN_71_64 0x258
++#define DP_TEST_80BIT_CUSTOM_PATTERN_79_72 0x259
++
+ #define DP_TEST_RESPONSE 0x260
+ # define DP_TEST_ACK (1 << 0)
+ # define DP_TEST_NAK (1 << 1)
+@@ -612,6 +628,7 @@
+ #define DP_SINK_OUI 0x400
+ #define DP_BRANCH_OUI 0x500
+ #define DP_BRANCH_ID 0x503
++#define DP_BRANCH_REVISION_START 0x509
+ #define DP_BRANCH_HW_REV 0x509
+ #define DP_BRANCH_SW_REV 0x50A
+
+@@ -739,6 +756,9 @@
+ #define DP_RECEIVER_ALPM_STATUS 0x200b /* eDP 1.4 */
+ # define DP_ALPM_LOCK_TIMEOUT_ERROR (1 << 0)
+
++#define DP_DP13_DPCD_REV 0x2200
++#define DP_DP13_MAX_LINK_RATE 0x2201
++
+ #define DP_DPRX_FEATURE_ENUMERATION_LIST 0x2210 /* DP 1.3 */
+ # define DP_GTC_CAP (1 << 0) /* DP 1.3 */
+ # define DP_SST_SPLIT_SDP_CAP (1 << 1) /* DP 1.4 */
+--
+2.7.4
+