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 >