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: =20quoted
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.
=20quoted
quoted
Signed-off-by: Laurentiu Tudor<redacted> --- arch/powerpc/kernel/time.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) =20diff --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