aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch97
1 files changed, 0 insertions, 97 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch
deleted file mode 100644
index ffbd5f17..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0130-drm-amd-display-fix-cursor-disappearing-after-resume.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 4ec02986640094ec1646eacabe22dad99394c112 Mon Sep 17 00:00:00 2001
-From: Arindam Nath <arindam.nath@amd.com>
-Date: Mon, 9 Jan 2017 11:50:27 +0530
-Subject: [PATCH 0130/4131] drm/amd/display: fix cursor disappearing after
- resume
-
-Since during suspend, the cursor registers are cleared,
-once the system resumes back, the cursor remains disabled.
-cursor_set_attributes() only sets the cursor attributes
-along with cursor size and surface address, but does not
-enable the cursor back on.
-
-We need to save the current cursor location so that
-we can resume back to the same location. This is done
-in dm_crtc_cursor_move(), where we save the current
-cursor location into cursor_x and cursor_y. Later during
-resume we use these same values to set the cursor
-position along with cursor attributes.
-
-Signed-off-by: Arindam Nath <arindam.nath@amd.com>
-Reviewed-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- .../drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 38 ++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
-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 fc5b0f0..27783cf 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
-@@ -79,6 +79,11 @@ static void dm_set_cursor(
- uint32_t height)
- {
- struct dc_cursor_attributes attributes;
-+ struct dc_cursor_position position;
-+ struct drm_crtc *crtc = &amdgpu_crtc->base;
-+ int x, y;
-+ int xorigin = 0, yorigin = 0;
-+
- amdgpu_crtc->cursor_width = width;
- amdgpu_crtc->cursor_height = height;
-
-@@ -92,11 +97,41 @@ static void dm_set_cursor(
- attributes.rotation_angle = 0;
- attributes.attribute_flags.value = 0;
-
-+ x = amdgpu_crtc->cursor_x;
-+ y = amdgpu_crtc->cursor_y;
-+
-+ /* avivo cursor are offset into the total surface */
-+ x += crtc->primary->state->src_x >> 16;
-+ y += crtc->primary->state->src_y >> 16;
-+
-+ if (x < 0) {
-+ xorigin = min(-x, amdgpu_crtc->max_cursor_width - 1);
-+ x = 0;
-+ }
-+ if (y < 0) {
-+ yorigin = min(-y, amdgpu_crtc->max_cursor_height - 1);
-+ y = 0;
-+ }
-+
-+ position.enable = true;
-+ position.x = x;
-+ position.y = y;
-+
-+ position.hot_spot_enable = true;
-+ position.x_hotspot = xorigin;
-+ position.y_hotspot = yorigin;
-+
- if (!dc_target_set_cursor_attributes(
- amdgpu_crtc->target,
- &attributes)) {
- DRM_ERROR("DC failed to set cursor attributes\n");
- }
-+
-+ if (!dc_target_set_cursor_position(
-+ amdgpu_crtc->target,
-+ &position)) {
-+ DRM_ERROR("DC failed to set cursor position\n");
-+ }
- }
-
- static int dm_crtc_unpin_cursor_bo_old(
-@@ -275,6 +310,9 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc,
- int xorigin = 0, yorigin = 0;
- struct dc_cursor_position position;
-
-+ amdgpu_crtc->cursor_x = x;
-+ amdgpu_crtc->cursor_y = y;
-+
- /* avivo cursor are offset into the total surface */
- x += crtc->primary->state->src_x >> 16;
- y += crtc->primary->state->src_y >> 16;
---
-2.7.4
-