arm smp support patch
Scott Valentine
svalentine at concentris-systems.com
Wed Nov 10 15:37:33 EST 2010
> -----Original Message-----
> From: Sergei Shtylyov [mailto:sshtylyov at mvista.com]
> Sent: Wednesday, November 10, 2010 1:22 AM
> To: svalentine at concentris-systems.com
> Cc: linux at arm.linux.org.uk; laguna at lists.gateworks.com;
> linux-arm-kernel at lists.infradead.org
> Subject: Re: arm smp support patch
>
> Hello.
>
> On 10-11-2010 2:33, Scott Valentine wrote:
>
> > On arm multi-core platforms that have a gic, the secondary
> cores fail
> > to wake if they are booted in WFI mode, as the
> gic_dist_init disables
> > all interrupts including IPI. I've included a simple patch to the
> > gic_dist_init function that enables interrupts 0-15 on SMP enabled
> > systems. This patch was made against linux-2.6-HEAD-151f52f.
>
> Your signoff is necessary for the patch to be applied.
>
> > diff -uNr a/arch/arm/common/gic.c b/arch/arm/common/gic.c
> > --- a/arch/arm/common/gic.c 2010-11-05 15:57:04.000000000 -1000
> > +++ b/arch/arm/common/gic.c 2010-11-09 13:08:33.000000000 -1000
> > @@ -262,6 +262,13 @@
> > for (i = 0; i< max_irq; i += 32)
> > writel(0xffffffff, base +
> GIC_DIST_ENABLE_CLEAR + i *
> > 4 / 32);
> >
> > +#ifdef CONFIG_SMP
> > + /*
> > + * Enable IPI interrupts on SMP systems so we can wake
> > +secondary
> > cores
>
> Your patch is line wrapped.
>
> > + */
> > + writel(0x0000ffff, base + GIC_DIST_ENABLE_SET); #endif
> > +
> > /*
> > * Setup the Linux IRQ subsystem.
> > */
>
> > Scott Valentine
>
> WBR, Sergei
Sorry, bad mail-client settings. Also, I'm not really a maintainer, but I will signoff as requested. Below is the non-wrapped patch:
Signed-off-by: Scott Valentine <svalentine at concentris-systems.com>
diff -uNr a/arch/arm/common/gic.c b/arch/arm/common/gic.c
--- a/arch/arm/common/gic.c 2010-11-05 15:57:04.000000000 -1000
+++ b/arch/arm/common/gic.c 2010-11-09 13:08:33.000000000 -1000
@@ -262,6 +262,13 @@
for (i = 0; i < max_irq; i += 32)
writel(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32);
+#ifdef CONFIG_SMP
+ /*
+ * Enable IPI interrupts on SMP systems so we can wake secondary cores
+ */
+ writel(0x0000ffff, base + GIC_DIST_ENABLE_SET);
+#endif
+
/*
* Setup the Linux IRQ subsystem.
*/
More information about the linux-arm-kernel
mailing list