]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: Remove use of division operator for long longs
authorDavid Francis <David.Francis@amd.com>
Thu, 24 May 2018 14:40:12 +0000 (10:40 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 24 May 2018 15:07:56 +0000 (10:07 -0500)
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 /

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: David Francis <David.Francis@amd.com>
Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/include/fixed31_32.h

index 76f64e91042260eb2249592bd97963224050a326..bb0d4ebba9f081289a9dc08184f85f57a6fed54a 100644 (file)
@@ -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;