[PATCH] dmtimer posting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

> > > Cool. Here's a version that gets rid of the lookup table by
encoding
> > the
> > > posted write pending bit into the reg offset. This should be OK,
as
> > the
> > > functions are used within dmtimer.c only.

I updated your changed patch with the couple things I mentioned below.

I don't have a board handy now to check but changes are minor.

One note is some more optimization could happen later on with
reordering.  The current usage in gptimer has dmtimer_set_load()
followed by a dm_timer_start().  This causes a read/write/read/write of
the CTRL register.  Those writes could be collapsed into each other.
With a load_start().  Others maybe elsewhere.

Measurements seem to show timer CPU % usage dropping by /3 using the
original patch. Perhaps a little better with this one. However, the
timer still shows up in the profile list.

> > Ok, that looks nice and will generate a bit better code.  I thought
> > briefly on that it but wanted the change to be small and was a
little
> > worried someone might use the offset somewhere else.  But, they way
you
> > did it makes the 2nd aspect go away.
> >
> > * You have defined WPSHIFT to 8.  However, that bit is currently
taken
> > by WP_TOCR.  I chose 15 hoping if the register expanded it would be
the
> > last one in a u_int16 and still can be encoded in an op code as a
shift
> > value.  A 16 would be a good codegen value, but always assume
u_int32
> > register.  As the registers are u_int32 in current implementations,
> > probably 16 is a better value.
> 
> OK, good catch.

Now WPSHIFT is 16.

I was only half getting the intent before.  Now the offset looks like:
	31:16[posting bit]15:0[offset].

I wonder if read/write reg check is reordered if the compiler is smart
enough to not do the register read if first expression evaluates to 0.
	If( reg >> WPSHFIT) & (readl(xyz) & 0xff)

> > > The init of other timers into posted mode is not done yet, so I
> > changed
> > > the timer->posted handling too.
> >
> > Not inited in software, BUT the power on reset of the timer module
is to
> > posted mode in reset.  Its better to have someone shut it off in
both
> > places as its on by default.
> 
> OK

Now reset function does match hardware init default with posted on.
 
> > I'll tweak the points mentioned and fix a typo in the description
and
> > send a version.
> 
> OK

I fixed the typo in the description.

Regards,
Richard W.

Attachment: omap-dmtimer-posted-v3.patch
Description: omap-dmtimer-posted-v3.patch


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux