Messages in this thread | | | Date | Wed, 14 Dec 2011 19:37:39 +0100 | From | Jens Rottmann <> | Subject | Re: IRQF_TIMER | IRQF_SHARED ? |
| |
Jens Rottmann schrieb: > Andres Salomon schrieb: >> Just loading cs5535-clockevt should start the periodic timer. >> On my XO-1, IRQ 7 starts firing immediately. > Hmm, no, doesn't work. :-| In /proc/interrupts IRQ 0 gets increased, > not (in my case) IRQ 11.
Update: I found that SMP-enabled kernels (like the generic one I was using) do load cs5535-clockevt fine but ignore it and keep using the pit timer instead.
Responsible seems kernel/time/tick-common.c: tick_check_new_device() /* * If the cpu affinity of the device interrupt can not * be set, ignore it. */ if (!irq_can_set_affinity(newdev->irq)) goto out_bc;
Looks like it has been that way for quite some time, maybe cs5535-clockevt hasn't ever worked on SMP kernels.
If I turn off SMP, cs5535-clockevt replaces the pit timer and the MFGPT IRQ starts firing just as you said - at least on 3.0.9. 3.2-rc5 prefers to hang instead, looks like no timer events get generated. Sigh.
I'll try to narrow it down tomorrow, but now I'm calling it a day.
Cheers Jens
| |