diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0526-drm-amd-display-fix-issues-with-incorrectly-detectin.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0526-drm-amd-display-fix-issues-with-incorrectly-detectin.patch | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0526-drm-amd-display-fix-issues-with-incorrectly-detectin.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0526-drm-amd-display-fix-issues-with-incorrectly-detectin.patch deleted file mode 100644 index 631e6a25..00000000 --- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0526-drm-amd-display-fix-issues-with-incorrectly-detectin.patch +++ /dev/null @@ -1,268 +0,0 @@ -From de8fe8fac857149f44890f203eebd413544913db Mon Sep 17 00:00:00 2001 -From: Anthony Koo <Anthony.Koo@amd.com> -Date: Wed, 14 Jun 2017 10:19:57 -0400 -Subject: [PATCH 0526/4131] drm/amd/display: fix issues with incorrectly - detecting UPDATE_TYPE_FULL - -This is due to how structures are being packed with padding added. -Structure field initialization doesn't clear the padding bytes, which cause -our memcmp to give incorrect result. - -Move smaller structure parameters to end of structure. - -Signed-off-by: Anthony Koo <anthony.koo@amd.com> -Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/display/dc/core/dc.c | 6 ++- - drivers/gpu/drm/amd/display/dc/dc.h | 75 +++++++++++++++++--------------- - 2 files changed, 44 insertions(+), 37 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c -index f5f365b..a8f34a9 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c -@@ -628,7 +628,8 @@ static bool is_validation_required( - return true; - - for (j = 0; j < set[i].surface_count; j++) { -- struct dc_surface temp_surf = { 0 }; -+ struct dc_surface temp_surf; -+ memset(&temp_surf, 0, sizeof(temp_surf)); - - temp_surf = *context->stream_status[i].surfaces[j]; - temp_surf.clip_rect = set[i].surfaces[j]->clip_rect; -@@ -1095,6 +1096,7 @@ static enum surface_update_type get_plane_info_update_type( - int surface_index) - { - struct dc_plane_info temp_plane_info; -+ memset(&temp_plane_info, 0, sizeof(temp_plane_info)); - - if (!u->plane_info) - return UPDATE_TYPE_FAST; -@@ -1294,7 +1296,7 @@ void dc_update_surfaces_and_stream(struct dc *dc, - update_surface_trace(dc, srf_updates, surface_count); - - if (update_type >= UPDATE_TYPE_FULL) { -- const struct dc_surface *new_surfaces[MAX_SURFACES] = { 0 }; -+ const struct dc_surface *new_surfaces[MAX_SURFACES] = {0}; - - for (i = 0; i < surface_count; i++) - new_surfaces[i] = srf_updates[i].surface; -diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h -index 6d91839..36b3b12 100644 ---- a/drivers/gpu/drm/amd/display/dc/dc.h -+++ b/drivers/gpu/drm/amd/display/dc/dc.h -@@ -54,8 +54,8 @@ struct dc_caps { - - - struct dc_dcc_surface_param { -- enum surface_pixel_format format; - struct dc_size surface_size; -+ enum surface_pixel_format format; - enum swizzle_mode_values swizzle_mode; - enum dc_scan_direction scan; - }; -@@ -67,9 +67,6 @@ struct dc_dcc_setting { - }; - - struct dc_surface_dcc_cap { -- bool capable; -- bool const_color_support; -- - union { - struct { - struct dc_dcc_setting rgb; -@@ -80,6 +77,9 @@ struct dc_surface_dcc_cap { - struct dc_dcc_setting chroma; - } video; - }; -+ -+ bool capable; -+ bool const_color_support; - }; - - struct dc_static_screen_events { -@@ -201,12 +201,12 @@ enum frame_buffer_mode { - } ; - - struct dchub_init_data { -- bool dchub_initialzied; -- bool dchub_info_valid; - int64_t zfb_phys_addr_base; - int64_t zfb_mc_base_addr; - uint64_t zfb_size_in_byte; - enum frame_buffer_mode fb_mode; -+ bool dchub_initialzied; -+ bool dchub_info_valid; - }; - - struct dc_init_data { -@@ -240,9 +240,6 @@ enum { - }; - - struct dc_hdr_static_metadata { -- bool hdr_supported; -- bool is_hdr; -- - /* display chromaticities and white point in units of 0.00001 */ - unsigned int chromaticity_green_x; - unsigned int chromaticity_green_y; -@@ -257,6 +254,9 @@ struct dc_hdr_static_metadata { - uint32_t max_luminance; - uint32_t maximum_content_light_level; - uint32_t maximum_frame_average_light_level; -+ -+ bool hdr_supported; -+ bool is_hdr; - }; - - enum dc_transfer_func_type { -@@ -285,15 +285,12 @@ enum dc_transfer_func_predefined { - }; - - struct dc_transfer_func { -+ struct dc_transfer_func_distributed_points tf_pts; - enum dc_transfer_func_type type; - enum dc_transfer_func_predefined tf; -- struct dc_transfer_func_distributed_points tf_pts; - }; - - struct dc_surface { -- bool per_pixel_alpha; -- bool visible; -- bool flip_immediate; - struct dc_plane_address address; - - struct scaling_taps scaling_quality; -@@ -303,38 +300,42 @@ struct dc_surface { - - union plane_size plane_size; - union dc_tiling_info tiling_info; -+ - struct dc_plane_dcc_param dcc; -- enum dc_color_space color_space; -+ struct dc_hdr_static_metadata hdr_static_ctx; -+ -+ const struct dc_gamma *gamma_correction; -+ const struct dc_transfer_func *in_transfer_func; - -+ enum dc_color_space color_space; - enum surface_pixel_format format; - enum dc_rotation_angle rotation; -- bool horizontal_mirror; - enum plane_stereo_format stereo_format; - -- struct dc_hdr_static_metadata hdr_static_ctx; -- -- const struct dc_gamma *gamma_correction; -- const struct dc_transfer_func *in_transfer_func; -+ bool per_pixel_alpha; -+ bool visible; -+ bool flip_immediate; -+ bool horizontal_mirror; - }; - - struct dc_plane_info { -- bool per_pixel_alpha; - union plane_size plane_size; - union dc_tiling_info tiling_info; - struct dc_plane_dcc_param dcc; - enum surface_pixel_format format; - enum dc_rotation_angle rotation; -- bool horizontal_mirror; - enum plane_stereo_format stereo_format; - enum dc_color_space color_space; /*todo: wrong place, fits in scaling info*/ -+ bool horizontal_mirror; - bool visible; -+ bool per_pixel_alpha; - }; - - struct dc_scaling_info { -- struct rect src_rect; -- struct rect dst_rect; -- struct rect clip_rect; -- struct scaling_taps scaling_quality; -+ struct rect src_rect; -+ struct rect dst_rect; -+ struct rect clip_rect; -+ struct scaling_taps scaling_quality; - }; - - struct dc_surface_update { -@@ -460,24 +461,26 @@ enum surface_update_type { - struct dc_stream { - const struct dc_sink *sink; - struct dc_crtc_timing timing; -- enum signal_type output_signal; -- -- enum dc_color_space output_color_space; -- enum dc_dither_option dither_option; - - struct rect src; /* composition area */ - struct rect dst; /* stream addressable area */ - - struct audio_info audio_info; - -- bool ignore_msa_timing_param; -- - struct freesync_context freesync_ctx; - - const struct dc_transfer_func *out_transfer_func; - struct colorspace_transform gamut_remap_matrix; - struct csc_transform csc_color_matrix; -+ -+ enum signal_type output_signal; -+ -+ enum dc_color_space output_color_space; -+ enum dc_dither_option dither_option; -+ - enum view_3d_format view_format; -+ -+ bool ignore_msa_timing_param; - /* TODO: custom INFO packets */ - /* TODO: ABM info (DMCU) */ - /* TODO: PSR info */ -@@ -667,9 +670,10 @@ struct dc_link { - union compliance_test_state compliance_test_state; - - void *priv; -- bool aux_mode; - - struct ddc_service *ddc; -+ -+ bool aux_mode; - }; - - struct dpcd_caps { -@@ -685,12 +689,13 @@ struct dpcd_caps { - indicates 'Frame Sequential-to-lllFrame Pack' conversion capability.*/ - struct dc_dongle_caps dongle_caps; - -- bool allow_invalid_MSA_timing_param; -- bool panel_mode_edp; - uint32_t sink_dev_id; - uint32_t branch_dev_id; - int8_t branch_dev_name[6]; - int8_t branch_hw_revision; -+ -+ bool allow_invalid_MSA_timing_param; -+ bool panel_mode_edp; - }; - - struct dc_link_status { -@@ -801,9 +806,9 @@ struct dc_sink { - struct dc_edid_caps edid_caps; /* parse display caps */ - struct dc_container_id *dc_container_id; - uint32_t dongle_max_pix_clk; -- bool converter_disable_audio; - void *priv; - struct stereo_3d_features features_3d[TIMING_3D_FORMAT_MAX]; -+ bool converter_disable_audio; - }; - - void dc_sink_retain(const struct dc_sink *sink); --- -2.7.4 - |