aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch224
1 files changed, 224 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch
new file mode 100644
index 00000000..6432fd78
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0315-drm-amd-display-refactor-member-referencing-to-impro.patch
@@ -0,0 +1,224 @@
+From 811232d12e6ee0a7effc1ec50fd3b554175be8d5 Mon Sep 17 00:00:00 2001
+From: Reza Amini <reza.amini@amd.com>
+Date: Wed, 29 Mar 2017 12:05:15 -0400
+Subject: [PATCH 0315/4131] drm/amd/display: refactor member referencing to
+ improve readability
+
+Signed-off-by: Reza Amini <reza.amini@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 107 ++++++++--------------
+ 1 file changed, 39 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 8f53d7a..069f588 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+@@ -1519,17 +1519,16 @@ static void set_avi_info_frame(
+ uint8_t cn0_cn1 = 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;
+
+ color_space = pipe_ctx->stream->public.output_color_space;
+
+ /* Initialize header */
+- info_frame.avi_info_packet.info_packet_hdmi.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) */
+- info_frame.avi_info_packet.info_packet_hdmi.bits.header.version = 2;
+- info_frame.avi_info_packet.info_packet_hdmi.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
+@@ -1555,52 +1554,41 @@ 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 */
+- info_frame.avi_info_packet.info_packet_hdmi.bits.Y0_Y1_Y2 =
+- pixel_encoding;
++ hdmi_info->bits.Y0_Y1_Y2 = pixel_encoding;
+
+ /* A0 = 1 Active Format Information valid */
+- info_frame.avi_info_packet.info_packet_hdmi.bits.A0 =
+- ACTIVE_FORMAT_VALID;
++ hdmi_info->bits.A0 = ACTIVE_FORMAT_VALID;
+
+ /* B0, B1 = 3; Bar info data is valid */
+- info_frame.avi_info_packet.info_packet_hdmi.bits.B0_B1 =
+- BAR_INFO_BOTH_VALID;
++ hdmi_info->bits.B0_B1 = BAR_INFO_BOTH_VALID;
+
+- info_frame.avi_info_packet.info_packet_hdmi.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;
+- info_frame.avi_info_packet.info_packet_hdmi.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)
+- info_frame.avi_info_packet.info_packet_hdmi.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)
+- info_frame.avi_info_packet.info_packet_hdmi.bits.C0_C1 =
+- COLORIMETRY_ITU601;
++ hdmi_info->bits.C0_C1 = COLORIMETRY_ITU601;
+ else {
+ if (stream->public.timing.pixel_encoding != PIXEL_ENCODING_RGB)
+ BREAK_TO_DEBUGGER();
+- info_frame.avi_info_packet.info_packet_hdmi.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) {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.EC0_EC2 =
+- COLORIMETRYEX_BT2020RGBYCBCR;
+- info_frame.avi_info_packet.info_packet_hdmi.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) {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.EC0_EC2 =
+- COLORIMETRYEX_ADOBERGB;
+- info_frame.avi_info_packet.info_packet_hdmi.bits.C0_C1 =
+- COLORIMETRY_EXTENDED;
++ hdmi_info->bits.EC0_EC2 = COLORIMETRYEX_ADOBERGB;
++ hdmi_info->bits.C0_C1 = COLORIMETRY_EXTENDED;
+ }
+
+ /* TODO: un-hardcode aspect ratio */
+@@ -1609,93 +1597,76 @@ static void set_avi_info_frame(
+ switch (aspect) {
+ case ASPECT_RATIO_4_3:
+ case ASPECT_RATIO_16_9:
+- info_frame.avi_info_packet.info_packet_hdmi.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:
+- info_frame.avi_info_packet.info_packet_hdmi.bits.M0_M1 = 0;
++ hdmi_info->bits.M0_M1 = 0;
+ }
+
+ /* Active Format Aspect ratio - same as Picture Aspect Ratio. */
+- info_frame.avi_info_packet.info_packet_hdmi.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 */
+ cn0_cn1 = 0;
+ itc = false;
+
+ if (itc) {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.ITC = 1;
+- info_frame.avi_info_packet.info_packet_hdmi.bits.CN0_CN1 =
+- cn0_cn1;
++ hdmi_info->bits.ITC = 1;
++ hdmi_info->bits.CN0_CN1 = cn0_cn1;
+ }
+
+ /* TODO : We should handle YCC quantization */
+ /* but we do not have matrix calculation */
+ if (color_space == COLOR_SPACE_SRGB) {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.Q0_Q1 =
+- RGB_QUANTIZATION_FULL_RANGE;
+- info_frame.avi_info_packet.info_packet_hdmi.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) {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.Q0_Q1 =
+- RGB_QUANTIZATION_LIMITED_RANGE;
+- info_frame.avi_info_packet.info_packet_hdmi.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 {
+- info_frame.avi_info_packet.info_packet_hdmi.bits.Q0_Q1 =
+- RGB_QUANTIZATION_DEFAULT_RANGE;
+- info_frame.avi_info_packet.info_packet_hdmi.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;
+ }
+
+- info_frame.avi_info_packet.info_packet_hdmi.bits.VIC0_VIC7 =
++ hdmi_info->bits.VIC0_VIC7 =
+ stream->public.timing.vic;
+
+ /* pixel repetition
+ * PR0 - PR3 start from 0 whereas pHwPathMode->mode.timing.flags.pixel
+ * repetition start from 1 */
+- info_frame.avi_info_packet.info_packet_hdmi.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. */
+- info_frame.avi_info_packet.info_packet_hdmi.bits.bar_top =
+- stream->public.timing.v_border_top;
+- info_frame.avi_info_packet.info_packet_hdmi.bits.bar_bottom =
+- (stream->public.timing.v_border_top
++ hdmi_info->bits.bar_top = stream->public.timing.v_border_top;
++ hdmi_info->bits.bar_bottom = (stream->public.timing.v_border_top
+ - stream->public.timing.v_border_bottom + 1);
+- info_frame.avi_info_packet.info_packet_hdmi.bits.bar_left =
+- stream->public.timing.h_border_left;
+- info_frame.avi_info_packet.info_packet_hdmi.bits.bar_right =
+- (stream->public.timing.h_total
++ hdmi_info->bits.bar_left = stream->public.timing.h_border_left;
++ hdmi_info->bits.bar_right = (stream->public.timing.h_total
+ - stream->public.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 = &info_frame.avi_info_packet.info_packet_hdmi.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 += info_frame.avi_info_packet.info_packet_hdmi.
+- 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 =
+- info_frame.avi_info_packet.info_packet_hdmi.packet_raw_data.hb0;
+- info_packet->hb1 =
+- info_frame.avi_info_packet.info_packet_hdmi.packet_raw_data.hb1;
+- info_packet->hb2 =
+- info_frame.avi_info_packet.info_packet_hdmi.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++)
+--
+2.7.4
+