Messages in this thread | | | Date | Tue, 18 Mar 2014 15:06:59 +0100 | From | Gregory CLEMENT <> | Subject | Re: [patch 5/5] irqchip: armanda: Sanitize set_irq_affinity() |
| |
Hi Thomas,
On 07/03/2014 18:17, Thomas Gleixner wrote: > On Fri, 7 Mar 2014, Gregory CLEMENT wrote: > >> On 06/03/2014 20:05, Jason Cooper wrote: >>> Thomas, >>> >>> nit: s/armanda/armada/ in the patch subject. >>> >>> Gregory, >>> >>> Mind providing an Ack on this? >> >> Well sorry but with this patch the kernel doesn't >> work anymore. >> >> I am investigating to find if some part could be kept. > > It might be the readback of the routing register. I don't have the > datasheet of this.
Sorry for the delay, I was on vacation without the hardware to test it.
Indeed it was the readback of the routing register. (Unfortunately the datasheet was not yet publicly available :( ). In your patch by replacing the line:
writel(mask, main_int_base + ARMADA_370_XP_INT_SOURCE_CTL(hwirq));
by the following ones:
reg = readl(main_int_base + ARMADA_370_XP_INT_SOURCE_CTL(hwirq)); reg = (reg & (~ARMADA_370_XP_INT_SOURCE_CPU_MASK)) | mask; writel(reg, main_int_base + ARMADA_370_XP_INT_SOURCE_CTL(hwirq));
with #define ARMADA_370_XP_INT_SOURCE_CPU_MASK 0xF
Then it worked.
About masking with the online CPU in the original code, the purpose was to allow sharing the SoC with an other OS by doing AMP. This feature is part of the Marvell version of the kernel. The idea was to bring this latter in the vanilla kernel, but I am not sure that all the part needed for AMP are acceptable for mainline. So I can add it back later when we will need it.
Thanks,
Gregory
> > Thanks, > > tglx >
-- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
| |