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,17 +234,12 @@ 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); - -/* - * @brief - * result = arg1 - arg2 - */ -struct fixed31_32 dal_fixed31_32_sub_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 @@ -216,16 +251,20 @@ struct fixed31_32 dal_fixed31_32_sub( /* * @brief - * Binary multiplicative operators + * result = arg1 - 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 - * result = arg1 * arg2 + * Binary multiplicative operators */ -struct fixed31_32 dal_fixed31_32_mul_int( - struct fixed31_32 arg1, - int32_t arg2); /* * @brief @@ -235,6 +274,18 @@ struct fixed31_32 dal_fixed31_32_mul( struct fixed31_32 arg1, struct fixed31_32 arg2); + +/* + * @brief + * result = arg1 * 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 * result = square(arg) := arg * arg @@ -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