On 2017-11-28 10:34 PM, Cheng, Tony wrote:
> That code is to handle NAN (not a number) in float. Unfortunately our HW architect decided NAN is one of the way to determine if something isn't supported. We have feed this back to our HW team and they will look into improving this for next next generation.
>
We should probably macro this check to an isNaN(number) macro and remove the check for dcn_bw_max which uses unsigned int.
We should also explain that these files are coming pretty much straight from HW teams and should be treated as HW gospel.
I'll send patches.
Harry
> -----Original Message-----
> From: Dave Jones [mailto:[email protected]]
> Sent: Tuesday, November 28, 2017 10:06 PM
> To: Linux Kernel Mailing List <[email protected]>
> Cc: Laktyushkin, Dmytro <[email protected]>; Cheng, Tony <[email protected]>; Wentland, Harry <[email protected]>; Deucher, Alexander <[email protected]>
> Subject: Re: drm/amd/display: Restructuring and cleaning up DML
>
> On Sat, Nov 18, 2017 at 12:02:01AM +0000, Linux Kernel wrote:
> > Web: https://git.kernel.org/torvalds/c/6d04ee9dc10149db842d41de66eca201c9d91b60
> > Commit: 6d04ee9dc10149db842d41de66eca201c9d91b60
> > Parent: 19b7fe4a48efbe0f7e8c496b040c4eb16ff02313
> > Refname: refs/heads/master
> > Author: Dmytro Laktyushkin <[email protected]>
> > AuthorDate: Wed Aug 23 16:43:17 2017 -0400 > Committer: Alex Deucher <[email protected]> > CommitDate: Sat Oct 21 16:45:24 2017 -0400 >
> > drm/amd/display: Restructuring and cleaning up DML
> >
> > Signed-off-by: Dmytro Laktyushkin <[email protected]>
> > Reviewed-by: Tony Cheng <[email protected]>
> > Acked-by: Harry Wentland <[email protected]>
> > Signed-off-by: Alex Deucher <[email protected]>
> > ---
>
>
> > diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c
> > index a18474437990..b6abe0f3bb15 100644 > --- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c
> > +++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.c
> > @@ -27,20 +27,36 @@
> >
> > float dcn_bw_mod(const float arg1, const float arg2) > {
> > + if (arg1 != arg1)
> > + return arg2;
> > + if (arg2 != arg2)
> > + return arg1;
> > return arg1 - arg1 * ((int) (arg1 / arg2));
> > }
> >
> > float dcn_bw_min2(const float arg1, const float arg2) > {
> > + if (arg1 != arg1)
> > + return arg2;
> > + if (arg2 != arg2)
> > + return arg1;
> > return arg1 < arg2 ? arg1 : arg2;
> > }
> >
> > unsigned int dcn_bw_max(const unsigned int arg1, const unsigned int arg2) > {
> > + if (arg1 != arg1)
> > + return arg2;
> > + if (arg2 != arg2)
> > + return arg1;
> > return arg1 > arg2 ? arg1 : arg2;
> > }
> > float dcn_bw_max2(const float arg1, const float arg2) > {
> > + if (arg1 != arg1)
> > + return arg2;
> > + if (arg2 != arg2)
> > + return arg1;
> > return arg1 > arg2 ? arg1 : arg2;
> > }
>
> This looks really, really bizarre. What was the intention here ?
>
> (This, and a bunch of other stuff in this driver picked up by Coverity, sign up at scan.coverity.com if you want access, and I'll approve.)
>
> Dave
>
From 1585369859246656673@xxx Wed Nov 29 03:35:16 +0000 2017
X-GM-THRID: 1585368072773716674
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread