Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a21ddec6 authored by Dmytro Laktyushkin's avatar Dmytro Laktyushkin Committed by Alex Deucher
Browse files

drm/amd/display: fix 31_32_fixpt shift functions

parent 6b8e1eb7
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -27,6 +27,12 @@
#define __DAL_FIXED31_32_H__

#define FIXED31_32_BITS_PER_FRACTIONAL_PART 32
#ifndef LLONG_MIN
#define LLONG_MIN (1LL<<63)
#endif
#ifndef LLONG_MAX
#define LLONG_MAX (-1LL>>1)
#endif

/*
 * @brief
@@ -45,6 +51,7 @@ struct fixed31_32 {
	long long value;
};


/*
 * @brief
 * Useful constants
@@ -201,14 +208,12 @@ static inline struct fixed31_32 dc_fixpt_clamp(
 */
static inline struct fixed31_32 dc_fixpt_shl(struct fixed31_32 arg, unsigned char shift)
{
	struct fixed31_32 res;

	ASSERT(((arg.value >= 0) && (arg.value <= LLONG_MAX >> shift)) ||
		((arg.value < 0) && (arg.value >= LLONG_MIN >> shift)));
		((arg.value < 0) && (arg.value >= (LLONG_MIN / (1 << shift)))));

	res.value = arg.value << shift;
	arg.value = arg.value << shift;

	return res;
	return arg;
}

/*
@@ -217,9 +222,14 @@ static inline struct fixed31_32 dc_fixpt_shl(struct fixed31_32 arg, unsigned cha
 */
static inline struct fixed31_32 dc_fixpt_shr(struct fixed31_32 arg, unsigned char shift)
{
	struct fixed31_32 res;
	res.value = arg.value >> shift;
	return res;
	bool negative = arg.value < 0;

	if (negative)
		arg.value = -arg.value;
	arg.value = arg.value >> shift;
	if (negative)
		arg.value = -arg.value;
	return arg;
}

/*