[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