diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0043-drm-amd-display-use-rgb-full-range-as-default-quanti.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0043-drm-amd-display-use-rgb-full-range-as-default-quanti.patch | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0043-drm-amd-display-use-rgb-full-range-as-default-quanti.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0043-drm-amd-display-use-rgb-full-range-as-default-quanti.patch deleted file mode 100644 index 5616cc26..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.14.71/0043-drm-amd-display-use-rgb-full-range-as-default-quanti.patch +++ /dev/null @@ -1,159 +0,0 @@ -From cd2f1c5d833b4c7f43e14238dcdd3bfd4d00d53f Mon Sep 17 00:00:00 2001 -From: Wenjing Liu <Wenjing.Liu@amd.com> -Date: Wed, 30 Nov 2016 17:57:24 -0500 -Subject: [PATCH 0043/4131] drm/amd/display: use rgb full range as default - quantization for non HDMI - -Refactor the quantization decision to color module. -Add the check if non HDMI, default quantization should be rgb full range. - -Signed-off-by: Wenjing Liu <Wenjing.Liu@amd.com> -Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> -Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/display/modules/color/color.c | 88 ++++++++++++++++++++-- - .../gpu/drm/amd/display/modules/inc/mod_color.h | 12 ++- - 2 files changed, 94 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/modules/color/color.c b/drivers/gpu/drm/amd/display/modules/color/color.c -index 30d09d3..0610b82 100644 ---- a/drivers/gpu/drm/amd/display/modules/color/color.c -+++ b/drivers/gpu/drm/amd/display/modules/color/color.c -@@ -2184,7 +2184,8 @@ bool mod_color_set_saturation(struct mod_color *mod_color, - return true; - } - --bool mod_color_set_preferred_quantization_range(struct mod_color *mod_color, -+bool mod_color_persist_user_preferred_quantization_range( -+ struct mod_color *mod_color, - const struct dc_sink *sink, - enum dc_quantization_range quantization_range) - { -@@ -2214,13 +2215,90 @@ bool mod_color_set_preferred_quantization_range(struct mod_color *mod_color, - - bool mod_color_get_preferred_quantization_range(struct mod_color *mod_color, - const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing, - enum dc_quantization_range *quantization_range) - { - struct core_color *core_color = MOD_COLOR_TO_CORE(mod_color); -- unsigned int sink_index; -+ unsigned int sink_index = sink_index_from_sink(core_color, sink); -+ enum dc_quantization_range user_preferred_quantization_range = -+ core_color->state[sink_index]. -+ preferred_quantization_range; -+ bool rgb_full_range_supported = -+ mod_color_is_rgb_full_range_supported_for_timing( -+ sink, timing); -+ bool rgb_limited_range_supported = -+ mod_color_is_rgb_limited_range_supported_for_timing( -+ sink, timing); -+ -+ if (rgb_full_range_supported && rgb_limited_range_supported) -+ *quantization_range = user_preferred_quantization_range; -+ else if (rgb_full_range_supported && !rgb_limited_range_supported) -+ *quantization_range = QUANTIZATION_RANGE_FULL; -+ else if (!rgb_full_range_supported && rgb_limited_range_supported) -+ *quantization_range = QUANTIZATION_RANGE_LIMITED; -+ else -+ *quantization_range = QUANTIZATION_RANGE_UNKNOWN; - -- sink_index = sink_index_from_sink(core_color, sink); -- *quantization_range = core_color->state[sink_index]. -- preferred_quantization_range; - return true; - } -+ -+bool mod_color_is_rgb_full_range_supported_for_timing( -+ const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing) -+{ -+ bool result = false; -+ -+ if (!sink || !timing) -+ return result; -+ -+ if (sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A) -+ if (timing->vic || timing->hdmi_vic) -+ if (timing->h_addressable == 640 && -+ timing->v_addressable == 480 && -+ (timing->pix_clk_khz == 25200 || -+ timing->pix_clk_khz == 25170 || -+ timing->pix_clk_khz == 25175)) -+ result = true; -+ else -+ /* don't support full range rgb */ -+ /* for HDMI CEA861 timings except VGA mode */ -+ result = false; -+ else -+ result = true; -+ else -+ result = true; -+ -+ return result; -+} -+ -+bool mod_color_is_rgb_limited_range_supported_for_timing( -+ const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing) -+{ -+ bool result = false; -+ -+ if (!sink || !timing) -+ return result; -+ -+ if (sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A) -+ if (timing->vic || timing->hdmi_vic) -+ if (timing->h_addressable == 640 && -+ timing->v_addressable == 480 && -+ (timing->pix_clk_khz == 25200 || -+ timing->pix_clk_khz == 25170 || -+ timing->pix_clk_khz == 25175)) -+ /* don't support rgb limited for */ -+ /* HDMI CEA VGA mode */ -+ result = false; -+ else -+ /* support rgb limited for non VGA CEA timing */ -+ result = true; -+ else -+ /* support rgb limited for non CEA HDMI timing */ -+ result = true; -+ else -+ /* don't support rgb limited for non HDMI signal */ -+ result = false; -+ -+ return result; -+} -diff --git a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -index e54fe2c..91abc17 100644 ---- a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -+++ b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -@@ -168,12 +168,22 @@ bool mod_color_set_saturation(struct mod_color *mod_color, - const struct dc_stream **streams, int num_streams, - int saturation_value); - --bool mod_color_set_preferred_quantization_range(struct mod_color *mod_color, -+bool mod_color_persist_user_preferred_quantization_range( -+ struct mod_color *mod_color, - const struct dc_sink *sink, - enum dc_quantization_range quantization_range); - - bool mod_color_get_preferred_quantization_range(struct mod_color *mod_color, - const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing, - enum dc_quantization_range *quantization_range); - -+bool mod_color_is_rgb_full_range_supported_for_timing( -+ const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing); -+ -+bool mod_color_is_rgb_limited_range_supported_for_timing( -+ const struct dc_sink *sink, -+ const struct dc_crtc_timing *timing); -+ - #endif /* MOD_COLOR_H_ */ --- -2.7.4 - |