aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 18:30:54 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 18:30:54 -0500
commitf70f5b9dc74ca7d0a64c4ead3fb28da09dc1b234 (patch)
tree01f79ae109966d2ec515358481c151cda549d9ab /drivers/serial
parentb69fc2efc9205d58c820eb2eb1caa6bf873b4b0d (diff)
parent09798eb9479da3413bdf96e7d22a84d8b21e05e1 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6: (25 commits) atyfb: Fix bootup hangs on sparc64. sparc: update copyright in piggyback.c sparc: unify strip command in boot/Makefile sparc: rename piggyback_32 to piggyback sparc: fix tftpboot.img for sparc64 on little-endian host sparc: add $BITS to piggyback arguments sparc: remove obsolete ELF support in piggyback_32.c sparc: additional comments to piggyback_32.c sparc: use _start for the start entry (like 64 bit does) sparc: use trapbase in setup_arch sparc: refactor piggy_32.c Added support for ampopts in APBUART driver. Used in AMP systems. APBUART: added raw AMBA vendor/device number to match against. SPARC/LEON: avoid AMBAPP name duplicates in openprom fs when REG is missing SPARC/LEON: added support for selecting Timer Core and Timer within core LEON: added raw AMBA vendor/device number to find TIMER, IRQCTRL SPARC/LEON: added support for IRQAMP IRQ Controller SPARC/LEON: find IRQCTRL and Timer via OF-Tree, instead of hardcoded. sparc: fix sparse warnings in arch/sparc/prom for 32 bit build sparc: remove unused prom tree functions ...
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/apbuart.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c
index cc01c650a144..767ce9e396c5 100644
--- a/drivers/serial/apbuart.c
+++ b/drivers/serial/apbuart.c
@@ -26,6 +26,7 @@
26#include <linux/of.h> 26#include <linux/of.h>
27#include <linux/of_device.h> 27#include <linux/of_device.h>
28#include <linux/of_platform.h> 28#include <linux/of_platform.h>
29#include <linux/of_irq.h>
29#include <linux/platform_device.h> 30#include <linux/platform_device.h>
30#include <linux/io.h> 31#include <linux/io.h>
31#include <linux/serial_core.h> 32#include <linux/serial_core.h>
@@ -573,13 +574,15 @@ static int __devinit apbuart_probe(struct platform_device *op,
573 printk(KERN_INFO "grlib-apbuart at 0x%llx, irq %d\n", 574 printk(KERN_INFO "grlib-apbuart at 0x%llx, irq %d\n",
574 (unsigned long long) port->mapbase, port->irq); 575 (unsigned long long) port->mapbase, port->irq);
575 return 0; 576 return 0;
576
577} 577}
578 578
579static struct of_device_id __initdata apbuart_match[] = { 579static struct of_device_id __initdata apbuart_match[] = {
580 { 580 {
581 .name = "GAISLER_APBUART", 581 .name = "GAISLER_APBUART",
582 }, 582 },
583 {
584 .name = "01_00c",
585 },
583 {}, 586 {},
584}; 587};
585 588
@@ -620,9 +623,12 @@ static void grlib_apbuart_configure(void)
620 int *vendor = (int *) of_get_property(np, "vendor", NULL); 623 int *vendor = (int *) of_get_property(np, "vendor", NULL);
621 int *device = (int *) of_get_property(np, "device", NULL); 624 int *device = (int *) of_get_property(np, "device", NULL);
622 int *irqs = (int *) of_get_property(np, "interrupts", NULL); 625 int *irqs = (int *) of_get_property(np, "interrupts", NULL);
626 int *ampopts = (int *) of_get_property(np, "ampopts", NULL);
623 regs = (struct amba_prom_registers *) 627 regs = (struct amba_prom_registers *)
624 of_get_property(np, "reg", NULL); 628 of_get_property(np, "reg", NULL);
625 629
630 if (ampopts && (*ampopts == 0))
631 continue; /* Ignore if used by another OS instance */
626 if (vendor) 632 if (vendor)
627 v = *vendor; 633 v = *vendor;
628 if (device) 634 if (device)