aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/leon/patches/010-apbuart_ampopts.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/leon/patches/010-apbuart_ampopts.patch')
-rw-r--r--target/linux/leon/patches/010-apbuart_ampopts.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/target/linux/leon/patches/010-apbuart_ampopts.patch b/target/linux/leon/patches/010-apbuart_ampopts.patch
new file mode 100644
index 000000000..f47c54a7b
--- /dev/null
+++ b/target/linux/leon/patches/010-apbuart_ampopts.patch
@@ -0,0 +1,41 @@
+From 8129fa5437f3fe5f95bac180a43cd5a856cebdf3 Mon Sep 17 00:00:00 2001
+From: Daniel Hellstrom <daniel@gaisler.com>
+Date: Wed, 20 Oct 2010 17:00:41 +0200
+Subject: [PATCH] Added support for ampopts in APBUART driver. Used in AMP systems.
+
+Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
+---
+ drivers/serial/apbuart.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+--- a/drivers/serial/apbuart.c
++++ b/drivers/serial/apbuart.c
+@@ -26,6 +26,7 @@
+ #include <linux/of.h>
+ #include <linux/of_device.h>
+ #include <linux/of_platform.h>
++#include <linux/of_irq.h>
+ #include <linux/platform_device.h>
+ #include <linux/io.h>
+ #include <linux/serial_core.h>
+@@ -573,7 +574,6 @@ static int __devinit apbuart_probe(struc
+ printk(KERN_INFO "grlib-apbuart at 0x%llx, irq %d\n",
+ (unsigned long long) port->mapbase, port->irq);
+ return 0;
+-
+ }
+
+ static struct of_device_id __initdata apbuart_match[] = {
+@@ -620,9 +620,12 @@ static void grlib_apbuart_configure(void
+ int *vendor = (int *) of_get_property(np, "vendor", NULL);
+ int *device = (int *) of_get_property(np, "device", NULL);
+ int *irqs = (int *) of_get_property(np, "interrupts", NULL);
++ int *ampopts = (int *) of_get_property(np, "ampopts", NULL);
+ regs = (struct amba_prom_registers *)
+ of_get_property(np, "reg", NULL);
+
++ if (ampopts && (*ampopts == 0))
++ continue; /* Ignore if used by another OS instance */
+ if (vendor)
+ v = *vendor;
+ if (device)