aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc/kernel/auxio.c2
-rw-r--r--arch/sparc/kernel/ioport.c2
-rw-r--r--arch/sparc/kernel/irq.c8
-rw-r--r--arch/sparc/kernel/pcic.c4
-rw-r--r--arch/sparc/kernel/process.c2
-rw-r--r--arch/sparc/kernel/sun4d_irq.c2
-rw-r--r--arch/sparc/kernel/sun4m_irq.c2
-rw-r--r--arch/sparc/kernel/systbls.S5
-rw-r--r--arch/sparc/prom/printf.c2
-rw-r--r--arch/sparc64/Kconfig3
-rw-r--r--arch/sparc64/defconfig124
-rw-r--r--arch/sparc64/kernel/devices.c2
-rw-r--r--arch/sparc64/kernel/of_device.c4
-rw-r--r--arch/sparc64/kernel/pci.c4
-rw-r--r--arch/sparc64/kernel/pci_fire.c2
-rw-r--r--arch/sparc64/kernel/pci_iommu.c2
-rw-r--r--arch/sparc64/kernel/pci_sun4v.c2
-rw-r--r--arch/sparc64/kernel/process.c2
-rw-r--r--arch/sparc64/kernel/prom.c2
-rw-r--r--arch/sparc64/kernel/systbls.S7
-rw-r--r--arch/sparc64/kernel/time.c230
-rw-r--r--arch/sparc64/mm/init.c2
-rw-r--r--drivers/char/tty_io.c1
-rw-r--r--drivers/sbus/char/envctrl.c1
-rw-r--r--include/asm-sparc/unistd.h5
-rw-r--r--include/asm-sparc64/unistd.h5
26 files changed, 310 insertions, 117 deletions
diff --git a/arch/sparc/kernel/auxio.c b/arch/sparc/kernel/auxio.c
index 118f3eca373e..baf4ed3fb0f3 100644
--- a/arch/sparc/kernel/auxio.c
+++ b/arch/sparc/kernel/auxio.c
@@ -88,7 +88,7 @@ void set_auxio(unsigned char bits_on, unsigned char bits_off)
88 break; 88 break;
89 case sun4m: 89 case sun4m:
90 if(!auxio_register) 90 if(!auxio_register)
91 break; /* VME chassic sun4m, no auxio. */ 91 break; /* VME chassis sun4m, no auxio. */
92 regval = sbus_readb(auxio_register); 92 regval = sbus_readb(auxio_register);
93 sbus_writeb(((regval | bits_on) & ~bits_off) | AUXIO_ORMEIN4M, 93 sbus_writeb(((regval | bits_on) & ~bits_off) | AUXIO_ORMEIN4M,
94 auxio_register); 94 auxio_register);
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 987ec6782f99..62182d2d7b0d 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -617,7 +617,7 @@ void *pci_alloc_consistent(struct pci_dev *pdev, size_t len, dma_addr_t *pba)
617 * size must be the same as what as passed into pci_alloc_consistent, 617 * size must be the same as what as passed into pci_alloc_consistent,
618 * and likewise dma_addr must be the same as what *dma_addrp was set to. 618 * and likewise dma_addr must be the same as what *dma_addrp was set to.
619 * 619 *
620 * References to the memory and mappings assosciated with cpu_addr/dma_addr 620 * References to the memory and mappings associated with cpu_addr/dma_addr
621 * past this call are illegal. 621 * past this call are illegal.
622 */ 622 */
623void pci_free_consistent(struct pci_dev *pdev, size_t n, void *p, dma_addr_t ba) 623void pci_free_consistent(struct pci_dev *pdev, size_t n, void *p, dma_addr_t ba)
diff --git a/arch/sparc/kernel/irq.c b/arch/sparc/kernel/irq.c
index bdbefa8a9742..f257a67bcf93 100644
--- a/arch/sparc/kernel/irq.c
+++ b/arch/sparc/kernel/irq.c
@@ -1,6 +1,6 @@
1/* $Id: irq.c,v 1.114 2001/12/11 04:55:51 davem Exp $ 1/* $Id: irq.c,v 1.114 2001/12/11 04:55:51 davem Exp $
2 * arch/sparc/kernel/irq.c: Interrupt request handling routines. On the 2 * arch/sparc/kernel/irq.c: Interrupt request handling routines. On the
3 * Sparc the IRQ's are basically 'cast in stone' 3 * Sparc the IRQs are basically 'cast in stone'
4 * and you are supposed to probe the prom's device 4 * and you are supposed to probe the prom's device
5 * node trees to find out who's got which IRQ. 5 * node trees to find out who's got which IRQ.
6 * 6 *
@@ -330,7 +330,7 @@ void handler_irq(int irq, struct pt_regs * regs)
330 irq_enter(); 330 irq_enter();
331 disable_pil_irq(irq); 331 disable_pil_irq(irq);
332#ifdef CONFIG_SMP 332#ifdef CONFIG_SMP
333 /* Only rotate on lower priority IRQ's (scsi, ethernet, etc.). */ 333 /* Only rotate on lower priority IRQs (scsi, ethernet, etc.). */
334 if((sparc_cpu_model==sun4m) && (irq < 10)) 334 if((sparc_cpu_model==sun4m) && (irq < 10))
335 smp4m_irq_rotate(cpu); 335 smp4m_irq_rotate(cpu);
336#endif 336#endif
@@ -371,7 +371,7 @@ void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs)
371} 371}
372#endif 372#endif
373 373
374/* Fast IRQ's on the Sparc can only have one routine attached to them, 374/* Fast IRQs on the Sparc can only have one routine attached to them,
375 * thus no sharing possible. 375 * thus no sharing possible.
376 */ 376 */
377int request_fast_irq(unsigned int irq, 377int request_fast_irq(unsigned int irq,
@@ -608,7 +608,7 @@ void __init init_IRQ(void)
608 break; 608 break;
609 609
610 default: 610 default:
611 prom_printf("Cannot initialize IRQ's on this Sun machine..."); 611 prom_printf("Cannot initialize IRQs on this Sun machine...");
612 break; 612 break;
613 } 613 }
614 btfixup(); 614 btfixup();
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
index 5ca7e8f42bd9..791771196905 100644
--- a/arch/sparc/kernel/pcic.c
+++ b/arch/sparc/kernel/pcic.c
@@ -755,7 +755,7 @@ void __init pci_time_init(void)
755static __inline__ unsigned long do_gettimeoffset(void) 755static __inline__ unsigned long do_gettimeoffset(void)
756{ 756{
757 /* 757 /*
758 * We devide all to 100 758 * We divide all by 100
759 * to have microsecond resolution and to avoid overflow 759 * to have microsecond resolution and to avoid overflow
760 */ 760 */
761 unsigned long count = 761 unsigned long count =
@@ -956,7 +956,7 @@ EXPORT_SYMBOL(pci_device_to_OF_node);
956 * Also, think for a moment about likes of floppy.c that 956 * Also, think for a moment about likes of floppy.c that
957 * include architecture specific parts. They may want to redefine ins/outs. 957 * include architecture specific parts. They may want to redefine ins/outs.
958 * 958 *
959 * We do not use horroble macroses here because we want to 959 * We do not use horrible macros here because we want to
960 * advance pointer by sizeof(size). 960 * advance pointer by sizeof(size).
961 */ 961 */
962void outsb(unsigned long addr, const void *src, unsigned long count) 962void outsb(unsigned long addr, const void *src, unsigned long count)
diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c
index 2940d2c1a778..8c37f8f5adb7 100644
--- a/arch/sparc/kernel/process.c
+++ b/arch/sparc/kernel/process.c
@@ -683,7 +683,7 @@ out:
683 * NOTE! Only a kernel-only process(ie the swapper or direct descendants 683 * NOTE! Only a kernel-only process(ie the swapper or direct descendants
684 * who haven't done an "execve()") should use this: it will work within 684 * who haven't done an "execve()") should use this: it will work within
685 * a system call from a "real" process, but the process memory space will 685 * a system call from a "real" process, but the process memory space will
686 * not be free'd until both the parent and the child have exited. 686 * not be freed until both the parent and the child have exited.
687 */ 687 */
688pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) 688pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
689{ 689{
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c
index 116d6a241ca2..396797e20c39 100644
--- a/arch/sparc/kernel/sun4d_irq.c
+++ b/arch/sparc/kernel/sun4d_irq.c
@@ -521,7 +521,7 @@ static void __init sun4d_init_timers(irq_handler_t counter_fn)
521 lvl14_save[2] += smp4d_ticker - real_irq_entry; 521 lvl14_save[2] += smp4d_ticker - real_irq_entry;
522 522
523 /* For SMP we use the level 14 ticker, however the bootup code 523 /* For SMP we use the level 14 ticker, however the bootup code
524 * has copied the firmwares level 14 vector into boot cpu's 524 * has copied the firmware's level 14 vector into the boot cpu's
525 * trap table, we must fix this now or we get squashed. 525 * trap table, we must fix this now or we get squashed.
526 */ 526 */
527 local_irq_save(flags); 527 local_irq_save(flags);
diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c
index a654c16f4027..91a803ea88be 100644
--- a/arch/sparc/kernel/sun4m_irq.c
+++ b/arch/sparc/kernel/sun4m_irq.c
@@ -299,7 +299,7 @@ static void __init sun4m_init_timers(irq_handler_t counter_fn)
299 struct tt_entry *trap_table = &sparc_ttable[SP_TRAP_IRQ1 + (14 - 1)]; 299 struct tt_entry *trap_table = &sparc_ttable[SP_TRAP_IRQ1 + (14 - 1)];
300 300
301 /* For SMP we use the level 14 ticker, however the bootup code 301 /* For SMP we use the level 14 ticker, however the bootup code
302 * has copied the firmwares level 14 vector into boot cpu's 302 * has copied the firmware's level 14 vector into the boot cpu's
303 * trap table, we must fix this now or we get squashed. 303 * trap table, we must fix this now or we get squashed.
304 */ 304 */
305 local_irq_save(flags); 305 local_irq_save(flags);
diff --git a/arch/sparc/kernel/systbls.S b/arch/sparc/kernel/systbls.S
index e3f5b8ed4c52..90b52d4dab9a 100644
--- a/arch/sparc/kernel/systbls.S
+++ b/arch/sparc/kernel/systbls.S
@@ -80,7 +80,7 @@ sys_call_table:
80/*295*/ .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare 80/*295*/ .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
81/*300*/ .long sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy 81/*300*/ .long sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy
82/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait 82/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
83/*310*/ .long sys_utimensat 83/*310*/ .long sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd
84 84
85#ifdef CONFIG_SUNOS_EMUL 85#ifdef CONFIG_SUNOS_EMUL
86 /* Now the SunOS syscall table. */ 86 /* Now the SunOS syscall table. */
@@ -197,6 +197,7 @@ sunos_sys_table:
197 .long sunos_nosys, sunos_nosys, sunos_nosys 197 .long sunos_nosys, sunos_nosys, sunos_nosys
198 .long sunos_nosys, sunos_nosys, sunos_nosys 198 .long sunos_nosys, sunos_nosys, sunos_nosys
199 .long sunos_nosys 199 .long sunos_nosys
200/*310*/ .long sunos_nosys 200/*310*/ .long sunos_nosys, sunos_nosys, sunos_nosys
201 .long sunos_nosys
201 202
202#endif 203#endif
diff --git a/arch/sparc/prom/printf.c b/arch/sparc/prom/printf.c
index dc8b598bedbb..27fdac99f790 100644
--- a/arch/sparc/prom/printf.c
+++ b/arch/sparc/prom/printf.c
@@ -5,7 +5,7 @@
5 * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com) 5 * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
6 * 6 *
7 * We used to warn all over the code: DO NOT USE prom_printf(), 7 * We used to warn all over the code: DO NOT USE prom_printf(),
8 * and yet people do. Anton's banking code was outputing banks 8 * and yet people do. Anton's banking code was outputting banks
9 * with prom_printf for most of the 2.4 lifetime. Since an effective 9 * with prom_printf for most of the 2.4 lifetime. Since an effective
10 * stick is not available, we deployed a carrot: an early printk 10 * stick is not available, we deployed a carrot: an early printk
11 * through PROM by means of -p boot option. This ought to fix it. 11 * through PROM by means of -p boot option. This ought to fix it.
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index ad8d6b256a70..831781cab271 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -226,9 +226,6 @@ config ARCH_SPARSEMEM_DEFAULT
226 def_bool y 226 def_bool y
227 select SPARSEMEM_STATIC 227 select SPARSEMEM_STATIC
228 228
229config LARGE_ALLOCS
230 def_bool y
231
232source "mm/Kconfig" 229source "mm/Kconfig"
233 230
234config ISA 231config ISA
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 37c2d3695658..585ef4fb7591 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.21 3# Linux kernel version: 2.6.21
4# Sun May 6 22:46:54 2007 4# Fri May 11 14:31:45 2007
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -9,6 +9,7 @@ CONFIG_GENERIC_TIME=y
9CONFIG_GENERIC_CLOCKEVENTS=y 9CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_64BIT=y 10CONFIG_64BIT=y
11CONFIG_MMU=y 11CONFIG_MMU=y
12CONFIG_QUICKLIST=y
12CONFIG_STACKTRACE_SUPPORT=y 13CONFIG_STACKTRACE_SUPPORT=y
13CONFIG_LOCKDEP_SUPPORT=y 14CONFIG_LOCKDEP_SUPPORT=y
14CONFIG_ARCH_MAY_HAVE_PC_FDC=y 15CONFIG_ARCH_MAY_HAVE_PC_FDC=y
@@ -49,6 +50,7 @@ CONFIG_POSIX_MQUEUE=y
49# CONFIG_UTS_NS is not set 50# CONFIG_UTS_NS is not set
50# CONFIG_AUDIT is not set 51# CONFIG_AUDIT is not set
51# CONFIG_IKCONFIG is not set 52# CONFIG_IKCONFIG is not set
53CONFIG_LOG_BUF_SHIFT=18
52CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
53CONFIG_RELAY=y 55CONFIG_RELAY=y
54# CONFIG_BLK_DEV_INITRD is not set 56# CONFIG_BLK_DEV_INITRD is not set
@@ -66,14 +68,20 @@ CONFIG_BUG=y
66CONFIG_ELF_CORE=y 68CONFIG_ELF_CORE=y
67CONFIG_BASE_FULL=y 69CONFIG_BASE_FULL=y
68CONFIG_FUTEX=y 70CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y 72CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y
70CONFIG_SHMEM=y 76CONFIG_SHMEM=y
71CONFIG_SLAB=y
72CONFIG_VM_EVENT_COUNTERS=y 77CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_SLUB_DEBUG=y
79# CONFIG_SLAB is not set
80CONFIG_SLUB=y
81# CONFIG_SLOB is not set
73CONFIG_RT_MUTEXES=y 82CONFIG_RT_MUTEXES=y
74# CONFIG_TINY_SHMEM is not set 83# CONFIG_TINY_SHMEM is not set
75CONFIG_BASE_SMALL=0 84CONFIG_BASE_SMALL=0
76# CONFIG_SLOB is not set
77 85
78# 86#
79# Loadable module support 87# Loadable module support
@@ -137,7 +145,6 @@ CONFIG_HUGETLB_PAGE_SIZE_4MB=y
137CONFIG_ARCH_SELECT_MEMORY_MODEL=y 145CONFIG_ARCH_SELECT_MEMORY_MODEL=y
138CONFIG_ARCH_SPARSEMEM_ENABLE=y 146CONFIG_ARCH_SPARSEMEM_ENABLE=y
139CONFIG_ARCH_SPARSEMEM_DEFAULT=y 147CONFIG_ARCH_SPARSEMEM_DEFAULT=y
140CONFIG_LARGE_ALLOCS=y
141CONFIG_SELECT_MEMORY_MODEL=y 148CONFIG_SELECT_MEMORY_MODEL=y
142# CONFIG_FLATMEM_MANUAL is not set 149# CONFIG_FLATMEM_MANUAL is not set
143# CONFIG_DISCONTIGMEM_MANUAL is not set 150# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -148,6 +155,7 @@ CONFIG_SPARSEMEM_STATIC=y
148CONFIG_SPLIT_PTLOCK_CPUS=4 155CONFIG_SPLIT_PTLOCK_CPUS=4
149CONFIG_RESOURCES_64BIT=y 156CONFIG_RESOURCES_64BIT=y
150CONFIG_ZONE_DMA_FLAG=0 157CONFIG_ZONE_DMA_FLAG=0
158CONFIG_NR_QUICK=1
151CONFIG_SBUS=y 159CONFIG_SBUS=y
152CONFIG_SBUSCHAR=y 160CONFIG_SBUSCHAR=y
153CONFIG_SUN_AUXIO=y 161CONFIG_SUN_AUXIO=y
@@ -305,6 +313,7 @@ CONFIG_NET_TCPPROBE=m
305# CONFIG_WIRELESS_EXT is not set 313# CONFIG_WIRELESS_EXT is not set
306# CONFIG_MAC80211 is not set 314# CONFIG_MAC80211 is not set
307# CONFIG_IEEE80211 is not set 315# CONFIG_IEEE80211 is not set
316# CONFIG_RFKILL is not set
308 317
309# 318#
310# Device Drivers 319# Device Drivers
@@ -359,8 +368,10 @@ CONFIG_ATA_OVER_ETH=m
359# 368#
360# Misc devices 369# Misc devices
361# 370#
371# CONFIG_PHANTOM is not set
362# CONFIG_SGI_IOC4 is not set 372# CONFIG_SGI_IOC4 is not set
363# CONFIG_TIFM_CORE is not set 373# CONFIG_TIFM_CORE is not set
374# CONFIG_BLINK is not set
364 375
365# 376#
366# ATA/ATAPI/MFM/RLL support 377# ATA/ATAPI/MFM/RLL support
@@ -379,6 +390,7 @@ CONFIG_BLK_DEV_IDECD=y
379# CONFIG_BLK_DEV_IDEFLOPPY is not set 390# CONFIG_BLK_DEV_IDEFLOPPY is not set
380# CONFIG_BLK_DEV_IDESCSI is not set 391# CONFIG_BLK_DEV_IDESCSI is not set
381# CONFIG_IDE_TASK_IOCTL is not set 392# CONFIG_IDE_TASK_IOCTL is not set
393CONFIG_IDE_PROC_FS=y
382 394
383# 395#
384# IDE chipset support/bugfixes 396# IDE chipset support/bugfixes
@@ -386,6 +398,7 @@ CONFIG_BLK_DEV_IDECD=y
386CONFIG_IDE_GENERIC=y 398CONFIG_IDE_GENERIC=y
387CONFIG_BLK_DEV_IDEPCI=y 399CONFIG_BLK_DEV_IDEPCI=y
388# CONFIG_IDEPCI_SHARE_IRQ is not set 400# CONFIG_IDEPCI_SHARE_IRQ is not set
401CONFIG_IDEPCI_PCIBUS_ORDER=y
389# CONFIG_BLK_DEV_OFFBOARD is not set 402# CONFIG_BLK_DEV_OFFBOARD is not set
390# CONFIG_BLK_DEV_GENERIC is not set 403# CONFIG_BLK_DEV_GENERIC is not set
391# CONFIG_BLK_DEV_OPTI621 is not set 404# CONFIG_BLK_DEV_OPTI621 is not set
@@ -521,6 +534,7 @@ CONFIG_DM_SNAPSHOT=m
521CONFIG_DM_MIRROR=m 534CONFIG_DM_MIRROR=m
522CONFIG_DM_ZERO=m 535CONFIG_DM_ZERO=m
523# CONFIG_DM_MULTIPATH is not set 536# CONFIG_DM_MULTIPATH is not set
537# CONFIG_DM_DELAY is not set
524 538
525# 539#
526# Fusion MPT device support 540# Fusion MPT device support
@@ -533,6 +547,7 @@ CONFIG_DM_ZERO=m
533# 547#
534# IEEE 1394 (FireWire) support 548# IEEE 1394 (FireWire) support
535# 549#
550# CONFIG_FIREWIRE is not set
536# CONFIG_IEEE1394 is not set 551# CONFIG_IEEE1394 is not set
537 552
538# 553#
@@ -629,6 +644,8 @@ CONFIG_BNX2=m
629# CONFIG_S2IO is not set 644# CONFIG_S2IO is not set
630# CONFIG_MYRI10GE is not set 645# CONFIG_MYRI10GE is not set
631# CONFIG_NETXEN_NIC is not set 646# CONFIG_NETXEN_NIC is not set
647# CONFIG_MLX4_CORE is not set
648CONFIG_MLX4_DEBUG=y
632 649
633# 650#
634# Token Ring devices 651# Token Ring devices
@@ -642,6 +659,16 @@ CONFIG_BNX2=m
642# CONFIG_WLAN_80211 is not set 659# CONFIG_WLAN_80211 is not set
643 660
644# 661#
662# USB Network Adapters
663#
664# CONFIG_USB_CATC is not set
665# CONFIG_USB_KAWETH is not set
666# CONFIG_USB_PEGASUS is not set
667# CONFIG_USB_RTL8150 is not set
668# CONFIG_USB_USBNET_MII is not set
669# CONFIG_USB_USBNET is not set
670
671#
645# Wan interfaces 672# Wan interfaces
646# 673#
647# CONFIG_WAN is not set 674# CONFIG_WAN is not set
@@ -711,11 +738,18 @@ CONFIG_MOUSE_PS2_LIFEBOOK=y
711CONFIG_MOUSE_PS2_TRACKPOINT=y 738CONFIG_MOUSE_PS2_TRACKPOINT=y
712# CONFIG_MOUSE_PS2_TOUCHKIT is not set 739# CONFIG_MOUSE_PS2_TOUCHKIT is not set
713CONFIG_MOUSE_SERIAL=y 740CONFIG_MOUSE_SERIAL=y
741# CONFIG_MOUSE_APPLETOUCH is not set
714# CONFIG_MOUSE_VSXXXAA is not set 742# CONFIG_MOUSE_VSXXXAA is not set
715# CONFIG_INPUT_JOYSTICK is not set 743# CONFIG_INPUT_JOYSTICK is not set
744# CONFIG_INPUT_TABLET is not set
716# CONFIG_INPUT_TOUCHSCREEN is not set 745# CONFIG_INPUT_TOUCHSCREEN is not set
717CONFIG_INPUT_MISC=y 746CONFIG_INPUT_MISC=y
718CONFIG_INPUT_SPARCSPKR=y 747CONFIG_INPUT_SPARCSPKR=y
748# CONFIG_INPUT_ATI_REMOTE is not set
749# CONFIG_INPUT_ATI_REMOTE2 is not set
750# CONFIG_INPUT_KEYSPAN_REMOTE is not set
751# CONFIG_INPUT_POWERMATE is not set
752# CONFIG_INPUT_YEALINK is not set
719# CONFIG_INPUT_UINPUT is not set 753# CONFIG_INPUT_UINPUT is not set
720# CONFIG_INPUT_POLLDEV is not set 754# CONFIG_INPUT_POLLDEV is not set
721 755
@@ -762,14 +796,9 @@ CONFIG_UNIX98_PTYS=y
762# IPMI 796# IPMI
763# 797#
764# CONFIG_IPMI_HANDLER is not set 798# CONFIG_IPMI_HANDLER is not set
765
766#
767# Watchdog Cards
768#
769# CONFIG_WATCHDOG is not set 799# CONFIG_WATCHDOG is not set
770# CONFIG_HW_RANDOM is not set 800# CONFIG_HW_RANDOM is not set
771CONFIG_RTC=y 801CONFIG_RTC=y
772# CONFIG_DTLK is not set
773# CONFIG_R3964 is not set 802# CONFIG_R3964 is not set
774# CONFIG_APPLICOM is not set 803# CONFIG_APPLICOM is not set
775# CONFIG_DRM is not set 804# CONFIG_DRM is not set
@@ -779,6 +808,7 @@ CONFIG_RTC=y
779# TPM devices 808# TPM devices
780# 809#
781# CONFIG_TCG_TPM is not set 810# CONFIG_TCG_TPM is not set
811CONFIG_DEVPORT=y
782CONFIG_I2C=y 812CONFIG_I2C=y
783CONFIG_I2C_BOARDINFO=y 813CONFIG_I2C_BOARDINFO=y
784# CONFIG_I2C_CHARDEV is not set 814# CONFIG_I2C_CHARDEV is not set
@@ -841,13 +871,10 @@ CONFIG_I2C_ALGOBIT=y
841# Dallas's 1-wire bus 871# Dallas's 1-wire bus
842# 872#
843# CONFIG_W1 is not set 873# CONFIG_W1 is not set
844
845#
846# Hardware Monitoring support
847#
848CONFIG_HWMON=y 874CONFIG_HWMON=y
849# CONFIG_HWMON_VID is not set 875# CONFIG_HWMON_VID is not set
850# CONFIG_SENSORS_ABITUGURU is not set 876# CONFIG_SENSORS_ABITUGURU is not set
877# CONFIG_SENSORS_AD7418 is not set
851# CONFIG_SENSORS_ADM1021 is not set 878# CONFIG_SENSORS_ADM1021 is not set
852# CONFIG_SENSORS_ADM1025 is not set 879# CONFIG_SENSORS_ADM1025 is not set
853# CONFIG_SENSORS_ADM1026 is not set 880# CONFIG_SENSORS_ADM1026 is not set
@@ -874,6 +901,7 @@ CONFIG_HWMON=y
874# CONFIG_SENSORS_LM90 is not set 901# CONFIG_SENSORS_LM90 is not set
875# CONFIG_SENSORS_LM92 is not set 902# CONFIG_SENSORS_LM92 is not set
876# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set
877# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
878# CONFIG_SENSORS_PC87427 is not set 906# CONFIG_SENSORS_PC87427 is not set
879# CONFIG_SENSORS_SIS5595 is not set 907# CONFIG_SENSORS_SIS5595 is not set
@@ -901,23 +929,30 @@ CONFIG_HWMON=y
901# Multimedia devices 929# Multimedia devices
902# 930#
903# CONFIG_VIDEO_DEV is not set 931# CONFIG_VIDEO_DEV is not set
932# CONFIG_DVB_CORE is not set
933# CONFIG_DAB is not set
904 934
905# 935#
906# Digital Video Broadcasting Devices 936# Graphics support
907# 937#
908# CONFIG_DVB is not set 938# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
909# CONFIG_USB_DABUSB is not set
910 939
911# 940#
912# Graphics support 941# Display device support
913# 942#
914# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 943# CONFIG_DISPLAY_SUPPORT is not set
944# CONFIG_VGASTATE is not set
915CONFIG_FB=y 945CONFIG_FB=y
916# CONFIG_FIRMWARE_EDID is not set 946# CONFIG_FIRMWARE_EDID is not set
917CONFIG_FB_DDC=y 947CONFIG_FB_DDC=y
918CONFIG_FB_CFB_FILLRECT=y 948CONFIG_FB_CFB_FILLRECT=y
919CONFIG_FB_CFB_COPYAREA=y 949CONFIG_FB_CFB_COPYAREA=y
920CONFIG_FB_CFB_IMAGEBLIT=y 950CONFIG_FB_CFB_IMAGEBLIT=y
951# CONFIG_FB_SYS_FILLRECT is not set
952# CONFIG_FB_SYS_COPYAREA is not set
953# CONFIG_FB_SYS_IMAGEBLIT is not set
954# CONFIG_FB_SYS_FOPS is not set
955CONFIG_FB_DEFERRED_IO=y
921# CONFIG_FB_SVGALIB is not set 956# CONFIG_FB_SVGALIB is not set
922# CONFIG_FB_MACMODES is not set 957# CONFIG_FB_MACMODES is not set
923# CONFIG_FB_BACKLIGHT is not set 958# CONFIG_FB_BACKLIGHT is not set
@@ -949,7 +984,10 @@ CONFIG_FB_RADEON_I2C=y
949# CONFIG_FB_KYRO is not set 984# CONFIG_FB_KYRO is not set
950# CONFIG_FB_3DFX is not set 985# CONFIG_FB_3DFX is not set
951# CONFIG_FB_VOODOO1 is not set 986# CONFIG_FB_VOODOO1 is not set
987# CONFIG_FB_VT8623 is not set
952# CONFIG_FB_TRIDENT is not set 988# CONFIG_FB_TRIDENT is not set
989# CONFIG_FB_ARK is not set
990# CONFIG_FB_PM3 is not set
953# CONFIG_FB_XVR500 is not set 991# CONFIG_FB_XVR500 is not set
954# CONFIG_FB_XVR2500 is not set 992# CONFIG_FB_XVR2500 is not set
955# CONFIG_FB_PCI is not set 993# CONFIG_FB_PCI is not set
@@ -972,10 +1010,6 @@ CONFIG_FONTS=y
972CONFIG_FONT_SUN8x16=y 1010CONFIG_FONT_SUN8x16=y
973# CONFIG_FONT_SUN12x22 is not set 1011# CONFIG_FONT_SUN12x22 is not set
974# CONFIG_FONT_10x18 is not set 1012# CONFIG_FONT_10x18 is not set
975
976#
977# Logo configuration
978#
979CONFIG_LOGO=y 1013CONFIG_LOGO=y
980# CONFIG_LOGO_LINUX_MONO is not set 1014# CONFIG_LOGO_LINUX_MONO is not set
981# CONFIG_LOGO_LINUX_VGA16 is not set 1015# CONFIG_LOGO_LINUX_VGA16 is not set
@@ -1083,6 +1117,7 @@ CONFIG_SND_ALI5451=m
1083# USB devices 1117# USB devices
1084# 1118#
1085# CONFIG_SND_USB_AUDIO is not set 1119# CONFIG_SND_USB_AUDIO is not set
1120# CONFIG_SND_USB_CAIAQ is not set
1086 1121
1087# 1122#
1088# ALSA Sparc devices 1123# ALSA Sparc devices
@@ -1092,7 +1127,7 @@ CONFIG_SND_SUN_CS4231=m
1092# CONFIG_SND_SUN_DBRI is not set 1127# CONFIG_SND_SUN_DBRI is not set
1093 1128
1094# 1129#
1095# SoC audio support 1130# System on Chip audio support
1096# 1131#
1097# CONFIG_SND_SOC is not set 1132# CONFIG_SND_SOC is not set
1098 1133
@@ -1178,37 +1213,10 @@ CONFIG_USB_STORAGE=m
1178# CONFIG_USB_LIBUSUAL is not set 1213# CONFIG_USB_LIBUSUAL is not set
1179 1214
1180# 1215#
1181# USB Input Devices
1182#
1183# CONFIG_USB_AIPTEK is not set
1184# CONFIG_USB_WACOM is not set
1185# CONFIG_USB_ACECAD is not set
1186# CONFIG_USB_KBTAB is not set
1187# CONFIG_USB_POWERMATE is not set
1188# CONFIG_USB_TOUCHSCREEN is not set
1189# CONFIG_USB_YEALINK is not set
1190# CONFIG_USB_XPAD is not set
1191# CONFIG_USB_ATI_REMOTE is not set
1192# CONFIG_USB_ATI_REMOTE2 is not set
1193# CONFIG_USB_KEYSPAN_REMOTE is not set
1194# CONFIG_USB_APPLETOUCH is not set
1195# CONFIG_USB_GTCO is not set
1196
1197#
1198# USB Imaging devices 1216# USB Imaging devices
1199# 1217#
1200# CONFIG_USB_MDC800 is not set 1218# CONFIG_USB_MDC800 is not set
1201# CONFIG_USB_MICROTEK is not set 1219# CONFIG_USB_MICROTEK is not set
1202
1203#
1204# USB Network Adapters
1205#
1206# CONFIG_USB_CATC is not set
1207# CONFIG_USB_KAWETH is not set
1208# CONFIG_USB_PEGASUS is not set
1209# CONFIG_USB_RTL8150 is not set
1210# CONFIG_USB_USBNET_MII is not set
1211# CONFIG_USB_USBNET is not set
1212# CONFIG_USB_MON is not set 1220# CONFIG_USB_MON is not set
1213 1221
1214# 1222#
@@ -1252,10 +1260,6 @@ CONFIG_USB_STORAGE=m
1252# USB Gadget Support 1260# USB Gadget Support
1253# 1261#
1254# CONFIG_USB_GADGET is not set 1262# CONFIG_USB_GADGET is not set
1255
1256#
1257# MMC/SD Card support
1258#
1259# CONFIG_MMC is not set 1263# CONFIG_MMC is not set
1260 1264
1261# 1265#
@@ -1299,14 +1303,6 @@ CONFIG_USB_STORAGE=m
1299# 1303#
1300 1304
1301# 1305#
1302# Auxiliary Display support
1303#
1304
1305#
1306# Virtualization
1307#
1308
1309#
1310# Misc Linux/SPARC drivers 1306# Misc Linux/SPARC drivers
1311# 1307#
1312CONFIG_SUN_OPENPROMIO=m 1308CONFIG_SUN_OPENPROMIO=m
@@ -1486,11 +1482,9 @@ CONFIG_DEBUG_FS=y
1486# CONFIG_HEADERS_CHECK is not set 1482# CONFIG_HEADERS_CHECK is not set
1487CONFIG_DEBUG_KERNEL=y 1483CONFIG_DEBUG_KERNEL=y
1488# CONFIG_DEBUG_SHIRQ is not set 1484# CONFIG_DEBUG_SHIRQ is not set
1489CONFIG_LOG_BUF_SHIFT=18
1490CONFIG_DETECT_SOFTLOCKUP=y 1485CONFIG_DETECT_SOFTLOCKUP=y
1491CONFIG_SCHEDSTATS=y 1486CONFIG_SCHEDSTATS=y
1492# CONFIG_TIMER_STATS is not set 1487# CONFIG_TIMER_STATS is not set
1493# CONFIG_DEBUG_SLAB is not set
1494# CONFIG_DEBUG_RT_MUTEXES is not set 1488# CONFIG_DEBUG_RT_MUTEXES is not set
1495# CONFIG_RT_MUTEX_TESTER is not set 1489# CONFIG_RT_MUTEX_TESTER is not set
1496# CONFIG_DEBUG_SPINLOCK is not set 1490# CONFIG_DEBUG_SPINLOCK is not set
@@ -1574,6 +1568,7 @@ CONFIG_CRYPTO_TEST=m
1574CONFIG_BITREVERSE=y 1568CONFIG_BITREVERSE=y
1575CONFIG_CRC_CCITT=m 1569CONFIG_CRC_CCITT=m
1576CONFIG_CRC16=m 1570CONFIG_CRC16=m
1571# CONFIG_CRC_ITU_T is not set
1577CONFIG_CRC32=y 1572CONFIG_CRC32=y
1578CONFIG_LIBCRC32C=m 1573CONFIG_LIBCRC32C=m
1579CONFIG_ZLIB_INFLATE=y 1574CONFIG_ZLIB_INFLATE=y
@@ -1581,3 +1576,4 @@ CONFIG_ZLIB_DEFLATE=y
1581CONFIG_PLIST=y 1576CONFIG_PLIST=y
1582CONFIG_HAS_IOMEM=y 1577CONFIG_HAS_IOMEM=y
1583CONFIG_HAS_IOPORT=y 1578CONFIG_HAS_IOPORT=y
1579CONFIG_HAS_DMA=y
diff --git a/arch/sparc64/kernel/devices.c b/arch/sparc64/kernel/devices.c
index ec10f7edcf86..0e03c8e218cd 100644
--- a/arch/sparc64/kernel/devices.c
+++ b/arch/sparc64/kernel/devices.c
@@ -21,7 +21,7 @@
21#include <asm/timer.h> 21#include <asm/timer.h>
22#include <asm/cpudata.h> 22#include <asm/cpudata.h>
23 23
24/* Used to synchronize acceses to NatSemi SUPER I/O chip configure 24/* Used to synchronize accesses to NatSemi SUPER I/O chip configure
25 * operations in asm/ns87303.h 25 * operations in asm/ns87303.h
26 */ 26 */
27DEFINE_SPINLOCK(ns87303_lock); 27DEFINE_SPINLOCK(ns87303_lock);
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index 9ac9a307999a..7455f5d05519 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -596,7 +596,7 @@ static void __init build_device_resources(struct of_device *op,
596 /* Convert to num-entries. */ 596 /* Convert to num-entries. */
597 num_reg /= na + ns; 597 num_reg /= na + ns;
598 598
599 /* Prevent overruning the op->resources[] array. */ 599 /* Prevent overrunning the op->resources[] array. */
600 if (num_reg > PROMREG_MAX) { 600 if (num_reg > PROMREG_MAX) {
601 printk(KERN_WARNING "%s: Too many regs (%d), " 601 printk(KERN_WARNING "%s: Too many regs (%d), "
602 "limiting to %d.\n", 602 "limiting to %d.\n",
@@ -904,7 +904,7 @@ static struct of_device * __init scan_one_device(struct device_node *dp,
904 op->num_irqs = 0; 904 op->num_irqs = 0;
905 } 905 }
906 906
907 /* Prevent overruning the op->irqs[] array. */ 907 /* Prevent overrunning the op->irqs[] array. */
908 if (op->num_irqs > PROMINTR_MAX) { 908 if (op->num_irqs > PROMINTR_MAX) {
909 printk(KERN_WARNING "%s: Too many irqs (%d), " 909 printk(KERN_WARNING "%s: Too many irqs (%d), "
910 "limiting to %d.\n", 910 "limiting to %d.\n",
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index cf9a75112d0f..d4c077dc5e85 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -495,8 +495,8 @@ static void __devinit apb_calc_first_last(u8 map, u32 *first_p, u32 *last_p)
495 *last_p = last; 495 *last_p = last;
496} 496}
497 497
498static void __init pci_resource_adjust(struct resource *res, 498static void pci_resource_adjust(struct resource *res,
499 struct resource *root) 499 struct resource *root)
500{ 500{
501 res->start += root->start; 501 res->start += root->start;
502 res->end += root->start; 502 res->end += root->start;
diff --git a/arch/sparc64/kernel/pci_fire.c b/arch/sparc64/kernel/pci_fire.c
index 9198c1a0f7a5..7f5d473901c4 100644
--- a/arch/sparc64/kernel/pci_fire.c
+++ b/arch/sparc64/kernel/pci_fire.c
@@ -37,7 +37,7 @@ static void pci_fire_scan_bus(struct pci_pbm_info *pbm)
37#define FIRE_IOMMU_CONTROL 0x40000UL 37#define FIRE_IOMMU_CONTROL 0x40000UL
38#define FIRE_IOMMU_TSBBASE 0x40008UL 38#define FIRE_IOMMU_TSBBASE 0x40008UL
39#define FIRE_IOMMU_FLUSH 0x40100UL 39#define FIRE_IOMMU_FLUSH 0x40100UL
40#define FIRE_IOMMU_FLUSHINV 0x40100UL 40#define FIRE_IOMMU_FLUSHINV 0x40108UL
41 41
42static void pci_fire_pbm_iommu_init(struct pci_pbm_info *pbm) 42static void pci_fire_pbm_iommu_init(struct pci_pbm_info *pbm)
43{ 43{
diff --git a/arch/sparc64/kernel/pci_iommu.c b/arch/sparc64/kernel/pci_iommu.c
index dfd6f9f4790b..70d2364fdfe0 100644
--- a/arch/sparc64/kernel/pci_iommu.c
+++ b/arch/sparc64/kernel/pci_iommu.c
@@ -542,7 +542,7 @@ static inline void fill_sg(iopte_t *iopte, struct scatterlist *sg,
542/* Map a set of buffers described by SGLIST with NELEMS array 542/* Map a set of buffers described by SGLIST with NELEMS array
543 * elements in streaming mode for PCI DMA. 543 * elements in streaming mode for PCI DMA.
544 * When making changes here, inspect the assembly output. I was having 544 * When making changes here, inspect the assembly output. I was having
545 * hard time to kepp this routine out of using stack slots for holding variables. 545 * hard time to keep this routine out of using stack slots for holding variables.
546 */ 546 */
547static int pci_4u_map_sg(struct pci_dev *pdev, struct scatterlist *sglist, int nelems, int direction) 547static int pci_4u_map_sg(struct pci_dev *pdev, struct scatterlist *sglist, int nelems, int direction)
548{ 548{
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c
index 34df4047587a..044e8ec4c0f5 100644
--- a/arch/sparc64/kernel/pci_sun4v.c
+++ b/arch/sparc64/kernel/pci_sun4v.c
@@ -731,7 +731,7 @@ struct pci_sun4v_msiq_entry {
731 731
732 u64 msi_address; 732 u64 msi_address;
733 733
734 /* The format of this value is message type dependant. 734 /* The format of this value is message type dependent.
735 * For MSI bits 15:0 are the data from the MSI packet. 735 * For MSI bits 15:0 are the data from the MSI packet.
736 * For MSI-X bits 31:0 are the data from the MSI packet. 736 * For MSI-X bits 31:0 are the data from the MSI packet.
737 * For MSG, the message code and message routing code where: 737 * For MSG, the message code and message routing code where:
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index 8e3c6e435110..952762bfb4c0 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -677,7 +677,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
677 * NOTE! Only a kernel-only process(ie the swapper or direct descendants 677 * NOTE! Only a kernel-only process(ie the swapper or direct descendants
678 * who haven't done an "execve()") should use this: it will work within 678 * who haven't done an "execve()") should use this: it will work within
679 * a system call from a "real" process, but the process memory space will 679 * a system call from a "real" process, but the process memory space will
680 * not be free'd until both the parent and the child have exited. 680 * not be freed until both the parent and the child have exited.
681 */ 681 */
682pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) 682pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
683{ 683{
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index b7976b14d0ba..02830e4671f5 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -899,7 +899,7 @@ static unsigned int fire_irq_build(struct device_node *dp,
899 /* The interrupt map registers do not have an INO field 899 /* The interrupt map registers do not have an INO field
900 * like other chips do. They return zero in the INO 900 * like other chips do. They return zero in the INO
901 * field, and the interrupt controller number is controlled 901 * field, and the interrupt controller number is controlled
902 * in bits 6 thru 9. So in order for build_irq() to get 902 * in bits 6 to 9. So in order for build_irq() to get
903 * the INO right we pass it in as part of the fixup 903 * the INO right we pass it in as part of the fixup
904 * which will get added to the map register zero value 904 * which will get added to the map register zero value
905 * read by build_irq(). 905 * read by build_irq().
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S
index 5fe7f9ad4a92..8765e32155a0 100644
--- a/arch/sparc64/kernel/systbls.S
+++ b/arch/sparc64/kernel/systbls.S
@@ -81,7 +81,7 @@ sys_call_table32:
81 .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare 81 .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare
82/*300*/ .word compat_sys_set_robust_list, compat_sys_get_robust_list, compat_sys_migrate_pages, compat_sys_mbind, compat_sys_get_mempolicy 82/*300*/ .word compat_sys_set_robust_list, compat_sys_get_robust_list, compat_sys_migrate_pages, compat_sys_mbind, compat_sys_get_mempolicy
83 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait 83 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait
84/*310*/ .word compat_sys_utimensat 84/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd
85 85
86#endif /* CONFIG_COMPAT */ 86#endif /* CONFIG_COMPAT */
87 87
@@ -153,7 +153,7 @@ sys_call_table:
153 .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare 153 .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
154/*300*/ .word sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy 154/*300*/ .word sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy
155 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait 155 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
156/*310*/ .word sys_utimensat 156/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd
157 157
158#if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \ 158#if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
159 defined(CONFIG_SOLARIS_EMUL_MODULE) 159 defined(CONFIG_SOLARIS_EMUL_MODULE)
@@ -271,6 +271,7 @@ sunos_sys_table:
271 .word sunos_nosys, sunos_nosys, sunos_nosys 271 .word sunos_nosys, sunos_nosys, sunos_nosys
272 .word sunos_nosys, sunos_nosys, sunos_nosys 272 .word sunos_nosys, sunos_nosys, sunos_nosys
273 .word sunos_nosys 273 .word sunos_nosys
274/*310*/ .long sunos_nosys 274/*310*/ .word sunos_nosys, sunos_nosys, sunos_nosys
275 .word sunos_nosys
275 276
276#endif 277#endif
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
index 259063f41f95..6b9a06e42542 100644
--- a/arch/sparc64/kernel/time.c
+++ b/arch/sparc64/kernel/time.c
@@ -55,6 +55,7 @@ DEFINE_SPINLOCK(rtc_lock);
55void __iomem *mstk48t02_regs = NULL; 55void __iomem *mstk48t02_regs = NULL;
56#ifdef CONFIG_PCI 56#ifdef CONFIG_PCI
57unsigned long ds1287_regs = 0UL; 57unsigned long ds1287_regs = 0UL;
58static void __iomem *bq4802_regs;
58#endif 59#endif
59 60
60static void __iomem *mstk48t08_regs; 61static void __iomem *mstk48t08_regs;
@@ -565,12 +566,14 @@ static void __init set_system_time(void)
565 void __iomem *mregs = mstk48t02_regs; 566 void __iomem *mregs = mstk48t02_regs;
566#ifdef CONFIG_PCI 567#ifdef CONFIG_PCI
567 unsigned long dregs = ds1287_regs; 568 unsigned long dregs = ds1287_regs;
569 void __iomem *bregs = bq4802_regs;
568#else 570#else
569 unsigned long dregs = 0UL; 571 unsigned long dregs = 0UL;
572 void __iomem *bregs = 0UL;
570#endif 573#endif
571 u8 tmp; 574 u8 tmp;
572 575
573 if (!mregs && !dregs) { 576 if (!mregs && !dregs && !bregs) {
574 prom_printf("Something wrong, clock regs not mapped yet.\n"); 577 prom_printf("Something wrong, clock regs not mapped yet.\n");
575 prom_halt(); 578 prom_halt();
576 } 579 }
@@ -589,6 +592,33 @@ static void __init set_system_time(void)
589 day = MSTK_REG_DOM(mregs); 592 day = MSTK_REG_DOM(mregs);
590 mon = MSTK_REG_MONTH(mregs); 593 mon = MSTK_REG_MONTH(mregs);
591 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) ); 594 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) );
595 } else if (bregs) {
596 unsigned char val = readb(bregs + 0x0e);
597 unsigned int century;
598
599 /* BQ4802 RTC chip. */
600
601 writeb(val | 0x08, bregs + 0x0e);
602
603 sec = readb(bregs + 0x00);
604 min = readb(bregs + 0x02);
605 hour = readb(bregs + 0x04);
606 day = readb(bregs + 0x06);
607 mon = readb(bregs + 0x09);
608 year = readb(bregs + 0x0a);
609 century = readb(bregs + 0x0f);
610
611 writeb(val, bregs + 0x0e);
612
613 BCD_TO_BIN(sec);
614 BCD_TO_BIN(min);
615 BCD_TO_BIN(hour);
616 BCD_TO_BIN(day);
617 BCD_TO_BIN(mon);
618 BCD_TO_BIN(year);
619 BCD_TO_BIN(century);
620
621 year += (century * 100);
592 } else { 622 } else {
593 /* Dallas 12887 RTC chip. */ 623 /* Dallas 12887 RTC chip. */
594 624
@@ -712,7 +742,8 @@ static int __init clock_model_matches(const char *model)
712 strcmp(model, "m5819") && 742 strcmp(model, "m5819") &&
713 strcmp(model, "m5819p") && 743 strcmp(model, "m5819p") &&
714 strcmp(model, "m5823") && 744 strcmp(model, "m5823") &&
715 strcmp(model, "ds1287")) 745 strcmp(model, "ds1287") &&
746 strcmp(model, "bq4802"))
716 return 0; 747 return 0;
717 748
718 return 1; 749 return 1;
@@ -722,9 +753,13 @@ static int __devinit clock_probe(struct of_device *op, const struct of_device_id
722{ 753{
723 struct device_node *dp = op->node; 754 struct device_node *dp = op->node;
724 const char *model = of_get_property(dp, "model", NULL); 755 const char *model = of_get_property(dp, "model", NULL);
756 const char *compat = of_get_property(dp, "compatible", NULL);
725 unsigned long size, flags; 757 unsigned long size, flags;
726 void __iomem *regs; 758 void __iomem *regs;
727 759
760 if (!model)
761 model = compat;
762
728 if (!model || !clock_model_matches(model)) 763 if (!model || !clock_model_matches(model))
729 return -ENODEV; 764 return -ENODEV;
730 765
@@ -746,6 +781,8 @@ static int __devinit clock_probe(struct of_device *op, const struct of_device_id
746 !strcmp(model, "m5819p") || 781 !strcmp(model, "m5819p") ||
747 !strcmp(model, "m5823")) { 782 !strcmp(model, "m5823")) {
748 ds1287_regs = (unsigned long) regs; 783 ds1287_regs = (unsigned long) regs;
784 } else if (!strcmp(model, "bq4802")) {
785 bq4802_regs = regs;
749 } else 786 } else
750#endif 787#endif
751 if (model[5] == '0' && model[6] == '2') { 788 if (model[5] == '0' && model[6] == '2') {
@@ -1070,8 +1107,10 @@ static int set_rtc_mmss(unsigned long nowtime)
1070 void __iomem *mregs = mstk48t02_regs; 1107 void __iomem *mregs = mstk48t02_regs;
1071#ifdef CONFIG_PCI 1108#ifdef CONFIG_PCI
1072 unsigned long dregs = ds1287_regs; 1109 unsigned long dregs = ds1287_regs;
1110 void __iomem *bregs = bq4802_regs;
1073#else 1111#else
1074 unsigned long dregs = 0UL; 1112 unsigned long dregs = 0UL;
1113 void __iomem *bregs = 0UL;
1075#endif 1114#endif
1076 unsigned long flags; 1115 unsigned long flags;
1077 u8 tmp; 1116 u8 tmp;
@@ -1080,7 +1119,7 @@ static int set_rtc_mmss(unsigned long nowtime)
1080 * Not having a register set can lead to trouble. 1119 * Not having a register set can lead to trouble.
1081 * Also starfire doesn't have a tod clock. 1120 * Also starfire doesn't have a tod clock.
1082 */ 1121 */
1083 if (!mregs && !dregs) 1122 if (!mregs && !dregs & !bregs)
1084 return -1; 1123 return -1;
1085 1124
1086 if (mregs) { 1125 if (mregs) {
@@ -1129,6 +1168,37 @@ static int set_rtc_mmss(unsigned long nowtime)
1129 1168
1130 return -1; 1169 return -1;
1131 } 1170 }
1171 } else if (bregs) {
1172 int retval = 0;
1173 unsigned char val = readb(bregs + 0x0e);
1174
1175 /* BQ4802 RTC chip. */
1176
1177 writeb(val | 0x08, bregs + 0x0e);
1178
1179 chip_minutes = readb(bregs + 0x02);
1180 BCD_TO_BIN(chip_minutes);
1181 real_seconds = nowtime % 60;
1182 real_minutes = nowtime / 60;
1183 if (((abs(real_minutes - chip_minutes) + 15)/30) & 1)
1184 real_minutes += 30;
1185 real_minutes %= 60;
1186
1187 if (abs(real_minutes - chip_minutes) < 30) {
1188 BIN_TO_BCD(real_seconds);
1189 BIN_TO_BCD(real_minutes);
1190 writeb(real_seconds, bregs + 0x00);
1191 writeb(real_minutes, bregs + 0x02);
1192 } else {
1193 printk(KERN_WARNING
1194 "set_rtc_mmss: can't update from %d to %d\n",
1195 chip_minutes, real_minutes);
1196 retval = -1;
1197 }
1198
1199 writeb(val, bregs + 0x0e);
1200
1201 return retval;
1132 } else { 1202 } else {
1133 int retval = 0; 1203 int retval = 0;
1134 unsigned char save_control, save_freq_select; 1204 unsigned char save_control, save_freq_select;
@@ -1259,38 +1329,152 @@ static void to_tm(int tim, struct rtc_time *tm)
1259/* Both Starfire and SUN4V give us seconds since Jan 1st, 1970, 1329/* Both Starfire and SUN4V give us seconds since Jan 1st, 1970,
1260 * aka Unix time. So we have to convert to/from rtc_time. 1330 * aka Unix time. So we have to convert to/from rtc_time.
1261 */ 1331 */
1262static inline void mini_get_rtc_time(struct rtc_time *time) 1332static void starfire_get_rtc_time(struct rtc_time *time)
1263{ 1333{
1264 unsigned long flags; 1334 u32 seconds = starfire_get_time();
1265 u32 seconds;
1266 1335
1267 spin_lock_irqsave(&rtc_lock, flags); 1336 to_tm(seconds, time);
1268 seconds = 0; 1337 time->tm_year -= 1900;
1269 if (this_is_starfire) 1338 time->tm_mon -= 1;
1270 seconds = starfire_get_time(); 1339}
1271 else if (tlb_type == hypervisor) 1340
1272 seconds = hypervisor_get_time(); 1341static int starfire_set_rtc_time(struct rtc_time *time)
1273 spin_unlock_irqrestore(&rtc_lock, flags); 1342{
1343 u32 seconds = mktime(time->tm_year + 1900, time->tm_mon + 1,
1344 time->tm_mday, time->tm_hour,
1345 time->tm_min, time->tm_sec);
1346
1347 return starfire_set_time(seconds);
1348}
1349
1350static void hypervisor_get_rtc_time(struct rtc_time *time)
1351{
1352 u32 seconds = hypervisor_get_time();
1274 1353
1275 to_tm(seconds, time); 1354 to_tm(seconds, time);
1276 time->tm_year -= 1900; 1355 time->tm_year -= 1900;
1277 time->tm_mon -= 1; 1356 time->tm_mon -= 1;
1278} 1357}
1279 1358
1280static inline int mini_set_rtc_time(struct rtc_time *time) 1359static int hypervisor_set_rtc_time(struct rtc_time *time)
1281{ 1360{
1282 u32 seconds = mktime(time->tm_year + 1900, time->tm_mon + 1, 1361 u32 seconds = mktime(time->tm_year + 1900, time->tm_mon + 1,
1283 time->tm_mday, time->tm_hour, 1362 time->tm_mday, time->tm_hour,
1284 time->tm_min, time->tm_sec); 1363 time->tm_min, time->tm_sec);
1364
1365 return hypervisor_set_time(seconds);
1366}
1367
1368static void bq4802_get_rtc_time(struct rtc_time *time)
1369{
1370 unsigned char val = readb(bq4802_regs + 0x0e);
1371 unsigned int century;
1372
1373 writeb(val | 0x08, bq4802_regs + 0x0e);
1374
1375 time->tm_sec = readb(bq4802_regs + 0x00);
1376 time->tm_min = readb(bq4802_regs + 0x02);
1377 time->tm_hour = readb(bq4802_regs + 0x04);
1378 time->tm_mday = readb(bq4802_regs + 0x06);
1379 time->tm_mon = readb(bq4802_regs + 0x09);
1380 time->tm_year = readb(bq4802_regs + 0x0a);
1381 time->tm_wday = readb(bq4802_regs + 0x08);
1382 century = readb(bq4802_regs + 0x0f);
1383
1384 writeb(val, bq4802_regs + 0x0e);
1385
1386 BCD_TO_BIN(time->tm_sec);
1387 BCD_TO_BIN(time->tm_min);
1388 BCD_TO_BIN(time->tm_hour);
1389 BCD_TO_BIN(time->tm_mday);
1390 BCD_TO_BIN(time->tm_mon);
1391 BCD_TO_BIN(time->tm_year);
1392 BCD_TO_BIN(time->tm_wday);
1393 BCD_TO_BIN(century);
1394
1395 time->tm_year += (century * 100);
1396 time->tm_year -= 1900;
1397
1398 time->tm_mon--;
1399}
1400
1401static int bq4802_set_rtc_time(struct rtc_time *time)
1402{
1403 unsigned char val = readb(bq4802_regs + 0x0e);
1404 unsigned char sec, min, hrs, day, mon, yrs, century;
1405 unsigned int year;
1406
1407 year = time->tm_year + 1900;
1408 century = year / 100;
1409 yrs = year % 100;
1410
1411 mon = time->tm_mon + 1; /* tm_mon starts at zero */
1412 day = time->tm_mday;
1413 hrs = time->tm_hour;
1414 min = time->tm_min;
1415 sec = time->tm_sec;
1416
1417 BIN_TO_BCD(sec);
1418 BIN_TO_BCD(min);
1419 BIN_TO_BCD(hrs);
1420 BIN_TO_BCD(day);
1421 BIN_TO_BCD(mon);
1422 BIN_TO_BCD(yrs);
1423 BIN_TO_BCD(century);
1424
1425 writeb(val | 0x08, bq4802_regs + 0x0e);
1426
1427 writeb(sec, bq4802_regs + 0x00);
1428 writeb(min, bq4802_regs + 0x02);
1429 writeb(hrs, bq4802_regs + 0x04);
1430 writeb(day, bq4802_regs + 0x06);
1431 writeb(mon, bq4802_regs + 0x09);
1432 writeb(yrs, bq4802_regs + 0x0a);
1433 writeb(century, bq4802_regs + 0x0f);
1434
1435 writeb(val, bq4802_regs + 0x0e);
1436
1437 return 0;
1438}
1439
1440struct mini_rtc_ops {
1441 void (*get_rtc_time)(struct rtc_time *);
1442 int (*set_rtc_time)(struct rtc_time *);
1443};
1444
1445static struct mini_rtc_ops starfire_rtc_ops = {
1446 .get_rtc_time = starfire_get_rtc_time,
1447 .set_rtc_time = starfire_set_rtc_time,
1448};
1449
1450static struct mini_rtc_ops hypervisor_rtc_ops = {
1451 .get_rtc_time = hypervisor_get_rtc_time,
1452 .set_rtc_time = hypervisor_set_rtc_time,
1453};
1454
1455static struct mini_rtc_ops bq4802_rtc_ops = {
1456 .get_rtc_time = bq4802_get_rtc_time,
1457 .set_rtc_time = bq4802_set_rtc_time,
1458};
1459
1460static struct mini_rtc_ops *mini_rtc_ops;
1461
1462static inline void mini_get_rtc_time(struct rtc_time *time)
1463{
1464 unsigned long flags;
1465
1466 spin_lock_irqsave(&rtc_lock, flags);
1467 mini_rtc_ops->get_rtc_time(time);
1468 spin_unlock_irqrestore(&rtc_lock, flags);
1469}
1470
1471static inline int mini_set_rtc_time(struct rtc_time *time)
1472{
1285 unsigned long flags; 1473 unsigned long flags;
1286 int err; 1474 int err;
1287 1475
1288 spin_lock_irqsave(&rtc_lock, flags); 1476 spin_lock_irqsave(&rtc_lock, flags);
1289 err = -ENODEV; 1477 err = mini_rtc_ops->set_rtc_time(time);
1290 if (this_is_starfire)
1291 err = starfire_set_time(seconds);
1292 else if (tlb_type == hypervisor)
1293 err = hypervisor_set_time(seconds);
1294 spin_unlock_irqrestore(&rtc_lock, flags); 1478 spin_unlock_irqrestore(&rtc_lock, flags);
1295 1479
1296 return err; 1480 return err;
@@ -1391,7 +1575,13 @@ static int __init rtc_mini_init(void)
1391{ 1575{
1392 int retval; 1576 int retval;
1393 1577
1394 if (tlb_type != hypervisor && !this_is_starfire) 1578 if (tlb_type == hypervisor)
1579 mini_rtc_ops = &hypervisor_rtc_ops;
1580 else if (this_is_starfire)
1581 mini_rtc_ops = &starfire_rtc_ops;
1582 else if (bq4802_regs)
1583 mini_rtc_ops = &bq4802_rtc_ops;
1584 else
1395 return -ENODEV; 1585 return -ENODEV;
1396 1586
1397 printk(KERN_INFO "Mini RTC Driver\n"); 1587 printk(KERN_INFO "Mini RTC Driver\n");
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index d7004eaf1c8e..6e5b01d779d2 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1008,7 +1008,7 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
1008 if (initrd_start) { 1008 if (initrd_start) {
1009 size = initrd_end - initrd_start; 1009 size = initrd_end - initrd_start;
1010 1010
1011 /* Resert the initrd image area. */ 1011 /* Reserve the initrd image area. */
1012#ifdef CONFIG_DEBUG_BOOTMEM 1012#ifdef CONFIG_DEBUG_BOOTMEM
1013 prom_printf("reserve_bootmem(initrd): base[%llx] size[%lx]\n", 1013 prom_printf("reserve_bootmem(initrd): base[%llx] size[%lx]\n",
1014 initrd_start, initrd_end); 1014 initrd_start, initrd_end);
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index fe62c2170d01..bc849957508d 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -3880,6 +3880,7 @@ void proc_clear_tty(struct task_struct *p)
3880 p->signal->tty = NULL; 3880 p->signal->tty = NULL;
3881 spin_unlock_irq(&p->sighand->siglock); 3881 spin_unlock_irq(&p->sighand->siglock);
3882} 3882}
3883EXPORT_SYMBOL(proc_clear_tty);
3883 3884
3884static void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty) 3885static void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty)
3885{ 3886{
diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c
index f2be2ead8742..8328acab47fd 100644
--- a/drivers/sbus/char/envctrl.c
+++ b/drivers/sbus/char/envctrl.c
@@ -30,6 +30,7 @@
30#include <asm/ebus.h> 30#include <asm/ebus.h>
31#include <asm/uaccess.h> 31#include <asm/uaccess.h>
32#include <asm/envctrl.h> 32#include <asm/envctrl.h>
33#include <asm/io.h>
33 34
34#define ENVCTRL_MINOR 162 35#define ENVCTRL_MINOR 162
35 36
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h
index da9bdc5e5526..64471bcd96f9 100644
--- a/include/asm-sparc/unistd.h
+++ b/include/asm-sparc/unistd.h
@@ -327,8 +327,11 @@
327#define __NR_getcpu 308 327#define __NR_getcpu 308
328#define __NR_epoll_pwait 309 328#define __NR_epoll_pwait 309
329#define __NR_utimensat 310 329#define __NR_utimensat 310
330#define __NR_signalfd 311
331#define __NR_timerfd 312
332#define __NR_eventfd 313
330 333
331#define NR_SYSCALLS 311 334#define NR_SYSCALLS 314
332 335
333#ifdef __KERNEL__ 336#ifdef __KERNEL__
334#define __ARCH_WANT_IPC_PARSE_VERSION 337#define __ARCH_WANT_IPC_PARSE_VERSION
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h
index fcd627594f4c..53e96ed9c024 100644
--- a/include/asm-sparc64/unistd.h
+++ b/include/asm-sparc64/unistd.h
@@ -329,8 +329,11 @@
329#define __NR_getcpu 308 329#define __NR_getcpu 308
330#define __NR_epoll_pwait 309 330#define __NR_epoll_pwait 309
331#define __NR_utimensat 310 331#define __NR_utimensat 310
332#define __NR_signalfd 311
333#define __NR_timerfd 312
334#define __NR_eventfd 313
332 335
333#define NR_SYSCALLS 311 336#define NR_SYSCALLS 314
334 337
335#ifdef __KERNEL__ 338#ifdef __KERNEL__
336/* sysconf options, for SunOS compatibility */ 339/* sysconf options, for SunOS compatibility */