diff options
author | Jens Rottmann <JRottmann@LiPPERTEmbedded.de> | 2012-03-05 15:07:54 -0800 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-03-06 14:17:44 +0100 |
commit | fc579da75f0151eec4c465b0f79b4ef8e3dfb8c2 (patch) | |
tree | a1df7ae3d1a7b327ecaeb025d7b53c8253e5e2ca /drivers/clocksource | |
parent | d93c4071b78f4676ef70ec8f2d4bae59b6cc5523 (diff) | |
download | op-kernel-dev-fc579da75f0151eec4c465b0f79b4ef8e3dfb8c2.zip op-kernel-dev-fc579da75f0151eec4c465b0f79b4ef8e3dfb8c2.tar.gz |
cs5535-clockevt: Don't ignore MFGPT on SMP-capable kernels
On SMP-capable kernels (e.g. generic distro kernel) the cs5535-clockevt
driver loads but is not actually used.
Setting cpumask to cpu_all_mask works for UP-only kernels, but if compiled
for SMP - though still running on the same UP hardware -
kernel/time/tick-common.c:tick_check_new_device() reads this as
"non-cpu-local" and silently ignores the device.
If we leave cpumask unset clockevents_register_device() will initialize it
and the cs5535-clockevt driver will be used no matter how the kernel was
compiled. Should anyone ever manage to stick a CS553x in an SMP system
(is this even possible?) then a warning will be printed. This is fine as
the cs5535-clockevt driver was never written/tested for SMP.
If bisecting led you here this patch may have exposed a pre-existing MFGPT
problem. Configure for UP-only and re-check.
Signed-off-by: Jens Rottmann <JRottmann@LiPPERTEmbedded.de>
Acked-by: Andres Salomon <dilinger@queued.net>
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/clocksource')
-rw-r--r-- | drivers/clocksource/cs5535-clockevt.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/clocksource/cs5535-clockevt.c b/drivers/clocksource/cs5535-clockevt.c index b7dab32..315a285 100644 --- a/drivers/clocksource/cs5535-clockevt.c +++ b/drivers/clocksource/cs5535-clockevt.c @@ -100,7 +100,6 @@ static struct clock_event_device cs5535_clockevent = { .set_mode = mfgpt_set_mode, .set_next_event = mfgpt_next_event, .rating = 250, - .cpumask = cpu_all_mask, .shift = 32 }; |