From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/9] sunxi: initial sun7i clocks and timer support.
Date: Fri, 28 Mar 2014 09:24:23 +0100 [thread overview]
Message-ID: <201403280924.23358.marex@denx.de> (raw)
In-Reply-To: <1395994817.26869.6.camel@dagon.hellion.org.uk>
On Friday, March 28, 2014 at 09:20:17 AM, Ian Campbell wrote:
> On Thu, 2014-03-27 at 23:36 +0100, Marek Vasut wrote:
> > On Thursday, March 27, 2014 at 11:12:38 PM, Ian Campbell wrote:
> > > On Thu, 2014-03-27 at 23:00 +0100, Marek Vasut wrote:
> > > > 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.
> > >
> > > How about a static inline instead of the macro? I'm thinking with a
> > > body:
> > > {
> > >
> > > struct sunxi_timer *timers =
> > >
> > > (struct sunxi_timer_reg *)SUNXI_TIMER_BASE;
> > >
> > > return timers[TIMER_NUM]->val;
> > >
> > > }
> > > With something similar in timer_init then both the macro and the static
> > > global timer_base can be dropped.
> >
> > That's just wrapping a readl() into another function, which seems
> > unnecessary really.
>
> Sorry, but I think inlining the readl (and along with it the
> interesting/subtle) inverting functionality is a terrible idea, it
> should be wrapped in some sort of accessor precisely because it is not a
> raw readl.
>
> I'm going to make it a function as I suggested.
>
> > > BTW this macro is in arch/arm/cpu/armv7/sunxi/timer.c not a header, so
> > > I'm not sure which implementers down the line you were worried about
> > > using it in some other context where it breaks.
> >
> > People plumbing in the timer.c file who are not aware the macro has a
> > dependency which is not passed as it's parameter.
>
> What people? What plumbing? I've no idea what you are concerned about
> here.
OK, I will wait for V3 of the patch since this discussion have gone awry . Let's
talk about V3 , ok ? :)
Best regards,
Marek Vasut
next prev parent reply other threads:[~2014-03-28 8:24 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-21 21:54 [U-Boot] [PATCH v2 0/9] sunxi: initial upstreamining effort Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 1/9] sunxi: initial sun7i clocks and timer support Ian Campbell
2014-03-24 20:52 ` Marek Vasut
2014-03-24 22:42 ` Olliver Schinagl
2014-03-25 0:57 ` Marek Vasut
2014-03-25 6:35 ` Wolfgang Denk
2014-03-26 8:23 ` Ian Campbell
2014-04-13 19:55 ` Ian Campbell
2014-04-13 21:00 ` Marek Vasut
2014-03-26 8:23 ` Ian Campbell
2014-03-27 21:29 ` Ian Campbell
2014-03-27 22:00 ` Marek Vasut
2014-03-27 22:12 ` Ian Campbell
2014-03-27 22:36 ` Marek Vasut
2014-03-28 8:20 ` Ian Campbell
2014-03-28 8:24 ` Marek Vasut [this message]
2014-03-28 8:25 ` Hans de Goede
2014-03-28 8:39 ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 2/9] sunxi: initial sun7i pinmux and gpio support Ian Campbell
2014-03-24 20:54 ` Marek Vasut
2014-03-26 8:30 ` Ian Campbell
2014-03-26 8:59 ` Marek Vasut
2014-03-26 9:01 ` Wolfgang Denk
2014-03-27 21:52 ` Ian Campbell
2014-03-26 8:33 ` Ian Campbell
2014-03-26 9:01 ` Marek Vasut
2014-03-26 9:03 ` Wolfgang Denk
2014-03-26 9:39 ` Ian Campbell
2014-03-26 10:03 ` Marek Vasut
2014-03-26 14:57 ` Wolfgang Denk
2014-03-21 21:54 ` [U-Boot] [PATCH v2 3/9] sunxi: initial sun7i dram setup support Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 4/9] sunxi: initial generic sun7i cpu, board and start of day support Ian Campbell
2014-03-22 6:52 ` Wolfgang Denk
2014-03-22 7:08 ` mrnuke
2014-03-22 9:04 ` Hans de Goede
2014-03-22 9:37 ` Ian Campbell
2014-03-22 12:27 ` Wolfgang Denk
2014-03-22 15:28 ` Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 5/9] sunxi: generic sun7i build infrastructure Ian Campbell
2014-03-22 6:46 ` Wolfgang Denk
2014-03-22 10:04 ` Ian Campbell
2014-03-22 12:33 ` Wolfgang Denk
2014-03-22 15:12 ` Hans de Goede
2014-03-22 15:26 ` Ian Campbell
2014-03-22 19:31 ` Wolfgang Denk
2014-03-22 20:07 ` Hans de Goede
2014-03-24 21:01 ` Marek Vasut
2014-03-27 22:05 ` Ian Campbell
2014-03-27 22:37 ` Marek Vasut
2014-03-28 8:26 ` Ian Campbell
2014-03-28 8:37 ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 6/9] sunxi: add support for Cubietruck booting in FEL mode Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 7/9] sunxi: add gmac Ethernet support Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 8/9] sunxi: mmc support Ian Campbell
2014-03-24 21:14 ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 9/9] sunxi: non-FEL SPL boot support for sun7i Ian Campbell
2014-03-22 6:54 ` [U-Boot] [PATCH v2 0/9] sunxi: initial upstreamining effort Wolfgang Denk
2014-03-24 0:14 ` [U-Boot] [linux-sunxi] " Henrik Nordström
2014-03-24 8:05 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201403280924.23358.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.