Thread (32 messages) 32 messages, 5 authors, 2013-03-29

Re: [PATCH 2/3] powerpc/mpic: add global timer support

From: Scott Wood <hidden>
Date: 2013-03-27 17:11:51

On 03/26/2013 10:23:38 PM, Wang Dongsheng-B40534 wrote:
=20
=20
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Wednesday, March 27, 2013 1:32 AM
To: Wang Dongsheng-B40534
Cc: Wood Scott-B07421; Gala Kumar-B11780; =20
linuxppc-dev@lists.ozlabs.org;
quoted
Li Yang-R58472
Subject: Re: [PATCH 2/3] powerpc/mpic: add global timer support

On 03/25/2013 10:29:58 PM, Wang Dongsheng-B40534 wrote:
quoted
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Saturday, March 23, 2013 6:30 AM
To: Wang Dongsheng-B40534
Cc: Wood Scott-B07421; Gala Kumar-B11780;
linuxppc-dev@lists.ozlabs.org;
quoted
Li Yang-R58472
Subject: Re: [PATCH 2/3] powerpc/mpic: add global timer support

On 03/22/2013 01:14:51 AM, Wang Dongsheng-B40534 wrote:
quoted
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Thursday, March 21, 2013 7:00 AM
To: Wang Dongsheng-B40534
Cc: Wood Scott-B07421; Gala Kumar-B11780;
linuxppc-dev@lists.ozlabs.org;
quoted
Li Yang-R58472
Subject: Re: [PATCH 2/3] powerpc/mpic: add global timer =20
support
quoted
quoted
quoted
quoted
quoted
BTW, the input clock frequency has been similarly scaled, =20
yet
quoted
quoted
you
quoted
quoted
don't
quoted
try to scrounge up that information to get further =20
precision...
quoted
quoted
quoted
quoted
quoted
Let's go back patch, do you think the code is repeated?
I will remove "if (!(priv->flags & FSL_GLOBAL_TIMER))" branch,
there
quoted
quoted
will be no redundant code.
I'd rather that branch be kept and the more complicated branch
deleted,
quoted
and priv->timerfreq frequency be adjusted on initialization to
account
quoted
for the scaler.
static void convert_ticks_to_time(struct timer_group_priv *priv,
                const u64 ticks, struct timeval *time) {
        u64 tmp_sec;

        time->tv_sec =3D (__kernel_time_t)div_u64(ticks,
priv->timerfreq);
        tmp_sec =3D (u64)time->tv_sec * (u64)priv->timerfreq;

        time->tv_usec =3D (__kernel_suseconds_t)
                div_u64((ticks - tmp_sec) * 1000000, =20
priv->timerfreq);
quoted
quoted
        return;
}

timer_group_get_freq() {
	...
	if (priv->flags & FSL_GLOBAL_TIMER) {
		div =3D (1 << (MPIC_TIMER_TCR_CLKDIV_64 >> 8)) * 8;
		priv->timerfreq /=3D div;
	}
	...
}
Do you want to do that?
	if (priv->flags & FSL_GLOBAL_TIMER)
		priv->timerfreq /=3D 64;

...but otherwise yes.
Ok, I would like do this.
=20
if (priv->flags & FSL_GLOBAL_TIMER) {
	div =3D (1 << (MPIC_TIMER_TCR_CLKDIV_64 >> 8)) * 8;
	priv->timerfreq /=3D div;
Why?  What do you get out of that obfuscation?

-Scott=
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help