diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2068-drm-amd-display-add-some-math-functions-for-dcn_calc.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2068-drm-amd-display-add-some-math-functions-for-dcn_calc.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2068-drm-amd-display-add-some-math-functions-for-dcn_calc.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2068-drm-amd-display-add-some-math-functions-for-dcn_calc.patch new file mode 100644 index 00000000..72620b4a --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2068-drm-amd-display-add-some-math-functions-for-dcn_calc.patch @@ -0,0 +1,93 @@ +From 0b9bde6585667175efcf1a59e408faa3b9b81d1d Mon Sep 17 00:00:00 2001 +From: Charlene Liu <charlene.liu@amd.com> +Date: Thu, 16 May 2019 22:52:46 -0400 +Subject: [PATCH 2068/2940] drm/amd/display: add some math functions for + dcn_calc_math + +Implement floor, ceil, and fabs + +Signed-off-by: Charlene Liu <charlene.liu@amd.com> +Reviewed-by: Charlene Liu <Charlene.Liu@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + .../drm/amd/display/dc/calcs/dcn_calc_math.c | 20 +++++++++++++++++++ + .../drm/amd/display/dc/calcs/dcn_calc_math.h | 3 +++ + .../drm/amd/display/dc/dml/dml_inline_defs.h | 8 ++++++++ + 3 files changed, 31 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c +index 7600a4a4abc7..07d18e78de49 100644 +--- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c ++++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c +@@ -73,6 +73,17 @@ float dcn_bw_floor2(const float arg, const float significance) + return 0; + return ((int) (arg / significance)) * significance; + } ++float dcn_bw_floor(const float arg) ++{ ++ return ((int) (arg)); ++} ++ ++float dcn_bw_ceil(const float arg) ++{ ++ float flr = dcn_bw_floor2(arg, 1); ++ ++ return flr + 0.00001 >= arg ? arg : flr + 1; ++} + + float dcn_bw_ceil2(const float arg, const float significance) + { +@@ -109,6 +120,15 @@ float dcn_bw_pow(float a, float exp) + } + } + ++double dcn_bw_fabs(double a) ++{ ++ if (a > 0) ++ return (a); ++ else ++ return (-a); ++} ++ ++ + float dcn_bw_log(float a, float b) + { + int * const exp_ptr = (int *)(&a); +diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h +index f46ab0e24ca1..45a07eeffbb6 100644 +--- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h ++++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h +@@ -31,10 +31,13 @@ float dcn_bw_min2(const float arg1, const float arg2); + unsigned int dcn_bw_max(const unsigned int arg1, const unsigned int arg2); + float dcn_bw_max2(const float arg1, const float arg2); + float dcn_bw_floor2(const float arg, const float significance); ++float dcn_bw_floor(const float arg); + float dcn_bw_ceil2(const float arg, const float significance); ++float dcn_bw_ceil(const float arg); + float dcn_bw_max3(float v1, float v2, float v3); + float dcn_bw_max5(float v1, float v2, float v3, float v4, float v5); + float dcn_bw_pow(float a, float exp); + float dcn_bw_log(float a, float b); ++double dcn_bw_fabs(double a); + + #endif /* _DCN_CALC_MATH_H_ */ +diff --git a/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h b/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h +index e8ce08567cd8..eca140da13d8 100644 +--- a/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h ++++ b/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h +@@ -129,4 +129,12 @@ static inline unsigned int dml_round_to_multiple(unsigned int num, + else + return (num - remainder); + } ++static inline double dml_abs(double a) ++{ ++ if (a > 0) ++ return a; ++ else ++ return (a*(-1)); ++} ++ + #endif +-- +2.17.1 + |