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