diff options
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.patch | 140 |
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 + |