aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch
new file mode 100644
index 00000000..9b3045db
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3128-drm-amd-display-RS4-RV-SDR-Brightness-Boost.patch
@@ -0,0 +1,80 @@
+From 1794f8727e6599a4906a5f381d299edeabbb7eef Mon Sep 17 00:00:00 2001
+From: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
+Date: Fri, 22 Dec 2017 11:22:39 -0500
+Subject: [PATCH 3128/4131] drm/amd/display: [RS4][RV] SDR Brightness Boost
+
+We assume FP16 1.0 frame buffer value maps to 80 nits.
+DC changes are to make this configurable.
+
+Signed-off-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
+Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 6 +++++-
+ drivers/gpu/drm/amd/display/dc/dc.h | 5 +++++
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index 6b323cb..0ea3f5e 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -1057,6 +1057,9 @@ static enum surface_update_type get_plane_info_update_type(const struct dc_surfa
+ if (u->plane_info->input_tf != u->surface->input_tf)
+ update_flags->bits.input_tf_change = 1;
+
++ if (u->plane_info->sdr_white_level != u->surface->sdr_white_level)
++ update_flags->bits.output_tf_change = 1;
++
+ if (u->plane_info->horizontal_mirror != u->surface->horizontal_mirror)
+ update_flags->bits.horizontal_mirror_change = 1;
+
+@@ -1101,7 +1104,8 @@ static enum surface_update_type get_plane_info_update_type(const struct dc_surfa
+ || update_flags->bits.stereo_format_change
+ || update_flags->bits.gamma_change
+ || update_flags->bits.bpp_change
+- || update_flags->bits.bandwidth_change)
++ || update_flags->bits.bandwidth_change
++ || update_flags->bits.output_tf_change)
+ return UPDATE_TYPE_FULL;
+
+ return UPDATE_TYPE_MED;
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index 0a92121..24be3a9 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -367,6 +367,8 @@ struct dc_transfer_func {
+ struct dc_transfer_func_distributed_points tf_pts;
+ enum dc_transfer_func_type type;
+ enum dc_transfer_func_predefined tf;
++ /* FP16 1.0 reference level in nits, default is 80 nits, only for PQ*/
++ uint32_t sdr_ref_white_level;
+ struct dc_context *ctx;
+ };
+
+@@ -397,6 +399,7 @@ union surface_update_flags {
+ uint32_t position_change:1;
+ uint32_t in_transfer_func_change:1;
+ uint32_t input_csc_change:1;
++ uint32_t output_tf_change:1;
+
+ /* Full updates */
+ uint32_t new_plane:1;
+@@ -428,6 +431,7 @@ struct dc_plane_state {
+ struct dc_bias_and_scale *bias_and_scale;
+ struct csc_transform input_csc_color_matrix;
+ struct fixed31_32 coeff_reduction_factor;
++ uint32_t sdr_white_level;
+
+ // TODO: No longer used, remove
+ struct dc_hdr_static_metadata hdr_static_ctx;
+@@ -464,6 +468,7 @@ struct dc_plane_info {
+ enum plane_stereo_format stereo_format;
+ enum dc_color_space color_space;
+ enum color_transfer_func input_tf;
++ unsigned int sdr_white_level;
+ bool horizontal_mirror;
+ bool visible;
+ bool per_pixel_alpha;
+--
+2.7.4
+