[U-Boot] [PATCH v2 1/9] sunxi: initial sun7i clocks and timer support.
Marek Vasut
marex at denx.de
Thu Mar 27 23:00:54 CET 2014
On Thursday, March 27, 2014 at 10:29:56 PM, Ian Campbell wrote:
> On Mon, 2014-03-24 at 21:52 +0100, Marek Vasut wrote:
> > > +static struct sunxi_timer *timer_base =
> > > + &((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->timer[TIMER_NUM];
> > > +
> > > +/* macro to read the 32 bit timer: since it decrements, we invert read
> > > value */ +#define READ_TIMER() (~readl(&timer_base->val))
> >
> > This macro has to go, just use ~readl() in place. But still, why do you
> > use that negation in "~readl()" anyway ?
>
> The comment right above it explains why: the timer counts backwards and
> inverting it accounts for that.
>
> This is subtle enough that I don't think using ~readl() in place in the
> 3 callers would be an improvement.
Please do it, we don't want any implementers down the line using this
"READ_TIMER()" call and getting hit by "timer_base undefined" . That macro hides
the dependency on this symbol, while if you expanded it in-place, the dependency
would be explicit. I really do want to see that macro gone, sorry.
Best regards,
Marek Vasut
More information about the U-Boot
mailing list