diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0426-drm-amd-display-add-explanation-for-surface_update_t.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0426-drm-amd-display-add-explanation-for-surface_update_t.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0426-drm-amd-display-add-explanation-for-surface_update_t.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0426-drm-amd-display-add-explanation-for-surface_update_t.patch new file mode 100644 index 00000000..68782433 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0426-drm-amd-display-add-explanation-for-surface_update_t.patch @@ -0,0 +1,58 @@ +From dfa14cd3f9f46c53d477a5d7410af52f400e0e90 Mon Sep 17 00:00:00 2001 +From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Date: Wed, 10 May 2017 18:24:24 -0400 +Subject: [PATCH 0426/4131] drm/amd/display: add explanation for + surface_update_type + +Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <Harry.Wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/dc.h | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h +index 7dd145b..9a19d6f 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc.h ++++ b/drivers/gpu/drm/amd/display/dc/dc.h +@@ -434,9 +434,35 @@ bool dc_post_update_surfaces_to_stream( + void dc_update_surfaces_for_stream(struct dc *dc, struct dc_surface_update *updates, + int surface_count, const struct dc_stream *stream); + ++/* Surface update type is used by dc_update_surfaces_and_stream ++ * The update type is determined at the very beginning of the function based ++ * on parameters passed in and decides how much programming (or updating) is ++ * going to be done during the call. ++ * ++ * UPDATE_TYPE_FAST is used for really fast updates that do not require much ++ * logical calculations or hardware register programming. This update MUST be ++ * ISR safe on windows. Currently fast update will only be used to flip surface ++ * address. ++ * ++ * UPDATE_TYPE_MED is used for slower updates which require significant hw ++ * re-programming however do not affect bandwidth consumption or clock ++ * requirements. At present, this is the level at which front end updates ++ * that do not require us to run bw_calcs happen. These are in/out transfer func ++ * updates, viewport offset changes, recout size changes and pixel depth changes. ++ * This update can be done at ISR, but we want to minimize how often this happens. ++ * ++ * UPDATE_TYPE_FULL is slow. Really slow. This requires us to recalculate our ++ * bandwidth and clocks, possibly rearrange some pipes and reprogram anything front ++ * end related. Any time viewport dimensions, recout dimensions, scaling ratios or ++ * gamma need to be adjusted or pipe needs to be turned on (or disconnected) we do ++ * a full update. This cannot be done at ISR level and should be a rare event. ++ * Unless someone is stress testing mpo enter/exit, playing with colour or adjusting ++ * underscan we don't expect to see this call at all. ++ */ ++ + enum surface_update_type { + UPDATE_TYPE_FAST, /* super fast, safe to execute in isr */ +- UPDATE_TYPE_MED, /* a lot of programming needed. may need to alloc */ ++ UPDATE_TYPE_MED, /* ISR safe, most of programming needed, no bw/clk change*/ + UPDATE_TYPE_FULL, /* may need to shuffle resources */ + }; + +-- +2.7.4 + |