diff options
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.patch | 80 |
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 + |