aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch')
-rw-r--r--common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch182
1 files changed, 182 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch b/common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch
new file mode 100644
index 00000000..a08205aa
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0839-drm-amd-dal-Address-HW-team-feedback-on-ipp.patch
@@ -0,0 +1,182 @@
+From d2ffd84492fe27eb17aa683a57296d7d804bbe64 Mon Sep 17 00:00:00 2001
+From: Eric Yang <eric.yang2@amd.com>
+Date: Mon, 22 Feb 2016 12:18:24 -0500
+Subject: [PATCH 0839/1110] drm/amd/dal: Address HW team feedback on ipp
+
+Signed-off-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 4 ++--
+ drivers/gpu/drm/amd/dal/dc/core/dc_target.c | 4 ++--
+ drivers/gpu/drm/amd/dal/dc/dc_hw_types.h | 4 ++--
+ drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h | 2 +-
+ .../gpu/drm/amd/dal/dc/dce110/dce110_ipp_cursor.c | 8 +++-----
+ .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h | 23 ++++++++++++++++++++++
+ drivers/gpu/drm/amd/dal/dc/inc/ipp.h | 2 +-
+ drivers/gpu/drm/amd/dal/dc/inc/mem_input.h | 18 -----------------
+ 8 files changed, 34 insertions(+), 31 deletions(-)
+
+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 f469017..ec02029 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
+@@ -304,8 +304,8 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc,
+ position.y = y;
+
+ position.hot_spot_enable = true;
+- position.x_origin = xorigin;
+- position.y_origin = yorigin;
++ position.x_hotspot = xorigin;
++ position.y_hotspot = yorigin;
+
+ if (!dc_target_set_cursor_position(
+ amdgpu_crtc->target,
+diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_target.c b/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
+index ac917e5..87275b8 100644
+--- a/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
+@@ -500,8 +500,8 @@ bool dc_target_set_cursor_position(
+ * plane so we only need to set it on first pipe we
+ * find. May need to make this code dce specific later.
+ */
+- if (ipp->funcs->ipp_cursor_set_position(ipp, position))
+- return true;
++ ipp->funcs->ipp_cursor_set_position(ipp, position);
++ return true;
+ }
+ }
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/dc_hw_types.h b/drivers/gpu/drm/amd/dal/dc/dc_hw_types.h
+index ea8028c..273c544 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dc_hw_types.h
++++ b/drivers/gpu/drm/amd/dal/dc/dc_hw_types.h
+@@ -256,8 +256,8 @@ struct dc_cursor_position {
+ uint32_t x;
+ uint32_t y;
+
+- uint32_t x_origin;
+- uint32_t y_origin;
++ uint32_t x_hotspot;
++ uint32_t y_hotspot;
+
+ /*
+ * This parameter indicates whether HW cursor should be enabled
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
+index dde138c..13b9100 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
+@@ -53,7 +53,7 @@ bool dce110_ipp_construct(
+ void dce110_ipp_destroy(struct input_pixel_processor **ipp);
+
+ /* CURSOR RELATED */
+-bool dce110_ipp_cursor_set_position(
++void dce110_ipp_cursor_set_position(
+ struct input_pixel_processor *ipp,
+ const struct dc_cursor_position *position);
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_cursor.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_cursor.c
+index ef91f2d..eaa1f05 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_cursor.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_cursor.c
+@@ -71,7 +71,7 @@ static void program_address(
+ PHYSICAL_ADDRESS_LOC address);
+
+
+-bool dce110_ipp_cursor_set_position(
++void dce110_ipp_cursor_set_position(
+ struct input_pixel_processor *ipp,
+ const struct dc_cursor_position *position)
+ {
+@@ -89,13 +89,11 @@ bool dce110_ipp_cursor_set_position(
+ if (position->hot_spot_enable)
+ program_hotspot(
+ ipp110,
+- position->x_origin,
+- position->y_origin);
++ position->x_hotspot,
++ position->y_hotspot);
+
+ /* unlock cursor registers */
+ lock(ipp110, false);
+-
+- return true;
+ }
+
+ bool dce110_ipp_cursor_set_attributes(
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
+index a0db7aa..81b78fd 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
+@@ -36,6 +36,29 @@ struct dce110_mem_input_reg_offsets {
+ uint32_t pipe;
+ };
+
++
++enum stutter_mode_type {
++/* TODO: Clean up these enums, right now only one is being used
++ * STUTTER_MODE_LEGACY = 0X00000001,
++ * STUTTER_MODE_ENHANCED = 0X00000002,
++ * STUTTER_MODE_FID_NBP_STATE = 0X00000004,
++ * STUTTER_MODE_WATERMARK_NBP_STATE = 0X00000008,
++ * STUTTER_MODE_SINGLE_DISPLAY_MODEL = 0X00000010,
++ * STUTTER_MODE_MIXED_DISPLAY_MODEL = 0X00000020,
++ * STUTTER_MODE_DUAL_DMIF_BUFFER = 0X00000040,
++ */
++ STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION = 0X00000080,
++/*
++ * STUTTER_MODE_NO_ADVANCED_REQUEST = 0X00000100,
++ * STUTTER_MODE_NO_LB_RESET = 0X00000200,
++ * STUTTER_MODE_DISABLED = 0X00000400,
++ * STUTTER_MODE_AGGRESSIVE_MARKS = 0X00000800,
++ * STUTTER_MODE_URGENCY = 0X00001000,
++ * STUTTER_MODE_QUAD_DMIF_BUFFER = 0X00002000,
++ * STUTTER_MODE_NOT_USED = 0X00008000
++ */
++};
++
+ struct dce110_mem_input {
+ struct mem_input base;
+ struct dce110_mem_input_reg_offsets offsets;
+diff --git a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
+index 9081820..505bf72 100644
+--- a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
++++ b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
+@@ -88,7 +88,7 @@ enum ipp_output_format {
+ struct ipp_funcs {
+
+ /*** cursor ***/
+- bool (*ipp_cursor_set_position)(
++ void (*ipp_cursor_set_position)(
+ struct input_pixel_processor *ipp,
+ const struct dc_cursor_position *position);
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
+index 9cd9905..8339d61 100644
+--- a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
++++ b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
+@@ -66,22 +66,4 @@ struct mem_input_funcs {
+ enum dc_rotation_angle rotation);
+ };
+
+-enum stutter_mode_type {
+- STUTTER_MODE_LEGACY = 0X00000001,
+- STUTTER_MODE_ENHANCED = 0X00000002,
+- STUTTER_MODE_FID_NBP_STATE = 0X00000004,
+- STUTTER_MODE_WATERMARK_NBP_STATE = 0X00000008,
+- STUTTER_MODE_SINGLE_DISPLAY_MODEL = 0X00000010,
+- STUTTER_MODE_MIXED_DISPLAY_MODEL = 0X00000020,
+- STUTTER_MODE_DUAL_DMIF_BUFFER = 0X00000040,
+- STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION = 0X00000080,
+- STUTTER_MODE_NO_ADVANCED_REQUEST = 0X00000100,
+- STUTTER_MODE_NO_LB_RESET = 0X00000200,
+- STUTTER_MODE_DISABLED = 0X00000400,
+- STUTTER_MODE_AGGRESSIVE_MARKS = 0X00000800,
+- STUTTER_MODE_URGENCY = 0X00001000,
+- STUTTER_MODE_QUAD_DMIF_BUFFER = 0X00002000,
+- STUTTER_MODE_NOT_USED = 0X00008000
+-};
+-
+ #endif
+--
+2.7.4
+