diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5353-drm-amd-display-Add-driver-side-parsing-for-CM.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5353-drm-amd-display-Add-driver-side-parsing-for-CM.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5353-drm-amd-display-Add-driver-side-parsing-for-CM.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5353-drm-amd-display-Add-driver-side-parsing-for-CM.patch new file mode 100644 index 00000000..7b90a33e --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5353-drm-amd-display-Add-driver-side-parsing-for-CM.patch @@ -0,0 +1,68 @@ +From b9108f310126578eea2a83df78efa52b96b47751 Mon Sep 17 00:00:00 2001 +From: Jun Lei <Jun.Lei@amd.com> +Date: Mon, 13 Aug 2018 15:11:44 -0400 +Subject: [PATCH 5353/5725] drm/amd/display: Add driver-side parsing for CM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Although 4 unique register values exist for gamma modes, two are +actually the same (the two RAMs) It’s not possible for caller to +understand this HW specific behavior, so some parsing is necessary +in driver + +Change-Id: I073e0f67aed5c9bc8760e89d7755e6399b3687e2 +Signed-off-by: Jun Lei <Jun.Lei@amd.com> +Reviewed-by: Wesley Chalmers <Wesley.Chalmers@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + .../display/dc/dcn10/dcn10_hw_sequencer_debug.c | 29 +++++++++++++++++++--- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer_debug.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer_debug.c +index 9288b00..9c21825 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer_debug.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer_debug.c +@@ -314,14 +314,35 @@ static unsigned int dcn10_get_cm_states(struct dc *dc, char *pBuf, unsigned int + struct dpp *dpp = pool->dpps[i]; + struct dcn_dpp_state s = {0}; + ++ ++ ++ + dpp->funcs->dpp_read_state(dpp, &s); + + if (s.is_enabled) { +- chars_printed = snprintf_count(pBuf, remaining_buffer, "%x,%x,%x,%x,%x,%x," +- "%08x,%08x,%08x,%08x,%08x,%08x" ++ chars_printed = snprintf_count(pBuf, remaining_buffer, "%x,%x," ++ "%s,%s,%s," ++ "%x,%08x,%08x,%08x,%08x,%08x,%08x" + "\n", +- dpp->inst, s.igam_input_format, s.igam_lut_mode, s.dgam_lut_mode, +- s.rgam_lut_mode, s.gamut_remap_mode, s.gamut_remap_c11_c12, ++ dpp->inst, s.igam_input_format, ++ (s.igam_lut_mode == 0) ? "BypassFixed" : ++ ((s.igam_lut_mode == 1) ? "BypassFloat" : ++ ((s.igam_lut_mode == 2) ? "RAM" : ++ ((s.igam_lut_mode == 3) ? "RAM" : ++ "Unknown"))), ++ (s.dgam_lut_mode == 0) ? "Bypass" : ++ ((s.dgam_lut_mode == 1) ? "sRGB" : ++ ((s.dgam_lut_mode == 2) ? "Ycc" : ++ ((s.dgam_lut_mode == 3) ? "RAM" : ++ ((s.dgam_lut_mode == 4) ? "RAM" : ++ "Unknown")))), ++ (s.rgam_lut_mode == 0) ? "Bypass" : ++ ((s.rgam_lut_mode == 1) ? "sRGB" : ++ ((s.rgam_lut_mode == 2) ? "Ycc" : ++ ((s.rgam_lut_mode == 3) ? "RAM" : ++ ((s.rgam_lut_mode == 4) ? "RAM" : ++ "Unknown")))), ++ s.gamut_remap_mode, s.gamut_remap_c11_c12, + s.gamut_remap_c13_c14, s.gamut_remap_c21_c22, s.gamut_remap_c23_c24, + s.gamut_remap_c31_c32, s.gamut_remap_c33_c34); + +-- +2.7.4 + |