Thread (6 messages) 6 messages, 2 authors, 2011-09-01

Re: [PATCH] powerpc/time: When starting the decrementer don't zero the other bits in TCR

From: Kumar Gala <hidden>
Date: 2011-09-01 13:56:12

On Sep 1, 2011, at 3:31 AM, Tudor Laurentiu wrote:
On 9/1/2011 9:27 AM, Kumar Gala wrote:
quoted
=20
On Aug 25, 2011, at 7:19 AM, Laurentiu Tudor wrote:
=20
quoted
Clearing the other TCR bits might break code that sets them (e.g. to =
setup
quoted
quoted
the watchdog or fixed interval timer) before start_cpu_decrementer() =
gets
quoted
quoted
called.
=20
Can you be more specific about the case you're concerned about.  I'm =
not sure we want to leave the FIT enabled if it was previously.  =
Watchdog I could possibly see leaving alone.
=20
My particular case was this: I was experimenting with having the =
watchdog enabled during the boot process, in case something goes wrong =
before the normal watchdog mechanism kicks in. That didn't work without =
making this modification.
Then, thinking that having a function start_cpu_decrementer() touching =
the other timers and not only the decrementer as its name implies might =
not be good. So I submitted this patch to the public mailing list to let =
the community decide if it's useful.

So I think renaming the function is fine, and I think not touching the =
watchdog bits is also reasonable.  So if you update the patch along =
those lines I think we can push in.  I do want to make sure that the FIT =
is disabled as we dont expect it.

Probably add a comment about how care needs to be taken if the wathchdog =
is enable be firmware or a previous kernel.
=20
quoted
quoted
Signed-off-by: Laurentiu Tudor<redacted>
---
arch/powerpc/kernel/time.c |    2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
=20
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 03b29a6..e8b5cdc 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -721,7 +721,7 @@ void start_cpu_decrementer(void)
	mtspr(SPRN_TSR, TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS);
=20
	/* Enable decrementer interrupt */
-	mtspr(SPRN_TCR, TCR_DIE);
+	mtspr(SPRN_TCR, mfspr(SPRN_TCR) | TCR_DIE);
#endif /* defined(CONFIG_BOOKE) || defined(CONFIG_40x) */
}
=20
--
1.7.1
=20
=20
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
=20
=20
=20
=20
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help