Re: [PATCH v4 1/1] i2c: designware: use casting of u64 in clock multiplication to avoid overflow
From: Andy Shevchenko
Date: Tue Dec 20 2022 - 14:24:08 EST
On Tue, Dec 20, 2022 at 07:43:06PM +0200, Hawa, Hanna wrote:
> On 12/20/2022 7:11 PM, Andy Shevchenko wrote:
> > On Tue, Dec 20, 2022 at 04:48:06PM +0000, Hanna Hawa wrote:
...
> > > - return DIV_ROUND_CLOSEST(ic_clk * tSYMBOL, MICRO) - 8 + offset;
> > > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * tSYMBOL, MICRO) - 8 +
> > > + offset;
> >
> > Broken indentation.
...
> > > - return DIV_ROUND_CLOSEST(ic_clk * (tSYMBOL + tf), MICRO) - 3 + offset;
> > > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tSYMBOL + tf),
> > > + MICRO) - 3 + offset;
> >
> > I would still go with 'MICRO) -' part to be on the previous line despite being
> > over 80, this is logical split which increases readability.
>
> Okay.. will move the 'MICRO) -' one line before
> >
> > > - return DIV_ROUND_CLOSEST(ic_clk * (tLOW + tf), MICRO) - 1 + offset;
> > > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tLOW + tf), MICRO) - 1 +
> > > + offset;
> >
> > Broken indentation.
>
> Why it's broken indentation? I'm asking to know for the next time. The word
> 'offset' is not part of DIV_ROUND_CLOSEST_ULL parentheses. In wrong
> indentation the checkpatch shout about it, but it didn't happen with the
> above.
The continuation line of the expression should go under the opening
parentheses, but you are right, the part outside DIV_ should be under
D and not as you suggested below.
But the problem is that you made illogical split while I suggested to leave
DIV_...() on one line and the rest on the other.
> Does the below the correct indentation?
No.
return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * tSYMBOL, MICRO) -
8 + offset;
return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tSYMBOL + tf), MICRO) -
3 + offset;
return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tLOW + tf), MICRO) -
1 + offset;
--
With Best Regards,
Andy Shevchenko