aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch140
1 files changed, 140 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch
new file mode 100644
index 00000000..7f4e3db7
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3008-drm-amd-display-Update-HUBP.patch
@@ -0,0 +1,140 @@
+From 7a63e96f830bca66b2e128bff661ff34481d7b6d Mon Sep 17 00:00:00 2001
+From: Eric Bernstein <eric.bernstein@amd.com>
+Date: Tue, 5 Dec 2017 10:51:35 -0500
+Subject: [PATCH 3008/4131] drm/amd/display: Update HUBP
+
+Signed-off-by: Eric Bernstein <eric.bernstein@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 31 ++++++++---------------
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h | 7 +++++
+ drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h | 15 +++++++++++
+ 3 files changed, 32 insertions(+), 21 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
+index 2d843b2..90c57a5 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
+@@ -776,20 +776,7 @@ void hubp1_read_state(struct dcn10_hubp *hubp1,
+ QoS_LEVEL_HIGH_WM, &s->qos_level_high_wm);
+ }
+
+-enum cursor_pitch {
+- CURSOR_PITCH_64_PIXELS = 0,
+- CURSOR_PITCH_128_PIXELS,
+- CURSOR_PITCH_256_PIXELS
+-};
+-
+-enum cursor_lines_per_chunk {
+- CURSOR_LINE_PER_CHUNK_2 = 1,
+- CURSOR_LINE_PER_CHUNK_4,
+- CURSOR_LINE_PER_CHUNK_8,
+- CURSOR_LINE_PER_CHUNK_16
+-};
+-
+-static bool ippn10_cursor_program_control(
++bool hubp1_cursor_program_control(
+ struct dcn10_hubp *hubp1,
+ bool pixel_data_invert,
+ enum dc_cursor_color_format color_format)
+@@ -810,8 +797,7 @@ static bool ippn10_cursor_program_control(
+ return true;
+ }
+
+-static enum cursor_pitch ippn10_get_cursor_pitch(
+- unsigned int pitch)
++enum cursor_pitch hubp1_get_cursor_pitch(unsigned int pitch)
+ {
+ enum cursor_pitch hw_pitch;
+
+@@ -834,7 +820,7 @@ static enum cursor_pitch ippn10_get_cursor_pitch(
+ return hw_pitch;
+ }
+
+-static enum cursor_lines_per_chunk ippn10_get_lines_per_chunk(
++static enum cursor_lines_per_chunk hubp1_get_lines_per_chunk(
+ unsigned int cur_width,
+ enum dc_cursor_color_format format)
+ {
+@@ -860,8 +846,8 @@ void hubp1_cursor_set_attributes(
+ const struct dc_cursor_attributes *attr)
+ {
+ struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp);
+- enum cursor_pitch hw_pitch = ippn10_get_cursor_pitch(attr->pitch);
+- enum cursor_lines_per_chunk lpc = ippn10_get_lines_per_chunk(
++ enum cursor_pitch hw_pitch = hubp1_get_cursor_pitch(attr->pitch);
++ enum cursor_lines_per_chunk lpc = hubp1_get_lines_per_chunk(
+ attr->width, attr->color_format);
+
+ hubp->curs_attr = *attr;
+@@ -874,11 +860,13 @@ void hubp1_cursor_set_attributes(
+ REG_UPDATE_2(CURSOR_SIZE,
+ CURSOR_WIDTH, attr->width,
+ CURSOR_HEIGHT, attr->height);
++
+ REG_UPDATE_3(CURSOR_CONTROL,
+ CURSOR_MODE, attr->color_format,
+ CURSOR_PITCH, hw_pitch,
+ CURSOR_LINES_PER_CHUNK, lpc);
+- ippn10_cursor_program_control(hubp1,
++
++ hubp1_cursor_program_control(hubp1,
+ attr->attribute_flags.bits.INVERT_PIXEL_DATA,
+ attr->color_format);
+ }
+@@ -920,7 +908,8 @@ void hubp1_cursor_set_position(
+ cur_en = 0; /* not visible beyond left edge*/
+
+ if (cur_en && REG_READ(CURSOR_SURFACE_ADDRESS) == 0)
+- hubp1_cursor_set_attributes(hubp, &hubp->curs_attr);
++ hubp->funcs->set_cursor_attributes(hubp, &hubp->curs_attr);
++
+ REG_UPDATE(CURSOR_CONTROL,
+ CURSOR_ENABLE, cur_en);
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h
+index a7834dd..17a5db0 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h
+@@ -681,4 +681,11 @@ struct dcn_hubp_state {
+ void hubp1_read_state(struct dcn10_hubp *hubp1,
+ struct dcn_hubp_state *s);
+
++enum cursor_pitch hubp1_get_cursor_pitch(unsigned int pitch);
++
++bool hubp1_cursor_program_control(
++ struct dcn10_hubp *hubp1,
++ bool pixel_data_invert,
++ enum dc_cursor_color_format color_format);
++
+ #endif
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h
+index 49b12f6..6a4685f 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h
+@@ -28,6 +28,21 @@
+
+ #include "mem_input.h"
+
++
++enum cursor_pitch {
++ CURSOR_PITCH_64_PIXELS = 0,
++ CURSOR_PITCH_128_PIXELS,
++ CURSOR_PITCH_256_PIXELS
++};
++
++enum cursor_lines_per_chunk {
++ CURSOR_LINE_PER_CHUNK_2 = 1,
++ CURSOR_LINE_PER_CHUNK_4,
++ CURSOR_LINE_PER_CHUNK_8,
++ CURSOR_LINE_PER_CHUNK_16
++};
++
++
+ struct hubp {
+ struct hubp_funcs *funcs;
+ struct dc_context *ctx;
+--
+2.7.4
+