RE: [PATCH v2 2/2] spi: add SPI controller driver for UniPhier SoC
From: Keiji Hayashibara
Date: Mon Jul 30 2018 - 01:30:35 EST
Hello Trent and Andy,
> From: Trent Piepho [mailto:tpiepho@xxxxxxxxxx]
> Sent: Friday, July 27, 2018 2:02 AM
> To: andy.shevchenko@xxxxxxxxx; Hayashibara, Keiji/æå åä <hayashibara.keiji@xxxxxxxxxxxxx>
> Subject: Re: [PATCH v2 2/2] spi: add SPI controller driver for UniPhier SoC
> On Thu, 2018-07-26 at 11:46 +0300, Andy Shevchenko wrote:
> > > +
> > > + /*
> > > + * the supported rates are even numbers from 4 to 254. (4,6,8...254)
> > > + * round up as we look for equal or less speed
> > > + */
> > > + ckrat = DIV_ROUND_UP(clk_get_rate(priv->clk), speed);
> > > + ckrat = roundup(ckrat, 2);
> > ckrat += ckrat & 1;
> Either way, the compiler produces the same code:
> add r0, r0, #1
> bic r0, r0, #1
> I.e., ckrat = (ckrat + 1) & ~1, one "add" and one "and".
> Might as well use the macro so it's clear. There is also round_up(x,y), which I believe is intended to be used
> only with power of 2 values of y.
I confirmed round_up() macro.
This macro is optimized to power of 2 argument,
and it matches to this case and clear.
I will replace to round_up() macro.