From 204de25fd0685237a6382626e5862328a16ce15b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 29 Sep 2017 15:45:08 +1000 Subject: [PATCH] amdgpu/dc: inline a bunch of the fixed 31_32 helpers. This decreases code size by a few hundred bytes. Signed-off-by: Dave Airlie Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher --- .../drm/amd/display/dc/basics/fixpt31_32.c | 122 ---------------- .../gpu/drm/amd/display/include/fixed31_32.h | 132 ++++++++++++------ 2 files changed, 93 insertions(+), 161 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c index 546ed67c6f83..578691cf8725 100644 --- a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c +++ b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c @@ -132,79 +132,6 @@ struct fixed31_32 dal_fixed31_32_from_int( return res; } -struct fixed31_32 dal_fixed31_32_neg( - struct fixed31_32 arg) -{ - struct fixed31_32 res; - - res.value = -arg.value; - - return res; -} - -struct fixed31_32 dal_fixed31_32_abs( - struct fixed31_32 arg) -{ - if (arg.value < 0) - return dal_fixed31_32_neg(arg); - else - return arg; -} - -bool dal_fixed31_32_lt( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value < arg2.value; -} - -bool dal_fixed31_32_le( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value <= arg2.value; -} - -bool dal_fixed31_32_eq( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value == arg2.value; -} - -struct fixed31_32 dal_fixed31_32_min( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - if (arg1.value <= arg2.value) - return arg1; - else - return arg2; -} - -struct fixed31_32 dal_fixed31_32_max( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - if (arg1.value <= arg2.value) - return arg2; - else - return arg1; -} - -struct fixed31_32 dal_fixed31_32_clamp( - struct fixed31_32 arg, - struct fixed31_32 min_value, - struct fixed31_32 max_value) -{ - if (dal_fixed31_32_le(arg, min_value)) - return min_value; - else if (dal_fixed31_32_le(max_value, arg)) - return max_value; - else - return arg; -} - struct fixed31_32 dal_fixed31_32_shl( struct fixed31_32 arg, uint8_t shift) @@ -219,19 +146,6 @@ struct fixed31_32 dal_fixed31_32_shl( return res; } -struct fixed31_32 dal_fixed31_32_shr( - struct fixed31_32 arg, - uint8_t shift) -{ - struct fixed31_32 res; - - ASSERT(shift < 64); - - res.value = arg.value >> shift; - - return res; -} - struct fixed31_32 dal_fixed31_32_add( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -246,24 +160,6 @@ struct fixed31_32 dal_fixed31_32_add( return res; } -struct fixed31_32 dal_fixed31_32_add_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_add( - arg1, - dal_fixed31_32_from_int(arg2)); -} - -struct fixed31_32 dal_fixed31_32_sub_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_sub( - arg1, - dal_fixed31_32_from_int(arg2)); -} - struct fixed31_32 dal_fixed31_32_sub( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -278,15 +174,6 @@ struct fixed31_32 dal_fixed31_32_sub( return res; } -struct fixed31_32 dal_fixed31_32_mul_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_mul( - arg1, - dal_fixed31_32_from_int(arg2)); -} - struct fixed31_32 dal_fixed31_32_mul( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -390,15 +277,6 @@ struct fixed31_32 dal_fixed31_32_div_int( dal_fixed31_32_from_int(arg2).value); } -struct fixed31_32 dal_fixed31_32_div( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return dal_fixed31_32_from_fraction( - arg1.value, - arg2.value); -} - struct fixed31_32 dal_fixed31_32_recip( struct fixed31_32 arg) { diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h index 5a4364dfd2f7..f0bc3c4afe02 100644 --- a/drivers/gpu/drm/amd/display/include/fixed31_32.h +++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h @@ -90,15 +90,26 @@ struct fixed31_32 dal_fixed31_32_from_int( * @brief * result = -arg */ -struct fixed31_32 dal_fixed31_32_neg( - struct fixed31_32 arg); +static inline struct fixed31_32 dal_fixed31_32_neg(struct fixed31_32 arg) +{ + struct fixed31_32 res; + + res.value = -arg.value; + + return res; +} /* * @brief * result = abs(arg) := (arg >= 0) ? arg : -arg */ -struct fixed31_32 dal_fixed31_32_abs( - struct fixed31_32 arg); +static inline struct fixed31_32 dal_fixed31_32_abs(struct fixed31_32 arg) +{ + if (arg.value < 0) + return dal_fixed31_32_neg(arg); + else + return arg; +} /* * @brief @@ -109,41 +120,57 @@ struct fixed31_32 dal_fixed31_32_abs( * @brief * result = arg1 < arg2 */ -bool dal_fixed31_32_lt( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_lt(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value < arg2.value; +} /* * @brief * result = arg1 <= arg2 */ -bool dal_fixed31_32_le( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_le(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value <= arg2.value; +} /* * @brief * result = arg1 == arg2 */ -bool dal_fixed31_32_eq( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_eq(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value == arg2.value; +} /* * @brief * result = min(arg1, arg2) := (arg1 <= arg2) ? arg1 : arg2 */ -struct fixed31_32 dal_fixed31_32_min( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_min(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + if (arg1.value <= arg2.value) + return arg1; + else + return arg2; +} /* * @brief * result = max(arg1, arg2) := (arg1 <= arg2) ? arg2 : arg1 */ -struct fixed31_32 dal_fixed31_32_max( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_max(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + if (arg1.value <= arg2.value) + return arg2; + else + return arg1; +} /* * @brief @@ -151,10 +178,18 @@ struct fixed31_32 dal_fixed31_32_max( * result = | arg, when min_value < arg < max_value * | max_value, when arg >= max_value */ -struct fixed31_32 dal_fixed31_32_clamp( +static inline struct fixed31_32 dal_fixed31_32_clamp( struct fixed31_32 arg, struct fixed31_32 min_value, - struct fixed31_32 max_value); + struct fixed31_32 max_value) +{ + if (dal_fixed31_32_le(arg, min_value)) + return min_value; + else if (dal_fixed31_32_le(max_value, arg)) + return max_value; + else + return arg; +} /* * @brief @@ -173,9 +208,14 @@ struct fixed31_32 dal_fixed31_32_shl( * @brief * result = arg >> shift */ -struct fixed31_32 dal_fixed31_32_shr( +static inline struct fixed31_32 dal_fixed31_32_shr( struct fixed31_32 arg, - uint8_t shift); + uint8_t shift) +{ + struct fixed31_32 res; + res.value = arg.value >> shift; + return res; +} /* * @brief @@ -194,25 +234,32 @@ struct fixed31_32 dal_fixed31_32_add( * @brief * result = arg1 + arg2 */ -struct fixed31_32 dal_fixed31_32_add_int( - struct fixed31_32 arg1, - int32_t arg2); +static inline struct fixed31_32 dal_fixed31_32_add_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_add(arg1, + dal_fixed31_32_from_int(arg2)); +} /* * @brief * result = arg1 - arg2 */ -struct fixed31_32 dal_fixed31_32_sub_int( +struct fixed31_32 dal_fixed31_32_sub( struct fixed31_32 arg1, - int32_t arg2); + struct fixed31_32 arg2); /* * @brief * result = arg1 - arg2 */ -struct fixed31_32 dal_fixed31_32_sub( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_sub_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_sub(arg1, + dal_fixed31_32_from_int(arg2)); +} + /* * @brief @@ -223,17 +270,21 @@ struct fixed31_32 dal_fixed31_32_sub( * @brief * result = arg1 * arg2 */ -struct fixed31_32 dal_fixed31_32_mul_int( +struct fixed31_32 dal_fixed31_32_mul( struct fixed31_32 arg1, - int32_t arg2); + struct fixed31_32 arg2); + /* * @brief * result = arg1 * arg2 */ -struct fixed31_32 dal_fixed31_32_mul( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_mul_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_mul(arg1, + dal_fixed31_32_from_int(arg2)); +} /* * @brief @@ -254,9 +305,12 @@ struct fixed31_32 dal_fixed31_32_div_int( * @brief * result = arg1 / arg2 */ -struct fixed31_32 dal_fixed31_32_div( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_div(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return dal_fixed31_32_from_fraction(arg1.value, + arg2.value); +} /* * @brief -- 2.30.2