summaryrefslogtreecommitdiffstats
path: root/configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch
diff options
context:
space:
mode:
Diffstat (limited to 'configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch')
-rw-r--r--configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch75
1 files changed, 0 insertions, 75 deletions
diff --git a/configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch b/configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch
deleted file mode 100644
index 2e25c68..0000000
--- a/configs/platform-rpi/patches/linux-4.4/0002-irq-bcm2836-Add-SMP-support-for-the-2836.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Andrea Merello <andrea.merello@gmail.com>
-Date: Sun, 3 May 2015 01:03:11 +0200
-Subject: [PATCH] irq: bcm2836: Add SMP support for the 2836
-
-The firmware sets the secondaries spinning waiting for a non-NULL
-value to show up in the last IPI mailbox.
-
-The original SMP port from the downstream tree was done by Andrea, and
-Eric cleaned it up/rewrote it a few times from there.
-
-Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Signed-off-by: Alexander Aring <alex.aring@gmail.com>
----
- drivers/irqchip/irq-bcm2836.c | 27 +++++++++++++++++++++++++--
- 1 file changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
-index 6ec125ef3607..c5ef4dfb5bb0 100644
---- a/drivers/irqchip/irq-bcm2836.c
-+++ b/drivers/irqchip/irq-bcm2836.c
-@@ -53,14 +53,16 @@
- /* Same status bits as above, but for FIQ. */
- #define LOCAL_FIQ_PENDING0 0x070
- /*
-- * Mailbox0 write-to-set bits. There are 16 mailboxes, 4 per CPU, and
-+ * Mailbox write-to-set bits. There are 16 mailboxes, 4 per CPU, and
- * these bits are organized by mailbox number and then CPU number. We
- * use mailbox 0 for IPIs. The mailbox's interrupt is raised while
- * any bit is set.
- */
- #define LOCAL_MAILBOX0_SET0 0x080
--/* Mailbox0 write-to-clear bits. */
-+#define LOCAL_MAILBOX3_SET0 0x08c
-+/* Mailbox write-to-clear bits. */
- #define LOCAL_MAILBOX0_CLR0 0x0c0
-+#define LOCAL_MAILBOX3_CLR0 0x0cc
-
- #define LOCAL_IRQ_CNTPSIRQ 0
- #define LOCAL_IRQ_CNTPNSIRQ 1
-@@ -226,6 +228,26 @@ static const struct irq_domain_ops bcm2836_arm_irqchip_intc_ops = {
- .xlate = irq_domain_xlate_onecell
- };
-
-+#ifdef CONFIG_SMP
-+int __init bcm2836_smp_boot_secondary(unsigned int cpu,
-+ struct task_struct *idle)
-+{
-+ unsigned long secondary_startup_phys =
-+ (unsigned long)virt_to_phys((void *)secondary_startup);
-+
-+ dsb();
-+ writel(secondary_startup_phys,
-+ intc.base + LOCAL_MAILBOX3_SET0 + 16 * cpu);
-+
-+ return 0;
-+}
-+
-+static const struct smp_operations bcm2836_smp_ops __initconst = {
-+ .smp_boot_secondary = bcm2836_smp_boot_secondary,
-+};
-+
-+#endif
-+
- static void
- bcm2836_arm_irqchip_smp_init(void)
- {
-@@ -237,6 +259,7 @@ bcm2836_arm_irqchip_smp_init(void)
- register_cpu_notifier(&bcm2836_arm_irqchip_cpu_notifier);
-
- set_smp_cross_call(bcm2836_arm_irqchip_send_ipi);
-+ smp_set_ops(&bcm2836_smp_ops);
- #endif
- }
-