diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3945-drm-amd-display-Rename-encoder_info_packet-to-dc_inf.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3945-drm-amd-display-Rename-encoder_info_packet-to-dc_inf.patch | 357 |
1 files changed, 357 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3945-drm-amd-display-Rename-encoder_info_packet-to-dc_inf.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3945-drm-amd-display-Rename-encoder_info_packet-to-dc_inf.patch new file mode 100644 index 00000000..e9c4bf7d --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3945-drm-amd-display-Rename-encoder_info_packet-to-dc_inf.patch @@ -0,0 +1,357 @@ +From 697811494bac75d57eb8966a8f134471b6c61aa1 Mon Sep 17 00:00:00 2001 +From: Anthony Koo <Anthony.Koo@amd.com> +Date: Thu, 15 Mar 2018 14:18:18 -0400 +Subject: [PATCH 3945/4131] drm/amd/display: Rename encoder_info_packet to + dc_info_packet + +Move this out of the HW includes to dc_types.h + +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Reviewed-by: Harry Wentland <Harry.Wentland@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 99 +++++++++++----------- + drivers/gpu/drm/amd/display/dc/dc_types.h | 9 ++ + .../drm/amd/display/dc/dce/dce_stream_encoder.c | 4 +- + .../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 21 ++--- + 4 files changed, 65 insertions(+), 68 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index cae78ee..379b055 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -1811,7 +1811,7 @@ enum dc_status dc_validate_global_state( + } + + static void patch_gamut_packet_checksum( +- struct encoder_info_packet *gamut_packet) ++ struct dc_info_packet *gamut_packet) + { + /* For gamut we recalc checksum */ + if (gamut_packet->valid) { +@@ -1830,12 +1830,11 @@ static void patch_gamut_packet_checksum( + } + + static void set_avi_info_frame( +- struct encoder_info_packet *info_packet, ++ struct dc_info_packet *info_packet, + struct pipe_ctx *pipe_ctx) + { + struct dc_stream_state *stream = pipe_ctx->stream; + enum dc_color_space color_space = COLOR_SPACE_UNKNOWN; +- struct info_frame info_frame = { {0} }; + uint32_t pixel_encoding = 0; + enum scanning_type scan_type = SCANNING_TYPE_NODATA; + enum dc_aspect_ratio aspect = ASPECT_RATIO_NO_DATA; +@@ -1845,7 +1844,7 @@ static void set_avi_info_frame( + unsigned int cn0_cn1_value = 0; + uint8_t *check_sum = NULL; + uint8_t byte_index = 0; +- union hdmi_info_packet *hdmi_info = &info_frame.avi_info_packet.info_packet_hdmi; ++ union hdmi_info_packet hdmi_info = {0}; + union display_content_support support = {0}; + unsigned int vic = pipe_ctx->stream->timing.vic; + enum dc_timing_3d_format format; +@@ -1856,11 +1855,11 @@ static void set_avi_info_frame( + COLOR_SPACE_SRGB:COLOR_SPACE_YCBCR709; + + /* Initialize header */ +- hdmi_info->bits.header.info_frame_type = HDMI_INFOFRAME_TYPE_AVI; ++ hdmi_info.bits.header.info_frame_type = HDMI_INFOFRAME_TYPE_AVI; + /* InfoFrameVersion_3 is defined by CEA861F (Section 6.4), but shall + * not be used in HDMI 2.0 (Section 10.1) */ +- hdmi_info->bits.header.version = 2; +- hdmi_info->bits.header.length = HDMI_AVI_INFOFRAME_SIZE; ++ hdmi_info.bits.header.version = 2; ++ hdmi_info.bits.header.length = HDMI_AVI_INFOFRAME_SIZE; + + /* + * IDO-defined (Y2,Y1,Y0 = 1,1,1) shall not be used by devices built +@@ -1886,39 +1885,39 @@ static void set_avi_info_frame( + + /* Y0_Y1_Y2 : The pixel encoding */ + /* H14b AVI InfoFrame has extension on Y-field from 2 bits to 3 bits */ +- hdmi_info->bits.Y0_Y1_Y2 = pixel_encoding; ++ hdmi_info.bits.Y0_Y1_Y2 = pixel_encoding; + + /* A0 = 1 Active Format Information valid */ +- hdmi_info->bits.A0 = ACTIVE_FORMAT_VALID; ++ hdmi_info.bits.A0 = ACTIVE_FORMAT_VALID; + + /* B0, B1 = 3; Bar info data is valid */ +- hdmi_info->bits.B0_B1 = BAR_INFO_BOTH_VALID; ++ hdmi_info.bits.B0_B1 = BAR_INFO_BOTH_VALID; + +- hdmi_info->bits.SC0_SC1 = PICTURE_SCALING_UNIFORM; ++ hdmi_info.bits.SC0_SC1 = PICTURE_SCALING_UNIFORM; + + /* S0, S1 : Underscan / Overscan */ + /* TODO: un-hardcode scan type */ + scan_type = SCANNING_TYPE_UNDERSCAN; +- hdmi_info->bits.S0_S1 = scan_type; ++ hdmi_info.bits.S0_S1 = scan_type; + + /* C0, C1 : Colorimetry */ + if (color_space == COLOR_SPACE_YCBCR709 || + color_space == COLOR_SPACE_YCBCR709_LIMITED) +- hdmi_info->bits.C0_C1 = COLORIMETRY_ITU709; ++ hdmi_info.bits.C0_C1 = COLORIMETRY_ITU709; + else if (color_space == COLOR_SPACE_YCBCR601 || + color_space == COLOR_SPACE_YCBCR601_LIMITED) +- hdmi_info->bits.C0_C1 = COLORIMETRY_ITU601; ++ hdmi_info.bits.C0_C1 = COLORIMETRY_ITU601; + else { +- hdmi_info->bits.C0_C1 = COLORIMETRY_NO_DATA; ++ hdmi_info.bits.C0_C1 = COLORIMETRY_NO_DATA; + } + if (color_space == COLOR_SPACE_2020_RGB_FULLRANGE || + color_space == COLOR_SPACE_2020_RGB_LIMITEDRANGE || + color_space == COLOR_SPACE_2020_YCBCR) { +- hdmi_info->bits.EC0_EC2 = COLORIMETRYEX_BT2020RGBYCBCR; +- hdmi_info->bits.C0_C1 = COLORIMETRY_EXTENDED; ++ hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_BT2020RGBYCBCR; ++ hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED; + } else if (color_space == COLOR_SPACE_ADOBERGB) { +- hdmi_info->bits.EC0_EC2 = COLORIMETRYEX_ADOBERGB; +- hdmi_info->bits.C0_C1 = COLORIMETRY_EXTENDED; ++ hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_ADOBERGB; ++ hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED; + } + + /* TODO: un-hardcode aspect ratio */ +@@ -1927,18 +1926,18 @@ static void set_avi_info_frame( + switch (aspect) { + case ASPECT_RATIO_4_3: + case ASPECT_RATIO_16_9: +- hdmi_info->bits.M0_M1 = aspect; ++ hdmi_info.bits.M0_M1 = aspect; + break; + + case ASPECT_RATIO_NO_DATA: + case ASPECT_RATIO_64_27: + case ASPECT_RATIO_256_135: + default: +- hdmi_info->bits.M0_M1 = 0; ++ hdmi_info.bits.M0_M1 = 0; + } + + /* Active Format Aspect ratio - same as Picture Aspect Ratio. */ +- hdmi_info->bits.R0_R3 = ACTIVE_FORMAT_ASPECT_RATIO_SAME_AS_PICTURE; ++ hdmi_info.bits.R0_R3 = ACTIVE_FORMAT_ASPECT_RATIO_SAME_AS_PICTURE; + + /* TODO: un-hardcode cn0_cn1 and itc */ + +@@ -1981,8 +1980,8 @@ static void set_avi_info_frame( + } + } + } +- hdmi_info->bits.CN0_CN1 = cn0_cn1_value; +- hdmi_info->bits.ITC = itc_value; ++ hdmi_info.bits.CN0_CN1 = cn0_cn1_value; ++ hdmi_info.bits.ITC = itc_value; + } + + /* TODO : We should handle YCC quantization */ +@@ -1991,19 +1990,19 @@ static void set_avi_info_frame( + stream->sink->edid_caps.qy_bit == 1) { + if (color_space == COLOR_SPACE_SRGB || + color_space == COLOR_SPACE_2020_RGB_FULLRANGE) { +- hdmi_info->bits.Q0_Q1 = RGB_QUANTIZATION_FULL_RANGE; +- hdmi_info->bits.YQ0_YQ1 = YYC_QUANTIZATION_FULL_RANGE; ++ hdmi_info.bits.Q0_Q1 = RGB_QUANTIZATION_FULL_RANGE; ++ hdmi_info.bits.YQ0_YQ1 = YYC_QUANTIZATION_FULL_RANGE; + } else if (color_space == COLOR_SPACE_SRGB_LIMITED || + color_space == COLOR_SPACE_2020_RGB_LIMITEDRANGE) { +- hdmi_info->bits.Q0_Q1 = RGB_QUANTIZATION_LIMITED_RANGE; +- hdmi_info->bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; ++ hdmi_info.bits.Q0_Q1 = RGB_QUANTIZATION_LIMITED_RANGE; ++ hdmi_info.bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; + } else { +- hdmi_info->bits.Q0_Q1 = RGB_QUANTIZATION_DEFAULT_RANGE; +- hdmi_info->bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; ++ hdmi_info.bits.Q0_Q1 = RGB_QUANTIZATION_DEFAULT_RANGE; ++ hdmi_info.bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; + } + } else { +- hdmi_info->bits.Q0_Q1 = RGB_QUANTIZATION_DEFAULT_RANGE; +- hdmi_info->bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; ++ hdmi_info.bits.Q0_Q1 = RGB_QUANTIZATION_DEFAULT_RANGE; ++ hdmi_info.bits.YQ0_YQ1 = YYC_QUANTIZATION_LIMITED_RANGE; + } + + ///VIC +@@ -2028,51 +2027,49 @@ static void set_avi_info_frame( + break; + } + } +- hdmi_info->bits.VIC0_VIC7 = vic; ++ hdmi_info.bits.VIC0_VIC7 = vic; + + /* pixel repetition + * PR0 - PR3 start from 0 whereas pHwPathMode->mode.timing.flags.pixel + * repetition start from 1 */ +- hdmi_info->bits.PR0_PR3 = 0; ++ hdmi_info.bits.PR0_PR3 = 0; + + /* Bar Info + * barTop: Line Number of End of Top Bar. + * barBottom: Line Number of Start of Bottom Bar. + * barLeft: Pixel Number of End of Left Bar. + * barRight: Pixel Number of Start of Right Bar. */ +- hdmi_info->bits.bar_top = stream->timing.v_border_top; +- hdmi_info->bits.bar_bottom = (stream->timing.v_total ++ hdmi_info.bits.bar_top = stream->timing.v_border_top; ++ hdmi_info.bits.bar_bottom = (stream->timing.v_total + - stream->timing.v_border_bottom + 1); +- hdmi_info->bits.bar_left = stream->timing.h_border_left; +- hdmi_info->bits.bar_right = (stream->timing.h_total ++ hdmi_info.bits.bar_left = stream->timing.h_border_left; ++ hdmi_info.bits.bar_right = (stream->timing.h_total + - stream->timing.h_border_right + 1); + + /* check_sum - Calculate AFMT_AVI_INFO0 ~ AFMT_AVI_INFO3 */ +- check_sum = &info_frame.avi_info_packet.info_packet_hdmi.packet_raw_data.sb[0]; ++ check_sum = &hdmi_info.packet_raw_data.sb[0]; + + *check_sum = HDMI_INFOFRAME_TYPE_AVI + HDMI_AVI_INFOFRAME_SIZE + 2; + + for (byte_index = 1; byte_index <= HDMI_AVI_INFOFRAME_SIZE; byte_index++) +- *check_sum += hdmi_info->packet_raw_data.sb[byte_index]; ++ *check_sum += hdmi_info.packet_raw_data.sb[byte_index]; + + /* one byte complement */ + *check_sum = (uint8_t) (0x100 - *check_sum); + + /* Store in hw_path_mode */ +- info_packet->hb0 = hdmi_info->packet_raw_data.hb0; +- info_packet->hb1 = hdmi_info->packet_raw_data.hb1; +- info_packet->hb2 = hdmi_info->packet_raw_data.hb2; ++ info_packet->hb0 = hdmi_info.packet_raw_data.hb0; ++ info_packet->hb1 = hdmi_info.packet_raw_data.hb1; ++ info_packet->hb2 = hdmi_info.packet_raw_data.hb2; + +- for (byte_index = 0; byte_index < sizeof(info_frame.avi_info_packet. +- info_packet_hdmi.packet_raw_data.sb); byte_index++) +- info_packet->sb[byte_index] = info_frame.avi_info_packet. +- info_packet_hdmi.packet_raw_data.sb[byte_index]; ++ for (byte_index = 0; byte_index < sizeof(hdmi_info.packet_raw_data.sb); byte_index++) ++ info_packet->sb[byte_index] = hdmi_info.packet_raw_data.sb[byte_index]; + + info_packet->valid = true; + } + + static void set_vendor_info_packet( +- struct encoder_info_packet *info_packet, ++ struct dc_info_packet *info_packet, + struct dc_stream_state *stream) + { + uint32_t length = 0; +@@ -2185,7 +2182,7 @@ static void set_vendor_info_packet( + } + + static void set_spd_info_packet( +- struct encoder_info_packet *info_packet, ++ struct dc_info_packet *info_packet, + struct dc_stream_state *stream) + { + /* SPD info packet for FreeSync */ +@@ -2306,7 +2303,7 @@ static void set_spd_info_packet( + } + + static void set_hdr_static_info_packet( +- struct encoder_info_packet *info_packet, ++ struct dc_info_packet *info_packet, + struct dc_stream_state *stream) + { + uint16_t i = 0; +@@ -2403,7 +2400,7 @@ static void set_hdr_static_info_packet( + } + + static void set_vsc_info_packet( +- struct encoder_info_packet *info_packet, ++ struct dc_info_packet *info_packet, + struct dc_stream_state *stream) + { + unsigned int vscPacketRevision = 0; +diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h +index 9441305..cd324bc 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_types.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_types.h +@@ -530,6 +530,15 @@ struct vrr_params { + uint32_t frame_counter; + }; + ++struct dc_info_packet { ++ bool valid; ++ uint8_t hb0; ++ uint8_t hb1; ++ uint8_t hb2; ++ uint8_t hb3; ++ uint8_t sb[32]; ++}; ++ + #define DC_PLANE_UPDATE_TIMES_MAX 10 + + struct dc_plane_flip_time { +diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c b/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c +index 444558c..b85fda5 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c ++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c +@@ -80,7 +80,7 @@ enum { + static void dce110_update_generic_info_packet( + struct dce110_stream_encoder *enc110, + uint32_t packet_index, +- const struct encoder_info_packet *info_packet) ++ const struct dc_info_packet *info_packet) + { + uint32_t regval; + /* TODOFPGA Figure out a proper number for max_retries polling for lock +@@ -196,7 +196,7 @@ static void dce110_update_generic_info_packet( + static void dce110_update_hdmi_info_packet( + struct dce110_stream_encoder *enc110, + uint32_t packet_index, +- const struct encoder_info_packet *info_packet) ++ const struct dc_info_packet *info_packet) + { + uint32_t cont, send, line; + +diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h +index b5db169..5c21336 100644 +--- a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h ++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h +@@ -34,26 +34,17 @@ struct dc_bios; + struct dc_context; + struct dc_crtc_timing; + +-struct encoder_info_packet { +- bool valid; +- uint8_t hb0; +- uint8_t hb1; +- uint8_t hb2; +- uint8_t hb3; +- uint8_t sb[32]; +-}; +- + struct encoder_info_frame { + /* auxiliary video information */ +- struct encoder_info_packet avi; +- struct encoder_info_packet gamut; +- struct encoder_info_packet vendor; ++ struct dc_info_packet avi; ++ struct dc_info_packet gamut; ++ struct dc_info_packet vendor; + /* source product description */ +- struct encoder_info_packet spd; ++ struct dc_info_packet spd; + /* video stream configuration */ +- struct encoder_info_packet vsc; ++ struct dc_info_packet vsc; + /* HDR Static MetaData */ +- struct encoder_info_packet hdrsmd; ++ struct dc_info_packet hdrsmd; + }; + + struct encoder_unblank_param { +-- +2.7.4 + |