[PATCH] drm/amd/display: Remove use of division operator for long longs
Alex Deucher
alexdeucher at gmail.com
Thu May 24 14:43:28 UTC 2018
On Thu, May 24, 2018 at 10:40 AM, <sunpeng.li at amd.com> wrote:
> From: David Francis <David.Francis at amd.com>
>
> In fixed31_32.h, in dc_fixpt_shl,'/' was used for division of one long
> long int by another long long int. As there is no inbuilt long long
> int division function in c, gcc inserted its own. However, gcc does not
> link the library that contains this function. To avoid this, use
> bitwise operators instead of /
>
> Signed-off-by: David Francis <David.Francis at amd.com>
> Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/display/include/fixed31_32.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h
> index 76f64e9..bb0d4eb 100644
> --- a/drivers/gpu/drm/amd/display/include/fixed31_32.h
> +++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h
> @@ -209,7 +209,7 @@ static inline struct fixed31_32 dc_fixpt_clamp(
> static inline struct fixed31_32 dc_fixpt_shl(struct fixed31_32 arg, unsigned char shift)
> {
> ASSERT(((arg.value >= 0) && (arg.value <= LLONG_MAX >> shift)) ||
> - ((arg.value < 0) && (arg.value >= (LLONG_MIN / (1LL << shift)))));
> + ((arg.value < 0) && (arg.value >= ~(LLONG_MAX >> shift))));
>
> arg.value = arg.value << shift;
>
> --
> 2.7.4
>
More information about the amd-gfx
mailing list