aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2006-03-20 12:58:02 -0500
committerKumar Gala <galak@kernel.crashing.org>2006-03-20 12:58:02 -0500
commit1a02e59a2970f9ed28ab51d3b08624b79e54d848 (patch)
tree470cce472be3b08c160e0c569648e7228651b12a /arch/powerpc
parentebcff3c773b42bce6182ec16485abca4e53fba97 (diff)
parent2c276603c3e5ebf38155a9d1fbbda656d52d138e (diff)
Merge branch 'master'
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/Kconfig19
-rw-r--r--arch/powerpc/Makefile2
-rw-r--r--arch/powerpc/boot/crt0.S5
-rw-r--r--arch/powerpc/configs/cell_defconfig94
-rw-r--r--arch/powerpc/configs/g5_defconfig174
-rw-r--r--arch/powerpc/configs/iseries_defconfig96
-rw-r--r--arch/powerpc/configs/maple_defconfig50
-rw-r--r--arch/powerpc/configs/mpc834x_sys_defconfig32
-rw-r--r--arch/powerpc/configs/pmac32_defconfig77
-rw-r--r--arch/powerpc/configs/ppc64_defconfig175
-rw-r--r--arch/powerpc/configs/pseries_defconfig127
-rw-r--r--arch/powerpc/kernel/asm-offsets.c4
-rw-r--r--arch/powerpc/kernel/cputable.c9
-rw-r--r--arch/powerpc/kernel/crash.c4
-rw-r--r--arch/powerpc/kernel/entry_32.S95
-rw-r--r--arch/powerpc/kernel/entry_64.S101
-rw-r--r--arch/powerpc/kernel/head_32.S1
-rw-r--r--arch/powerpc/kernel/head_64.S123
-rw-r--r--arch/powerpc/kernel/irq.c30
-rw-r--r--arch/powerpc/kernel/lparcfg.c6
-rw-r--r--arch/powerpc/kernel/machine_kexec_64.c10
-rw-r--r--arch/powerpc/kernel/pci_64.c5
-rw-r--r--arch/powerpc/kernel/ppc_ksyms.c26
-rw-r--r--arch/powerpc/kernel/process.c39
-rw-r--r--arch/powerpc/kernel/prom.c54
-rw-r--r--arch/powerpc/kernel/prom_init.c40
-rw-r--r--arch/powerpc/kernel/ptrace.c5
-rw-r--r--arch/powerpc/kernel/rtas-rtc.c2
-rw-r--r--arch/powerpc/kernel/rtas_pci.c24
-rw-r--r--arch/powerpc/kernel/setup_64.c4
-rw-r--r--arch/powerpc/kernel/signal_32.c19
-rw-r--r--arch/powerpc/kernel/signal_64.c9
-rw-r--r--arch/powerpc/kernel/smp.c4
-rw-r--r--arch/powerpc/kernel/sys_ppc32.c4
-rw-r--r--arch/powerpc/kernel/systbl.S2
-rw-r--r--arch/powerpc/kernel/time.c545
-rw-r--r--arch/powerpc/kernel/traps.c2
-rw-r--r--arch/powerpc/kernel/vdso.c4
-rw-r--r--arch/powerpc/kernel/vdso64/gettimeofday.S4
-rw-r--r--arch/powerpc/mm/hash_native_64.c7
-rw-r--r--arch/powerpc/mm/hash_utils_64.c5
-rw-r--r--arch/powerpc/mm/lmb.c2
-rw-r--r--arch/powerpc/mm/pgtable_32.c5
-rw-r--r--arch/powerpc/oprofile/Kconfig1
-rw-r--r--arch/powerpc/platforms/iseries/lpevents.c2
-rw-r--r--arch/powerpc/platforms/iseries/setup.c1
-rw-r--r--arch/powerpc/platforms/maple/pci.c4
-rw-r--r--arch/powerpc/platforms/powermac/feature.c19
-rw-r--r--arch/powerpc/platforms/powermac/pfunc_base.c5
-rw-r--r--arch/powerpc/platforms/powermac/pfunc_core.c6
-rw-r--r--arch/powerpc/platforms/powermac/setup.c4
-rw-r--r--arch/powerpc/platforms/powermac/smp.c2
-rw-r--r--arch/powerpc/platforms/pseries/Kconfig9
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c14
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c2
-rw-r--r--arch/powerpc/platforms/pseries/pci_dlpar.c64
-rw-r--r--arch/powerpc/platforms/pseries/smp.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c9
-rw-r--r--arch/powerpc/xmon/xmon.c30
59 files changed, 1155 insertions, 1064 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index fb0dcb994b84..fae42da7468d 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -250,6 +250,21 @@ config PPC_STD_MMU_32
250 def_bool y 250 def_bool y
251 depends on PPC_STD_MMU && PPC32 251 depends on PPC_STD_MMU && PPC32
252 252
253config VIRT_CPU_ACCOUNTING
254 bool "Deterministic task and CPU time accounting"
255 depends on PPC64
256 default y
257 help
258 Select this option to enable more accurate task and CPU time
259 accounting. This is done by reading a CPU counter on each
260 kernel entry and exit and on transitions within the kernel
261 between system, softirq and hardirq state, so there is a
262 small performance impact. This also enables accounting of
263 stolen time on logically-partitioned systems running on
264 IBM POWER5-based machines.
265
266 If in doubt, say Y here.
267
253config SMP 268config SMP
254 depends on PPC_STD_MMU 269 depends on PPC_STD_MMU
255 bool "Symmetric multi-processing support" 270 bool "Symmetric multi-processing support"
@@ -592,7 +607,7 @@ config KEXEC
592 strongly in flux, so no good recommendation can be made. 607 strongly in flux, so no good recommendation can be made.
593 608
594config CRASH_DUMP 609config CRASH_DUMP
595 bool "kernel crash dumps (EXPERIMENTAL)" 610 bool "Build a kdump crash kernel (EXPERIMENTAL)"
596 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL 611 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
597 help 612 help
598 Build a kernel suitable for use as a kdump capture kernel. 613 Build a kernel suitable for use as a kdump capture kernel.
@@ -974,7 +989,7 @@ source "arch/powerpc/oprofile/Kconfig"
974 989
975config KPROBES 990config KPROBES
976 bool "Kprobes (EXPERIMENTAL)" 991 bool "Kprobes (EXPERIMENTAL)"
977 depends on PPC64 992 depends on PPC64 && EXPERIMENTAL && MODULES
978 help 993 help
979 Kprobes allows you to trap at almost any kernel address and 994 Kprobes allows you to trap at almost any kernel address and
980 execute a callback function. register_kprobe() establishes 995 execute a callback function. register_kprobe() establishes
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 81d3b3ddc206..a3fc7a23158f 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -168,6 +168,8 @@ endef
168 168
169archclean: 169archclean:
170 $(Q)$(MAKE) $(clean)=$(boot) 170 $(Q)$(MAKE) $(clean)=$(boot)
171
172archmrproper:
171 $(Q)rm -rf arch/$(ARCH)/include 173 $(Q)rm -rf arch/$(ARCH)/include
172 174
173archprepare: checkbin 175archprepare: checkbin
diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S
index e0192c26037b..70e65b13e033 100644
--- a/arch/powerpc/boot/crt0.S
+++ b/arch/powerpc/boot/crt0.S
@@ -45,7 +45,8 @@ _zimage_start:
45 bdnz 2b 45 bdnz 2b
46 46
47 /* Do a cache flush for our text, in case OF didn't */ 47 /* Do a cache flush for our text, in case OF didn't */
483: lis r9,_start@h 483: lis r9,_start@ha
49 addi r9,r9,_start@l
49 add r9,r0,r9 50 add r9,r0,r9
50 lis r8,_etext@ha 51 lis r8,_etext@ha
51 addi r8,r8,_etext@l 52 addi r8,r8,_etext@l
@@ -53,7 +54,7 @@ _zimage_start:
534: dcbf r0,r9 544: dcbf r0,r9
54 icbi r0,r9 55 icbi r0,r9
55 addi r9,r9,0x20 56 addi r9,r9,0x20
56 cmplwi 0,r9,8 57 cmplw cr0,r9,r8
57 blt 4b 58 blt 4b
58 sync 59 sync
59 isync 60 isync
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index 063b84f2cbea..3c2acab63736 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_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.15-rc5 3# Linux kernel version: 2.6.16-rc6
4# Tue Dec 20 15:59:26 2005 4# Wed Mar 15 16:19:48 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20CONFIG_PPC_UDBG_16550=y
21# CONFIG_GENERIC_TBSYNC is not set
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=4
33# Code maturity level options 37# Code maturity level options
34# 38#
35CONFIG_EXPERIMENTAL=y 39CONFIG_EXPERIMENTAL=y
36CONFIG_CLEAN_COMPILE=y
37CONFIG_LOCK_KERNEL=y 40CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 41CONFIG_INIT_ENV_ARG_LIMIT=32
39 42
@@ -48,8 +51,6 @@ CONFIG_SYSVIPC=y
48# CONFIG_BSD_PROCESS_ACCT is not set 51# CONFIG_BSD_PROCESS_ACCT is not set
49CONFIG_SYSCTL=y 52CONFIG_SYSCTL=y
50# CONFIG_AUDIT is not set 53# CONFIG_AUDIT is not set
51CONFIG_HOTPLUG=y
52CONFIG_KOBJECT_UEVENT=y
53# CONFIG_IKCONFIG is not set 54# CONFIG_IKCONFIG is not set
54# CONFIG_CPUSETS is not set 55# CONFIG_CPUSETS is not set
55CONFIG_INITRAMFS_SOURCE="" 56CONFIG_INITRAMFS_SOURCE=""
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
58CONFIG_KALLSYMS=y 59CONFIG_KALLSYMS=y
59# CONFIG_KALLSYMS_ALL is not set 60# CONFIG_KALLSYMS_ALL is not set
60# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y 63CONFIG_PRINTK=y
62CONFIG_BUG=y 64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y 67CONFIG_FUTEX=y
65CONFIG_EPOLL=y 68CONFIG_EPOLL=y
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
68CONFIG_CC_ALIGN_LABELS=0 71CONFIG_CC_ALIGN_LABELS=0
69CONFIG_CC_ALIGN_LOOPS=0 72CONFIG_CC_ALIGN_LOOPS=0
70CONFIG_CC_ALIGN_JUMPS=0 73CONFIG_CC_ALIGN_JUMPS=0
74CONFIG_SLAB=y
71# CONFIG_TINY_SHMEM is not set 75# CONFIG_TINY_SHMEM is not set
72CONFIG_BASE_SMALL=0 76CONFIG_BASE_SMALL=0
77# CONFIG_SLOB is not set
73 78
74# 79#
75# Loadable module support 80# Loadable module support
@@ -111,7 +116,6 @@ CONFIG_PPC_MULTIPLATFORM=y
111# CONFIG_PPC_PMAC is not set 116# CONFIG_PPC_PMAC is not set
112# CONFIG_PPC_MAPLE is not set 117# CONFIG_PPC_MAPLE is not set
113CONFIG_PPC_CELL=y 118CONFIG_PPC_CELL=y
114CONFIG_PPC_OF=y
115# CONFIG_U3_DART is not set 119# CONFIG_U3_DART is not set
116CONFIG_PPC_RTAS=y 120CONFIG_PPC_RTAS=y
117# CONFIG_RTAS_ERROR_LOGGING is not set 121# CONFIG_RTAS_ERROR_LOGGING is not set
@@ -120,11 +124,15 @@ CONFIG_RTAS_FLASH=y
120CONFIG_MMIO_NVRAM=y 124CONFIG_MMIO_NVRAM=y
121CONFIG_CELL_IIC=y 125CONFIG_CELL_IIC=y
122# CONFIG_PPC_MPC106 is not set 126# CONFIG_PPC_MPC106 is not set
123# CONFIG_GENERIC_TBSYNC is not set
124# CONFIG_CPU_FREQ is not set 127# CONFIG_CPU_FREQ is not set
125# CONFIG_WANT_EARLY_SERIAL is not set 128# CONFIG_WANT_EARLY_SERIAL is not set
126 129
127# 130#
131# Cell Broadband Engine options
132#
133CONFIG_SPU_FS=y
134
135#
128# Kernel options 136# Kernel options
129# 137#
130# CONFIG_HZ_100 is not set 138# CONFIG_HZ_100 is not set
@@ -140,6 +148,7 @@ CONFIG_BINFMT_ELF=y
140CONFIG_FORCE_MAX_ZONEORDER=13 148CONFIG_FORCE_MAX_ZONEORDER=13
141# CONFIG_IOMMU_VMERGE is not set 149# CONFIG_IOMMU_VMERGE is not set
142CONFIG_KEXEC=y 150CONFIG_KEXEC=y
151# CONFIG_CRASH_DUMP is not set
143CONFIG_IRQ_ALL_CPUS=y 152CONFIG_IRQ_ALL_CPUS=y
144# CONFIG_NUMA is not set 153# CONFIG_NUMA is not set
145CONFIG_ARCH_SELECT_MEMORY_MODEL=y 154CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -191,6 +200,7 @@ CONFIG_NET=y
191# 200#
192# Networking options 201# Networking options
193# 202#
203# CONFIG_NETDEBUG is not set
194CONFIG_PACKET=y 204CONFIG_PACKET=y
195# CONFIG_PACKET_MMAP is not set 205# CONFIG_PACKET_MMAP is not set
196CONFIG_UNIX=y 206CONFIG_UNIX=y
@@ -234,6 +244,25 @@ CONFIG_NETFILTER=y
234# Core Netfilter Configuration 244# Core Netfilter Configuration
235# 245#
236# CONFIG_NETFILTER_NETLINK is not set 246# CONFIG_NETFILTER_NETLINK is not set
247CONFIG_NETFILTER_XTABLES=m
248CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
249CONFIG_NETFILTER_XT_TARGET_MARK=m
250CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
251CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
252CONFIG_NETFILTER_XT_MATCH_COMMENT=m
253CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
254# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
255CONFIG_NETFILTER_XT_MATCH_HELPER=m
256CONFIG_NETFILTER_XT_MATCH_LENGTH=m
257CONFIG_NETFILTER_XT_MATCH_LIMIT=m
258CONFIG_NETFILTER_XT_MATCH_MAC=m
259CONFIG_NETFILTER_XT_MATCH_MARK=m
260CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
261CONFIG_NETFILTER_XT_MATCH_REALM=m
262CONFIG_NETFILTER_XT_MATCH_SCTP=m
263CONFIG_NETFILTER_XT_MATCH_STATE=m
264CONFIG_NETFILTER_XT_MATCH_STRING=m
265CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
237 266
238# 267#
239# IP: Netfilter Configuration 268# IP: Netfilter Configuration
@@ -251,37 +280,23 @@ CONFIG_IP_NF_AMANDA=m
251# CONFIG_IP_NF_PPTP is not set 280# CONFIG_IP_NF_PPTP is not set
252CONFIG_IP_NF_QUEUE=m 281CONFIG_IP_NF_QUEUE=m
253CONFIG_IP_NF_IPTABLES=m 282CONFIG_IP_NF_IPTABLES=m
254CONFIG_IP_NF_MATCH_LIMIT=m
255CONFIG_IP_NF_MATCH_IPRANGE=m 283CONFIG_IP_NF_MATCH_IPRANGE=m
256CONFIG_IP_NF_MATCH_MAC=m
257CONFIG_IP_NF_MATCH_PKTTYPE=m
258CONFIG_IP_NF_MATCH_MARK=m
259CONFIG_IP_NF_MATCH_MULTIPORT=m 284CONFIG_IP_NF_MATCH_MULTIPORT=m
260CONFIG_IP_NF_MATCH_TOS=m 285CONFIG_IP_NF_MATCH_TOS=m
261CONFIG_IP_NF_MATCH_RECENT=m 286CONFIG_IP_NF_MATCH_RECENT=m
262CONFIG_IP_NF_MATCH_ECN=m 287CONFIG_IP_NF_MATCH_ECN=m
263CONFIG_IP_NF_MATCH_DSCP=m 288CONFIG_IP_NF_MATCH_DSCP=m
264CONFIG_IP_NF_MATCH_AH_ESP=m 289CONFIG_IP_NF_MATCH_AH_ESP=m
265CONFIG_IP_NF_MATCH_LENGTH=m
266CONFIG_IP_NF_MATCH_TTL=m 290CONFIG_IP_NF_MATCH_TTL=m
267CONFIG_IP_NF_MATCH_TCPMSS=m
268CONFIG_IP_NF_MATCH_HELPER=m
269CONFIG_IP_NF_MATCH_STATE=m
270CONFIG_IP_NF_MATCH_CONNTRACK=m
271CONFIG_IP_NF_MATCH_OWNER=m 291CONFIG_IP_NF_MATCH_OWNER=m
272CONFIG_IP_NF_MATCH_ADDRTYPE=m 292CONFIG_IP_NF_MATCH_ADDRTYPE=m
273CONFIG_IP_NF_MATCH_REALM=m
274CONFIG_IP_NF_MATCH_SCTP=m
275# CONFIG_IP_NF_MATCH_DCCP is not set
276CONFIG_IP_NF_MATCH_COMMENT=m
277CONFIG_IP_NF_MATCH_HASHLIMIT=m 293CONFIG_IP_NF_MATCH_HASHLIMIT=m
278CONFIG_IP_NF_MATCH_STRING=m 294CONFIG_IP_NF_MATCH_POLICY=m
279CONFIG_IP_NF_FILTER=m 295CONFIG_IP_NF_FILTER=m
280CONFIG_IP_NF_TARGET_REJECT=m 296CONFIG_IP_NF_TARGET_REJECT=m
281CONFIG_IP_NF_TARGET_LOG=m 297CONFIG_IP_NF_TARGET_LOG=m
282CONFIG_IP_NF_TARGET_ULOG=m 298CONFIG_IP_NF_TARGET_ULOG=m
283CONFIG_IP_NF_TARGET_TCPMSS=m 299CONFIG_IP_NF_TARGET_TCPMSS=m
284CONFIG_IP_NF_TARGET_NFQUEUE=m
285CONFIG_IP_NF_NAT=m 300CONFIG_IP_NF_NAT=m
286CONFIG_IP_NF_NAT_NEEDED=y 301CONFIG_IP_NF_NAT_NEEDED=y
287CONFIG_IP_NF_TARGET_MASQUERADE=m 302CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -297,11 +312,8 @@ CONFIG_IP_NF_MANGLE=m
297CONFIG_IP_NF_TARGET_TOS=m 312CONFIG_IP_NF_TARGET_TOS=m
298CONFIG_IP_NF_TARGET_ECN=m 313CONFIG_IP_NF_TARGET_ECN=m
299CONFIG_IP_NF_TARGET_DSCP=m 314CONFIG_IP_NF_TARGET_DSCP=m
300CONFIG_IP_NF_TARGET_MARK=m
301CONFIG_IP_NF_TARGET_CLASSIFY=m
302CONFIG_IP_NF_TARGET_TTL=m 315CONFIG_IP_NF_TARGET_TTL=m
303CONFIG_IP_NF_RAW=m 316CONFIG_IP_NF_RAW=m
304CONFIG_IP_NF_TARGET_NOTRACK=m
305CONFIG_IP_NF_ARPTABLES=m 317CONFIG_IP_NF_ARPTABLES=m
306CONFIG_IP_NF_ARPFILTER=m 318CONFIG_IP_NF_ARPFILTER=m
307CONFIG_IP_NF_ARP_MANGLE=m 319CONFIG_IP_NF_ARP_MANGLE=m
@@ -311,7 +323,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
311# 323#
312# CONFIG_IP6_NF_QUEUE is not set 324# CONFIG_IP6_NF_QUEUE is not set
313# CONFIG_IP6_NF_IPTABLES is not set 325# CONFIG_IP6_NF_IPTABLES is not set
314# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
315 326
316# 327#
317# DCCP Configuration (EXPERIMENTAL) 328# DCCP Configuration (EXPERIMENTAL)
@@ -322,6 +333,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
322# SCTP Configuration (EXPERIMENTAL) 333# SCTP Configuration (EXPERIMENTAL)
323# 334#
324# CONFIG_IP_SCTP is not set 335# CONFIG_IP_SCTP is not set
336
337#
338# TIPC Configuration (EXPERIMENTAL)
339#
340# CONFIG_TIPC is not set
325# CONFIG_ATM is not set 341# CONFIG_ATM is not set
326# CONFIG_BRIDGE is not set 342# CONFIG_BRIDGE is not set
327# CONFIG_VLAN_8021Q is not set 343# CONFIG_VLAN_8021Q is not set
@@ -540,9 +556,11 @@ CONFIG_E1000=m
540# CONFIG_R8169 is not set 556# CONFIG_R8169 is not set
541# CONFIG_SIS190 is not set 557# CONFIG_SIS190 is not set
542CONFIG_SKGE=m 558CONFIG_SKGE=m
559# CONFIG_SKY2 is not set
543# CONFIG_SK98LIN is not set 560# CONFIG_SK98LIN is not set
544# CONFIG_TIGON3 is not set 561# CONFIG_TIGON3 is not set
545# CONFIG_BNX2 is not set 562# CONFIG_BNX2 is not set
563CONFIG_SPIDER_NET=y
546# CONFIG_MV643XX_ETH is not set 564# CONFIG_MV643XX_ETH is not set
547 565
548# 566#
@@ -628,13 +646,16 @@ CONFIG_VT=y
628CONFIG_VT_CONSOLE=y 646CONFIG_VT_CONSOLE=y
629CONFIG_HW_CONSOLE=y 647CONFIG_HW_CONSOLE=y
630CONFIG_SERIAL_NONSTANDARD=y 648CONFIG_SERIAL_NONSTANDARD=y
649# CONFIG_COMPUTONE is not set
631# CONFIG_ROCKETPORT is not set 650# CONFIG_ROCKETPORT is not set
632# CONFIG_CYCLADES is not set 651# CONFIG_CYCLADES is not set
633# CONFIG_DIGIEPCA is not set 652# CONFIG_DIGIEPCA is not set
653# CONFIG_MOXA_INTELLIO is not set
634# CONFIG_MOXA_SMARTIO is not set 654# CONFIG_MOXA_SMARTIO is not set
635# CONFIG_ISI is not set 655# CONFIG_ISI is not set
636# CONFIG_SYNCLINK is not set 656# CONFIG_SYNCLINK is not set
637# CONFIG_SYNCLINKMP is not set 657# CONFIG_SYNCLINKMP is not set
658# CONFIG_SYNCLINK_GT is not set
638# CONFIG_N_HDLC is not set 659# CONFIG_N_HDLC is not set
639# CONFIG_SPECIALIX is not set 660# CONFIG_SPECIALIX is not set
640# CONFIG_SX is not set 661# CONFIG_SX is not set
@@ -646,6 +667,7 @@ CONFIG_SERIAL_NONSTANDARD=y
646CONFIG_SERIAL_8250=y 667CONFIG_SERIAL_8250=y
647CONFIG_SERIAL_8250_CONSOLE=y 668CONFIG_SERIAL_8250_CONSOLE=y
648CONFIG_SERIAL_8250_NR_UARTS=4 669CONFIG_SERIAL_8250_NR_UARTS=4
670CONFIG_SERIAL_8250_RUNTIME_UARTS=4
649# CONFIG_SERIAL_8250_EXTENDED is not set 671# CONFIG_SERIAL_8250_EXTENDED is not set
650 672
651# 673#
@@ -756,6 +778,12 @@ CONFIG_I2C_ALGOBIT=y
756# CONFIG_I2C_DEBUG_CHIP is not set 778# CONFIG_I2C_DEBUG_CHIP is not set
757 779
758# 780#
781# SPI support
782#
783# CONFIG_SPI is not set
784# CONFIG_SPI_MASTER is not set
785
786#
759# Dallas's 1-wire bus 787# Dallas's 1-wire bus
760# 788#
761# CONFIG_W1 is not set 789# CONFIG_W1 is not set
@@ -827,7 +855,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
827# CONFIG_INFINIBAND is not set 855# CONFIG_INFINIBAND is not set
828 856
829# 857#
830# SN Devices 858# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
831# 859#
832 860
833# 861#
@@ -847,6 +875,7 @@ CONFIG_FS_MBCACHE=y
847# CONFIG_JFS_FS is not set 875# CONFIG_JFS_FS is not set
848CONFIG_FS_POSIX_ACL=y 876CONFIG_FS_POSIX_ACL=y
849# CONFIG_XFS_FS is not set 877# CONFIG_XFS_FS is not set
878# CONFIG_OCFS2_FS is not set
850# CONFIG_MINIX_FS is not set 879# CONFIG_MINIX_FS is not set
851# CONFIG_ROMFS_FS is not set 880# CONFIG_ROMFS_FS is not set
852CONFIG_INOTIFY=y 881CONFIG_INOTIFY=y
@@ -886,6 +915,7 @@ CONFIG_HUGETLBFS=y
886CONFIG_HUGETLB_PAGE=y 915CONFIG_HUGETLB_PAGE=y
887CONFIG_RAMFS=y 916CONFIG_RAMFS=y
888# CONFIG_RELAYFS_FS is not set 917# CONFIG_RELAYFS_FS is not set
918# CONFIG_CONFIGFS_FS is not set
889 919
890# 920#
891# Miscellaneous filesystems 921# Miscellaneous filesystems
@@ -951,6 +981,7 @@ CONFIG_MSDOS_PARTITION=y
951# CONFIG_SGI_PARTITION is not set 981# CONFIG_SGI_PARTITION is not set
952# CONFIG_ULTRIX_PARTITION is not set 982# CONFIG_ULTRIX_PARTITION is not set
953# CONFIG_SUN_PARTITION is not set 983# CONFIG_SUN_PARTITION is not set
984# CONFIG_KARMA_PARTITION is not set
954CONFIG_EFI_PARTITION=y 985CONFIG_EFI_PARTITION=y
955 986
956# 987#
@@ -1021,18 +1052,20 @@ CONFIG_TEXTSEARCH_FSM=m
1021# Kernel hacking 1052# Kernel hacking
1022# 1053#
1023# CONFIG_PRINTK_TIME is not set 1054# CONFIG_PRINTK_TIME is not set
1024CONFIG_DEBUG_KERNEL=y
1025CONFIG_MAGIC_SYSRQ=y 1055CONFIG_MAGIC_SYSRQ=y
1056CONFIG_DEBUG_KERNEL=y
1026CONFIG_LOG_BUF_SHIFT=15 1057CONFIG_LOG_BUF_SHIFT=15
1027CONFIG_DETECT_SOFTLOCKUP=y 1058CONFIG_DETECT_SOFTLOCKUP=y
1028# CONFIG_SCHEDSTATS is not set 1059# CONFIG_SCHEDSTATS is not set
1029# CONFIG_DEBUG_SLAB is not set 1060# CONFIG_DEBUG_SLAB is not set
1061# CONFIG_DEBUG_MUTEXES is not set
1030# CONFIG_DEBUG_SPINLOCK is not set 1062# CONFIG_DEBUG_SPINLOCK is not set
1031CONFIG_DEBUG_SPINLOCK_SLEEP=y 1063CONFIG_DEBUG_SPINLOCK_SLEEP=y
1032# CONFIG_DEBUG_KOBJECT is not set 1064# CONFIG_DEBUG_KOBJECT is not set
1033# CONFIG_DEBUG_INFO is not set 1065# CONFIG_DEBUG_INFO is not set
1034CONFIG_DEBUG_FS=y 1066CONFIG_DEBUG_FS=y
1035# CONFIG_DEBUG_VM is not set 1067# CONFIG_DEBUG_VM is not set
1068# CONFIG_FORCED_INLINING is not set
1036# CONFIG_RCU_TORTURE_TEST is not set 1069# CONFIG_RCU_TORTURE_TEST is not set
1037# CONFIG_DEBUG_STACKOVERFLOW is not set 1070# CONFIG_DEBUG_STACKOVERFLOW is not set
1038# CONFIG_DEBUG_STACK_USAGE is not set 1071# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1040,6 +1073,11 @@ CONFIG_DEBUGGER=y
1040# CONFIG_XMON is not set 1073# CONFIG_XMON is not set
1041CONFIG_IRQSTACKS=y 1074CONFIG_IRQSTACKS=y
1042# CONFIG_BOOTX_TEXT is not set 1075# CONFIG_BOOTX_TEXT is not set
1076# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1077# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1078# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1079# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1080# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1043 1081
1044# 1082#
1045# Security options 1083# Security options
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index d6fed3f56580..2c3fd2007676 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_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.15-rc5 3# Linux kernel version: 2.6.16-rc2
4# Tue Dec 20 15:59:30 2005 4# Fri Feb 10 17:33:08 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20# CONFIG_PPC_UDBG_16550 is not set
21CONFIG_GENERIC_TBSYNC=y
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -26,13 +30,12 @@ CONFIG_PPC_FPU=y
26CONFIG_ALTIVEC=y 30CONFIG_ALTIVEC=y
27CONFIG_PPC_STD_MMU=y 31CONFIG_PPC_STD_MMU=y
28CONFIG_SMP=y 32CONFIG_SMP=y
29CONFIG_NR_CPUS=2 33CONFIG_NR_CPUS=4
30 34
31# 35#
32# Code maturity level options 36# Code maturity level options
33# 37#
34CONFIG_EXPERIMENTAL=y 38CONFIG_EXPERIMENTAL=y
35CONFIG_CLEAN_COMPILE=y
36CONFIG_LOCK_KERNEL=y 39CONFIG_LOCK_KERNEL=y
37CONFIG_INIT_ENV_ARG_LIMIT=32 40CONFIG_INIT_ENV_ARG_LIMIT=32
38 41
@@ -47,8 +50,6 @@ CONFIG_POSIX_MQUEUE=y
47# CONFIG_BSD_PROCESS_ACCT is not set 50# CONFIG_BSD_PROCESS_ACCT is not set
48CONFIG_SYSCTL=y 51CONFIG_SYSCTL=y
49# CONFIG_AUDIT is not set 52# CONFIG_AUDIT is not set
50CONFIG_HOTPLUG=y
51CONFIG_KOBJECT_UEVENT=y
52CONFIG_IKCONFIG=y 53CONFIG_IKCONFIG=y
53CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
54# CONFIG_CPUSETS is not set 55# CONFIG_CPUSETS is not set
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
58CONFIG_KALLSYMS=y 59CONFIG_KALLSYMS=y
59# CONFIG_KALLSYMS_ALL is not set 60# CONFIG_KALLSYMS_ALL is not set
60# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y 63CONFIG_PRINTK=y
62CONFIG_BUG=y 64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y 67CONFIG_FUTEX=y
65CONFIG_EPOLL=y 68CONFIG_EPOLL=y
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
68CONFIG_CC_ALIGN_LABELS=0 71CONFIG_CC_ALIGN_LABELS=0
69CONFIG_CC_ALIGN_LOOPS=0 72CONFIG_CC_ALIGN_LOOPS=0
70CONFIG_CC_ALIGN_JUMPS=0 73CONFIG_CC_ALIGN_JUMPS=0
74CONFIG_SLAB=y
71# CONFIG_TINY_SHMEM is not set 75# CONFIG_TINY_SHMEM is not set
72CONFIG_BASE_SMALL=0 76CONFIG_BASE_SMALL=0
77# CONFIG_SLOB is not set
73 78
74# 79#
75# Loadable module support 80# Loadable module support
@@ -112,13 +117,12 @@ CONFIG_PPC_PMAC=y
112CONFIG_PPC_PMAC64=y 117CONFIG_PPC_PMAC64=y
113# CONFIG_PPC_MAPLE is not set 118# CONFIG_PPC_MAPLE is not set
114# CONFIG_PPC_CELL is not set 119# CONFIG_PPC_CELL is not set
115CONFIG_PPC_OF=y
116CONFIG_U3_DART=y 120CONFIG_U3_DART=y
117CONFIG_MPIC=y 121CONFIG_MPIC=y
118# CONFIG_PPC_RTAS is not set 122# CONFIG_PPC_RTAS is not set
119# CONFIG_MMIO_NVRAM is not set 123# CONFIG_MMIO_NVRAM is not set
124CONFIG_MPIC_BROKEN_U3=y
120# CONFIG_PPC_MPC106 is not set 125# CONFIG_PPC_MPC106 is not set
121CONFIG_GENERIC_TBSYNC=y
122CONFIG_CPU_FREQ=y 126CONFIG_CPU_FREQ=y
123CONFIG_CPU_FREQ_TABLE=y 127CONFIG_CPU_FREQ_TABLE=y
124# CONFIG_CPU_FREQ_DEBUG is not set 128# CONFIG_CPU_FREQ_DEBUG is not set
@@ -151,6 +155,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
151CONFIG_IOMMU_VMERGE=y 155CONFIG_IOMMU_VMERGE=y
152# CONFIG_HOTPLUG_CPU is not set 156# CONFIG_HOTPLUG_CPU is not set
153CONFIG_KEXEC=y 157CONFIG_KEXEC=y
158# CONFIG_CRASH_DUMP is not set
154CONFIG_IRQ_ALL_CPUS=y 159CONFIG_IRQ_ALL_CPUS=y
155# CONFIG_NUMA is not set 160# CONFIG_NUMA is not set
156CONFIG_ARCH_SELECT_MEMORY_MODEL=y 161CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -202,6 +207,7 @@ CONFIG_NET=y
202# 207#
203# Networking options 208# Networking options
204# 209#
210# CONFIG_NETDEBUG is not set
205CONFIG_PACKET=y 211CONFIG_PACKET=y
206# CONFIG_PACKET_MMAP is not set 212# CONFIG_PACKET_MMAP is not set
207CONFIG_UNIX=y 213CONFIG_UNIX=y
@@ -239,6 +245,7 @@ CONFIG_NETFILTER=y
239# Core Netfilter Configuration 245# Core Netfilter Configuration
240# 246#
241# CONFIG_NETFILTER_NETLINK is not set 247# CONFIG_NETFILTER_NETLINK is not set
248# CONFIG_NETFILTER_XTABLES is not set
242 249
243# 250#
244# IP: Netfilter Configuration 251# IP: Netfilter Configuration
@@ -255,65 +262,6 @@ CONFIG_IP_NF_TFTP=m
255CONFIG_IP_NF_AMANDA=m 262CONFIG_IP_NF_AMANDA=m
256# CONFIG_IP_NF_PPTP is not set 263# CONFIG_IP_NF_PPTP is not set
257CONFIG_IP_NF_QUEUE=m 264CONFIG_IP_NF_QUEUE=m
258CONFIG_IP_NF_IPTABLES=m
259CONFIG_IP_NF_MATCH_LIMIT=m
260CONFIG_IP_NF_MATCH_IPRANGE=m
261CONFIG_IP_NF_MATCH_MAC=m
262CONFIG_IP_NF_MATCH_PKTTYPE=m
263CONFIG_IP_NF_MATCH_MARK=m
264CONFIG_IP_NF_MATCH_MULTIPORT=m
265CONFIG_IP_NF_MATCH_TOS=m
266CONFIG_IP_NF_MATCH_RECENT=m
267CONFIG_IP_NF_MATCH_ECN=m
268CONFIG_IP_NF_MATCH_DSCP=m
269CONFIG_IP_NF_MATCH_AH_ESP=m
270CONFIG_IP_NF_MATCH_LENGTH=m
271CONFIG_IP_NF_MATCH_TTL=m
272CONFIG_IP_NF_MATCH_TCPMSS=m
273CONFIG_IP_NF_MATCH_HELPER=m
274CONFIG_IP_NF_MATCH_STATE=m
275CONFIG_IP_NF_MATCH_CONNTRACK=m
276CONFIG_IP_NF_MATCH_OWNER=m
277CONFIG_IP_NF_MATCH_ADDRTYPE=m
278CONFIG_IP_NF_MATCH_REALM=m
279CONFIG_IP_NF_MATCH_SCTP=m
280# CONFIG_IP_NF_MATCH_DCCP is not set
281CONFIG_IP_NF_MATCH_COMMENT=m
282CONFIG_IP_NF_MATCH_CONNMARK=m
283CONFIG_IP_NF_MATCH_CONNBYTES=m
284CONFIG_IP_NF_MATCH_HASHLIMIT=m
285CONFIG_IP_NF_MATCH_STRING=m
286CONFIG_IP_NF_FILTER=m
287CONFIG_IP_NF_TARGET_REJECT=m
288CONFIG_IP_NF_TARGET_LOG=m
289CONFIG_IP_NF_TARGET_ULOG=m
290CONFIG_IP_NF_TARGET_TCPMSS=m
291CONFIG_IP_NF_TARGET_NFQUEUE=m
292CONFIG_IP_NF_NAT=m
293CONFIG_IP_NF_NAT_NEEDED=y
294CONFIG_IP_NF_TARGET_MASQUERADE=m
295CONFIG_IP_NF_TARGET_REDIRECT=m
296CONFIG_IP_NF_TARGET_NETMAP=m
297CONFIG_IP_NF_TARGET_SAME=m
298CONFIG_IP_NF_NAT_SNMP_BASIC=m
299CONFIG_IP_NF_NAT_IRC=m
300CONFIG_IP_NF_NAT_FTP=m
301CONFIG_IP_NF_NAT_TFTP=m
302CONFIG_IP_NF_NAT_AMANDA=m
303CONFIG_IP_NF_MANGLE=m
304CONFIG_IP_NF_TARGET_TOS=m
305CONFIG_IP_NF_TARGET_ECN=m
306CONFIG_IP_NF_TARGET_DSCP=m
307CONFIG_IP_NF_TARGET_MARK=m
308CONFIG_IP_NF_TARGET_CLASSIFY=m
309CONFIG_IP_NF_TARGET_TTL=m
310CONFIG_IP_NF_TARGET_CONNMARK=m
311CONFIG_IP_NF_TARGET_CLUSTERIP=m
312CONFIG_IP_NF_RAW=m
313CONFIG_IP_NF_TARGET_NOTRACK=m
314CONFIG_IP_NF_ARPTABLES=m
315CONFIG_IP_NF_ARPFILTER=m
316CONFIG_IP_NF_ARP_MANGLE=m
317 265
318# 266#
319# DCCP Configuration (EXPERIMENTAL) 267# DCCP Configuration (EXPERIMENTAL)
@@ -324,6 +272,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
324# SCTP Configuration (EXPERIMENTAL) 272# SCTP Configuration (EXPERIMENTAL)
325# 273#
326# CONFIG_IP_SCTP is not set 274# CONFIG_IP_SCTP is not set
275
276#
277# TIPC Configuration (EXPERIMENTAL)
278#
279# CONFIG_TIPC is not set
327# CONFIG_ATM is not set 280# CONFIG_ATM is not set
328# CONFIG_BRIDGE is not set 281# CONFIG_BRIDGE is not set
329# CONFIG_VLAN_8021Q is not set 282# CONFIG_VLAN_8021Q is not set
@@ -342,7 +295,6 @@ CONFIG_LLC=y
342# QoS and/or fair queueing 295# QoS and/or fair queueing
343# 296#
344# CONFIG_NET_SCHED is not set 297# CONFIG_NET_SCHED is not set
345CONFIG_NET_CLS_ROUTE=y
346 298
347# 299#
348# Network testing 300# Network testing
@@ -545,13 +497,7 @@ CONFIG_SCSI_SATA_SVW=y
545# CONFIG_SCSI_IPR is not set 497# CONFIG_SCSI_IPR is not set
546# CONFIG_SCSI_QLOGIC_FC is not set 498# CONFIG_SCSI_QLOGIC_FC is not set
547# CONFIG_SCSI_QLOGIC_1280 is not set 499# CONFIG_SCSI_QLOGIC_1280 is not set
548CONFIG_SCSI_QLA2XXX=y 500# CONFIG_SCSI_QLA_FC is not set
549# CONFIG_SCSI_QLA21XX is not set
550# CONFIG_SCSI_QLA22XX is not set
551# CONFIG_SCSI_QLA2300 is not set
552# CONFIG_SCSI_QLA2322 is not set
553# CONFIG_SCSI_QLA6312 is not set
554# CONFIG_SCSI_QLA24XX is not set
555# CONFIG_SCSI_LPFC is not set 501# CONFIG_SCSI_LPFC is not set
556# CONFIG_SCSI_DC395x is not set 502# CONFIG_SCSI_DC395x is not set
557# CONFIG_SCSI_DC390T is not set 503# CONFIG_SCSI_DC390T is not set
@@ -614,7 +560,6 @@ CONFIG_IEEE1394_SBP2=m
614CONFIG_IEEE1394_ETH1394=m 560CONFIG_IEEE1394_ETH1394=m
615CONFIG_IEEE1394_DV1394=m 561CONFIG_IEEE1394_DV1394=m
616CONFIG_IEEE1394_RAWIO=y 562CONFIG_IEEE1394_RAWIO=y
617# CONFIG_IEEE1394_CMP is not set
618 563
619# 564#
620# I2O device support 565# I2O device support
@@ -630,6 +575,7 @@ CONFIG_THERM_PM72=y
630CONFIG_WINDFARM=y 575CONFIG_WINDFARM=y
631CONFIG_WINDFARM_PM81=y 576CONFIG_WINDFARM_PM81=y
632CONFIG_WINDFARM_PM91=y 577CONFIG_WINDFARM_PM91=y
578CONFIG_WINDFARM_PM112=y
633 579
634# 580#
635# Network device support 581# Network device support
@@ -682,8 +628,9 @@ CONFIG_E1000=y
682# CONFIG_R8169 is not set 628# CONFIG_R8169 is not set
683# CONFIG_SIS190 is not set 629# CONFIG_SIS190 is not set
684# CONFIG_SKGE is not set 630# CONFIG_SKGE is not set
631# CONFIG_SKY2 is not set
685# CONFIG_SK98LIN is not set 632# CONFIG_SK98LIN is not set
686CONFIG_TIGON3=m 633CONFIG_TIGON3=y
687# CONFIG_BNX2 is not set 634# CONFIG_BNX2 is not set
688# CONFIG_MV643XX_ETH is not set 635# CONFIG_MV643XX_ETH is not set
689 636
@@ -861,8 +808,7 @@ CONFIG_I2C_ALGOBIT=y
861# CONFIG_I2C_I801 is not set 808# CONFIG_I2C_I801 is not set
862# CONFIG_I2C_I810 is not set 809# CONFIG_I2C_I810 is not set
863# CONFIG_I2C_PIIX4 is not set 810# CONFIG_I2C_PIIX4 is not set
864CONFIG_I2C_KEYWEST=y 811CONFIG_I2C_POWERMAC=y
865CONFIG_I2C_PMAC_SMU=y
866# CONFIG_I2C_NFORCE2 is not set 812# CONFIG_I2C_NFORCE2 is not set
867# CONFIG_I2C_PARPORT_LIGHT is not set 813# CONFIG_I2C_PARPORT_LIGHT is not set
868# CONFIG_I2C_PROSAVAGE is not set 814# CONFIG_I2C_PROSAVAGE is not set
@@ -895,6 +841,12 @@ CONFIG_I2C_PMAC_SMU=y
895# CONFIG_I2C_DEBUG_CHIP is not set 841# CONFIG_I2C_DEBUG_CHIP is not set
896 842
897# 843#
844# SPI support
845#
846# CONFIG_SPI is not set
847# CONFIG_SPI_MASTER is not set
848
849#
898# Dallas's 1-wire bus 850# Dallas's 1-wire bus
899# 851#
900# CONFIG_W1 is not set 852# CONFIG_W1 is not set
@@ -961,7 +913,6 @@ CONFIG_FB_RADEON_I2C=y
961# CONFIG_FB_KYRO is not set 913# CONFIG_FB_KYRO is not set
962# CONFIG_FB_3DFX is not set 914# CONFIG_FB_3DFX is not set
963# CONFIG_FB_VOODOO1 is not set 915# CONFIG_FB_VOODOO1 is not set
964# CONFIG_FB_CYBLA is not set
965# CONFIG_FB_TRIDENT is not set 916# CONFIG_FB_TRIDENT is not set
966# CONFIG_FB_VIRTUAL is not set 917# CONFIG_FB_VIRTUAL is not set
967 918
@@ -1008,9 +959,10 @@ CONFIG_SND_OSSEMUL=y
1008CONFIG_SND_MIXER_OSS=m 959CONFIG_SND_MIXER_OSS=m
1009CONFIG_SND_PCM_OSS=m 960CONFIG_SND_PCM_OSS=m
1010CONFIG_SND_SEQUENCER_OSS=y 961CONFIG_SND_SEQUENCER_OSS=y
962# CONFIG_SND_DYNAMIC_MINORS is not set
963CONFIG_SND_SUPPORT_OLD_API=y
1011# CONFIG_SND_VERBOSE_PRINTK is not set 964# CONFIG_SND_VERBOSE_PRINTK is not set
1012# CONFIG_SND_DEBUG is not set 965# CONFIG_SND_DEBUG is not set
1013CONFIG_SND_GENERIC_DRIVER=y
1014 966
1015# 967#
1016# Generic devices 968# Generic devices
@@ -1024,6 +976,8 @@ CONFIG_SND_GENERIC_DRIVER=y
1024# 976#
1025# PCI devices 977# PCI devices
1026# 978#
979# CONFIG_SND_AD1889 is not set
980# CONFIG_SND_ALS4000 is not set
1027# CONFIG_SND_ALI5451 is not set 981# CONFIG_SND_ALI5451 is not set
1028# CONFIG_SND_ATIIXP is not set 982# CONFIG_SND_ATIIXP is not set
1029# CONFIG_SND_ATIIXP_MODEM is not set 983# CONFIG_SND_ATIIXP_MODEM is not set
@@ -1032,39 +986,38 @@ CONFIG_SND_GENERIC_DRIVER=y
1032# CONFIG_SND_AU8830 is not set 986# CONFIG_SND_AU8830 is not set
1033# CONFIG_SND_AZT3328 is not set 987# CONFIG_SND_AZT3328 is not set
1034# CONFIG_SND_BT87X is not set 988# CONFIG_SND_BT87X is not set
1035# CONFIG_SND_CS46XX is not set 989# CONFIG_SND_CA0106 is not set
990# CONFIG_SND_CMIPCI is not set
1036# CONFIG_SND_CS4281 is not set 991# CONFIG_SND_CS4281 is not set
992# CONFIG_SND_CS46XX is not set
1037# CONFIG_SND_EMU10K1 is not set 993# CONFIG_SND_EMU10K1 is not set
1038# CONFIG_SND_EMU10K1X is not set 994# CONFIG_SND_EMU10K1X is not set
1039# CONFIG_SND_CA0106 is not set
1040# CONFIG_SND_KORG1212 is not set
1041# CONFIG_SND_MIXART is not set
1042# CONFIG_SND_NM256 is not set
1043# CONFIG_SND_RME32 is not set
1044# CONFIG_SND_RME96 is not set
1045# CONFIG_SND_RME9652 is not set
1046# CONFIG_SND_HDSP is not set
1047# CONFIG_SND_HDSPM is not set
1048# CONFIG_SND_TRIDENT is not set
1049# CONFIG_SND_YMFPCI is not set
1050# CONFIG_SND_AD1889 is not set
1051# CONFIG_SND_ALS4000 is not set
1052# CONFIG_SND_CMIPCI is not set
1053# CONFIG_SND_ENS1370 is not set 995# CONFIG_SND_ENS1370 is not set
1054# CONFIG_SND_ENS1371 is not set 996# CONFIG_SND_ENS1371 is not set
1055# CONFIG_SND_ES1938 is not set 997# CONFIG_SND_ES1938 is not set
1056# CONFIG_SND_ES1968 is not set 998# CONFIG_SND_ES1968 is not set
1057# CONFIG_SND_MAESTRO3 is not set
1058# CONFIG_SND_FM801 is not set 999# CONFIG_SND_FM801 is not set
1000# CONFIG_SND_HDA_INTEL is not set
1001# CONFIG_SND_HDSP is not set
1002# CONFIG_SND_HDSPM is not set
1059# CONFIG_SND_ICE1712 is not set 1003# CONFIG_SND_ICE1712 is not set
1060# CONFIG_SND_ICE1724 is not set 1004# CONFIG_SND_ICE1724 is not set
1061# CONFIG_SND_INTEL8X0 is not set 1005# CONFIG_SND_INTEL8X0 is not set
1062# CONFIG_SND_INTEL8X0M is not set 1006# CONFIG_SND_INTEL8X0M is not set
1007# CONFIG_SND_KORG1212 is not set
1008# CONFIG_SND_MAESTRO3 is not set
1009# CONFIG_SND_MIXART is not set
1010# CONFIG_SND_NM256 is not set
1011# CONFIG_SND_PCXHR is not set
1012# CONFIG_SND_RME32 is not set
1013# CONFIG_SND_RME96 is not set
1014# CONFIG_SND_RME9652 is not set
1063# CONFIG_SND_SONICVIBES is not set 1015# CONFIG_SND_SONICVIBES is not set
1016# CONFIG_SND_TRIDENT is not set
1064# CONFIG_SND_VIA82XX is not set 1017# CONFIG_SND_VIA82XX is not set
1065# CONFIG_SND_VIA82XX_MODEM is not set 1018# CONFIG_SND_VIA82XX_MODEM is not set
1066# CONFIG_SND_VX222 is not set 1019# CONFIG_SND_VX222 is not set
1067# CONFIG_SND_HDA_INTEL is not set 1020# CONFIG_SND_YMFPCI is not set
1068 1021
1069# 1022#
1070# ALSA PowerMac devices 1023# ALSA PowerMac devices
@@ -1136,13 +1089,16 @@ CONFIG_USB_STORAGE_DPCM=y
1136CONFIG_USB_STORAGE_SDDR09=y 1089CONFIG_USB_STORAGE_SDDR09=y
1137CONFIG_USB_STORAGE_SDDR55=y 1090CONFIG_USB_STORAGE_SDDR55=y
1138CONFIG_USB_STORAGE_JUMPSHOT=y 1091CONFIG_USB_STORAGE_JUMPSHOT=y
1092# CONFIG_USB_STORAGE_ALAUDA is not set
1139# CONFIG_USB_STORAGE_ONETOUCH is not set 1093# CONFIG_USB_STORAGE_ONETOUCH is not set
1094# CONFIG_USB_LIBUSUAL is not set
1140 1095
1141# 1096#
1142# USB Input Devices 1097# USB Input Devices
1143# 1098#
1144CONFIG_USB_HID=y 1099CONFIG_USB_HID=y
1145CONFIG_USB_HIDINPUT=y 1100CONFIG_USB_HIDINPUT=y
1101# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1146CONFIG_HID_FF=y 1102CONFIG_HID_FF=y
1147CONFIG_HID_PID=y 1103CONFIG_HID_PID=y
1148CONFIG_LOGITECH_FF=y 1104CONFIG_LOGITECH_FF=y
@@ -1159,6 +1115,7 @@ CONFIG_USB_HIDDEV=y
1159# CONFIG_USB_YEALINK is not set 1115# CONFIG_USB_YEALINK is not set
1160# CONFIG_USB_XPAD is not set 1116# CONFIG_USB_XPAD is not set
1161# CONFIG_USB_ATI_REMOTE is not set 1117# CONFIG_USB_ATI_REMOTE is not set
1118# CONFIG_USB_ATI_REMOTE2 is not set
1162# CONFIG_USB_KEYSPAN_REMOTE is not set 1119# CONFIG_USB_KEYSPAN_REMOTE is not set
1163# CONFIG_USB_APPLETOUCH is not set 1120# CONFIG_USB_APPLETOUCH is not set
1164 1121
@@ -1207,6 +1164,7 @@ CONFIG_USB_SERIAL_GENERIC=y
1207# CONFIG_USB_SERIAL_AIRPRIME is not set 1164# CONFIG_USB_SERIAL_AIRPRIME is not set
1208# CONFIG_USB_SERIAL_ANYDATA is not set 1165# CONFIG_USB_SERIAL_ANYDATA is not set
1209CONFIG_USB_SERIAL_BELKIN=m 1166CONFIG_USB_SERIAL_BELKIN=m
1167# CONFIG_USB_SERIAL_WHITEHEAT is not set
1210CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m 1168CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
1211# CONFIG_USB_SERIAL_CP2101 is not set 1169# CONFIG_USB_SERIAL_CP2101 is not set
1212CONFIG_USB_SERIAL_CYPRESS_M8=m 1170CONFIG_USB_SERIAL_CYPRESS_M8=m
@@ -1288,6 +1246,10 @@ CONFIG_USB_EZUSB=y
1288# 1246#
1289 1247
1290# 1248#
1249# EDAC - error detection and reporting (RAS)
1250#
1251
1252#
1291# File systems 1253# File systems
1292# 1254#
1293CONFIG_EXT2_FS=y 1255CONFIG_EXT2_FS=y
@@ -1317,6 +1279,7 @@ CONFIG_XFS_EXPORT=y
1317CONFIG_XFS_SECURITY=y 1279CONFIG_XFS_SECURITY=y
1318CONFIG_XFS_POSIX_ACL=y 1280CONFIG_XFS_POSIX_ACL=y
1319# CONFIG_XFS_RT is not set 1281# CONFIG_XFS_RT is not set
1282# CONFIG_OCFS2_FS is not set
1320# CONFIG_MINIX_FS is not set 1283# CONFIG_MINIX_FS is not set
1321# CONFIG_ROMFS_FS is not set 1284# CONFIG_ROMFS_FS is not set
1322CONFIG_INOTIFY=y 1285CONFIG_INOTIFY=y
@@ -1357,6 +1320,7 @@ CONFIG_HUGETLBFS=y
1357CONFIG_HUGETLB_PAGE=y 1320CONFIG_HUGETLB_PAGE=y
1358CONFIG_RAMFS=y 1321CONFIG_RAMFS=y
1359# CONFIG_RELAYFS_FS is not set 1322# CONFIG_RELAYFS_FS is not set
1323# CONFIG_CONFIGFS_FS is not set
1360 1324
1361# 1325#
1362# Miscellaneous filesystems 1326# Miscellaneous filesystems
@@ -1426,6 +1390,7 @@ CONFIG_MSDOS_PARTITION=y
1426# CONFIG_SGI_PARTITION is not set 1390# CONFIG_SGI_PARTITION is not set
1427# CONFIG_ULTRIX_PARTITION is not set 1391# CONFIG_ULTRIX_PARTITION is not set
1428# CONFIG_SUN_PARTITION is not set 1392# CONFIG_SUN_PARTITION is not set
1393# CONFIG_KARMA_PARTITION is not set
1429# CONFIG_EFI_PARTITION is not set 1394# CONFIG_EFI_PARTITION is not set
1430 1395
1431# 1396#
@@ -1481,10 +1446,6 @@ CONFIG_CRC32=y
1481CONFIG_LIBCRC32C=m 1446CONFIG_LIBCRC32C=m
1482CONFIG_ZLIB_INFLATE=y 1447CONFIG_ZLIB_INFLATE=y
1483CONFIG_ZLIB_DEFLATE=m 1448CONFIG_ZLIB_DEFLATE=m
1484CONFIG_TEXTSEARCH=y
1485CONFIG_TEXTSEARCH_KMP=m
1486CONFIG_TEXTSEARCH_BM=m
1487CONFIG_TEXTSEARCH_FSM=m
1488 1449
1489# 1450#
1490# Instrumentation Support 1451# Instrumentation Support
@@ -1497,24 +1458,31 @@ CONFIG_OPROFILE=y
1497# Kernel hacking 1458# Kernel hacking
1498# 1459#
1499# CONFIG_PRINTK_TIME is not set 1460# CONFIG_PRINTK_TIME is not set
1500CONFIG_DEBUG_KERNEL=y
1501CONFIG_MAGIC_SYSRQ=y 1461CONFIG_MAGIC_SYSRQ=y
1462CONFIG_DEBUG_KERNEL=y
1502CONFIG_LOG_BUF_SHIFT=17 1463CONFIG_LOG_BUF_SHIFT=17
1503CONFIG_DETECT_SOFTLOCKUP=y 1464CONFIG_DETECT_SOFTLOCKUP=y
1504# CONFIG_SCHEDSTATS is not set 1465# CONFIG_SCHEDSTATS is not set
1505# CONFIG_DEBUG_SLAB is not set 1466# CONFIG_DEBUG_SLAB is not set
1467CONFIG_DEBUG_MUTEXES=y
1506# CONFIG_DEBUG_SPINLOCK is not set 1468# CONFIG_DEBUG_SPINLOCK is not set
1507# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1469# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1508# CONFIG_DEBUG_KOBJECT is not set 1470# CONFIG_DEBUG_KOBJECT is not set
1509# CONFIG_DEBUG_INFO is not set 1471# CONFIG_DEBUG_INFO is not set
1510CONFIG_DEBUG_FS=y 1472CONFIG_DEBUG_FS=y
1511# CONFIG_DEBUG_VM is not set 1473# CONFIG_DEBUG_VM is not set
1474CONFIG_FORCED_INLINING=y
1512# CONFIG_RCU_TORTURE_TEST is not set 1475# CONFIG_RCU_TORTURE_TEST is not set
1513# CONFIG_DEBUG_STACKOVERFLOW is not set 1476# CONFIG_DEBUG_STACKOVERFLOW is not set
1514# CONFIG_DEBUG_STACK_USAGE is not set 1477# CONFIG_DEBUG_STACK_USAGE is not set
1515# CONFIG_DEBUGGER is not set 1478# CONFIG_DEBUGGER is not set
1516CONFIG_IRQSTACKS=y 1479CONFIG_IRQSTACKS=y
1517CONFIG_BOOTX_TEXT=y 1480CONFIG_BOOTX_TEXT=y
1481# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1482# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1483# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1484# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1485# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1518 1486
1519# 1487#
1520# Security options 1488# Security options
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index c775027947f9..1816a46742f6 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_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.15-rc5 3# Linux kernel version: 2.6.16-rc6
4# Tue Dec 20 15:59:32 2005 4# Wed Mar 15 16:19:52 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20# CONFIG_PPC_UDBG_16550 is not set
21# CONFIG_GENERIC_TBSYNC is not set
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=32
33# Code maturity level options 37# Code maturity level options
34# 38#
35CONFIG_EXPERIMENTAL=y 39CONFIG_EXPERIMENTAL=y
36CONFIG_CLEAN_COMPILE=y
37CONFIG_LOCK_KERNEL=y 40CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 41CONFIG_INIT_ENV_ARG_LIMIT=32
39 42
@@ -49,8 +52,6 @@ CONFIG_POSIX_MQUEUE=y
49CONFIG_SYSCTL=y 52CONFIG_SYSCTL=y
50CONFIG_AUDIT=y 53CONFIG_AUDIT=y
51CONFIG_AUDITSYSCALL=y 54CONFIG_AUDITSYSCALL=y
52CONFIG_HOTPLUG=y
53CONFIG_KOBJECT_UEVENT=y
54CONFIG_IKCONFIG=y 55CONFIG_IKCONFIG=y
55CONFIG_IKCONFIG_PROC=y 56CONFIG_IKCONFIG_PROC=y
56# CONFIG_CPUSETS is not set 57# CONFIG_CPUSETS is not set
@@ -60,8 +61,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
61# CONFIG_KALLSYMS_ALL is not set 62# CONFIG_KALLSYMS_ALL is not set
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 63# CONFIG_KALLSYMS_EXTRA_PASS is not set
64CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 65CONFIG_PRINTK=y
64CONFIG_BUG=y 66CONFIG_BUG=y
67CONFIG_ELF_CORE=y
65CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
66CONFIG_FUTEX=y 69CONFIG_FUTEX=y
67CONFIG_EPOLL=y 70CONFIG_EPOLL=y
@@ -70,8 +73,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
70CONFIG_CC_ALIGN_LABELS=0 73CONFIG_CC_ALIGN_LABELS=0
71CONFIG_CC_ALIGN_LOOPS=0 74CONFIG_CC_ALIGN_LOOPS=0
72CONFIG_CC_ALIGN_JUMPS=0 75CONFIG_CC_ALIGN_JUMPS=0
76CONFIG_SLAB=y
73# CONFIG_TINY_SHMEM is not set 77# CONFIG_TINY_SHMEM is not set
74CONFIG_BASE_SMALL=0 78CONFIG_BASE_SMALL=0
79# CONFIG_SLOB is not set
75 80
76# 81#
77# Loadable module support 82# Loadable module support
@@ -113,7 +118,6 @@ CONFIG_PPC_ISERIES=y
113# CONFIG_MMIO_NVRAM is not set 118# CONFIG_MMIO_NVRAM is not set
114CONFIG_IBMVIO=y 119CONFIG_IBMVIO=y
115# CONFIG_PPC_MPC106 is not set 120# CONFIG_PPC_MPC106 is not set
116# CONFIG_GENERIC_TBSYNC is not set
117# CONFIG_CPU_FREQ is not set 121# CONFIG_CPU_FREQ is not set
118# CONFIG_WANT_EARLY_SERIAL is not set 122# CONFIG_WANT_EARLY_SERIAL is not set
119 123
@@ -183,6 +187,7 @@ CONFIG_NET=y
183# 187#
184# Networking options 188# Networking options
185# 189#
190# CONFIG_NETDEBUG is not set
186CONFIG_PACKET=y 191CONFIG_PACKET=y
187# CONFIG_PACKET_MMAP is not set 192# CONFIG_PACKET_MMAP is not set
188CONFIG_UNIX=y 193CONFIG_UNIX=y
@@ -220,6 +225,28 @@ CONFIG_NETFILTER=y
220# Core Netfilter Configuration 225# Core Netfilter Configuration
221# 226#
222# CONFIG_NETFILTER_NETLINK is not set 227# CONFIG_NETFILTER_NETLINK is not set
228CONFIG_NETFILTER_XTABLES=m
229CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
230CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
231CONFIG_NETFILTER_XT_TARGET_MARK=m
232CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
233CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
234CONFIG_NETFILTER_XT_MATCH_COMMENT=m
235CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
236CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
237CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
238# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
239CONFIG_NETFILTER_XT_MATCH_HELPER=m
240CONFIG_NETFILTER_XT_MATCH_LENGTH=m
241CONFIG_NETFILTER_XT_MATCH_LIMIT=m
242CONFIG_NETFILTER_XT_MATCH_MAC=m
243CONFIG_NETFILTER_XT_MATCH_MARK=m
244CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
245CONFIG_NETFILTER_XT_MATCH_REALM=m
246CONFIG_NETFILTER_XT_MATCH_SCTP=m
247CONFIG_NETFILTER_XT_MATCH_STATE=m
248CONFIG_NETFILTER_XT_MATCH_STRING=m
249CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
223 250
224# 251#
225# IP: Netfilter Configuration 252# IP: Netfilter Configuration
@@ -237,39 +264,23 @@ CONFIG_IP_NF_AMANDA=m
237# CONFIG_IP_NF_PPTP is not set 264# CONFIG_IP_NF_PPTP is not set
238CONFIG_IP_NF_QUEUE=m 265CONFIG_IP_NF_QUEUE=m
239CONFIG_IP_NF_IPTABLES=m 266CONFIG_IP_NF_IPTABLES=m
240CONFIG_IP_NF_MATCH_LIMIT=m
241CONFIG_IP_NF_MATCH_IPRANGE=m 267CONFIG_IP_NF_MATCH_IPRANGE=m
242CONFIG_IP_NF_MATCH_MAC=m
243CONFIG_IP_NF_MATCH_PKTTYPE=m
244CONFIG_IP_NF_MATCH_MARK=m
245CONFIG_IP_NF_MATCH_MULTIPORT=m 268CONFIG_IP_NF_MATCH_MULTIPORT=m
246CONFIG_IP_NF_MATCH_TOS=m 269CONFIG_IP_NF_MATCH_TOS=m
247CONFIG_IP_NF_MATCH_RECENT=m 270CONFIG_IP_NF_MATCH_RECENT=m
248CONFIG_IP_NF_MATCH_ECN=m 271CONFIG_IP_NF_MATCH_ECN=m
249CONFIG_IP_NF_MATCH_DSCP=m 272CONFIG_IP_NF_MATCH_DSCP=m
250CONFIG_IP_NF_MATCH_AH_ESP=m 273CONFIG_IP_NF_MATCH_AH_ESP=m
251CONFIG_IP_NF_MATCH_LENGTH=m
252CONFIG_IP_NF_MATCH_TTL=m 274CONFIG_IP_NF_MATCH_TTL=m
253CONFIG_IP_NF_MATCH_TCPMSS=m
254CONFIG_IP_NF_MATCH_HELPER=m
255CONFIG_IP_NF_MATCH_STATE=m
256CONFIG_IP_NF_MATCH_CONNTRACK=m
257CONFIG_IP_NF_MATCH_OWNER=m 275CONFIG_IP_NF_MATCH_OWNER=m
258CONFIG_IP_NF_MATCH_ADDRTYPE=m 276CONFIG_IP_NF_MATCH_ADDRTYPE=m
259CONFIG_IP_NF_MATCH_REALM=m
260CONFIG_IP_NF_MATCH_SCTP=m
261# CONFIG_IP_NF_MATCH_DCCP is not set
262CONFIG_IP_NF_MATCH_COMMENT=m
263CONFIG_IP_NF_MATCH_CONNMARK=m
264CONFIG_IP_NF_MATCH_CONNBYTES=m
265CONFIG_IP_NF_MATCH_HASHLIMIT=m 277CONFIG_IP_NF_MATCH_HASHLIMIT=m
266CONFIG_IP_NF_MATCH_STRING=m 278CONFIG_IP_NF_MATCH_POLICY=m
267CONFIG_IP_NF_FILTER=m 279CONFIG_IP_NF_FILTER=m
268CONFIG_IP_NF_TARGET_REJECT=m 280CONFIG_IP_NF_TARGET_REJECT=m
269CONFIG_IP_NF_TARGET_LOG=m 281CONFIG_IP_NF_TARGET_LOG=m
270CONFIG_IP_NF_TARGET_ULOG=m 282CONFIG_IP_NF_TARGET_ULOG=m
271CONFIG_IP_NF_TARGET_TCPMSS=m 283CONFIG_IP_NF_TARGET_TCPMSS=m
272CONFIG_IP_NF_TARGET_NFQUEUE=m
273CONFIG_IP_NF_NAT=m 284CONFIG_IP_NF_NAT=m
274CONFIG_IP_NF_NAT_NEEDED=y 285CONFIG_IP_NF_NAT_NEEDED=y
275CONFIG_IP_NF_TARGET_MASQUERADE=m 286CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -285,13 +296,9 @@ CONFIG_IP_NF_MANGLE=m
285CONFIG_IP_NF_TARGET_TOS=m 296CONFIG_IP_NF_TARGET_TOS=m
286CONFIG_IP_NF_TARGET_ECN=m 297CONFIG_IP_NF_TARGET_ECN=m
287CONFIG_IP_NF_TARGET_DSCP=m 298CONFIG_IP_NF_TARGET_DSCP=m
288CONFIG_IP_NF_TARGET_MARK=m
289CONFIG_IP_NF_TARGET_CLASSIFY=m
290CONFIG_IP_NF_TARGET_TTL=m 299CONFIG_IP_NF_TARGET_TTL=m
291CONFIG_IP_NF_TARGET_CONNMARK=m
292CONFIG_IP_NF_TARGET_CLUSTERIP=m 300CONFIG_IP_NF_TARGET_CLUSTERIP=m
293CONFIG_IP_NF_RAW=m 301CONFIG_IP_NF_RAW=m
294CONFIG_IP_NF_TARGET_NOTRACK=m
295CONFIG_IP_NF_ARPTABLES=m 302CONFIG_IP_NF_ARPTABLES=m
296CONFIG_IP_NF_ARPFILTER=m 303CONFIG_IP_NF_ARPFILTER=m
297CONFIG_IP_NF_ARP_MANGLE=m 304CONFIG_IP_NF_ARP_MANGLE=m
@@ -305,6 +312,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
305# SCTP Configuration (EXPERIMENTAL) 312# SCTP Configuration (EXPERIMENTAL)
306# 313#
307# CONFIG_IP_SCTP is not set 314# CONFIG_IP_SCTP is not set
315
316#
317# TIPC Configuration (EXPERIMENTAL)
318#
319# CONFIG_TIPC is not set
308# CONFIG_ATM is not set 320# CONFIG_ATM is not set
309# CONFIG_BRIDGE is not set 321# CONFIG_BRIDGE is not set
310# CONFIG_VLAN_8021Q is not set 322# CONFIG_VLAN_8021Q is not set
@@ -451,13 +463,7 @@ CONFIG_SCSI_IBMVSCSI=m
451# CONFIG_SCSI_IPR is not set 463# CONFIG_SCSI_IPR is not set
452# CONFIG_SCSI_QLOGIC_FC is not set 464# CONFIG_SCSI_QLOGIC_FC is not set
453# CONFIG_SCSI_QLOGIC_1280 is not set 465# CONFIG_SCSI_QLOGIC_1280 is not set
454CONFIG_SCSI_QLA2XXX=y 466# CONFIG_SCSI_QLA_FC is not set
455# CONFIG_SCSI_QLA21XX is not set
456# CONFIG_SCSI_QLA22XX is not set
457# CONFIG_SCSI_QLA2300 is not set
458# CONFIG_SCSI_QLA2322 is not set
459# CONFIG_SCSI_QLA6312 is not set
460# CONFIG_SCSI_QLA24XX is not set
461# CONFIG_SCSI_LPFC is not set 467# CONFIG_SCSI_LPFC is not set
462# CONFIG_SCSI_DC395x is not set 468# CONFIG_SCSI_DC395x is not set
463# CONFIG_SCSI_DC390T is not set 469# CONFIG_SCSI_DC390T is not set
@@ -574,6 +580,7 @@ CONFIG_E1000=m
574# CONFIG_R8169 is not set 580# CONFIG_R8169 is not set
575# CONFIG_SIS190 is not set 581# CONFIG_SIS190 is not set
576# CONFIG_SKGE is not set 582# CONFIG_SKGE is not set
583# CONFIG_SKY2 is not set
577# CONFIG_SK98LIN is not set 584# CONFIG_SK98LIN is not set
578# CONFIG_VIA_VELOCITY is not set 585# CONFIG_VIA_VELOCITY is not set
579# CONFIG_TIGON3 is not set 586# CONFIG_TIGON3 is not set
@@ -723,6 +730,12 @@ CONFIG_MAX_RAW_DEVS=256
723# CONFIG_I2C is not set 730# CONFIG_I2C is not set
724 731
725# 732#
733# SPI support
734#
735# CONFIG_SPI is not set
736# CONFIG_SPI_MASTER is not set
737
738#
726# Dallas's 1-wire bus 739# Dallas's 1-wire bus
727# 740#
728# CONFIG_W1 is not set 741# CONFIG_W1 is not set
@@ -788,7 +801,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
788# CONFIG_INFINIBAND is not set 801# CONFIG_INFINIBAND is not set
789 802
790# 803#
791# SN Devices 804# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
792# 805#
793 806
794# 807#
@@ -825,6 +838,7 @@ CONFIG_XFS_EXPORT=y
825CONFIG_XFS_SECURITY=y 838CONFIG_XFS_SECURITY=y
826CONFIG_XFS_POSIX_ACL=y 839CONFIG_XFS_POSIX_ACL=y
827# CONFIG_XFS_RT is not set 840# CONFIG_XFS_RT is not set
841# CONFIG_OCFS2_FS is not set
828# CONFIG_MINIX_FS is not set 842# CONFIG_MINIX_FS is not set
829# CONFIG_ROMFS_FS is not set 843# CONFIG_ROMFS_FS is not set
830CONFIG_INOTIFY=y 844CONFIG_INOTIFY=y
@@ -865,6 +879,7 @@ CONFIG_TMPFS=y
865# CONFIG_HUGETLB_PAGE is not set 879# CONFIG_HUGETLB_PAGE is not set
866CONFIG_RAMFS=y 880CONFIG_RAMFS=y
867# CONFIG_RELAYFS_FS is not set 881# CONFIG_RELAYFS_FS is not set
882# CONFIG_CONFIGFS_FS is not set
868 883
869# 884#
870# Miscellaneous filesystems 885# Miscellaneous filesystems
@@ -993,31 +1008,36 @@ CONFIG_TEXTSEARCH_FSM=m
993# 1008#
994# Instrumentation Support 1009# Instrumentation Support
995# 1010#
996CONFIG_PROFILING=y
997CONFIG_OPROFILE=y
998# CONFIG_KPROBES is not set 1011# CONFIG_KPROBES is not set
999 1012
1000# 1013#
1001# Kernel hacking 1014# Kernel hacking
1002# 1015#
1003# CONFIG_PRINTK_TIME is not set 1016# CONFIG_PRINTK_TIME is not set
1004CONFIG_DEBUG_KERNEL=y
1005CONFIG_MAGIC_SYSRQ=y 1017CONFIG_MAGIC_SYSRQ=y
1018CONFIG_DEBUG_KERNEL=y
1006CONFIG_LOG_BUF_SHIFT=17 1019CONFIG_LOG_BUF_SHIFT=17
1007CONFIG_DETECT_SOFTLOCKUP=y 1020CONFIG_DETECT_SOFTLOCKUP=y
1008# CONFIG_SCHEDSTATS is not set 1021# CONFIG_SCHEDSTATS is not set
1009# CONFIG_DEBUG_SLAB is not set 1022# CONFIG_DEBUG_SLAB is not set
1023# CONFIG_DEBUG_MUTEXES is not set
1010# CONFIG_DEBUG_SPINLOCK is not set 1024# CONFIG_DEBUG_SPINLOCK is not set
1011# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1025# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1012# CONFIG_DEBUG_KOBJECT is not set 1026# CONFIG_DEBUG_KOBJECT is not set
1013# CONFIG_DEBUG_INFO is not set 1027# CONFIG_DEBUG_INFO is not set
1014CONFIG_DEBUG_FS=y 1028CONFIG_DEBUG_FS=y
1015# CONFIG_DEBUG_VM is not set 1029# CONFIG_DEBUG_VM is not set
1030# CONFIG_FORCED_INLINING is not set
1016# CONFIG_RCU_TORTURE_TEST is not set 1031# CONFIG_RCU_TORTURE_TEST is not set
1017CONFIG_DEBUG_STACKOVERFLOW=y 1032CONFIG_DEBUG_STACKOVERFLOW=y
1018CONFIG_DEBUG_STACK_USAGE=y 1033CONFIG_DEBUG_STACK_USAGE=y
1019# CONFIG_DEBUGGER is not set 1034# CONFIG_DEBUGGER is not set
1020CONFIG_IRQSTACKS=y 1035CONFIG_IRQSTACKS=y
1036# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1037# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1038# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1039# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1040# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1021 1041
1022# 1042#
1023# Security options 1043# Security options
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 68194c03f6d1..80a0db43aeb7 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_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.15-rc5 3# Linux kernel version: 2.6.16-rc6
4# Tue Dec 20 15:59:36 2005 4# Wed Mar 15 16:19:54 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20CONFIG_PPC_UDBG_16550=y
21CONFIG_GENERIC_TBSYNC=y
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -32,7 +36,6 @@ CONFIG_NR_CPUS=2
32# Code maturity level options 36# Code maturity level options
33# 37#
34CONFIG_EXPERIMENTAL=y 38CONFIG_EXPERIMENTAL=y
35CONFIG_CLEAN_COMPILE=y
36CONFIG_LOCK_KERNEL=y 39CONFIG_LOCK_KERNEL=y
37CONFIG_INIT_ENV_ARG_LIMIT=32 40CONFIG_INIT_ENV_ARG_LIMIT=32
38 41
@@ -47,8 +50,6 @@ CONFIG_POSIX_MQUEUE=y
47# CONFIG_BSD_PROCESS_ACCT is not set 50# CONFIG_BSD_PROCESS_ACCT is not set
48CONFIG_SYSCTL=y 51CONFIG_SYSCTL=y
49# CONFIG_AUDIT is not set 52# CONFIG_AUDIT is not set
50# CONFIG_HOTPLUG is not set
51CONFIG_KOBJECT_UEVENT=y
52CONFIG_IKCONFIG=y 53CONFIG_IKCONFIG=y
53CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
54# CONFIG_CPUSETS is not set 55# CONFIG_CPUSETS is not set
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
58CONFIG_KALLSYMS=y 59CONFIG_KALLSYMS=y
59CONFIG_KALLSYMS_ALL=y 60CONFIG_KALLSYMS_ALL=y
60# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y 63CONFIG_PRINTK=y
62CONFIG_BUG=y 64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y 67CONFIG_FUTEX=y
65CONFIG_EPOLL=y 68CONFIG_EPOLL=y
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
68CONFIG_CC_ALIGN_LABELS=0 71CONFIG_CC_ALIGN_LABELS=0
69CONFIG_CC_ALIGN_LOOPS=0 72CONFIG_CC_ALIGN_LOOPS=0
70CONFIG_CC_ALIGN_JUMPS=0 73CONFIG_CC_ALIGN_JUMPS=0
74CONFIG_SLAB=y
71# CONFIG_TINY_SHMEM is not set 75# CONFIG_TINY_SHMEM is not set
72CONFIG_BASE_SMALL=0 76CONFIG_BASE_SMALL=0
77# CONFIG_SLOB is not set
73 78
74# 79#
75# Loadable module support 80# Loadable module support
@@ -111,14 +116,12 @@ CONFIG_PPC_MULTIPLATFORM=y
111# CONFIG_PPC_PMAC is not set 116# CONFIG_PPC_PMAC is not set
112CONFIG_PPC_MAPLE=y 117CONFIG_PPC_MAPLE=y
113# CONFIG_PPC_CELL is not set 118# CONFIG_PPC_CELL is not set
114CONFIG_PPC_OF=y
115CONFIG_U3_DART=y 119CONFIG_U3_DART=y
116CONFIG_MPIC=y 120CONFIG_MPIC=y
117# CONFIG_PPC_RTAS is not set 121# CONFIG_PPC_RTAS is not set
118# CONFIG_MMIO_NVRAM is not set 122# CONFIG_MMIO_NVRAM is not set
119CONFIG_MPIC_BROKEN_U3=y 123CONFIG_MPIC_BROKEN_U3=y
120# CONFIG_PPC_MPC106 is not set 124# CONFIG_PPC_MPC106 is not set
121CONFIG_GENERIC_TBSYNC=y
122# CONFIG_CPU_FREQ is not set 125# CONFIG_CPU_FREQ is not set
123# CONFIG_WANT_EARLY_SERIAL is not set 126# CONFIG_WANT_EARLY_SERIAL is not set
124 127
@@ -138,6 +141,7 @@ CONFIG_BINFMT_ELF=y
138CONFIG_FORCE_MAX_ZONEORDER=13 141CONFIG_FORCE_MAX_ZONEORDER=13
139CONFIG_IOMMU_VMERGE=y 142CONFIG_IOMMU_VMERGE=y
140CONFIG_KEXEC=y 143CONFIG_KEXEC=y
144# CONFIG_CRASH_DUMP is not set
141CONFIG_IRQ_ALL_CPUS=y 145CONFIG_IRQ_ALL_CPUS=y
142# CONFIG_NUMA is not set 146# CONFIG_NUMA is not set
143CONFIG_ARCH_SELECT_MEMORY_MODEL=y 147CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -189,6 +193,7 @@ CONFIG_NET=y
189# 193#
190# Networking options 194# Networking options
191# 195#
196# CONFIG_NETDEBUG is not set
192CONFIG_PACKET=y 197CONFIG_PACKET=y
193CONFIG_PACKET_MMAP=y 198CONFIG_PACKET_MMAP=y
194CONFIG_UNIX=y 199CONFIG_UNIX=y
@@ -226,6 +231,11 @@ CONFIG_TCP_CONG_BIC=y
226# SCTP Configuration (EXPERIMENTAL) 231# SCTP Configuration (EXPERIMENTAL)
227# 232#
228# CONFIG_IP_SCTP is not set 233# CONFIG_IP_SCTP is not set
234
235#
236# TIPC Configuration (EXPERIMENTAL)
237#
238# CONFIG_TIPC is not set
229# CONFIG_ATM is not set 239# CONFIG_ATM is not set
230# CONFIG_BRIDGE is not set 240# CONFIG_BRIDGE is not set
231# CONFIG_VLAN_8021Q is not set 241# CONFIG_VLAN_8021Q is not set
@@ -461,6 +471,7 @@ CONFIG_E1000=y
461# CONFIG_R8169 is not set 471# CONFIG_R8169 is not set
462# CONFIG_SIS190 is not set 472# CONFIG_SIS190 is not set
463# CONFIG_SKGE is not set 473# CONFIG_SKGE is not set
474# CONFIG_SKY2 is not set
464# CONFIG_SK98LIN is not set 475# CONFIG_SK98LIN is not set
465# CONFIG_VIA_VELOCITY is not set 476# CONFIG_VIA_VELOCITY is not set
466# CONFIG_TIGON3 is not set 477# CONFIG_TIGON3 is not set
@@ -553,6 +564,7 @@ CONFIG_HW_CONSOLE=y
553CONFIG_SERIAL_8250=y 564CONFIG_SERIAL_8250=y
554CONFIG_SERIAL_8250_CONSOLE=y 565CONFIG_SERIAL_8250_CONSOLE=y
555CONFIG_SERIAL_8250_NR_UARTS=4 566CONFIG_SERIAL_8250_NR_UARTS=4
567CONFIG_SERIAL_8250_RUNTIME_UARTS=4
556# CONFIG_SERIAL_8250_EXTENDED is not set 568# CONFIG_SERIAL_8250_EXTENDED is not set
557 569
558# 570#
@@ -651,6 +663,12 @@ CONFIG_I2C_AMD8111=y
651# CONFIG_I2C_DEBUG_CHIP is not set 663# CONFIG_I2C_DEBUG_CHIP is not set
652 664
653# 665#
666# SPI support
667#
668# CONFIG_SPI is not set
669# CONFIG_SPI_MASTER is not set
670
671#
654# Dallas's 1-wire bus 672# Dallas's 1-wire bus
655# 673#
656# CONFIG_W1 is not set 674# CONFIG_W1 is not set
@@ -738,12 +756,14 @@ CONFIG_USB_UHCI_HCD=y
738# may also be needed; see USB_STORAGE Help for more information 756# may also be needed; see USB_STORAGE Help for more information
739# 757#
740# CONFIG_USB_STORAGE is not set 758# CONFIG_USB_STORAGE is not set
759# CONFIG_USB_LIBUSUAL is not set
741 760
742# 761#
743# USB Input Devices 762# USB Input Devices
744# 763#
745CONFIG_USB_HID=y 764CONFIG_USB_HID=y
746CONFIG_USB_HIDINPUT=y 765CONFIG_USB_HIDINPUT=y
766# CONFIG_USB_HIDINPUT_POWERBOOK is not set
747# CONFIG_HID_FF is not set 767# CONFIG_HID_FF is not set
748# CONFIG_USB_HIDDEV is not set 768# CONFIG_USB_HIDDEV is not set
749# CONFIG_USB_AIPTEK is not set 769# CONFIG_USB_AIPTEK is not set
@@ -757,6 +777,7 @@ CONFIG_USB_HIDINPUT=y
757# CONFIG_USB_YEALINK is not set 777# CONFIG_USB_YEALINK is not set
758# CONFIG_USB_XPAD is not set 778# CONFIG_USB_XPAD is not set
759# CONFIG_USB_ATI_REMOTE is not set 779# CONFIG_USB_ATI_REMOTE is not set
780# CONFIG_USB_ATI_REMOTE2 is not set
760# CONFIG_USB_KEYSPAN_REMOTE is not set 781# CONFIG_USB_KEYSPAN_REMOTE is not set
761# CONFIG_USB_APPLETOUCH is not set 782# CONFIG_USB_APPLETOUCH is not set
762 783
@@ -797,6 +818,7 @@ CONFIG_USB_SERIAL_GENERIC=y
797# CONFIG_USB_SERIAL_AIRPRIME is not set 818# CONFIG_USB_SERIAL_AIRPRIME is not set
798# CONFIG_USB_SERIAL_ANYDATA is not set 819# CONFIG_USB_SERIAL_ANYDATA is not set
799# CONFIG_USB_SERIAL_BELKIN is not set 820# CONFIG_USB_SERIAL_BELKIN is not set
821# CONFIG_USB_SERIAL_WHITEHEAT is not set
800# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 822# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
801# CONFIG_USB_SERIAL_CP2101 is not set 823# CONFIG_USB_SERIAL_CP2101 is not set
802CONFIG_USB_SERIAL_CYPRESS_M8=m 824CONFIG_USB_SERIAL_CYPRESS_M8=m
@@ -873,7 +895,7 @@ CONFIG_USB_EZUSB=y
873# CONFIG_INFINIBAND is not set 895# CONFIG_INFINIBAND is not set
874 896
875# 897#
876# SN Devices 898# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
877# 899#
878 900
879# 901#
@@ -891,6 +913,7 @@ CONFIG_JBD=y
891# CONFIG_JFS_FS is not set 913# CONFIG_JFS_FS is not set
892CONFIG_FS_POSIX_ACL=y 914CONFIG_FS_POSIX_ACL=y
893# CONFIG_XFS_FS is not set 915# CONFIG_XFS_FS is not set
916# CONFIG_OCFS2_FS is not set
894# CONFIG_MINIX_FS is not set 917# CONFIG_MINIX_FS is not set
895# CONFIG_ROMFS_FS is not set 918# CONFIG_ROMFS_FS is not set
896CONFIG_INOTIFY=y 919CONFIG_INOTIFY=y
@@ -927,6 +950,7 @@ CONFIG_HUGETLBFS=y
927CONFIG_HUGETLB_PAGE=y 950CONFIG_HUGETLB_PAGE=y
928CONFIG_RAMFS=y 951CONFIG_RAMFS=y
929# CONFIG_RELAYFS_FS is not set 952# CONFIG_RELAYFS_FS is not set
953# CONFIG_CONFIGFS_FS is not set
930 954
931# 955#
932# Miscellaneous filesystems 956# Miscellaneous filesystems
@@ -988,6 +1012,7 @@ CONFIG_MSDOS_PARTITION=y
988# CONFIG_SGI_PARTITION is not set 1012# CONFIG_SGI_PARTITION is not set
989# CONFIG_ULTRIX_PARTITION is not set 1013# CONFIG_ULTRIX_PARTITION is not set
990# CONFIG_SUN_PARTITION is not set 1014# CONFIG_SUN_PARTITION is not set
1015# CONFIG_KARMA_PARTITION is not set
991# CONFIG_EFI_PARTITION is not set 1016# CONFIG_EFI_PARTITION is not set
992 1017
993# 1018#
@@ -1053,18 +1078,20 @@ CONFIG_ZLIB_INFLATE=y
1053# Kernel hacking 1078# Kernel hacking
1054# 1079#
1055# CONFIG_PRINTK_TIME is not set 1080# CONFIG_PRINTK_TIME is not set
1056CONFIG_DEBUG_KERNEL=y
1057CONFIG_MAGIC_SYSRQ=y 1081CONFIG_MAGIC_SYSRQ=y
1082CONFIG_DEBUG_KERNEL=y
1058CONFIG_LOG_BUF_SHIFT=17 1083CONFIG_LOG_BUF_SHIFT=17
1059CONFIG_DETECT_SOFTLOCKUP=y 1084CONFIG_DETECT_SOFTLOCKUP=y
1060# CONFIG_SCHEDSTATS is not set 1085# CONFIG_SCHEDSTATS is not set
1061CONFIG_DEBUG_SLAB=y 1086CONFIG_DEBUG_SLAB=y
1087# CONFIG_DEBUG_MUTEXES is not set
1062# CONFIG_DEBUG_SPINLOCK is not set 1088# CONFIG_DEBUG_SPINLOCK is not set
1063CONFIG_DEBUG_SPINLOCK_SLEEP=y 1089CONFIG_DEBUG_SPINLOCK_SLEEP=y
1064# CONFIG_DEBUG_KOBJECT is not set 1090# CONFIG_DEBUG_KOBJECT is not set
1065# CONFIG_DEBUG_INFO is not set 1091# CONFIG_DEBUG_INFO is not set
1066CONFIG_DEBUG_FS=y 1092CONFIG_DEBUG_FS=y
1067# CONFIG_DEBUG_VM is not set 1093# CONFIG_DEBUG_VM is not set
1094# CONFIG_FORCED_INLINING is not set
1068# CONFIG_RCU_TORTURE_TEST is not set 1095# CONFIG_RCU_TORTURE_TEST is not set
1069CONFIG_DEBUG_STACKOVERFLOW=y 1096CONFIG_DEBUG_STACKOVERFLOW=y
1070CONFIG_DEBUG_STACK_USAGE=y 1097CONFIG_DEBUG_STACK_USAGE=y
@@ -1073,6 +1100,11 @@ CONFIG_XMON=y
1073CONFIG_XMON_DEFAULT=y 1100CONFIG_XMON_DEFAULT=y
1074# CONFIG_IRQSTACKS is not set 1101# CONFIG_IRQSTACKS is not set
1075CONFIG_BOOTX_TEXT=y 1102CONFIG_BOOTX_TEXT=y
1103# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1104# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1105# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1106# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1107# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1076 1108
1077# 1109#
1078# Security options 1110# Security options
diff --git a/arch/powerpc/configs/mpc834x_sys_defconfig b/arch/powerpc/configs/mpc834x_sys_defconfig
index 3bff761965c2..5078b0441d61 100644
--- a/arch/powerpc/configs/mpc834x_sys_defconfig
+++ b/arch/powerpc/configs/mpc834x_sys_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.15-g461d4edf-dirty 3# Linux kernel version: 2.6.16-rc6
4# Fri Jan 13 11:01:47 2006 4# Wed Mar 15 16:19:56 2006
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7CONFIG_PPC32=y 7CONFIG_PPC32=y
@@ -43,7 +43,6 @@ CONFIG_PPC_STD_MMU_32=y
43# Code maturity level options 43# Code maturity level options
44# 44#
45CONFIG_EXPERIMENTAL=y 45CONFIG_EXPERIMENTAL=y
46CONFIG_CLEAN_COMPILE=y
47CONFIG_BROKEN_ON_SMP=y 46CONFIG_BROKEN_ON_SMP=y
48CONFIG_INIT_ENV_ARG_LIMIT=32 47CONFIG_INIT_ENV_ARG_LIMIT=32
49 48
@@ -189,6 +188,7 @@ CONFIG_NET=y
189# 188#
190# Networking options 189# Networking options
191# 190#
191# CONFIG_NETDEBUG is not set
192CONFIG_PACKET=y 192CONFIG_PACKET=y
193# CONFIG_PACKET_MMAP is not set 193# CONFIG_PACKET_MMAP is not set
194CONFIG_UNIX=y 194CONFIG_UNIX=y
@@ -226,6 +226,11 @@ CONFIG_TCP_CONG_BIC=y
226# SCTP Configuration (EXPERIMENTAL) 226# SCTP Configuration (EXPERIMENTAL)
227# 227#
228# CONFIG_IP_SCTP is not set 228# CONFIG_IP_SCTP is not set
229
230#
231# TIPC Configuration (EXPERIMENTAL)
232#
233# CONFIG_TIPC is not set
229# CONFIG_ATM is not set 234# CONFIG_ATM is not set
230# CONFIG_BRIDGE is not set 235# CONFIG_BRIDGE is not set
231# CONFIG_VLAN_8021Q is not set 236# CONFIG_VLAN_8021Q is not set
@@ -511,6 +516,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
511# 516#
512CONFIG_SERIAL_CORE=y 517CONFIG_SERIAL_CORE=y
513CONFIG_SERIAL_CORE_CONSOLE=y 518CONFIG_SERIAL_CORE_CONSOLE=y
519# CONFIG_SERIAL_JSM is not set
514CONFIG_UNIX98_PTYS=y 520CONFIG_UNIX98_PTYS=y
515CONFIG_LEGACY_PTYS=y 521CONFIG_LEGACY_PTYS=y
516CONFIG_LEGACY_PTY_COUNT=256 522CONFIG_LEGACY_PTY_COUNT=256
@@ -615,6 +621,12 @@ CONFIG_I2C_MPC=y
615# CONFIG_I2C_DEBUG_CHIP is not set 621# CONFIG_I2C_DEBUG_CHIP is not set
616 622
617# 623#
624# SPI support
625#
626# CONFIG_SPI is not set
627# CONFIG_SPI_MASTER is not set
628
629#
618# Dallas's 1-wire bus 630# Dallas's 1-wire bus
619# 631#
620# CONFIG_W1 is not set 632# CONFIG_W1 is not set
@@ -632,6 +644,7 @@ CONFIG_HWMON=y
632# CONFIG_SENSORS_ASB100 is not set 644# CONFIG_SENSORS_ASB100 is not set
633# CONFIG_SENSORS_ATXP1 is not set 645# CONFIG_SENSORS_ATXP1 is not set
634# CONFIG_SENSORS_DS1621 is not set 646# CONFIG_SENSORS_DS1621 is not set
647# CONFIG_SENSORS_F71805F is not set
635# CONFIG_SENSORS_FSCHER is not set 648# CONFIG_SENSORS_FSCHER is not set
636# CONFIG_SENSORS_FSCPOS is not set 649# CONFIG_SENSORS_FSCPOS is not set
637# CONFIG_SENSORS_GL518SM is not set 650# CONFIG_SENSORS_GL518SM is not set
@@ -716,7 +729,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
716# CONFIG_INFINIBAND is not set 729# CONFIG_INFINIBAND is not set
717 730
718# 731#
719# SN Devices 732# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
720# 733#
721 734
722# 735#
@@ -826,6 +839,7 @@ CONFIG_PARTITION_ADVANCED=y
826# CONFIG_SGI_PARTITION is not set 839# CONFIG_SGI_PARTITION is not set
827# CONFIG_ULTRIX_PARTITION is not set 840# CONFIG_ULTRIX_PARTITION is not set
828# CONFIG_SUN_PARTITION is not set 841# CONFIG_SUN_PARTITION is not set
842# CONFIG_KARMA_PARTITION is not set
829# CONFIG_EFI_PARTITION is not set 843# CONFIG_EFI_PARTITION is not set
830 844
831# 845#
@@ -899,13 +913,3 @@ CONFIG_CRYPTO_DES=y
899# 913#
900# Hardware crypto devices 914# Hardware crypto devices
901# 915#
902
903#
904# SEC2.x Options
905#
906CONFIG_MPC8349E_SEC2x=y
907
908#
909# SEC2.x Test Options
910#
911CONFIG_MPC8349E_SEC2xTEST=y
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 2ace57d1e333..57a027971d67 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_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.15 3# Linux kernel version: 2.6.16-rc6
4# Sat Jan 14 16:26:08 2006 4# Wed Mar 15 16:21:32 2006
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7CONFIG_PPC32=y 7CONFIG_PPC32=y
@@ -17,8 +17,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
17CONFIG_ARCH_MAY_HAVE_PC_FDC=y 17CONFIG_ARCH_MAY_HAVE_PC_FDC=y
18CONFIG_PPC_OF=y 18CONFIG_PPC_OF=y
19# CONFIG_PPC_UDBG_16550 is not set 19# CONFIG_PPC_UDBG_16550 is not set
20# CONFIG_CRASH_DUMP is not set
21# CONFIG_GENERIC_TBSYNC is not set 20# CONFIG_GENERIC_TBSYNC is not set
21# CONFIG_DEFAULT_UIMAGE is not set
22 22
23# 23#
24# Processor support 24# Processor support
@@ -43,7 +43,6 @@ CONFIG_PPC_STD_MMU_32=y
43# Code maturity level options 43# Code maturity level options
44# 44#
45CONFIG_EXPERIMENTAL=y 45CONFIG_EXPERIMENTAL=y
46CONFIG_CLEAN_COMPILE=y
47CONFIG_BROKEN_ON_SMP=y 46CONFIG_BROKEN_ON_SMP=y
48CONFIG_INIT_ENV_ARG_LIMIT=32 47CONFIG_INIT_ENV_ARG_LIMIT=32
49 48
@@ -236,6 +235,7 @@ CONFIG_NET=y
236# 235#
237# Networking options 236# Networking options
238# 237#
238# CONFIG_NETDEBUG is not set
239CONFIG_PACKET=y 239CONFIG_PACKET=y
240# CONFIG_PACKET_MMAP is not set 240# CONFIG_PACKET_MMAP is not set
241CONFIG_UNIX=y 241CONFIG_UNIX=y
@@ -271,6 +271,25 @@ CONFIG_NETFILTER=y
271# Core Netfilter Configuration 271# Core Netfilter Configuration
272# 272#
273# CONFIG_NETFILTER_NETLINK is not set 273# CONFIG_NETFILTER_NETLINK is not set
274CONFIG_NETFILTER_XTABLES=m
275CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
276CONFIG_NETFILTER_XT_TARGET_MARK=m
277CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
278CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
279CONFIG_NETFILTER_XT_MATCH_COMMENT=m
280CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
281# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
282CONFIG_NETFILTER_XT_MATCH_HELPER=m
283CONFIG_NETFILTER_XT_MATCH_LENGTH=m
284CONFIG_NETFILTER_XT_MATCH_LIMIT=m
285CONFIG_NETFILTER_XT_MATCH_MAC=m
286CONFIG_NETFILTER_XT_MATCH_MARK=m
287CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
288CONFIG_NETFILTER_XT_MATCH_REALM=m
289CONFIG_NETFILTER_XT_MATCH_SCTP=m
290CONFIG_NETFILTER_XT_MATCH_STATE=m
291CONFIG_NETFILTER_XT_MATCH_STRING=m
292CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
274 293
275# 294#
276# IP: Netfilter Configuration 295# IP: Netfilter Configuration
@@ -288,37 +307,22 @@ CONFIG_IP_NF_AMANDA=m
288CONFIG_IP_NF_PPTP=m 307CONFIG_IP_NF_PPTP=m
289# CONFIG_IP_NF_QUEUE is not set 308# CONFIG_IP_NF_QUEUE is not set
290CONFIG_IP_NF_IPTABLES=m 309CONFIG_IP_NF_IPTABLES=m
291CONFIG_IP_NF_MATCH_LIMIT=m
292CONFIG_IP_NF_MATCH_IPRANGE=m 310CONFIG_IP_NF_MATCH_IPRANGE=m
293CONFIG_IP_NF_MATCH_MAC=m
294CONFIG_IP_NF_MATCH_PKTTYPE=m
295CONFIG_IP_NF_MATCH_MARK=m
296CONFIG_IP_NF_MATCH_MULTIPORT=m 311CONFIG_IP_NF_MATCH_MULTIPORT=m
297CONFIG_IP_NF_MATCH_TOS=m 312CONFIG_IP_NF_MATCH_TOS=m
298CONFIG_IP_NF_MATCH_RECENT=m 313CONFIG_IP_NF_MATCH_RECENT=m
299CONFIG_IP_NF_MATCH_ECN=m 314CONFIG_IP_NF_MATCH_ECN=m
300CONFIG_IP_NF_MATCH_DSCP=m 315CONFIG_IP_NF_MATCH_DSCP=m
301CONFIG_IP_NF_MATCH_AH_ESP=m 316CONFIG_IP_NF_MATCH_AH_ESP=m
302CONFIG_IP_NF_MATCH_LENGTH=m
303CONFIG_IP_NF_MATCH_TTL=m 317CONFIG_IP_NF_MATCH_TTL=m
304CONFIG_IP_NF_MATCH_TCPMSS=m
305CONFIG_IP_NF_MATCH_HELPER=m
306CONFIG_IP_NF_MATCH_STATE=m
307CONFIG_IP_NF_MATCH_CONNTRACK=m
308CONFIG_IP_NF_MATCH_OWNER=m 318CONFIG_IP_NF_MATCH_OWNER=m
309# CONFIG_IP_NF_MATCH_ADDRTYPE is not set 319CONFIG_IP_NF_MATCH_ADDRTYPE=m
310# CONFIG_IP_NF_MATCH_REALM is not set 320CONFIG_IP_NF_MATCH_HASHLIMIT=m
311# CONFIG_IP_NF_MATCH_SCTP is not set
312CONFIG_IP_NF_MATCH_DCCP=m
313# CONFIG_IP_NF_MATCH_COMMENT is not set
314# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
315CONFIG_IP_NF_MATCH_STRING=m
316CONFIG_IP_NF_FILTER=m 321CONFIG_IP_NF_FILTER=m
317CONFIG_IP_NF_TARGET_REJECT=m 322CONFIG_IP_NF_TARGET_REJECT=m
318# CONFIG_IP_NF_TARGET_LOG is not set 323CONFIG_IP_NF_TARGET_LOG=m
319CONFIG_IP_NF_TARGET_ULOG=m 324CONFIG_IP_NF_TARGET_ULOG=m
320CONFIG_IP_NF_TARGET_TCPMSS=m 325CONFIG_IP_NF_TARGET_TCPMSS=m
321# CONFIG_IP_NF_TARGET_NFQUEUE is not set
322CONFIG_IP_NF_NAT=m 326CONFIG_IP_NF_NAT=m
323CONFIG_IP_NF_NAT_NEEDED=y 327CONFIG_IP_NF_NAT_NEEDED=y
324CONFIG_IP_NF_TARGET_MASQUERADE=m 328CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -331,9 +335,12 @@ CONFIG_IP_NF_NAT_FTP=m
331CONFIG_IP_NF_NAT_TFTP=m 335CONFIG_IP_NF_NAT_TFTP=m
332CONFIG_IP_NF_NAT_AMANDA=m 336CONFIG_IP_NF_NAT_AMANDA=m
333CONFIG_IP_NF_NAT_PPTP=m 337CONFIG_IP_NF_NAT_PPTP=m
334# CONFIG_IP_NF_MANGLE is not set 338CONFIG_IP_NF_MANGLE=m
339CONFIG_IP_NF_TARGET_TOS=m
340CONFIG_IP_NF_TARGET_ECN=m
341CONFIG_IP_NF_TARGET_DSCP=m
342CONFIG_IP_NF_TARGET_TTL=m
335CONFIG_IP_NF_RAW=m 343CONFIG_IP_NF_RAW=m
336CONFIG_IP_NF_TARGET_NOTRACK=m
337CONFIG_IP_NF_ARPTABLES=m 344CONFIG_IP_NF_ARPTABLES=m
338CONFIG_IP_NF_ARPFILTER=m 345CONFIG_IP_NF_ARPFILTER=m
339CONFIG_IP_NF_ARP_MANGLE=m 346CONFIG_IP_NF_ARP_MANGLE=m
@@ -360,6 +367,11 @@ CONFIG_IP_DCCP_TFRC_LIB=m
360# SCTP Configuration (EXPERIMENTAL) 367# SCTP Configuration (EXPERIMENTAL)
361# 368#
362# CONFIG_IP_SCTP is not set 369# CONFIG_IP_SCTP is not set
370
371#
372# TIPC Configuration (EXPERIMENTAL)
373#
374# CONFIG_TIPC is not set
363# CONFIG_ATM is not set 375# CONFIG_ATM is not set
364# CONFIG_BRIDGE is not set 376# CONFIG_BRIDGE is not set
365# CONFIG_VLAN_8021Q is not set 377# CONFIG_VLAN_8021Q is not set
@@ -377,6 +389,7 @@ CONFIG_IP_DCCP_TFRC_LIB=m
377# QoS and/or fair queueing 389# QoS and/or fair queueing
378# 390#
379# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392CONFIG_NET_CLS_ROUTE=y
380 393
381# 394#
382# Network testing 395# Network testing
@@ -568,7 +581,6 @@ CONFIG_IDEDMA_PCI_AUTO=y
568# CONFIG_BLK_DEV_NS87415 is not set 581# CONFIG_BLK_DEV_NS87415 is not set
569# CONFIG_BLK_DEV_PDC202XX_OLD is not set 582# CONFIG_BLK_DEV_PDC202XX_OLD is not set
570CONFIG_BLK_DEV_PDC202XX_NEW=y 583CONFIG_BLK_DEV_PDC202XX_NEW=y
571# CONFIG_PDC202XX_FORCE is not set
572# CONFIG_BLK_DEV_SVWKS is not set 584# CONFIG_BLK_DEV_SVWKS is not set
573# CONFIG_BLK_DEV_SIIMAGE is not set 585# CONFIG_BLK_DEV_SIIMAGE is not set
574# CONFIG_BLK_DEV_SLC90E66 is not set 586# CONFIG_BLK_DEV_SLC90E66 is not set
@@ -654,8 +666,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
654# CONFIG_SCSI_IPR is not set 666# CONFIG_SCSI_IPR is not set
655# CONFIG_SCSI_QLOGIC_FC is not set 667# CONFIG_SCSI_QLOGIC_FC is not set
656# CONFIG_SCSI_QLOGIC_1280 is not set 668# CONFIG_SCSI_QLOGIC_1280 is not set
657CONFIG_SCSI_QLA2XXX=y 669# CONFIG_SCSI_QLA_FC is not set
658# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set
659# CONFIG_SCSI_LPFC is not set 670# CONFIG_SCSI_LPFC is not set
660# CONFIG_SCSI_DC395x is not set 671# CONFIG_SCSI_DC395x is not set
661# CONFIG_SCSI_DC390T is not set 672# CONFIG_SCSI_DC390T is not set
@@ -991,6 +1002,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
991# 1002#
992CONFIG_SERIAL_CORE=m 1003CONFIG_SERIAL_CORE=m
993CONFIG_SERIAL_PMACZILOG=m 1004CONFIG_SERIAL_PMACZILOG=m
1005# CONFIG_SERIAL_JSM is not set
994CONFIG_UNIX98_PTYS=y 1006CONFIG_UNIX98_PTYS=y
995CONFIG_LEGACY_PTYS=y 1007CONFIG_LEGACY_PTYS=y
996CONFIG_LEGACY_PTY_COUNT=256 1008CONFIG_LEGACY_PTY_COUNT=256
@@ -1098,6 +1110,12 @@ CONFIG_I2C_POWERMAC=y
1098# CONFIG_I2C_DEBUG_CHIP is not set 1110# CONFIG_I2C_DEBUG_CHIP is not set
1099 1111
1100# 1112#
1113# SPI support
1114#
1115# CONFIG_SPI is not set
1116# CONFIG_SPI_MASTER is not set
1117
1118#
1101# Dallas's 1-wire bus 1119# Dallas's 1-wire bus
1102# 1120#
1103# CONFIG_W1 is not set 1121# CONFIG_W1 is not set
@@ -1348,6 +1366,7 @@ CONFIG_USB_PRINTER=m
1348# 1366#
1349CONFIG_USB_HID=y 1367CONFIG_USB_HID=y
1350CONFIG_USB_HIDINPUT=y 1368CONFIG_USB_HIDINPUT=y
1369CONFIG_USB_HIDINPUT_POWERBOOK=y
1351# CONFIG_HID_FF is not set 1370# CONFIG_HID_FF is not set
1352# CONFIG_USB_HIDDEV is not set 1371# CONFIG_USB_HIDDEV is not set
1353# CONFIG_USB_AIPTEK is not set 1372# CONFIG_USB_AIPTEK is not set
@@ -1488,7 +1507,7 @@ CONFIG_USB_EZUSB=y
1488# CONFIG_INFINIBAND is not set 1507# CONFIG_INFINIBAND is not set
1489 1508
1490# 1509#
1491# SN Devices 1510# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1492# 1511#
1493 1512
1494# 1513#
@@ -1609,6 +1628,7 @@ CONFIG_MSDOS_PARTITION=y
1609# CONFIG_SGI_PARTITION is not set 1628# CONFIG_SGI_PARTITION is not set
1610# CONFIG_ULTRIX_PARTITION is not set 1629# CONFIG_ULTRIX_PARTITION is not set
1611# CONFIG_SUN_PARTITION is not set 1630# CONFIG_SUN_PARTITION is not set
1631# CONFIG_KARMA_PARTITION is not set
1612# CONFIG_EFI_PARTITION is not set 1632# CONFIG_EFI_PARTITION is not set
1613 1633
1614# 1634#
@@ -1692,6 +1712,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1692# CONFIG_DEBUG_INFO is not set 1712# CONFIG_DEBUG_INFO is not set
1693# CONFIG_DEBUG_FS is not set 1713# CONFIG_DEBUG_FS is not set
1694# CONFIG_DEBUG_VM is not set 1714# CONFIG_DEBUG_VM is not set
1715# CONFIG_FORCED_INLINING is not set
1695# CONFIG_RCU_TORTURE_TEST is not set 1716# CONFIG_RCU_TORTURE_TEST is not set
1696CONFIG_DEBUGGER=y 1717CONFIG_DEBUGGER=y
1697CONFIG_XMON=y 1718CONFIG_XMON=y
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 6f6c6bed1aa5..395e49847788 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_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.15-rc5 3# Linux kernel version: 2.6.16-rc2
4# Tue Dec 20 15:59:38 2005 4# Fri Feb 10 17:32:14 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20CONFIG_PPC_UDBG_16550=y
21CONFIG_GENERIC_TBSYNC=y
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=32
33# Code maturity level options 37# Code maturity level options
34# 38#
35CONFIG_EXPERIMENTAL=y 39CONFIG_EXPERIMENTAL=y
36CONFIG_CLEAN_COMPILE=y
37CONFIG_LOCK_KERNEL=y 40CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 41CONFIG_INIT_ENV_ARG_LIMIT=32
39 42
@@ -48,8 +51,6 @@ CONFIG_POSIX_MQUEUE=y
48# CONFIG_BSD_PROCESS_ACCT is not set 51# CONFIG_BSD_PROCESS_ACCT is not set
49CONFIG_SYSCTL=y 52CONFIG_SYSCTL=y
50# CONFIG_AUDIT is not set 53# CONFIG_AUDIT is not set
51CONFIG_HOTPLUG=y
52CONFIG_KOBJECT_UEVENT=y
53CONFIG_IKCONFIG=y 54CONFIG_IKCONFIG=y
54CONFIG_IKCONFIG_PROC=y 55CONFIG_IKCONFIG_PROC=y
55CONFIG_CPUSETS=y 56CONFIG_CPUSETS=y
@@ -59,8 +60,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
59CONFIG_KALLSYMS=y 60CONFIG_KALLSYMS=y
60CONFIG_KALLSYMS_ALL=y 61CONFIG_KALLSYMS_ALL=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set 62# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y
62CONFIG_PRINTK=y 64CONFIG_PRINTK=y
63CONFIG_BUG=y 65CONFIG_BUG=y
66CONFIG_ELF_CORE=y
64CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
65CONFIG_FUTEX=y 68CONFIG_FUTEX=y
66CONFIG_EPOLL=y 69CONFIG_EPOLL=y
@@ -69,8 +72,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
69CONFIG_CC_ALIGN_LABELS=0 72CONFIG_CC_ALIGN_LABELS=0
70CONFIG_CC_ALIGN_LOOPS=0 73CONFIG_CC_ALIGN_LOOPS=0
71CONFIG_CC_ALIGN_JUMPS=0 74CONFIG_CC_ALIGN_JUMPS=0
75CONFIG_SLAB=y
72# CONFIG_TINY_SHMEM is not set 76# CONFIG_TINY_SHMEM is not set
73CONFIG_BASE_SMALL=0 77CONFIG_BASE_SMALL=0
78# CONFIG_SLOB is not set
74 79
75# 80#
76# Loadable module support 81# Loadable module support
@@ -113,7 +118,6 @@ CONFIG_PPC_PMAC=y
113CONFIG_PPC_PMAC64=y 118CONFIG_PPC_PMAC64=y
114CONFIG_PPC_MAPLE=y 119CONFIG_PPC_MAPLE=y
115# CONFIG_PPC_CELL is not set 120# CONFIG_PPC_CELL is not set
116CONFIG_PPC_OF=y
117CONFIG_XICS=y 121CONFIG_XICS=y
118CONFIG_U3_DART=y 122CONFIG_U3_DART=y
119CONFIG_MPIC=y 123CONFIG_MPIC=y
@@ -124,8 +128,8 @@ CONFIG_RTAS_FLASH=m
124# CONFIG_MMIO_NVRAM is not set 128# CONFIG_MMIO_NVRAM is not set
125CONFIG_MPIC_BROKEN_U3=y 129CONFIG_MPIC_BROKEN_U3=y
126CONFIG_IBMVIO=y 130CONFIG_IBMVIO=y
131# CONFIG_IBMEBUS is not set
127# CONFIG_PPC_MPC106 is not set 132# CONFIG_PPC_MPC106 is not set
128CONFIG_GENERIC_TBSYNC=y
129CONFIG_CPU_FREQ=y 133CONFIG_CPU_FREQ=y
130CONFIG_CPU_FREQ_TABLE=y 134CONFIG_CPU_FREQ_TABLE=y
131# CONFIG_CPU_FREQ_DEBUG is not set 135# CONFIG_CPU_FREQ_DEBUG is not set
@@ -158,6 +162,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
158CONFIG_IOMMU_VMERGE=y 162CONFIG_IOMMU_VMERGE=y
159CONFIG_HOTPLUG_CPU=y 163CONFIG_HOTPLUG_CPU=y
160CONFIG_KEXEC=y 164CONFIG_KEXEC=y
165# CONFIG_CRASH_DUMP is not set
161CONFIG_IRQ_ALL_CPUS=y 166CONFIG_IRQ_ALL_CPUS=y
162CONFIG_PPC_SPLPAR=y 167CONFIG_PPC_SPLPAR=y
163CONFIG_EEH=y 168CONFIG_EEH=y
@@ -178,6 +183,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y
178CONFIG_SPARSEMEM_EXTREME=y 183CONFIG_SPARSEMEM_EXTREME=y
179# CONFIG_MEMORY_HOTPLUG is not set 184# CONFIG_MEMORY_HOTPLUG is not set
180CONFIG_SPLIT_PTLOCK_CPUS=4 185CONFIG_SPLIT_PTLOCK_CPUS=4
186CONFIG_MIGRATION=y
181# CONFIG_PPC_64K_PAGES is not set 187# CONFIG_PPC_64K_PAGES is not set
182# CONFIG_SCHED_SMT is not set 188# CONFIG_SCHED_SMT is not set
183CONFIG_PROC_DEVICETREE=y 189CONFIG_PROC_DEVICETREE=y
@@ -221,6 +227,7 @@ CONFIG_NET=y
221# 227#
222# Networking options 228# Networking options
223# 229#
230# CONFIG_NETDEBUG is not set
224CONFIG_PACKET=y 231CONFIG_PACKET=y
225# CONFIG_PACKET_MMAP is not set 232# CONFIG_PACKET_MMAP is not set
226CONFIG_UNIX=y 233CONFIG_UNIX=y
@@ -260,6 +267,7 @@ CONFIG_NETFILTER=y
260CONFIG_NETFILTER_NETLINK=y 267CONFIG_NETFILTER_NETLINK=y
261CONFIG_NETFILTER_NETLINK_QUEUE=m 268CONFIG_NETFILTER_NETLINK_QUEUE=m
262CONFIG_NETFILTER_NETLINK_LOG=m 269CONFIG_NETFILTER_NETLINK_LOG=m
270# CONFIG_NETFILTER_XTABLES is not set
263 271
264# 272#
265# IP: Netfilter Configuration 273# IP: Netfilter Configuration
@@ -277,65 +285,6 @@ CONFIG_IP_NF_TFTP=m
277CONFIG_IP_NF_AMANDA=m 285CONFIG_IP_NF_AMANDA=m
278# CONFIG_IP_NF_PPTP is not set 286# CONFIG_IP_NF_PPTP is not set
279CONFIG_IP_NF_QUEUE=m 287CONFIG_IP_NF_QUEUE=m
280CONFIG_IP_NF_IPTABLES=m
281CONFIG_IP_NF_MATCH_LIMIT=m
282CONFIG_IP_NF_MATCH_IPRANGE=m
283CONFIG_IP_NF_MATCH_MAC=m
284CONFIG_IP_NF_MATCH_PKTTYPE=m
285CONFIG_IP_NF_MATCH_MARK=m
286CONFIG_IP_NF_MATCH_MULTIPORT=m
287CONFIG_IP_NF_MATCH_TOS=m
288CONFIG_IP_NF_MATCH_RECENT=m
289CONFIG_IP_NF_MATCH_ECN=m
290CONFIG_IP_NF_MATCH_DSCP=m
291CONFIG_IP_NF_MATCH_AH_ESP=m
292CONFIG_IP_NF_MATCH_LENGTH=m
293CONFIG_IP_NF_MATCH_TTL=m
294CONFIG_IP_NF_MATCH_TCPMSS=m
295CONFIG_IP_NF_MATCH_HELPER=m
296CONFIG_IP_NF_MATCH_STATE=m
297CONFIG_IP_NF_MATCH_CONNTRACK=m
298CONFIG_IP_NF_MATCH_OWNER=m
299CONFIG_IP_NF_MATCH_ADDRTYPE=m
300CONFIG_IP_NF_MATCH_REALM=m
301CONFIG_IP_NF_MATCH_SCTP=m
302CONFIG_IP_NF_MATCH_DCCP=m
303CONFIG_IP_NF_MATCH_COMMENT=m
304CONFIG_IP_NF_MATCH_CONNMARK=m
305CONFIG_IP_NF_MATCH_CONNBYTES=m
306CONFIG_IP_NF_MATCH_HASHLIMIT=m
307CONFIG_IP_NF_MATCH_STRING=m
308CONFIG_IP_NF_FILTER=m
309CONFIG_IP_NF_TARGET_REJECT=m
310CONFIG_IP_NF_TARGET_LOG=m
311CONFIG_IP_NF_TARGET_ULOG=m
312CONFIG_IP_NF_TARGET_TCPMSS=m
313CONFIG_IP_NF_TARGET_NFQUEUE=m
314CONFIG_IP_NF_NAT=m
315CONFIG_IP_NF_NAT_NEEDED=y
316CONFIG_IP_NF_TARGET_MASQUERADE=m
317CONFIG_IP_NF_TARGET_REDIRECT=m
318CONFIG_IP_NF_TARGET_NETMAP=m
319CONFIG_IP_NF_TARGET_SAME=m
320CONFIG_IP_NF_NAT_SNMP_BASIC=m
321CONFIG_IP_NF_NAT_IRC=m
322CONFIG_IP_NF_NAT_FTP=m
323CONFIG_IP_NF_NAT_TFTP=m
324CONFIG_IP_NF_NAT_AMANDA=m
325CONFIG_IP_NF_MANGLE=m
326CONFIG_IP_NF_TARGET_TOS=m
327CONFIG_IP_NF_TARGET_ECN=m
328CONFIG_IP_NF_TARGET_DSCP=m
329CONFIG_IP_NF_TARGET_MARK=m
330CONFIG_IP_NF_TARGET_CLASSIFY=m
331CONFIG_IP_NF_TARGET_TTL=m
332CONFIG_IP_NF_TARGET_CONNMARK=m
333CONFIG_IP_NF_TARGET_CLUSTERIP=m
334CONFIG_IP_NF_RAW=m
335CONFIG_IP_NF_TARGET_NOTRACK=m
336CONFIG_IP_NF_ARPTABLES=m
337CONFIG_IP_NF_ARPFILTER=m
338CONFIG_IP_NF_ARP_MANGLE=m
339 288
340# 289#
341# DCCP Configuration (EXPERIMENTAL) 290# DCCP Configuration (EXPERIMENTAL)
@@ -346,6 +295,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
346# SCTP Configuration (EXPERIMENTAL) 295# SCTP Configuration (EXPERIMENTAL)
347# 296#
348# CONFIG_IP_SCTP is not set 297# CONFIG_IP_SCTP is not set
298
299#
300# TIPC Configuration (EXPERIMENTAL)
301#
302# CONFIG_TIPC is not set
349# CONFIG_ATM is not set 303# CONFIG_ATM is not set
350# CONFIG_BRIDGE is not set 304# CONFIG_BRIDGE is not set
351# CONFIG_VLAN_8021Q is not set 305# CONFIG_VLAN_8021Q is not set
@@ -364,7 +318,6 @@ CONFIG_LLC=y
364# QoS and/or fair queueing 318# QoS and/or fair queueing
365# 319#
366# CONFIG_NET_SCHED is not set 320# CONFIG_NET_SCHED is not set
367CONFIG_NET_CLS_ROUTE=y
368 321
369# 322#
370# Network testing 323# Network testing
@@ -454,7 +407,7 @@ CONFIG_IDEPCI_SHARE_IRQ=y
454# CONFIG_BLK_DEV_OFFBOARD is not set 407# CONFIG_BLK_DEV_OFFBOARD is not set
455CONFIG_BLK_DEV_GENERIC=y 408CONFIG_BLK_DEV_GENERIC=y
456# CONFIG_BLK_DEV_OPTI621 is not set 409# CONFIG_BLK_DEV_OPTI621 is not set
457# CONFIG_BLK_DEV_SL82C105 is not set 410CONFIG_BLK_DEV_SL82C105=y
458CONFIG_BLK_DEV_IDEDMA_PCI=y 411CONFIG_BLK_DEV_IDEDMA_PCI=y
459# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 412# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
460CONFIG_IDEDMA_PCI_AUTO=y 413CONFIG_IDEDMA_PCI_AUTO=y
@@ -572,13 +525,7 @@ CONFIG_SCSI_IPR_TRACE=y
572CONFIG_SCSI_IPR_DUMP=y 525CONFIG_SCSI_IPR_DUMP=y
573# CONFIG_SCSI_QLOGIC_FC is not set 526# CONFIG_SCSI_QLOGIC_FC is not set
574# CONFIG_SCSI_QLOGIC_1280 is not set 527# CONFIG_SCSI_QLOGIC_1280 is not set
575CONFIG_SCSI_QLA2XXX=y 528# CONFIG_SCSI_QLA_FC is not set
576CONFIG_SCSI_QLA21XX=m
577CONFIG_SCSI_QLA22XX=m
578CONFIG_SCSI_QLA2300=m
579CONFIG_SCSI_QLA2322=m
580CONFIG_SCSI_QLA6312=m
581CONFIG_SCSI_QLA24XX=m
582CONFIG_SCSI_LPFC=m 529CONFIG_SCSI_LPFC=m
583# CONFIG_SCSI_DC395x is not set 530# CONFIG_SCSI_DC395x is not set
584# CONFIG_SCSI_DC390T is not set 531# CONFIG_SCSI_DC390T is not set
@@ -642,8 +589,6 @@ CONFIG_IEEE1394_SBP2=m
642CONFIG_IEEE1394_ETH1394=m 589CONFIG_IEEE1394_ETH1394=m
643CONFIG_IEEE1394_DV1394=m 590CONFIG_IEEE1394_DV1394=m
644CONFIG_IEEE1394_RAWIO=y 591CONFIG_IEEE1394_RAWIO=y
645CONFIG_IEEE1394_CMP=m
646CONFIG_IEEE1394_AMDTP=m
647 592
648# 593#
649# I2O device support 594# I2O device support
@@ -659,6 +604,7 @@ CONFIG_THERM_PM72=y
659CONFIG_WINDFARM=y 604CONFIG_WINDFARM=y
660CONFIG_WINDFARM_PM81=y 605CONFIG_WINDFARM_PM81=y
661CONFIG_WINDFARM_PM91=y 606CONFIG_WINDFARM_PM91=y
607CONFIG_WINDFARM_PM112=y
662 608
663# 609#
664# Network device support 610# Network device support
@@ -731,6 +677,7 @@ CONFIG_E1000=y
731# CONFIG_R8169 is not set 677# CONFIG_R8169 is not set
732# CONFIG_SIS190 is not set 678# CONFIG_SIS190 is not set
733# CONFIG_SKGE is not set 679# CONFIG_SKGE is not set
680# CONFIG_SKY2 is not set
734# CONFIG_SK98LIN is not set 681# CONFIG_SK98LIN is not set
735# CONFIG_VIA_VELOCITY is not set 682# CONFIG_VIA_VELOCITY is not set
736CONFIG_TIGON3=y 683CONFIG_TIGON3=y
@@ -853,6 +800,7 @@ CONFIG_HW_CONSOLE=y
853CONFIG_SERIAL_8250=y 800CONFIG_SERIAL_8250=y
854CONFIG_SERIAL_8250_CONSOLE=y 801CONFIG_SERIAL_8250_CONSOLE=y
855CONFIG_SERIAL_8250_NR_UARTS=4 802CONFIG_SERIAL_8250_NR_UARTS=4
803CONFIG_SERIAL_8250_RUNTIME_UARTS=4
856# CONFIG_SERIAL_8250_EXTENDED is not set 804# CONFIG_SERIAL_8250_EXTENDED is not set
857 805
858# 806#
@@ -880,6 +828,7 @@ CONFIG_HVCS=m
880# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
881# CONFIG_RTC is not set 829# CONFIG_RTC is not set
882CONFIG_GEN_RTC=y 830CONFIG_GEN_RTC=y
831# CONFIG_GEN_RTC_X is not set
883# CONFIG_DTLK is not set 832# CONFIG_DTLK is not set
884# CONFIG_R3964 is not set 833# CONFIG_R3964 is not set
885# CONFIG_APPLICOM is not set 834# CONFIG_APPLICOM is not set
@@ -923,8 +872,7 @@ CONFIG_I2C_AMD8111=y
923# CONFIG_I2C_I801 is not set 872# CONFIG_I2C_I801 is not set
924# CONFIG_I2C_I810 is not set 873# CONFIG_I2C_I810 is not set
925# CONFIG_I2C_PIIX4 is not set 874# CONFIG_I2C_PIIX4 is not set
926CONFIG_I2C_KEYWEST=y 875CONFIG_I2C_POWERMAC=y
927CONFIG_I2C_PMAC_SMU=y
928# CONFIG_I2C_NFORCE2 is not set 876# CONFIG_I2C_NFORCE2 is not set
929# CONFIG_I2C_PARPORT_LIGHT is not set 877# CONFIG_I2C_PARPORT_LIGHT is not set
930# CONFIG_I2C_PROSAVAGE is not set 878# CONFIG_I2C_PROSAVAGE is not set
@@ -957,6 +905,12 @@ CONFIG_I2C_PMAC_SMU=y
957# CONFIG_I2C_DEBUG_CHIP is not set 905# CONFIG_I2C_DEBUG_CHIP is not set
958 906
959# 907#
908# SPI support
909#
910# CONFIG_SPI is not set
911# CONFIG_SPI_MASTER is not set
912
913#
960# Dallas's 1-wire bus 914# Dallas's 1-wire bus
961# 915#
962# CONFIG_W1 is not set 916# CONFIG_W1 is not set
@@ -1028,7 +982,6 @@ CONFIG_FB_RADEON_I2C=y
1028# CONFIG_FB_KYRO is not set 982# CONFIG_FB_KYRO is not set
1029# CONFIG_FB_3DFX is not set 983# CONFIG_FB_3DFX is not set
1030# CONFIG_FB_VOODOO1 is not set 984# CONFIG_FB_VOODOO1 is not set
1031# CONFIG_FB_CYBLA is not set
1032# CONFIG_FB_TRIDENT is not set 985# CONFIG_FB_TRIDENT is not set
1033# CONFIG_FB_VIRTUAL is not set 986# CONFIG_FB_VIRTUAL is not set
1034 987
@@ -1073,9 +1026,10 @@ CONFIG_SND_OSSEMUL=y
1073CONFIG_SND_MIXER_OSS=m 1026CONFIG_SND_MIXER_OSS=m
1074CONFIG_SND_PCM_OSS=m 1027CONFIG_SND_PCM_OSS=m
1075CONFIG_SND_SEQUENCER_OSS=y 1028CONFIG_SND_SEQUENCER_OSS=y
1029# CONFIG_SND_DYNAMIC_MINORS is not set
1030CONFIG_SND_SUPPORT_OLD_API=y
1076# CONFIG_SND_VERBOSE_PRINTK is not set 1031# CONFIG_SND_VERBOSE_PRINTK is not set
1077# CONFIG_SND_DEBUG is not set 1032# CONFIG_SND_DEBUG is not set
1078CONFIG_SND_GENERIC_DRIVER=y
1079 1033
1080# 1034#
1081# Generic devices 1035# Generic devices
@@ -1089,6 +1043,8 @@ CONFIG_SND_GENERIC_DRIVER=y
1089# 1043#
1090# PCI devices 1044# PCI devices
1091# 1045#
1046# CONFIG_SND_AD1889 is not set
1047# CONFIG_SND_ALS4000 is not set
1092# CONFIG_SND_ALI5451 is not set 1048# CONFIG_SND_ALI5451 is not set
1093# CONFIG_SND_ATIIXP is not set 1049# CONFIG_SND_ATIIXP is not set
1094# CONFIG_SND_ATIIXP_MODEM is not set 1050# CONFIG_SND_ATIIXP_MODEM is not set
@@ -1097,39 +1053,38 @@ CONFIG_SND_GENERIC_DRIVER=y
1097# CONFIG_SND_AU8830 is not set 1053# CONFIG_SND_AU8830 is not set
1098# CONFIG_SND_AZT3328 is not set 1054# CONFIG_SND_AZT3328 is not set
1099# CONFIG_SND_BT87X is not set 1055# CONFIG_SND_BT87X is not set
1100# CONFIG_SND_CS46XX is not set 1056# CONFIG_SND_CA0106 is not set
1057# CONFIG_SND_CMIPCI is not set
1101# CONFIG_SND_CS4281 is not set 1058# CONFIG_SND_CS4281 is not set
1059# CONFIG_SND_CS46XX is not set
1102# CONFIG_SND_EMU10K1 is not set 1060# CONFIG_SND_EMU10K1 is not set
1103# CONFIG_SND_EMU10K1X is not set 1061# CONFIG_SND_EMU10K1X is not set
1104# CONFIG_SND_CA0106 is not set
1105# CONFIG_SND_KORG1212 is not set
1106# CONFIG_SND_MIXART is not set
1107# CONFIG_SND_NM256 is not set
1108# CONFIG_SND_RME32 is not set
1109# CONFIG_SND_RME96 is not set
1110# CONFIG_SND_RME9652 is not set
1111# CONFIG_SND_HDSP is not set
1112# CONFIG_SND_HDSPM is not set
1113# CONFIG_SND_TRIDENT is not set
1114# CONFIG_SND_YMFPCI is not set
1115# CONFIG_SND_AD1889 is not set
1116# CONFIG_SND_ALS4000 is not set
1117# CONFIG_SND_CMIPCI is not set
1118# CONFIG_SND_ENS1370 is not set 1062# CONFIG_SND_ENS1370 is not set
1119# CONFIG_SND_ENS1371 is not set 1063# CONFIG_SND_ENS1371 is not set
1120# CONFIG_SND_ES1938 is not set 1064# CONFIG_SND_ES1938 is not set
1121# CONFIG_SND_ES1968 is not set 1065# CONFIG_SND_ES1968 is not set
1122# CONFIG_SND_MAESTRO3 is not set
1123# CONFIG_SND_FM801 is not set 1066# CONFIG_SND_FM801 is not set
1067# CONFIG_SND_HDA_INTEL is not set
1068# CONFIG_SND_HDSP is not set
1069# CONFIG_SND_HDSPM is not set
1124# CONFIG_SND_ICE1712 is not set 1070# CONFIG_SND_ICE1712 is not set
1125# CONFIG_SND_ICE1724 is not set 1071# CONFIG_SND_ICE1724 is not set
1126# CONFIG_SND_INTEL8X0 is not set 1072# CONFIG_SND_INTEL8X0 is not set
1127# CONFIG_SND_INTEL8X0M is not set 1073# CONFIG_SND_INTEL8X0M is not set
1074# CONFIG_SND_KORG1212 is not set
1075# CONFIG_SND_MAESTRO3 is not set
1076# CONFIG_SND_MIXART is not set
1077# CONFIG_SND_NM256 is not set
1078# CONFIG_SND_PCXHR is not set
1079# CONFIG_SND_RME32 is not set
1080# CONFIG_SND_RME96 is not set
1081# CONFIG_SND_RME9652 is not set
1128# CONFIG_SND_SONICVIBES is not set 1082# CONFIG_SND_SONICVIBES is not set
1083# CONFIG_SND_TRIDENT is not set
1129# CONFIG_SND_VIA82XX is not set 1084# CONFIG_SND_VIA82XX is not set
1130# CONFIG_SND_VIA82XX_MODEM is not set 1085# CONFIG_SND_VIA82XX_MODEM is not set
1131# CONFIG_SND_VX222 is not set 1086# CONFIG_SND_VX222 is not set
1132# CONFIG_SND_HDA_INTEL is not set 1087# CONFIG_SND_YMFPCI is not set
1133 1088
1134# 1089#
1135# ALSA PowerMac devices 1090# ALSA PowerMac devices
@@ -1201,13 +1156,16 @@ CONFIG_USB_STORAGE=m
1201# CONFIG_USB_STORAGE_SDDR09 is not set 1156# CONFIG_USB_STORAGE_SDDR09 is not set
1202# CONFIG_USB_STORAGE_SDDR55 is not set 1157# CONFIG_USB_STORAGE_SDDR55 is not set
1203# CONFIG_USB_STORAGE_JUMPSHOT is not set 1158# CONFIG_USB_STORAGE_JUMPSHOT is not set
1159# CONFIG_USB_STORAGE_ALAUDA is not set
1204# CONFIG_USB_STORAGE_ONETOUCH is not set 1160# CONFIG_USB_STORAGE_ONETOUCH is not set
1161# CONFIG_USB_LIBUSUAL is not set
1205 1162
1206# 1163#
1207# USB Input Devices 1164# USB Input Devices
1208# 1165#
1209CONFIG_USB_HID=y 1166CONFIG_USB_HID=y
1210CONFIG_USB_HIDINPUT=y 1167CONFIG_USB_HIDINPUT=y
1168# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1211# CONFIG_HID_FF is not set 1169# CONFIG_HID_FF is not set
1212CONFIG_USB_HIDDEV=y 1170CONFIG_USB_HIDDEV=y
1213# CONFIG_USB_AIPTEK is not set 1171# CONFIG_USB_AIPTEK is not set
@@ -1221,6 +1179,7 @@ CONFIG_USB_HIDDEV=y
1221# CONFIG_USB_YEALINK is not set 1179# CONFIG_USB_YEALINK is not set
1222# CONFIG_USB_XPAD is not set 1180# CONFIG_USB_XPAD is not set
1223# CONFIG_USB_ATI_REMOTE is not set 1181# CONFIG_USB_ATI_REMOTE is not set
1182# CONFIG_USB_ATI_REMOTE2 is not set
1224# CONFIG_USB_KEYSPAN_REMOTE is not set 1183# CONFIG_USB_KEYSPAN_REMOTE is not set
1225# CONFIG_USB_APPLETOUCH is not set 1184# CONFIG_USB_APPLETOUCH is not set
1226 1185
@@ -1307,6 +1266,10 @@ CONFIG_INFINIBAND_IPOIB=m
1307# 1266#
1308 1267
1309# 1268#
1269# EDAC - error detection and reporting (RAS)
1270#
1271
1272#
1310# File systems 1273# File systems
1311# 1274#
1312CONFIG_EXT2_FS=y 1275CONFIG_EXT2_FS=y
@@ -1340,6 +1303,7 @@ CONFIG_XFS_EXPORT=y
1340CONFIG_XFS_SECURITY=y 1303CONFIG_XFS_SECURITY=y
1341CONFIG_XFS_POSIX_ACL=y 1304CONFIG_XFS_POSIX_ACL=y
1342# CONFIG_XFS_RT is not set 1305# CONFIG_XFS_RT is not set
1306# CONFIG_OCFS2_FS is not set
1343# CONFIG_MINIX_FS is not set 1307# CONFIG_MINIX_FS is not set
1344# CONFIG_ROMFS_FS is not set 1308# CONFIG_ROMFS_FS is not set
1345CONFIG_INOTIFY=y 1309CONFIG_INOTIFY=y
@@ -1379,6 +1343,7 @@ CONFIG_HUGETLBFS=y
1379CONFIG_HUGETLB_PAGE=y 1343CONFIG_HUGETLB_PAGE=y
1380CONFIG_RAMFS=y 1344CONFIG_RAMFS=y
1381# CONFIG_RELAYFS_FS is not set 1345# CONFIG_RELAYFS_FS is not set
1346# CONFIG_CONFIGFS_FS is not set
1382 1347
1383# 1348#
1384# Miscellaneous filesystems 1349# Miscellaneous filesystems
@@ -1449,6 +1414,7 @@ CONFIG_MSDOS_PARTITION=y
1449# CONFIG_SGI_PARTITION is not set 1414# CONFIG_SGI_PARTITION is not set
1450# CONFIG_ULTRIX_PARTITION is not set 1415# CONFIG_ULTRIX_PARTITION is not set
1451# CONFIG_SUN_PARTITION is not set 1416# CONFIG_SUN_PARTITION is not set
1417# CONFIG_KARMA_PARTITION is not set
1452# CONFIG_EFI_PARTITION is not set 1418# CONFIG_EFI_PARTITION is not set
1453 1419
1454# 1420#
@@ -1504,10 +1470,6 @@ CONFIG_CRC32=y
1504CONFIG_LIBCRC32C=m 1470CONFIG_LIBCRC32C=m
1505CONFIG_ZLIB_INFLATE=y 1471CONFIG_ZLIB_INFLATE=y
1506CONFIG_ZLIB_DEFLATE=m 1472CONFIG_ZLIB_DEFLATE=m
1507CONFIG_TEXTSEARCH=y
1508CONFIG_TEXTSEARCH_KMP=m
1509CONFIG_TEXTSEARCH_BM=m
1510CONFIG_TEXTSEARCH_FSM=m
1511 1473
1512# 1474#
1513# Instrumentation Support 1475# Instrumentation Support
@@ -1520,18 +1482,20 @@ CONFIG_OPROFILE=y
1520# Kernel hacking 1482# Kernel hacking
1521# 1483#
1522# CONFIG_PRINTK_TIME is not set 1484# CONFIG_PRINTK_TIME is not set
1523CONFIG_DEBUG_KERNEL=y
1524CONFIG_MAGIC_SYSRQ=y 1485CONFIG_MAGIC_SYSRQ=y
1486CONFIG_DEBUG_KERNEL=y
1525CONFIG_LOG_BUF_SHIFT=17 1487CONFIG_LOG_BUF_SHIFT=17
1526CONFIG_DETECT_SOFTLOCKUP=y 1488CONFIG_DETECT_SOFTLOCKUP=y
1527# CONFIG_SCHEDSTATS is not set 1489# CONFIG_SCHEDSTATS is not set
1528# CONFIG_DEBUG_SLAB is not set 1490# CONFIG_DEBUG_SLAB is not set
1491CONFIG_DEBUG_MUTEXES=y
1529# CONFIG_DEBUG_SPINLOCK is not set 1492# CONFIG_DEBUG_SPINLOCK is not set
1530# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1493# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1531# CONFIG_DEBUG_KOBJECT is not set 1494# CONFIG_DEBUG_KOBJECT is not set
1532# CONFIG_DEBUG_INFO is not set 1495# CONFIG_DEBUG_INFO is not set
1533CONFIG_DEBUG_FS=y 1496CONFIG_DEBUG_FS=y
1534# CONFIG_DEBUG_VM is not set 1497# CONFIG_DEBUG_VM is not set
1498CONFIG_FORCED_INLINING=y
1535# CONFIG_RCU_TORTURE_TEST is not set 1499# CONFIG_RCU_TORTURE_TEST is not set
1536CONFIG_DEBUG_STACKOVERFLOW=y 1500CONFIG_DEBUG_STACKOVERFLOW=y
1537CONFIG_DEBUG_STACK_USAGE=y 1501CONFIG_DEBUG_STACK_USAGE=y
@@ -1540,6 +1504,11 @@ CONFIG_XMON=y
1540# CONFIG_XMON_DEFAULT is not set 1504# CONFIG_XMON_DEFAULT is not set
1541CONFIG_IRQSTACKS=y 1505CONFIG_IRQSTACKS=y
1542CONFIG_BOOTX_TEXT=y 1506CONFIG_BOOTX_TEXT=y
1507# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1508# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1509# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1510# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1511# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1543 1512
1544# 1513#
1545# Security options 1514# Security options
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index aa9893a1f6e8..daaf038a1faa 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_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.15-rc5 3# Linux kernel version: 2.6.16-rc2
4# Tue Dec 20 15:59:40 2005 4# Fri Feb 10 17:33:32 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y 16CONFIG_SYSVIPC_COMPAT=y
17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
18CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
19CONFIG_PPC_OF=y
20CONFIG_PPC_UDBG_16550=y
21# CONFIG_GENERIC_TBSYNC is not set
22# CONFIG_DEFAULT_UIMAGE is not set
19 23
20# 24#
21# Processor support 25# Processor support
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=128
33# Code maturity level options 37# Code maturity level options
34# 38#
35CONFIG_EXPERIMENTAL=y 39CONFIG_EXPERIMENTAL=y
36CONFIG_CLEAN_COMPILE=y
37CONFIG_LOCK_KERNEL=y 40CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 41CONFIG_INIT_ENV_ARG_LIMIT=32
39 42
@@ -49,8 +52,6 @@ CONFIG_POSIX_MQUEUE=y
49CONFIG_SYSCTL=y 52CONFIG_SYSCTL=y
50CONFIG_AUDIT=y 53CONFIG_AUDIT=y
51CONFIG_AUDITSYSCALL=y 54CONFIG_AUDITSYSCALL=y
52CONFIG_HOTPLUG=y
53CONFIG_KOBJECT_UEVENT=y
54CONFIG_IKCONFIG=y 55CONFIG_IKCONFIG=y
55CONFIG_IKCONFIG_PROC=y 56CONFIG_IKCONFIG_PROC=y
56CONFIG_CPUSETS=y 57CONFIG_CPUSETS=y
@@ -60,8 +61,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 63# CONFIG_KALLSYMS_EXTRA_PASS is not set
64CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 65CONFIG_PRINTK=y
64CONFIG_BUG=y 66CONFIG_BUG=y
67CONFIG_ELF_CORE=y
65CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
66CONFIG_FUTEX=y 69CONFIG_FUTEX=y
67CONFIG_EPOLL=y 70CONFIG_EPOLL=y
@@ -70,8 +73,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0
70CONFIG_CC_ALIGN_LABELS=0 73CONFIG_CC_ALIGN_LABELS=0
71CONFIG_CC_ALIGN_LOOPS=0 74CONFIG_CC_ALIGN_LOOPS=0
72CONFIG_CC_ALIGN_JUMPS=0 75CONFIG_CC_ALIGN_JUMPS=0
76CONFIG_SLAB=y
73# CONFIG_TINY_SHMEM is not set 77# CONFIG_TINY_SHMEM is not set
74CONFIG_BASE_SMALL=0 78CONFIG_BASE_SMALL=0
79# CONFIG_SLOB is not set
75 80
76# 81#
77# Loadable module support 82# Loadable module support
@@ -113,7 +118,6 @@ CONFIG_PPC_PSERIES=y
113# CONFIG_PPC_PMAC is not set 118# CONFIG_PPC_PMAC is not set
114# CONFIG_PPC_MAPLE is not set 119# CONFIG_PPC_MAPLE is not set
115# CONFIG_PPC_CELL is not set 120# CONFIG_PPC_CELL is not set
116CONFIG_PPC_OF=y
117CONFIG_XICS=y 121CONFIG_XICS=y
118# CONFIG_U3_DART is not set 122# CONFIG_U3_DART is not set
119CONFIG_MPIC=y 123CONFIG_MPIC=y
@@ -123,8 +127,8 @@ CONFIG_RTAS_PROC=y
123CONFIG_RTAS_FLASH=m 127CONFIG_RTAS_FLASH=m
124# CONFIG_MMIO_NVRAM is not set 128# CONFIG_MMIO_NVRAM is not set
125CONFIG_IBMVIO=y 129CONFIG_IBMVIO=y
130# CONFIG_IBMEBUS is not set
126# CONFIG_PPC_MPC106 is not set 131# CONFIG_PPC_MPC106 is not set
127# CONFIG_GENERIC_TBSYNC is not set
128# CONFIG_CPU_FREQ is not set 132# CONFIG_CPU_FREQ is not set
129# CONFIG_WANT_EARLY_SERIAL is not set 133# CONFIG_WANT_EARLY_SERIAL is not set
130 134
@@ -145,6 +149,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
145CONFIG_IOMMU_VMERGE=y 149CONFIG_IOMMU_VMERGE=y
146CONFIG_HOTPLUG_CPU=y 150CONFIG_HOTPLUG_CPU=y
147CONFIG_KEXEC=y 151CONFIG_KEXEC=y
152# CONFIG_CRASH_DUMP is not set
148CONFIG_IRQ_ALL_CPUS=y 153CONFIG_IRQ_ALL_CPUS=y
149CONFIG_PPC_SPLPAR=y 154CONFIG_PPC_SPLPAR=y
150CONFIG_EEH=y 155CONFIG_EEH=y
@@ -165,6 +170,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y
165CONFIG_SPARSEMEM_EXTREME=y 170CONFIG_SPARSEMEM_EXTREME=y
166# CONFIG_MEMORY_HOTPLUG is not set 171# CONFIG_MEMORY_HOTPLUG is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4 172CONFIG_SPLIT_PTLOCK_CPUS=4
173CONFIG_MIGRATION=y
168CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y 174CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
169# CONFIG_PPC_64K_PAGES is not set 175# CONFIG_PPC_64K_PAGES is not set
170CONFIG_SCHED_SMT=y 176CONFIG_SCHED_SMT=y
@@ -209,6 +215,7 @@ CONFIG_NET=y
209# 215#
210# Networking options 216# Networking options
211# 217#
218# CONFIG_NETDEBUG is not set
212CONFIG_PACKET=y 219CONFIG_PACKET=y
213# CONFIG_PACKET_MMAP is not set 220# CONFIG_PACKET_MMAP is not set
214CONFIG_UNIX=y 221CONFIG_UNIX=y
@@ -248,6 +255,7 @@ CONFIG_NETFILTER=y
248CONFIG_NETFILTER_NETLINK=y 255CONFIG_NETFILTER_NETLINK=y
249CONFIG_NETFILTER_NETLINK_QUEUE=m 256CONFIG_NETFILTER_NETLINK_QUEUE=m
250CONFIG_NETFILTER_NETLINK_LOG=m 257CONFIG_NETFILTER_NETLINK_LOG=m
258# CONFIG_NETFILTER_XTABLES is not set
251 259
252# 260#
253# IP: Netfilter Configuration 261# IP: Netfilter Configuration
@@ -265,65 +273,6 @@ CONFIG_IP_NF_TFTP=m
265CONFIG_IP_NF_AMANDA=m 273CONFIG_IP_NF_AMANDA=m
266# CONFIG_IP_NF_PPTP is not set 274# CONFIG_IP_NF_PPTP is not set
267CONFIG_IP_NF_QUEUE=m 275CONFIG_IP_NF_QUEUE=m
268CONFIG_IP_NF_IPTABLES=m
269CONFIG_IP_NF_MATCH_LIMIT=m
270CONFIG_IP_NF_MATCH_IPRANGE=m
271CONFIG_IP_NF_MATCH_MAC=m
272CONFIG_IP_NF_MATCH_PKTTYPE=m
273CONFIG_IP_NF_MATCH_MARK=m
274CONFIG_IP_NF_MATCH_MULTIPORT=m
275CONFIG_IP_NF_MATCH_TOS=m
276CONFIG_IP_NF_MATCH_RECENT=m
277CONFIG_IP_NF_MATCH_ECN=m
278CONFIG_IP_NF_MATCH_DSCP=m
279CONFIG_IP_NF_MATCH_AH_ESP=m
280CONFIG_IP_NF_MATCH_LENGTH=m
281CONFIG_IP_NF_MATCH_TTL=m
282CONFIG_IP_NF_MATCH_TCPMSS=m
283CONFIG_IP_NF_MATCH_HELPER=m
284CONFIG_IP_NF_MATCH_STATE=m
285CONFIG_IP_NF_MATCH_CONNTRACK=m
286CONFIG_IP_NF_MATCH_OWNER=m
287CONFIG_IP_NF_MATCH_ADDRTYPE=m
288CONFIG_IP_NF_MATCH_REALM=m
289CONFIG_IP_NF_MATCH_SCTP=m
290# CONFIG_IP_NF_MATCH_DCCP is not set
291CONFIG_IP_NF_MATCH_COMMENT=m
292CONFIG_IP_NF_MATCH_CONNMARK=m
293CONFIG_IP_NF_MATCH_CONNBYTES=m
294CONFIG_IP_NF_MATCH_HASHLIMIT=m
295CONFIG_IP_NF_MATCH_STRING=m
296CONFIG_IP_NF_FILTER=m
297CONFIG_IP_NF_TARGET_REJECT=m
298CONFIG_IP_NF_TARGET_LOG=m
299CONFIG_IP_NF_TARGET_ULOG=m
300CONFIG_IP_NF_TARGET_TCPMSS=m
301CONFIG_IP_NF_TARGET_NFQUEUE=m
302CONFIG_IP_NF_NAT=m
303CONFIG_IP_NF_NAT_NEEDED=y
304CONFIG_IP_NF_TARGET_MASQUERADE=m
305CONFIG_IP_NF_TARGET_REDIRECT=m
306CONFIG_IP_NF_TARGET_NETMAP=m
307CONFIG_IP_NF_TARGET_SAME=m
308CONFIG_IP_NF_NAT_SNMP_BASIC=m
309CONFIG_IP_NF_NAT_IRC=m
310CONFIG_IP_NF_NAT_FTP=m
311CONFIG_IP_NF_NAT_TFTP=m
312CONFIG_IP_NF_NAT_AMANDA=m
313CONFIG_IP_NF_MANGLE=m
314CONFIG_IP_NF_TARGET_TOS=m
315CONFIG_IP_NF_TARGET_ECN=m
316CONFIG_IP_NF_TARGET_DSCP=m
317CONFIG_IP_NF_TARGET_MARK=m
318CONFIG_IP_NF_TARGET_CLASSIFY=m
319CONFIG_IP_NF_TARGET_TTL=m
320CONFIG_IP_NF_TARGET_CONNMARK=m
321CONFIG_IP_NF_TARGET_CLUSTERIP=m
322CONFIG_IP_NF_RAW=m
323CONFIG_IP_NF_TARGET_NOTRACK=m
324CONFIG_IP_NF_ARPTABLES=m
325CONFIG_IP_NF_ARPFILTER=m
326CONFIG_IP_NF_ARP_MANGLE=m
327 276
328# 277#
329# DCCP Configuration (EXPERIMENTAL) 278# DCCP Configuration (EXPERIMENTAL)
@@ -334,6 +283,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
334# SCTP Configuration (EXPERIMENTAL) 283# SCTP Configuration (EXPERIMENTAL)
335# 284#
336# CONFIG_IP_SCTP is not set 285# CONFIG_IP_SCTP is not set
286
287#
288# TIPC Configuration (EXPERIMENTAL)
289#
290# CONFIG_TIPC is not set
337# CONFIG_ATM is not set 291# CONFIG_ATM is not set
338# CONFIG_BRIDGE is not set 292# CONFIG_BRIDGE is not set
339# CONFIG_VLAN_8021Q is not set 293# CONFIG_VLAN_8021Q is not set
@@ -352,7 +306,6 @@ CONFIG_LLC=y
352# QoS and/or fair queueing 306# QoS and/or fair queueing
353# 307#
354# CONFIG_NET_SCHED is not set 308# CONFIG_NET_SCHED is not set
355CONFIG_NET_CLS_ROUTE=y
356 309
357# 310#
358# Network testing 311# Network testing
@@ -550,13 +503,7 @@ CONFIG_SCSI_IPR_TRACE=y
550CONFIG_SCSI_IPR_DUMP=y 503CONFIG_SCSI_IPR_DUMP=y
551# CONFIG_SCSI_QLOGIC_FC is not set 504# CONFIG_SCSI_QLOGIC_FC is not set
552# CONFIG_SCSI_QLOGIC_1280 is not set 505# CONFIG_SCSI_QLOGIC_1280 is not set
553CONFIG_SCSI_QLA2XXX=y 506# CONFIG_SCSI_QLA_FC is not set
554CONFIG_SCSI_QLA21XX=m
555CONFIG_SCSI_QLA22XX=m
556CONFIG_SCSI_QLA2300=m
557CONFIG_SCSI_QLA2322=m
558CONFIG_SCSI_QLA6312=m
559CONFIG_SCSI_QLA24XX=m
560CONFIG_SCSI_LPFC=m 507CONFIG_SCSI_LPFC=m
561# CONFIG_SCSI_DC395x is not set 508# CONFIG_SCSI_DC395x is not set
562# CONFIG_SCSI_DC390T is not set 509# CONFIG_SCSI_DC390T is not set
@@ -678,6 +625,7 @@ CONFIG_E1000=y
678# CONFIG_R8169 is not set 625# CONFIG_R8169 is not set
679# CONFIG_SIS190 is not set 626# CONFIG_SIS190 is not set
680# CONFIG_SKGE is not set 627# CONFIG_SKGE is not set
628# CONFIG_SKY2 is not set
681# CONFIG_SK98LIN is not set 629# CONFIG_SK98LIN is not set
682# CONFIG_VIA_VELOCITY is not set 630# CONFIG_VIA_VELOCITY is not set
683CONFIG_TIGON3=y 631CONFIG_TIGON3=y
@@ -803,6 +751,7 @@ CONFIG_HW_CONSOLE=y
803CONFIG_SERIAL_8250=y 751CONFIG_SERIAL_8250=y
804CONFIG_SERIAL_8250_CONSOLE=y 752CONFIG_SERIAL_8250_CONSOLE=y
805CONFIG_SERIAL_8250_NR_UARTS=4 753CONFIG_SERIAL_8250_NR_UARTS=4
754CONFIG_SERIAL_8250_RUNTIME_UARTS=4
806# CONFIG_SERIAL_8250_EXTENDED is not set 755# CONFIG_SERIAL_8250_EXTENDED is not set
807 756
808# 757#
@@ -909,6 +858,12 @@ CONFIG_I2C_ALGOBIT=y
909# CONFIG_I2C_DEBUG_CHIP is not set 858# CONFIG_I2C_DEBUG_CHIP is not set
910 859
911# 860#
861# SPI support
862#
863# CONFIG_SPI is not set
864# CONFIG_SPI_MASTER is not set
865
866#
912# Dallas's 1-wire bus 867# Dallas's 1-wire bus
913# 868#
914# CONFIG_W1 is not set 869# CONFIG_W1 is not set
@@ -976,7 +931,6 @@ CONFIG_FB_RADEON_I2C=y
976# CONFIG_FB_KYRO is not set 931# CONFIG_FB_KYRO is not set
977# CONFIG_FB_3DFX is not set 932# CONFIG_FB_3DFX is not set
978# CONFIG_FB_VOODOO1 is not set 933# CONFIG_FB_VOODOO1 is not set
979# CONFIG_FB_CYBLA is not set
980# CONFIG_FB_TRIDENT is not set 934# CONFIG_FB_TRIDENT is not set
981# CONFIG_FB_VIRTUAL is not set 935# CONFIG_FB_VIRTUAL is not set
982 936
@@ -1061,12 +1015,15 @@ CONFIG_USB_STORAGE=y
1061# CONFIG_USB_STORAGE_SDDR09 is not set 1015# CONFIG_USB_STORAGE_SDDR09 is not set
1062# CONFIG_USB_STORAGE_SDDR55 is not set 1016# CONFIG_USB_STORAGE_SDDR55 is not set
1063# CONFIG_USB_STORAGE_JUMPSHOT is not set 1017# CONFIG_USB_STORAGE_JUMPSHOT is not set
1018# CONFIG_USB_STORAGE_ALAUDA is not set
1019# CONFIG_USB_LIBUSUAL is not set
1064 1020
1065# 1021#
1066# USB Input Devices 1022# USB Input Devices
1067# 1023#
1068CONFIG_USB_HID=y 1024CONFIG_USB_HID=y
1069CONFIG_USB_HIDINPUT=y 1025CONFIG_USB_HIDINPUT=y
1026# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1070# CONFIG_HID_FF is not set 1027# CONFIG_HID_FF is not set
1071CONFIG_USB_HIDDEV=y 1028CONFIG_USB_HIDDEV=y
1072# CONFIG_USB_AIPTEK is not set 1029# CONFIG_USB_AIPTEK is not set
@@ -1080,6 +1037,7 @@ CONFIG_USB_HIDDEV=y
1080# CONFIG_USB_YEALINK is not set 1037# CONFIG_USB_YEALINK is not set
1081# CONFIG_USB_XPAD is not set 1038# CONFIG_USB_XPAD is not set
1082# CONFIG_USB_ATI_REMOTE is not set 1039# CONFIG_USB_ATI_REMOTE is not set
1040# CONFIG_USB_ATI_REMOTE2 is not set
1083# CONFIG_USB_KEYSPAN_REMOTE is not set 1041# CONFIG_USB_KEYSPAN_REMOTE is not set
1084# CONFIG_USB_APPLETOUCH is not set 1042# CONFIG_USB_APPLETOUCH is not set
1085 1043
@@ -1167,6 +1125,10 @@ CONFIG_INFINIBAND_IPOIB=m
1167# 1125#
1168 1126
1169# 1127#
1128# EDAC - error detection and reporting (RAS)
1129#
1130
1131#
1170# File systems 1132# File systems
1171# 1133#
1172CONFIG_EXT2_FS=y 1134CONFIG_EXT2_FS=y
@@ -1200,6 +1162,7 @@ CONFIG_XFS_EXPORT=y
1200CONFIG_XFS_SECURITY=y 1162CONFIG_XFS_SECURITY=y
1201CONFIG_XFS_POSIX_ACL=y 1163CONFIG_XFS_POSIX_ACL=y
1202# CONFIG_XFS_RT is not set 1164# CONFIG_XFS_RT is not set
1165# CONFIG_OCFS2_FS is not set
1203# CONFIG_MINIX_FS is not set 1166# CONFIG_MINIX_FS is not set
1204# CONFIG_ROMFS_FS is not set 1167# CONFIG_ROMFS_FS is not set
1205CONFIG_INOTIFY=y 1168CONFIG_INOTIFY=y
@@ -1240,6 +1203,7 @@ CONFIG_HUGETLBFS=y
1240CONFIG_HUGETLB_PAGE=y 1203CONFIG_HUGETLB_PAGE=y
1241CONFIG_RAMFS=y 1204CONFIG_RAMFS=y
1242# CONFIG_RELAYFS_FS is not set 1205# CONFIG_RELAYFS_FS is not set
1206# CONFIG_CONFIGFS_FS is not set
1243 1207
1244# 1208#
1245# Miscellaneous filesystems 1209# Miscellaneous filesystems
@@ -1351,10 +1315,6 @@ CONFIG_CRC32=y
1351CONFIG_LIBCRC32C=m 1315CONFIG_LIBCRC32C=m
1352CONFIG_ZLIB_INFLATE=y 1316CONFIG_ZLIB_INFLATE=y
1353CONFIG_ZLIB_DEFLATE=m 1317CONFIG_ZLIB_DEFLATE=m
1354CONFIG_TEXTSEARCH=y
1355CONFIG_TEXTSEARCH_KMP=m
1356CONFIG_TEXTSEARCH_BM=m
1357CONFIG_TEXTSEARCH_FSM=m
1358 1318
1359# 1319#
1360# Instrumentation Support 1320# Instrumentation Support
@@ -1367,18 +1327,20 @@ CONFIG_OPROFILE=y
1367# Kernel hacking 1327# Kernel hacking
1368# 1328#
1369# CONFIG_PRINTK_TIME is not set 1329# CONFIG_PRINTK_TIME is not set
1370CONFIG_DEBUG_KERNEL=y
1371CONFIG_MAGIC_SYSRQ=y 1330CONFIG_MAGIC_SYSRQ=y
1331CONFIG_DEBUG_KERNEL=y
1372CONFIG_LOG_BUF_SHIFT=17 1332CONFIG_LOG_BUF_SHIFT=17
1373CONFIG_DETECT_SOFTLOCKUP=y 1333CONFIG_DETECT_SOFTLOCKUP=y
1374# CONFIG_SCHEDSTATS is not set 1334# CONFIG_SCHEDSTATS is not set
1375# CONFIG_DEBUG_SLAB is not set 1335# CONFIG_DEBUG_SLAB is not set
1336CONFIG_DEBUG_MUTEXES=y
1376# CONFIG_DEBUG_SPINLOCK is not set 1337# CONFIG_DEBUG_SPINLOCK is not set
1377# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1338# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1378# CONFIG_DEBUG_KOBJECT is not set 1339# CONFIG_DEBUG_KOBJECT is not set
1379# CONFIG_DEBUG_INFO is not set 1340# CONFIG_DEBUG_INFO is not set
1380CONFIG_DEBUG_FS=y 1341CONFIG_DEBUG_FS=y
1381# CONFIG_DEBUG_VM is not set 1342# CONFIG_DEBUG_VM is not set
1343CONFIG_FORCED_INLINING=y
1382# CONFIG_RCU_TORTURE_TEST is not set 1344# CONFIG_RCU_TORTURE_TEST is not set
1383CONFIG_DEBUG_STACKOVERFLOW=y 1345CONFIG_DEBUG_STACKOVERFLOW=y
1384CONFIG_DEBUG_STACK_USAGE=y 1346CONFIG_DEBUG_STACK_USAGE=y
@@ -1387,6 +1349,11 @@ CONFIG_XMON=y
1387CONFIG_XMON_DEFAULT=y 1349CONFIG_XMON_DEFAULT=y
1388CONFIG_IRQSTACKS=y 1350CONFIG_IRQSTACKS=y
1389# CONFIG_BOOTX_TEXT is not set 1351# CONFIG_BOOTX_TEXT is not set
1352# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1353# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1354# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
1355# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1356# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1390 1357
1391# 1358#
1392# Security options 1359# Security options
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 840aad43a98b..882889b15926 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -92,7 +92,6 @@ int main(void)
92 92
93 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 93 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
94 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); 94 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
95 DEFINE(TI_SIGFRAME, offsetof(struct thread_info, nvgprs_frame));
96 DEFINE(TI_TASK, offsetof(struct thread_info, task)); 95 DEFINE(TI_TASK, offsetof(struct thread_info, task));
97#ifdef CONFIG_PPC32 96#ifdef CONFIG_PPC32
98 DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); 97 DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain));
@@ -137,6 +136,9 @@ int main(void)
137 DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp)); 136 DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp));
138 DEFINE(PACALPPACAPTR, offsetof(struct paca_struct, lppaca_ptr)); 137 DEFINE(PACALPPACAPTR, offsetof(struct paca_struct, lppaca_ptr));
139 DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id)); 138 DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id));
139 DEFINE(PACA_STARTPURR, offsetof(struct paca_struct, startpurr));
140 DEFINE(PACA_USER_TIME, offsetof(struct paca_struct, user_time));
141 DEFINE(PACA_SYSTEM_TIME, offsetof(struct paca_struct, system_time));
140 142
141 DEFINE(LPPACASRR0, offsetof(struct lppaca, saved_srr0)); 143 DEFINE(LPPACASRR0, offsetof(struct lppaca, saved_srr0));
142 DEFINE(LPPACASRR1, offsetof(struct lppaca, saved_srr1)); 144 DEFINE(LPPACASRR1, offsetof(struct lppaca, saved_srr1));
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 3191be7135fe..39e348a3ade2 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -53,8 +53,10 @@ extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec);
53 PPC_FEATURE_HAS_MMU) 53 PPC_FEATURE_HAS_MMU)
54#define COMMON_USER_PPC64 (COMMON_USER | PPC_FEATURE_64) 54#define COMMON_USER_PPC64 (COMMON_USER | PPC_FEATURE_64)
55#define COMMON_USER_POWER4 (COMMON_USER_PPC64 | PPC_FEATURE_POWER4) 55#define COMMON_USER_POWER4 (COMMON_USER_PPC64 | PPC_FEATURE_POWER4)
56#define COMMON_USER_POWER5 (COMMON_USER_PPC64 | PPC_FEATURE_POWER5) 56#define COMMON_USER_POWER5 (COMMON_USER_PPC64 | PPC_FEATURE_POWER5 |\
57#define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS) 57 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
58#define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\
59 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
58#define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ 60#define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
59 PPC_FEATURE_BOOKE) 61 PPC_FEATURE_BOOKE)
60 62
@@ -267,7 +269,8 @@ struct cpu_spec cpu_specs[] = {
267 .cpu_name = "Cell Broadband Engine", 269 .cpu_name = "Cell Broadband Engine",
268 .cpu_features = CPU_FTRS_CELL, 270 .cpu_features = CPU_FTRS_CELL,
269 .cpu_user_features = COMMON_USER_PPC64 | 271 .cpu_user_features = COMMON_USER_PPC64 |
270 PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP, 272 PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP |
273 PPC_FEATURE_SMT,
271 .icache_bsize = 128, 274 .icache_bsize = 128,
272 .dcache_bsize = 128, 275 .dcache_bsize = 128,
273 .cpu_setup = __setup_cpu_be, 276 .cpu_setup = __setup_cpu_be,
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c
index 8c21d378f5d2..778f22fd85d2 100644
--- a/arch/powerpc/kernel/crash.c
+++ b/arch/powerpc/kernel/crash.c
@@ -134,8 +134,10 @@ static void crash_kexec_prepare_cpus(void)
134 * the crash CPU will send an IPI and wait for other CPUs to 134 * the crash CPU will send an IPI and wait for other CPUs to
135 * respond. If not, proceed the kexec boot even though we failed to 135 * respond. If not, proceed the kexec boot even though we failed to
136 * capture other CPU states. 136 * capture other CPU states.
137 * Delay of at least 10 seconds.
137 */ 138 */
138 msecs = 1000000; 139 printk(KERN_ALERT "Sending IPI to other cpus...\n");
140 msecs = 10000;
139 while ((atomic_read(&waiting_for_crash_ipi) > 0) && (--msecs > 0)) { 141 while ((atomic_read(&waiting_for_crash_ipi) > 0) && (--msecs > 0)) {
140 barrier(); 142 barrier();
141 mdelay(1); 143 mdelay(1);
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index f20a67261ec7..4827ca1ec89b 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -227,7 +227,7 @@ ret_from_syscall:
227 MTMSRD(r10) 227 MTMSRD(r10)
228 lwz r9,TI_FLAGS(r12) 228 lwz r9,TI_FLAGS(r12)
229 li r8,-_LAST_ERRNO 229 li r8,-_LAST_ERRNO
230 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_RESTORE_SIGMASK) 230 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
231 bne- syscall_exit_work 231 bne- syscall_exit_work
232 cmplw 0,r3,r8 232 cmplw 0,r3,r8
233 blt+ syscall_exit_cont 233 blt+ syscall_exit_cont
@@ -287,8 +287,10 @@ syscall_dotrace:
287 287
288syscall_exit_work: 288syscall_exit_work:
289 andi. r0,r9,_TIF_RESTOREALL 289 andi. r0,r9,_TIF_RESTOREALL
290 bne- 2f 290 beq+ 0f
291 cmplw 0,r3,r8 291 REST_NVGPRS(r1)
292 b 2f
2930: cmplw 0,r3,r8
292 blt+ 1f 294 blt+ 1f
293 andi. r0,r9,_TIF_NOERROR 295 andi. r0,r9,_TIF_NOERROR
294 bne- 1f 296 bne- 1f
@@ -302,9 +304,7 @@ syscall_exit_work:
3022: andi. r0,r9,(_TIF_PERSYSCALL_MASK) 3042: andi. r0,r9,(_TIF_PERSYSCALL_MASK)
303 beq 4f 305 beq 4f
304 306
305 /* Clear per-syscall TIF flags if any are set, but _leave_ 307 /* Clear per-syscall TIF flags if any are set. */
306 _TIF_SAVE_NVGPRS set in r9 since we haven't dealt with that
307 yet. */
308 308
309 li r11,_TIF_PERSYSCALL_MASK 309 li r11,_TIF_PERSYSCALL_MASK
310 addi r12,r12,TI_FLAGS 310 addi r12,r12,TI_FLAGS
@@ -318,8 +318,13 @@ syscall_exit_work:
318 subi r12,r12,TI_FLAGS 318 subi r12,r12,TI_FLAGS
319 319
3204: /* Anything which requires enabling interrupts? */ 3204: /* Anything which requires enabling interrupts? */
321 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SAVE_NVGPRS) 321 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP)
322 beq 7f 322 beq ret_from_except
323
324 /* Re-enable interrupts */
325 ori r10,r10,MSR_EE
326 SYNC
327 MTMSRD(r10)
323 328
324 /* Save NVGPRS if they're not saved already */ 329 /* Save NVGPRS if they're not saved already */
325 lwz r4,_TRAP(r1) 330 lwz r4,_TRAP(r1)
@@ -328,71 +333,11 @@ syscall_exit_work:
328 SAVE_NVGPRS(r1) 333 SAVE_NVGPRS(r1)
329 li r4,0xc00 334 li r4,0xc00
330 stw r4,_TRAP(r1) 335 stw r4,_TRAP(r1)
331 3365:
332 /* Re-enable interrupts */
3335: ori r10,r10,MSR_EE
334 SYNC
335 MTMSRD(r10)
336
337 andi. r0,r9,_TIF_SAVE_NVGPRS
338 bne save_user_nvgprs
339
340save_user_nvgprs_cont:
341 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP)
342 beq 7f
343
344 addi r3,r1,STACK_FRAME_OVERHEAD 337 addi r3,r1,STACK_FRAME_OVERHEAD
345 bl do_syscall_trace_leave 338 bl do_syscall_trace_leave
346 REST_NVGPRS(r1) 339 b ret_from_except_full
347
3486: lwz r3,GPR3(r1)
349 LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */
350 SYNC
351 MTMSRD(r10) /* disable interrupts again */
352 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
353 lwz r9,TI_FLAGS(r12)
3547:
355 andi. r0,r9,_TIF_NEED_RESCHED
356 bne 8f
357 lwz r5,_MSR(r1)
358 andi. r5,r5,MSR_PR
359 beq ret_from_except
360 andi. r0,r9,_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK
361 beq ret_from_except
362 b do_user_signal
3638:
364 ori r10,r10,MSR_EE
365 SYNC
366 MTMSRD(r10) /* re-enable interrupts */
367 bl schedule
368 b 6b
369
370save_user_nvgprs:
371 lwz r8,TI_SIGFRAME(r12)
372
373.macro savewords start, end
374 1: stw \start,4*(\start)(r8)
375 .section __ex_table,"a"
376 .align 2
377 .long 1b,save_user_nvgprs_fault
378 .previous
379 .if \end - \start
380 savewords "(\start+1)",\end
381 .endif
382.endm
383 savewords 14,31
384 b save_user_nvgprs_cont
385
386
387save_user_nvgprs_fault:
388 li r3,11 /* SIGSEGV */
389 lwz r4,TI_TASK(r12)
390 bl force_sigsegv
391 340
392 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
393 lwz r9,TI_FLAGS(r12)
394 b save_user_nvgprs_cont
395
396#ifdef SHOW_SYSCALLS 341#ifdef SHOW_SYSCALLS
397do_show_syscall: 342do_show_syscall:
398#ifdef SHOW_SYSCALLS_TASK 343#ifdef SHOW_SYSCALLS_TASK
@@ -490,6 +435,14 @@ ppc_clone:
490 stw r0,_TRAP(r1) /* register set saved */ 435 stw r0,_TRAP(r1) /* register set saved */
491 b sys_clone 436 b sys_clone
492 437
438 .globl ppc_swapcontext
439ppc_swapcontext:
440 SAVE_NVGPRS(r1)
441 lwz r0,_TRAP(r1)
442 rlwinm r0,r0,0,0,30 /* clear LSB to indicate full */
443 stw r0,_TRAP(r1) /* register set saved */
444 b sys_swapcontext
445
493/* 446/*
494 * Top-level page fault handling. 447 * Top-level page fault handling.
495 * This is in assembler because if do_page_fault tells us that 448 * This is in assembler because if do_page_fault tells us that
@@ -683,7 +636,7 @@ user_exc_return: /* r10 contains MSR_KERNEL here */
683 /* Check current_thread_info()->flags */ 636 /* Check current_thread_info()->flags */
684 rlwinm r9,r1,0,0,(31-THREAD_SHIFT) 637 rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
685 lwz r9,TI_FLAGS(r9) 638 lwz r9,TI_FLAGS(r9)
686 andi. r0,r9,(_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_RESTORE_SIGMASK) 639 andi. r0,r9,(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_NEED_RESCHED)
687 bne do_work 640 bne do_work
688 641
689restore_user: 642restore_user:
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 79a0c910f0d8..1060155d84c3 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -61,6 +61,7 @@ system_call_common:
61 std r12,_MSR(r1) 61 std r12,_MSR(r1)
62 std r0,GPR0(r1) 62 std r0,GPR0(r1)
63 std r10,GPR1(r1) 63 std r10,GPR1(r1)
64 ACCOUNT_CPU_USER_ENTRY(r10, r11)
64 std r2,GPR2(r1) 65 std r2,GPR2(r1)
65 std r3,GPR3(r1) 66 std r3,GPR3(r1)
66 std r4,GPR4(r1) 67 std r4,GPR4(r1)
@@ -158,7 +159,7 @@ syscall_exit:
158 mtmsrd r10,1 159 mtmsrd r10,1
159 ld r9,TI_FLAGS(r12) 160 ld r9,TI_FLAGS(r12)
160 li r11,-_LAST_ERRNO 161 li r11,-_LAST_ERRNO
161 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_SAVE_NVGPRS|_TIF_NOERROR|_TIF_RESTORE_SIGMASK) 162 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
162 bne- syscall_exit_work 163 bne- syscall_exit_work
163 cmpld r3,r11 164 cmpld r3,r11
164 ld r5,_CCR(r1) 165 ld r5,_CCR(r1)
@@ -168,8 +169,9 @@ syscall_error_cont:
168 stdcx. r0,0,r1 /* to clear the reservation */ 169 stdcx. r0,0,r1 /* to clear the reservation */
169 andi. r6,r8,MSR_PR 170 andi. r6,r8,MSR_PR
170 ld r4,_LINK(r1) 171 ld r4,_LINK(r1)
171 beq- 1f /* only restore r13 if */ 172 beq- 1f
172 ld r13,GPR13(r1) /* returning to usermode */ 173 ACCOUNT_CPU_USER_EXIT(r11, r12)
174 ld r13,GPR13(r1) /* only restore r13 if returning to usermode */
1731: ld r2,GPR2(r1) 1751: ld r2,GPR2(r1)
174 li r12,MSR_RI 176 li r12,MSR_RI
175 andc r11,r10,r12 177 andc r11,r10,r12
@@ -214,8 +216,10 @@ syscall_exit_work:
214 If TIF_NOERROR is set, just save r3 as it is. */ 216 If TIF_NOERROR is set, just save r3 as it is. */
215 217
216 andi. r0,r9,_TIF_RESTOREALL 218 andi. r0,r9,_TIF_RESTOREALL
217 bne- 2f 219 beq+ 0f
218 cmpld r3,r11 /* r10 is -LAST_ERRNO */ 220 REST_NVGPRS(r1)
221 b 2f
2220: cmpld r3,r11 /* r10 is -LAST_ERRNO */
219 blt+ 1f 223 blt+ 1f
220 andi. r0,r9,_TIF_NOERROR 224 andi. r0,r9,_TIF_NOERROR
221 bne- 1f 225 bne- 1f
@@ -227,9 +231,7 @@ syscall_exit_work:
2272: andi. r0,r9,(_TIF_PERSYSCALL_MASK) 2312: andi. r0,r9,(_TIF_PERSYSCALL_MASK)
228 beq 4f 232 beq 4f
229 233
230 /* Clear per-syscall TIF flags if any are set, but _leave_ 234 /* Clear per-syscall TIF flags if any are set. */
231 _TIF_SAVE_NVGPRS set in r9 since we haven't dealt with that
232 yet. */
233 235
234 li r11,_TIF_PERSYSCALL_MASK 236 li r11,_TIF_PERSYSCALL_MASK
235 addi r12,r12,TI_FLAGS 237 addi r12,r12,TI_FLAGS
@@ -238,10 +240,9 @@ syscall_exit_work:
238 stdcx. r10,0,r12 240 stdcx. r10,0,r12
239 bne- 3b 241 bne- 3b
240 subi r12,r12,TI_FLAGS 242 subi r12,r12,TI_FLAGS
241 243
2424: bl .save_nvgprs 2444: /* Anything else left to do? */
243 /* Anything else left to do? */ 245 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP)
244 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SAVE_NVGPRS)
245 beq .ret_from_except_lite 246 beq .ret_from_except_lite
246 247
247 /* Re-enable interrupts */ 248 /* Re-enable interrupts */
@@ -249,26 +250,10 @@ syscall_exit_work:
249 ori r10,r10,MSR_EE 250 ori r10,r10,MSR_EE
250 mtmsrd r10,1 251 mtmsrd r10,1
251 252
252 andi. r0,r9,_TIF_SAVE_NVGPRS 253 bl .save_nvgprs
253 bne save_user_nvgprs
254
255 /* If tracing, re-enable interrupts and do it */
256save_user_nvgprs_cont:
257 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP)
258 beq 5f
259
260 addi r3,r1,STACK_FRAME_OVERHEAD 254 addi r3,r1,STACK_FRAME_OVERHEAD
261 bl .do_syscall_trace_leave 255 bl .do_syscall_trace_leave
262 REST_NVGPRS(r1) 256 b .ret_from_except
263 clrrdi r12,r1,THREAD_SHIFT
264
265 /* Disable interrupts again and handle other work if any */
2665: mfmsr r10
267 rldicl r10,r10,48,1
268 rotldi r10,r10,16
269 mtmsrd r10,1
270
271 b .ret_from_except_lite
272 257
273/* Save non-volatile GPRs, if not already saved. */ 258/* Save non-volatile GPRs, if not already saved. */
274_GLOBAL(save_nvgprs) 259_GLOBAL(save_nvgprs)
@@ -280,51 +265,6 @@ _GLOBAL(save_nvgprs)
280 std r0,_TRAP(r1) 265 std r0,_TRAP(r1)
281 blr 266 blr
282 267
283
284save_user_nvgprs:
285 ld r10,TI_SIGFRAME(r12)
286 andi. r0,r9,_TIF_32BIT
287 beq- save_user_nvgprs_64
288
289 /* 32-bit save to userspace */
290
291.macro savewords start, end
292 1: stw \start,4*(\start)(r10)
293 .section __ex_table,"a"
294 .align 3
295 .llong 1b,save_user_nvgprs_fault
296 .previous
297 .if \end - \start
298 savewords "(\start+1)",\end
299 .endif
300.endm
301 savewords 14,31
302 b save_user_nvgprs_cont
303
304save_user_nvgprs_64:
305 /* 64-bit save to userspace */
306
307.macro savelongs start, end
308 1: std \start,8*(\start)(r10)
309 .section __ex_table,"a"
310 .align 3
311 .llong 1b,save_user_nvgprs_fault
312 .previous
313 .if \end - \start
314 savelongs "(\start+1)",\end
315 .endif
316.endm
317 savelongs 14,31
318 b save_user_nvgprs_cont
319
320save_user_nvgprs_fault:
321 li r3,11 /* SIGSEGV */
322 ld r4,TI_TASK(r12)
323 bl .force_sigsegv
324
325 clrrdi r12,r1,THREAD_SHIFT
326 ld r9,TI_FLAGS(r12)
327 b save_user_nvgprs_cont
328 268
329/* 269/*
330 * The sigsuspend and rt_sigsuspend system calls can call do_signal 270 * The sigsuspend and rt_sigsuspend system calls can call do_signal
@@ -350,6 +290,16 @@ _GLOBAL(ppc_clone)
350 bl .sys_clone 290 bl .sys_clone
351 b syscall_exit 291 b syscall_exit
352 292
293_GLOBAL(ppc32_swapcontext)
294 bl .save_nvgprs
295 bl .compat_sys_swapcontext
296 b syscall_exit
297
298_GLOBAL(ppc64_swapcontext)
299 bl .save_nvgprs
300 bl .sys_swapcontext
301 b syscall_exit
302
353_GLOBAL(ret_from_fork) 303_GLOBAL(ret_from_fork)
354 bl .schedule_tail 304 bl .schedule_tail
355 REST_NVGPRS(r1) 305 REST_NVGPRS(r1)
@@ -536,6 +486,7 @@ restore:
536 * userspace 486 * userspace
537 */ 487 */
538 beq 1f 488 beq 1f
489 ACCOUNT_CPU_USER_EXIT(r3, r4)
539 REST_GPR(13, r1) 490 REST_GPR(13, r1)
5401: 4911:
541 ld r3,_CTR(r1) 492 ld r3,_CTR(r1)
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 03b25f9359f8..a0579e859b21 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -714,6 +714,7 @@ AltiVecUnavailable:
714#ifdef CONFIG_ALTIVEC 714#ifdef CONFIG_ALTIVEC
715 bne load_up_altivec /* if from user, just load it up */ 715 bne load_up_altivec /* if from user, just load it up */
716#endif /* CONFIG_ALTIVEC */ 716#endif /* CONFIG_ALTIVEC */
717 addi r3,r1,STACK_FRAME_OVERHEAD
717 EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) 718 EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception)
718 719
719PerformanceMonitor: 720PerformanceMonitor:
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 7ebb73665e9d..35084f3a841b 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -137,7 +137,7 @@ _GLOBAL(__secondary_hold)
137 ori r24,r24,MSR_RI 137 ori r24,r24,MSR_RI
138 mtmsrd r24 /* RI on */ 138 mtmsrd r24 /* RI on */
139 139
140 /* Grab our linux cpu number */ 140 /* Grab our physical cpu number */
141 mr r24,r3 141 mr r24,r3
142 142
143 /* Tell the master cpu we're here */ 143 /* Tell the master cpu we're here */
@@ -151,12 +151,7 @@ _GLOBAL(__secondary_hold)
151 cmpdi 0,r4,1 151 cmpdi 0,r4,1
152 bne 100b 152 bne 100b
153 153
154#ifdef CONFIG_HMT 154#if defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
155 SET_REG_IMMEDIATE(r4, .hmt_init)
156 mtctr r4
157 bctr
158#else
159#ifdef CONFIG_SMP
160 LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init) 155 LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init)
161 mtctr r4 156 mtctr r4
162 mr r3,r24 157 mr r3,r24
@@ -164,7 +159,6 @@ _GLOBAL(__secondary_hold)
164#else 159#else
165 BUG_OPCODE 160 BUG_OPCODE
166#endif 161#endif
167#endif
168 162
169/* This value is used to mark exception frames on the stack. */ 163/* This value is used to mark exception frames on the stack. */
170 .section ".toc","aw" 164 .section ".toc","aw"
@@ -283,6 +277,7 @@ exception_marker:
283 std r10,0(r1); /* make stack chain pointer */ \ 277 std r10,0(r1); /* make stack chain pointer */ \
284 std r0,GPR0(r1); /* save r0 in stackframe */ \ 278 std r0,GPR0(r1); /* save r0 in stackframe */ \
285 std r10,GPR1(r1); /* save r1 in stackframe */ \ 279 std r10,GPR1(r1); /* save r1 in stackframe */ \
280 ACCOUNT_CPU_USER_ENTRY(r9, r10); \
286 std r2,GPR2(r1); /* save r2 in stackframe */ \ 281 std r2,GPR2(r1); /* save r2 in stackframe */ \
287 SAVE_4GPRS(3, r1); /* save r3 - r6 in stackframe */ \ 282 SAVE_4GPRS(3, r1); /* save r3 - r6 in stackframe */ \
288 SAVE_2GPRS(7, r1); /* save r7, r8 in stackframe */ \ 283 SAVE_2GPRS(7, r1); /* save r7, r8 in stackframe */ \
@@ -319,7 +314,6 @@ exception_marker:
319label##_pSeries: \ 314label##_pSeries: \
320 HMT_MEDIUM; \ 315 HMT_MEDIUM; \
321 mtspr SPRN_SPRG1,r13; /* save r13 */ \ 316 mtspr SPRN_SPRG1,r13; /* save r13 */ \
322 RUNLATCH_ON(r13); \
323 EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) 317 EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common)
324 318
325#define STD_EXCEPTION_ISERIES(n, label, area) \ 319#define STD_EXCEPTION_ISERIES(n, label, area) \
@@ -327,7 +321,6 @@ label##_pSeries: \
327label##_iSeries: \ 321label##_iSeries: \
328 HMT_MEDIUM; \ 322 HMT_MEDIUM; \
329 mtspr SPRN_SPRG1,r13; /* save r13 */ \ 323 mtspr SPRN_SPRG1,r13; /* save r13 */ \
330 RUNLATCH_ON(r13); \
331 EXCEPTION_PROLOG_ISERIES_1(area); \ 324 EXCEPTION_PROLOG_ISERIES_1(area); \
332 EXCEPTION_PROLOG_ISERIES_2; \ 325 EXCEPTION_PROLOG_ISERIES_2; \
333 b label##_common 326 b label##_common
@@ -337,7 +330,6 @@ label##_iSeries: \
337label##_iSeries: \ 330label##_iSeries: \
338 HMT_MEDIUM; \ 331 HMT_MEDIUM; \
339 mtspr SPRN_SPRG1,r13; /* save r13 */ \ 332 mtspr SPRN_SPRG1,r13; /* save r13 */ \
340 RUNLATCH_ON(r13); \
341 EXCEPTION_PROLOG_ISERIES_1(PACA_EXGEN); \ 333 EXCEPTION_PROLOG_ISERIES_1(PACA_EXGEN); \
342 lbz r10,PACAPROCENABLED(r13); \ 334 lbz r10,PACAPROCENABLED(r13); \
343 cmpwi 0,r10,0; \ 335 cmpwi 0,r10,0; \
@@ -390,6 +382,7 @@ label##_common: \
390label##_common: \ 382label##_common: \
391 EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \ 383 EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \
392 DISABLE_INTS; \ 384 DISABLE_INTS; \
385 bl .ppc64_runlatch_on; \
393 addi r3,r1,STACK_FRAME_OVERHEAD; \ 386 addi r3,r1,STACK_FRAME_OVERHEAD; \
394 bl hdlr; \ 387 bl hdlr; \
395 b .ret_from_except_lite 388 b .ret_from_except_lite
@@ -407,7 +400,6 @@ __start_interrupts:
407_machine_check_pSeries: 400_machine_check_pSeries:
408 HMT_MEDIUM 401 HMT_MEDIUM
409 mtspr SPRN_SPRG1,r13 /* save r13 */ 402 mtspr SPRN_SPRG1,r13 /* save r13 */
410 RUNLATCH_ON(r13)
411 EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) 403 EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common)
412 404
413 . = 0x300 405 . = 0x300
@@ -434,7 +426,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
434data_access_slb_pSeries: 426data_access_slb_pSeries:
435 HMT_MEDIUM 427 HMT_MEDIUM
436 mtspr SPRN_SPRG1,r13 428 mtspr SPRN_SPRG1,r13
437 RUNLATCH_ON(r13)
438 mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ 429 mfspr r13,SPRN_SPRG3 /* get paca address into r13 */
439 std r3,PACA_EXSLB+EX_R3(r13) 430 std r3,PACA_EXSLB+EX_R3(r13)
440 mfspr r3,SPRN_DAR 431 mfspr r3,SPRN_DAR
@@ -460,7 +451,6 @@ data_access_slb_pSeries:
460instruction_access_slb_pSeries: 451instruction_access_slb_pSeries:
461 HMT_MEDIUM 452 HMT_MEDIUM
462 mtspr SPRN_SPRG1,r13 453 mtspr SPRN_SPRG1,r13
463 RUNLATCH_ON(r13)
464 mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ 454 mfspr r13,SPRN_SPRG3 /* get paca address into r13 */
465 std r3,PACA_EXSLB+EX_R3(r13) 455 std r3,PACA_EXSLB+EX_R3(r13)
466 mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */ 456 mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */
@@ -491,7 +481,6 @@ instruction_access_slb_pSeries:
491 .globl system_call_pSeries 481 .globl system_call_pSeries
492system_call_pSeries: 482system_call_pSeries:
493 HMT_MEDIUM 483 HMT_MEDIUM
494 RUNLATCH_ON(r9)
495 mr r9,r13 484 mr r9,r13
496 mfmsr r10 485 mfmsr r10
497 mfspr r13,SPRN_SPRG3 486 mfspr r13,SPRN_SPRG3
@@ -575,7 +564,6 @@ slb_miss_user_pseries:
575system_reset_fwnmi: 564system_reset_fwnmi:
576 HMT_MEDIUM 565 HMT_MEDIUM
577 mtspr SPRN_SPRG1,r13 /* save r13 */ 566 mtspr SPRN_SPRG1,r13 /* save r13 */
578 RUNLATCH_ON(r13)
579 EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common) 567 EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common)
580 568
581 .globl machine_check_fwnmi 569 .globl machine_check_fwnmi
@@ -583,7 +571,6 @@ system_reset_fwnmi:
583machine_check_fwnmi: 571machine_check_fwnmi:
584 HMT_MEDIUM 572 HMT_MEDIUM
585 mtspr SPRN_SPRG1,r13 /* save r13 */ 573 mtspr SPRN_SPRG1,r13 /* save r13 */
586 RUNLATCH_ON(r13)
587 EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) 574 EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common)
588 575
589#ifdef CONFIG_PPC_ISERIES 576#ifdef CONFIG_PPC_ISERIES
@@ -858,6 +845,14 @@ fast_exception_return:
858 ld r11,_NIP(r1) 845 ld r11,_NIP(r1)
859 andi. r3,r12,MSR_RI /* check if RI is set */ 846 andi. r3,r12,MSR_RI /* check if RI is set */
860 beq- unrecov_fer 847 beq- unrecov_fer
848
849#ifdef CONFIG_VIRT_CPU_ACCOUNTING
850 andi. r3,r12,MSR_PR
851 beq 2f
852 ACCOUNT_CPU_USER_EXIT(r3, r4)
8532:
854#endif
855
861 ld r3,_CCR(r1) 856 ld r3,_CCR(r1)
862 ld r4,_LINK(r1) 857 ld r4,_LINK(r1)
863 ld r5,_CTR(r1) 858 ld r5,_CTR(r1)
@@ -894,7 +889,6 @@ unrecov_fer:
894 .align 7 889 .align 7
895 .globl data_access_common 890 .globl data_access_common
896data_access_common: 891data_access_common:
897 RUNLATCH_ON(r10) /* It wont fit in the 0x300 handler */
898 mfspr r10,SPRN_DAR 892 mfspr r10,SPRN_DAR
899 std r10,PACA_EXGEN+EX_DAR(r13) 893 std r10,PACA_EXGEN+EX_DAR(r13)
900 mfspr r10,SPRN_DSISR 894 mfspr r10,SPRN_DSISR
@@ -1042,6 +1036,7 @@ hardware_interrupt_common:
1042 EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN) 1036 EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN)
1043hardware_interrupt_entry: 1037hardware_interrupt_entry:
1044 DISABLE_INTS 1038 DISABLE_INTS
1039 bl .ppc64_runlatch_on
1045 addi r3,r1,STACK_FRAME_OVERHEAD 1040 addi r3,r1,STACK_FRAME_OVERHEAD
1046 bl .do_IRQ 1041 bl .do_IRQ
1047 b .ret_from_except_lite 1042 b .ret_from_except_lite
@@ -1549,6 +1544,9 @@ _STATIC(__boot_from_prom)
1549 mr r28,r6 1544 mr r28,r6
1550 mr r27,r7 1545 mr r27,r7
1551 1546
1547 /* Align the stack to 16-byte boundary for broken yaboot */
1548 rldicr r1,r1,0,59
1549
1552 /* Make sure we are running in 64 bits mode */ 1550 /* Make sure we are running in 64 bits mode */
1553 bl .enable_64b_mode 1551 bl .enable_64b_mode
1554 1552
@@ -1816,22 +1814,6 @@ _STATIC(start_here_multiplatform)
1816 ori r6,r6,MSR_RI 1814 ori r6,r6,MSR_RI
1817 mtmsrd r6 /* RI on */ 1815 mtmsrd r6 /* RI on */
1818 1816
1819#ifdef CONFIG_HMT
1820 /* Start up the second thread on cpu 0 */
1821 mfspr r3,SPRN_PVR
1822 srwi r3,r3,16
1823 cmpwi r3,0x34 /* Pulsar */
1824 beq 90f
1825 cmpwi r3,0x36 /* Icestar */
1826 beq 90f
1827 cmpwi r3,0x37 /* SStar */
1828 beq 90f
1829 b 91f /* HMT not supported */
183090: li r3,0
1831 bl .hmt_start_secondary
183291:
1833#endif
1834
1835 /* The following gets the stack and TOC set up with the regs */ 1817 /* The following gets the stack and TOC set up with the regs */
1836 /* pointing to the real addr of the kernel stack. This is */ 1818 /* pointing to the real addr of the kernel stack. This is */
1837 /* all done to support the C function call below which sets */ 1819 /* all done to support the C function call below which sets */
@@ -1945,77 +1927,8 @@ _STATIC(start_here_common)
1945 1927
1946 bl .start_kernel 1928 bl .start_kernel
1947 1929
1948_GLOBAL(hmt_init) 1930 /* Not reached */
1949#ifdef CONFIG_HMT 1931 BUG_OPCODE
1950 LOAD_REG_IMMEDIATE(r5, hmt_thread_data)
1951 mfspr r7,SPRN_PVR
1952 srwi r7,r7,16
1953 cmpwi r7,0x34 /* Pulsar */
1954 beq 90f
1955 cmpwi r7,0x36 /* Icestar */
1956 beq 91f
1957 cmpwi r7,0x37 /* SStar */
1958 beq 91f
1959 b 101f
196090: mfspr r6,SPRN_PIR
1961 andi. r6,r6,0x1f
1962 b 92f
196391: mfspr r6,SPRN_PIR
1964 andi. r6,r6,0x3ff
196592: sldi r4,r24,3
1966 stwx r6,r5,r4
1967 bl .hmt_start_secondary
1968 b 101f
1969
1970__hmt_secondary_hold:
1971 LOAD_REG_IMMEDIATE(r5, hmt_thread_data)
1972 clrldi r5,r5,4
1973 li r7,0
1974 mfspr r6,SPRN_PIR
1975 mfspr r8,SPRN_PVR
1976 srwi r8,r8,16
1977 cmpwi r8,0x34
1978 bne 93f
1979 andi. r6,r6,0x1f
1980 b 103f
198193: andi. r6,r6,0x3f
1982
1983103: lwzx r8,r5,r7
1984 cmpw r8,r6
1985 beq 104f
1986 addi r7,r7,8
1987 b 103b
1988
1989104: addi r7,r7,4
1990 lwzx r9,r5,r7
1991 mr r24,r9
1992101:
1993#endif
1994 mr r3,r24
1995 b .pSeries_secondary_smp_init
1996
1997#ifdef CONFIG_HMT
1998_GLOBAL(hmt_start_secondary)
1999 LOAD_REG_IMMEDIATE(r4,__hmt_secondary_hold)
2000 clrldi r4,r4,4
2001 mtspr SPRN_NIADORM, r4
2002 mfspr r4, SPRN_MSRDORM
2003 li r5, -65
2004 and r4, r4, r5
2005 mtspr SPRN_MSRDORM, r4
2006 lis r4,0xffef
2007 ori r4,r4,0x7403
2008 mtspr SPRN_TSC, r4
2009 li r4,0x1f4
2010 mtspr SPRN_TST, r4
2011 mfspr r4, SPRN_HID0
2012 ori r4, r4, 0x1
2013 mtspr SPRN_HID0, r4
2014 mfspr r4, SPRN_CTRLF
2015 oris r4, r4, 0x40
2016 mtspr SPRN_CTRLT, r4
2017 blr
2018#endif
2019 1932
2020/* 1933/*
2021 * We put a few things here that have to be page-aligned. 1934 * We put a few things here that have to be page-aligned.
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index edb2b00edbd2..24dc8117b822 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -369,6 +369,7 @@ unsigned int real_irq_to_virt_slowpath(unsigned int real_irq)
369 return NO_IRQ; 369 return NO_IRQ;
370 370
371} 371}
372#endif /* CONFIG_PPC64 */
372 373
373#ifdef CONFIG_IRQSTACKS 374#ifdef CONFIG_IRQSTACKS
374struct thread_info *softirq_ctx[NR_CPUS]; 375struct thread_info *softirq_ctx[NR_CPUS];
@@ -392,10 +393,24 @@ void irq_ctx_init(void)
392 } 393 }
393} 394}
394 395
396static inline void do_softirq_onstack(void)
397{
398 struct thread_info *curtp, *irqtp;
399
400 curtp = current_thread_info();
401 irqtp = softirq_ctx[smp_processor_id()];
402 irqtp->task = curtp->task;
403 call_do_softirq(irqtp);
404 irqtp->task = NULL;
405}
406
407#else
408#define do_softirq_onstack() __do_softirq()
409#endif /* CONFIG_IRQSTACKS */
410
395void do_softirq(void) 411void do_softirq(void)
396{ 412{
397 unsigned long flags; 413 unsigned long flags;
398 struct thread_info *curtp, *irqtp;
399 414
400 if (in_interrupt()) 415 if (in_interrupt())
401 return; 416 return;
@@ -403,19 +418,18 @@ void do_softirq(void)
403 local_irq_save(flags); 418 local_irq_save(flags);
404 419
405 if (local_softirq_pending()) { 420 if (local_softirq_pending()) {
406 curtp = current_thread_info(); 421 account_system_vtime(current);
407 irqtp = softirq_ctx[smp_processor_id()]; 422 local_bh_disable();
408 irqtp->task = curtp->task; 423 do_softirq_onstack();
409 call_do_softirq(irqtp); 424 account_system_vtime(current);
410 irqtp->task = NULL; 425 __local_bh_enable();
411 } 426 }
412 427
413 local_irq_restore(flags); 428 local_irq_restore(flags);
414} 429}
415EXPORT_SYMBOL(do_softirq); 430EXPORT_SYMBOL(do_softirq);
416 431
417#endif /* CONFIG_IRQSTACKS */ 432#ifdef CONFIG_PPC64
418
419static int __init setup_noirqdistrib(char *str) 433static int __init setup_noirqdistrib(char *str)
420{ 434{
421 distribute_irqs = 0; 435 distribute_irqs = 0;
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
index 1ae96a8ed7e2..e789fef4eb8a 100644
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -341,7 +341,7 @@ static int lparcfg_data(struct seq_file *m, void *v)
341 const char *system_id = ""; 341 const char *system_id = "";
342 unsigned int *lp_index_ptr, lp_index = 0; 342 unsigned int *lp_index_ptr, lp_index = 0;
343 struct device_node *rtas_node; 343 struct device_node *rtas_node;
344 int *lrdrp; 344 int *lrdrp = NULL;
345 345
346 rootdn = find_path_device("/"); 346 rootdn = find_path_device("/");
347 if (rootdn) { 347 if (rootdn) {
@@ -362,7 +362,9 @@ static int lparcfg_data(struct seq_file *m, void *v)
362 seq_printf(m, "partition_id=%d\n", (int)lp_index); 362 seq_printf(m, "partition_id=%d\n", (int)lp_index);
363 363
364 rtas_node = find_path_device("/rtas"); 364 rtas_node = find_path_device("/rtas");
365 lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", NULL); 365 if (rtas_node)
366 lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity",
367 NULL);
366 368
367 if (lrdrp == NULL) { 369 if (lrdrp == NULL) {
368 partition_potential_processors = vdso_data->processorCount; 370 partition_potential_processors = vdso_data->processorCount;
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c
index d6431440c54f..ee166c586642 100644
--- a/arch/powerpc/kernel/machine_kexec_64.c
+++ b/arch/powerpc/kernel/machine_kexec_64.c
@@ -26,8 +26,6 @@
26#include <asm/prom.h> 26#include <asm/prom.h>
27#include <asm/smp.h> 27#include <asm/smp.h>
28 28
29#define HASH_GROUP_SIZE 0x80 /* size of each hash group, asm/mmu.h */
30
31int default_machine_kexec_prepare(struct kimage *image) 29int default_machine_kexec_prepare(struct kimage *image)
32{ 30{
33 int i; 31 int i;
@@ -61,7 +59,7 @@ int default_machine_kexec_prepare(struct kimage *image)
61 */ 59 */
62 if (htab_address) { 60 if (htab_address) {
63 low = __pa(htab_address); 61 low = __pa(htab_address);
64 high = low + (htab_hash_mask + 1) * HASH_GROUP_SIZE; 62 high = low + htab_size_bytes;
65 63
66 for (i = 0; i < image->nr_segments; i++) { 64 for (i = 0; i < image->nr_segments; i++) {
67 begin = image->segment[i].mem; 65 begin = image->segment[i].mem;
@@ -294,7 +292,7 @@ void default_machine_kexec(struct kimage *image)
294} 292}
295 293
296/* Values we need to export to the second kernel via the device tree. */ 294/* Values we need to export to the second kernel via the device tree. */
297static unsigned long htab_base, htab_size, kernel_end; 295static unsigned long htab_base, kernel_end;
298 296
299static struct property htab_base_prop = { 297static struct property htab_base_prop = {
300 .name = "linux,htab-base", 298 .name = "linux,htab-base",
@@ -305,7 +303,7 @@ static struct property htab_base_prop = {
305static struct property htab_size_prop = { 303static struct property htab_size_prop = {
306 .name = "linux,htab-size", 304 .name = "linux,htab-size",
307 .length = sizeof(unsigned long), 305 .length = sizeof(unsigned long),
308 .value = (unsigned char *)&htab_size, 306 .value = (unsigned char *)&htab_size_bytes,
309}; 307};
310 308
311static struct property kernel_end_prop = { 309static struct property kernel_end_prop = {
@@ -331,8 +329,6 @@ static void __init export_htab_values(void)
331 329
332 htab_base = __pa(htab_address); 330 htab_base = __pa(htab_address);
333 prom_add_property(node, &htab_base_prop); 331 prom_add_property(node, &htab_base_prop);
334
335 htab_size = 1UL << ppc64_pft_size;
336 prom_add_property(node, &htab_size_prop); 332 prom_add_property(node, &htab_size_prop);
337 333
338 out: 334 out:
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index c367520bc1c3..ba92bab7cc2c 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -589,7 +589,6 @@ void __devinit scan_phb(struct pci_controller *hose)
589#endif /* CONFIG_PPC_MULTIPLATFORM */ 589#endif /* CONFIG_PPC_MULTIPLATFORM */
590 if (mode == PCI_PROBE_NORMAL) 590 if (mode == PCI_PROBE_NORMAL)
591 hose->last_busno = bus->subordinate = pci_scan_child_bus(bus); 591 hose->last_busno = bus->subordinate = pci_scan_child_bus(bus);
592 pci_bus_add_devices(bus);
593} 592}
594 593
595static int __init pcibios_init(void) 594static int __init pcibios_init(void)
@@ -608,8 +607,10 @@ static int __init pcibios_init(void)
608 printk("PCI: Probing PCI hardware\n"); 607 printk("PCI: Probing PCI hardware\n");
609 608
610 /* Scan all of the recorded PCI controllers. */ 609 /* Scan all of the recorded PCI controllers. */
611 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) 610 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
612 scan_phb(hose); 611 scan_phb(hose);
612 pci_bus_add_devices(hose->bus);
613 }
613 614
614#ifndef CONFIG_PPC_ISERIES 615#ifndef CONFIG_PPC_ISERIES
615 if (pci_probe_only) 616 if (pci_probe_only)
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index b212d3e64b8d..dfa5398ab3c8 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -78,15 +78,8 @@ EXPORT_SYMBOL(sys_sigreturn);
78EXPORT_SYMBOL(strcpy); 78EXPORT_SYMBOL(strcpy);
79EXPORT_SYMBOL(strncpy); 79EXPORT_SYMBOL(strncpy);
80EXPORT_SYMBOL(strcat); 80EXPORT_SYMBOL(strcat);
81EXPORT_SYMBOL(strncat);
82EXPORT_SYMBOL(strchr);
83EXPORT_SYMBOL(strrchr);
84EXPORT_SYMBOL(strpbrk);
85EXPORT_SYMBOL(strstr);
86EXPORT_SYMBOL(strlen); 81EXPORT_SYMBOL(strlen);
87EXPORT_SYMBOL(strnlen);
88EXPORT_SYMBOL(strcmp); 82EXPORT_SYMBOL(strcmp);
89EXPORT_SYMBOL(strncmp);
90EXPORT_SYMBOL(strcasecmp); 83EXPORT_SYMBOL(strcasecmp);
91 84
92EXPORT_SYMBOL(csum_partial); 85EXPORT_SYMBOL(csum_partial);
@@ -116,15 +109,6 @@ EXPORT_SYMBOL(_insw_ns);
116EXPORT_SYMBOL(_outsw_ns); 109EXPORT_SYMBOL(_outsw_ns);
117EXPORT_SYMBOL(_insl_ns); 110EXPORT_SYMBOL(_insl_ns);
118EXPORT_SYMBOL(_outsl_ns); 111EXPORT_SYMBOL(_outsl_ns);
119EXPORT_SYMBOL(ioremap);
120#ifdef CONFIG_44x
121EXPORT_SYMBOL(ioremap64);
122#endif
123EXPORT_SYMBOL(__ioremap);
124EXPORT_SYMBOL(iounmap);
125#ifdef CONFIG_PPC32
126EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
127#endif
128 112
129#if defined(CONFIG_PPC32) && (defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)) 113#if defined(CONFIG_PPC32) && (defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE))
130EXPORT_SYMBOL(ppc_ide_md); 114EXPORT_SYMBOL(ppc_ide_md);
@@ -167,7 +151,6 @@ EXPORT_SYMBOL(__flush_icache_range);
167EXPORT_SYMBOL(flush_dcache_range); 151EXPORT_SYMBOL(flush_dcache_range);
168 152
169#ifdef CONFIG_SMP 153#ifdef CONFIG_SMP
170EXPORT_SYMBOL(smp_call_function);
171#ifdef CONFIG_PPC32 154#ifdef CONFIG_PPC32
172EXPORT_SYMBOL(smp_hw_index); 155EXPORT_SYMBOL(smp_hw_index);
173#endif 156#endif
@@ -184,9 +167,6 @@ EXPORT_SYMBOL(adb_try_handler_change);
184EXPORT_SYMBOL(cuda_request); 167EXPORT_SYMBOL(cuda_request);
185EXPORT_SYMBOL(cuda_poll); 168EXPORT_SYMBOL(cuda_poll);
186#endif /* CONFIG_ADB_CUDA */ 169#endif /* CONFIG_ADB_CUDA */
187#ifdef CONFIG_PPC_PMAC
188EXPORT_SYMBOL(sys_ctrler);
189#endif
190#ifdef CONFIG_VT 170#ifdef CONFIG_VT
191EXPORT_SYMBOL(kd_mksound); 171EXPORT_SYMBOL(kd_mksound);
192#endif 172#endif
@@ -204,7 +184,6 @@ EXPORT_SYMBOL(__lshrdi3);
204EXPORT_SYMBOL(memcpy); 184EXPORT_SYMBOL(memcpy);
205EXPORT_SYMBOL(memset); 185EXPORT_SYMBOL(memset);
206EXPORT_SYMBOL(memmove); 186EXPORT_SYMBOL(memmove);
207EXPORT_SYMBOL(memscan);
208EXPORT_SYMBOL(memcmp); 187EXPORT_SYMBOL(memcmp);
209EXPORT_SYMBOL(memchr); 188EXPORT_SYMBOL(memchr);
210 189
@@ -213,7 +192,6 @@ EXPORT_SYMBOL(screen_info);
213#endif 192#endif
214 193
215#ifdef CONFIG_PPC32 194#ifdef CONFIG_PPC32
216EXPORT_SYMBOL(__delay);
217EXPORT_SYMBOL(timer_interrupt); 195EXPORT_SYMBOL(timer_interrupt);
218EXPORT_SYMBOL(irq_desc); 196EXPORT_SYMBOL(irq_desc);
219EXPORT_SYMBOL(tb_ticks_per_jiffy); 197EXPORT_SYMBOL(tb_ticks_per_jiffy);
@@ -221,10 +199,6 @@ EXPORT_SYMBOL(console_drivers);
221EXPORT_SYMBOL(cacheable_memcpy); 199EXPORT_SYMBOL(cacheable_memcpy);
222#endif 200#endif
223 201
224EXPORT_SYMBOL(__up);
225EXPORT_SYMBOL(__down);
226EXPORT_SYMBOL(__down_interruptible);
227
228#ifdef CONFIG_8xx 202#ifdef CONFIG_8xx
229EXPORT_SYMBOL(cpm_install_handler); 203EXPORT_SYMBOL(cpm_install_handler);
230EXPORT_SYMBOL(cpm_free_handler); 204EXPORT_SYMBOL(cpm_free_handler);
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 1201880cab40..1770a066c217 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -45,9 +45,9 @@
45#include <asm/mmu.h> 45#include <asm/mmu.h>
46#include <asm/prom.h> 46#include <asm/prom.h>
47#include <asm/machdep.h> 47#include <asm/machdep.h>
48#include <asm/time.h>
48#ifdef CONFIG_PPC64 49#ifdef CONFIG_PPC64
49#include <asm/firmware.h> 50#include <asm/firmware.h>
50#include <asm/time.h>
51#endif 51#endif
52 52
53extern unsigned long _get_SP(void); 53extern unsigned long _get_SP(void);
@@ -328,6 +328,11 @@ struct task_struct *__switch_to(struct task_struct *prev,
328#endif 328#endif
329 329
330 local_irq_save(flags); 330 local_irq_save(flags);
331
332 account_system_vtime(current);
333 account_process_vtime(current);
334 calculate_steal_time();
335
331 last = _switch(old_thread, new_thread); 336 last = _switch(old_thread, new_thread);
332 337
333 local_irq_restore(flags); 338 local_irq_restore(flags);
@@ -886,3 +891,35 @@ void dump_stack(void)
886 show_stack(current, NULL); 891 show_stack(current, NULL);
887} 892}
888EXPORT_SYMBOL(dump_stack); 893EXPORT_SYMBOL(dump_stack);
894
895#ifdef CONFIG_PPC64
896void ppc64_runlatch_on(void)
897{
898 unsigned long ctrl;
899
900 if (cpu_has_feature(CPU_FTR_CTRL) && !test_thread_flag(TIF_RUNLATCH)) {
901 HMT_medium();
902
903 ctrl = mfspr(SPRN_CTRLF);
904 ctrl |= CTRL_RUNLATCH;
905 mtspr(SPRN_CTRLT, ctrl);
906
907 set_thread_flag(TIF_RUNLATCH);
908 }
909}
910
911void ppc64_runlatch_off(void)
912{
913 unsigned long ctrl;
914
915 if (cpu_has_feature(CPU_FTR_CTRL) && test_thread_flag(TIF_RUNLATCH)) {
916 HMT_medium();
917
918 clear_thread_flag(TIF_RUNLATCH);
919
920 ctrl = mfspr(SPRN_CTRLF);
921 ctrl &= ~CTRL_RUNLATCH;
922 mtspr(SPRN_CTRLT, ctrl);
923 }
924}
925#endif
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 82d117c60d7f..d63cd562d9d5 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -816,8 +816,6 @@ void __init unflatten_device_tree(void)
816{ 816{
817 unsigned long start, mem, size; 817 unsigned long start, mem, size;
818 struct device_node **allnextp = &allnodes; 818 struct device_node **allnextp = &allnodes;
819 char *p = NULL;
820 int l = 0;
821 819
822 DBG(" -> unflatten_device_tree()\n"); 820 DBG(" -> unflatten_device_tree()\n");
823 821
@@ -853,19 +851,6 @@ void __init unflatten_device_tree(void)
853 if (of_chosen == NULL) 851 if (of_chosen == NULL)
854 of_chosen = of_find_node_by_path("/chosen@0"); 852 of_chosen = of_find_node_by_path("/chosen@0");
855 853
856 /* Retreive command line */
857 if (of_chosen != NULL) {
858 p = (char *)get_property(of_chosen, "bootargs", &l);
859 if (p != NULL && l > 0)
860 strlcpy(cmd_line, p, min(l, COMMAND_LINE_SIZE));
861 }
862#ifdef CONFIG_CMDLINE
863 if (l == 0 || (l == 1 && (*p) == 0))
864 strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
865#endif /* CONFIG_CMDLINE */
866
867 DBG("Command line is: %s\n", cmd_line);
868
869 DBG(" <- unflatten_device_tree()\n"); 854 DBG(" <- unflatten_device_tree()\n");
870} 855}
871 856
@@ -936,6 +921,8 @@ static int __init early_init_dt_scan_chosen(unsigned long node,
936{ 921{
937 u32 *prop; 922 u32 *prop;
938 unsigned long *lprop; 923 unsigned long *lprop;
924 unsigned long l;
925 char *p;
939 926
940 DBG("search \"chosen\", depth: %d, uname: %s\n", depth, uname); 927 DBG("search \"chosen\", depth: %d, uname: %s\n", depth, uname);
941 928
@@ -1000,6 +987,41 @@ static int __init early_init_dt_scan_chosen(unsigned long node,
1000 crashk_res.end = crashk_res.start + *lprop - 1; 987 crashk_res.end = crashk_res.start + *lprop - 1;
1001#endif 988#endif
1002 989
990 /* Retreive command line */
991 p = of_get_flat_dt_prop(node, "bootargs", &l);
992 if (p != NULL && l > 0)
993 strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE));
994
995#ifdef CONFIG_CMDLINE
996 if (l == 0 || (l == 1 && (*p) == 0))
997 strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
998#endif /* CONFIG_CMDLINE */
999
1000 DBG("Command line is: %s\n", cmd_line);
1001
1002 if (strstr(cmd_line, "mem=")) {
1003 char *p, *q;
1004 unsigned long maxmem = 0;
1005
1006 for (q = cmd_line; (p = strstr(q, "mem=")) != 0; ) {
1007 q = p + 4;
1008 if (p > cmd_line && p[-1] != ' ')
1009 continue;
1010 maxmem = simple_strtoul(q, &q, 0);
1011 if (*q == 'k' || *q == 'K') {
1012 maxmem <<= 10;
1013 ++q;
1014 } else if (*q == 'm' || *q == 'M') {
1015 maxmem <<= 20;
1016 ++q;
1017 } else if (*q == 'g' || *q == 'G') {
1018 maxmem <<= 30;
1019 ++q;
1020 }
1021 }
1022 memory_limit = maxmem;
1023 }
1024
1003 /* break now */ 1025 /* break now */
1004 return 1; 1026 return 1;
1005} 1027}
@@ -1120,7 +1142,7 @@ static void __init early_reserve_mem(void)
1120 size_32 = *(reserve_map_32++); 1142 size_32 = *(reserve_map_32++);
1121 if (size_32 == 0) 1143 if (size_32 == 0)
1122 break; 1144 break;
1123 DBG("reserving: %lx -> %lx\n", base_32, size_32); 1145 DBG("reserving: %x -> %x\n", base_32, size_32);
1124 lmb_reserve(base_32, size_32); 1146 lmb_reserve(base_32, size_32);
1125 } 1147 }
1126 return; 1148 return;
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index ec7153f4d47c..813c2cd194c2 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -205,14 +205,6 @@ static cell_t __initdata regbuf[1024];
205 205
206#define MAX_CPU_THREADS 2 206#define MAX_CPU_THREADS 2
207 207
208/* TO GO */
209#ifdef CONFIG_HMT
210struct {
211 unsigned int pir;
212 unsigned int threadid;
213} hmt_thread_data[NR_CPUS];
214#endif /* CONFIG_HMT */
215
216/* 208/*
217 * Error results ... some OF calls will return "-1" on error, some 209 * Error results ... some OF calls will return "-1" on error, some
218 * will return 0, some will return either. To simplify, here are 210 * will return 0, some will return either. To simplify, here are
@@ -986,7 +978,7 @@ static void __init prom_init_mem(void)
986 if (size == 0) 978 if (size == 0)
987 continue; 979 continue;
988 prom_debug(" %x %x\n", base, size); 980 prom_debug(" %x %x\n", base, size);
989 if (base == 0) 981 if (base == 0 && (RELOC(of_platform) & PLATFORM_LPAR))
990 RELOC(rmo_top) = size; 982 RELOC(rmo_top) = size;
991 if ((base + size) > RELOC(ram_top)) 983 if ((base + size) > RELOC(ram_top))
992 RELOC(ram_top) = base + size; 984 RELOC(ram_top) = base + size;
@@ -1319,10 +1311,6 @@ static void __init prom_hold_cpus(void)
1319 */ 1311 */
1320 *spinloop = 0; 1312 *spinloop = 0;
1321 1313
1322#ifdef CONFIG_HMT
1323 for (i = 0; i < NR_CPUS; i++)
1324 RELOC(hmt_thread_data)[i].pir = 0xdeadbeef;
1325#endif
1326 /* look for cpus */ 1314 /* look for cpus */
1327 for (node = 0; prom_next_node(&node); ) { 1315 for (node = 0; prom_next_node(&node); ) {
1328 type[0] = 0; 1316 type[0] = 0;
@@ -1389,32 +1377,6 @@ static void __init prom_hold_cpus(void)
1389 /* Reserve cpu #s for secondary threads. They start later. */ 1377 /* Reserve cpu #s for secondary threads. They start later. */
1390 cpuid += cpu_threads; 1378 cpuid += cpu_threads;
1391 } 1379 }
1392#ifdef CONFIG_HMT
1393 /* Only enable HMT on processors that provide support. */
1394 if (__is_processor(PV_PULSAR) ||
1395 __is_processor(PV_ICESTAR) ||
1396 __is_processor(PV_SSTAR)) {
1397 prom_printf(" starting secondary threads\n");
1398
1399 for (i = 0; i < NR_CPUS; i += 2) {
1400 if (!cpu_online(i))
1401 continue;
1402
1403 if (i == 0) {
1404 unsigned long pir = mfspr(SPRN_PIR);
1405 if (__is_processor(PV_PULSAR)) {
1406 RELOC(hmt_thread_data)[i].pir =
1407 pir & 0x1f;
1408 } else {
1409 RELOC(hmt_thread_data)[i].pir =
1410 pir & 0x3ff;
1411 }
1412 }
1413 }
1414 } else {
1415 prom_printf("Processor is not HMT capable\n");
1416 }
1417#endif
1418 1380
1419 if (cpuid > NR_CPUS) 1381 if (cpuid > NR_CPUS)
1420 prom_printf("WARNING: maximum CPUs (" __stringify(NR_CPUS) 1382 prom_printf("WARNING: maximum CPUs (" __stringify(NR_CPUS)
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 400793c71304..bcb83574335b 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -561,10 +561,7 @@ void do_syscall_trace_leave(struct pt_regs *regs)
561 regs->result); 561 regs->result);
562 562
563 if ((test_thread_flag(TIF_SYSCALL_TRACE) 563 if ((test_thread_flag(TIF_SYSCALL_TRACE)
564#ifdef CONFIG_PPC64 564 || test_thread_flag(TIF_SINGLESTEP))
565 || test_thread_flag(TIF_SINGLESTEP)
566#endif
567 )
568 && (current->ptrace & PT_PTRACED)) 565 && (current->ptrace & PT_PTRACED))
569 do_syscall_trace(); 566 do_syscall_trace();
570} 567}
diff --git a/arch/powerpc/kernel/rtas-rtc.c b/arch/powerpc/kernel/rtas-rtc.c
index 635d3b9a8811..34d073fb6091 100644
--- a/arch/powerpc/kernel/rtas-rtc.c
+++ b/arch/powerpc/kernel/rtas-rtc.c
@@ -52,7 +52,7 @@ void rtas_get_rtc_time(struct rtc_time *rtc_tm)
52 error = rtas_call(rtas_token("get-time-of-day"), 0, 8, ret); 52 error = rtas_call(rtas_token("get-time-of-day"), 0, 8, ret);
53 if (error == RTAS_CLOCK_BUSY || rtas_is_extended_busy(error)) { 53 if (error == RTAS_CLOCK_BUSY || rtas_is_extended_busy(error)) {
54 if (in_interrupt() && printk_ratelimit()) { 54 if (in_interrupt() && printk_ratelimit()) {
55 memset(&rtc_tm, 0, sizeof(struct rtc_time)); 55 memset(rtc_tm, 0, sizeof(struct rtc_time));
56 printk(KERN_WARNING "error: reading clock" 56 printk(KERN_WARNING "error: reading clock"
57 " would delay interrupt\n"); 57 " would delay interrupt\n");
58 return; /* delay not allowed */ 58 return; /* delay not allowed */
diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c
index 03afb79e27e5..57b539a03fa9 100644
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
@@ -278,8 +278,7 @@ static int phb_set_bus_ranges(struct device_node *dev,
278 return 0; 278 return 0;
279} 279}
280 280
281static int __devinit setup_phb(struct device_node *dev, 281int __devinit setup_phb(struct device_node *dev, struct pci_controller *phb)
282 struct pci_controller *phb)
283{ 282{
284 if (is_python(dev)) 283 if (is_python(dev))
285 python_countermeasures(dev); 284 python_countermeasures(dev);
@@ -357,27 +356,6 @@ unsigned long __init find_and_init_phbs(void)
357 return 0; 356 return 0;
358} 357}
359 358
360struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
361{
362 struct pci_controller *phb;
363 int primary;
364
365 primary = list_empty(&hose_list);
366 phb = pcibios_alloc_controller(dn);
367 if (!phb)
368 return NULL;
369 setup_phb(dn, phb);
370 pci_process_bridge_OF_ranges(phb, dn, primary);
371
372 pci_setup_phb_io_dynamic(phb, primary);
373
374 pci_devs_phb_init_dynamic(phb);
375 scan_phb(phb);
376
377 return phb;
378}
379EXPORT_SYMBOL(init_phb_dynamic);
380
381/* RPA-specific bits for removing PHBs */ 359/* RPA-specific bits for removing PHBs */
382int pcibios_remove_root_bus(struct pci_controller *phb) 360int pcibios_remove_root_bus(struct pci_controller *phb)
383{ 361{
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index a717dff695ef..f96c49b03ba0 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -311,8 +311,6 @@ void smp_release_cpus(void)
311 311
312 DBG(" <- smp_release_cpus()\n"); 312 DBG(" <- smp_release_cpus()\n");
313} 313}
314#else
315#define smp_release_cpus()
316#endif /* CONFIG_SMP || CONFIG_KEXEC */ 314#endif /* CONFIG_SMP || CONFIG_KEXEC */
317 315
318/* 316/*
@@ -473,10 +471,12 @@ void __init setup_system(void)
473 check_smt_enabled(); 471 check_smt_enabled();
474 smp_setup_cpu_maps(); 472 smp_setup_cpu_maps();
475 473
474#ifdef CONFIG_SMP
476 /* Release secondary cpus out of their spinloops at 0x60 now that 475 /* Release secondary cpus out of their spinloops at 0x60 now that
477 * we can map physical -> logical CPU ids 476 * we can map physical -> logical CPU ids
478 */ 477 */
479 smp_release_cpus(); 478 smp_release_cpus();
479#endif
480 480
481 printk("Starting Linux PPC64 %s\n", system_utsname.version); 481 printk("Starting Linux PPC64 %s\n", system_utsname.version);
482 482
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index bd837b5dbf06..d7a4e814974d 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -151,10 +151,7 @@ static inline int save_general_regs(struct pt_regs *regs,
151 elf_greg_t64 *gregs = (elf_greg_t64 *)regs; 151 elf_greg_t64 *gregs = (elf_greg_t64 *)regs;
152 int i; 152 int i;
153 153
154 if (!FULL_REGS(regs)) { 154 WARN_ON(!FULL_REGS(regs));
155 set_thread_flag(TIF_SAVE_NVGPRS);
156 current_thread_info()->nvgprs_frame = frame->mc_gregs;
157 }
158 155
159 for (i = 0; i <= PT_RESULT; i ++) { 156 for (i = 0; i <= PT_RESULT; i ++) {
160 if (i == 14 && !FULL_REGS(regs)) 157 if (i == 14 && !FULL_REGS(regs))
@@ -215,15 +212,7 @@ static inline int get_old_sigaction(struct k_sigaction *new_ka,
215static inline int save_general_regs(struct pt_regs *regs, 212static inline int save_general_regs(struct pt_regs *regs,
216 struct mcontext __user *frame) 213 struct mcontext __user *frame)
217{ 214{
218 if (!FULL_REGS(regs)) { 215 WARN_ON(!FULL_REGS(regs));
219 /* Zero out the unsaved GPRs to avoid information
220 leak, and set TIF_SAVE_NVGPRS to ensure that the
221 registers do actually get saved later. */
222 memset(&regs->gpr[14], 0, 18 * sizeof(unsigned long));
223 current_thread_info()->nvgprs_frame = &frame->mc_gregs;
224 set_thread_flag(TIF_SAVE_NVGPRS);
225 }
226
227 return __copy_to_user(&frame->mc_gregs, regs, GP_REGS_SIZE); 216 return __copy_to_user(&frame->mc_gregs, regs, GP_REGS_SIZE);
228} 217}
229 218
@@ -826,8 +815,8 @@ static int do_setcontext(struct ucontext __user *ucp, struct pt_regs *regs, int
826} 815}
827 816
828long sys_swapcontext(struct ucontext __user *old_ctx, 817long sys_swapcontext(struct ucontext __user *old_ctx,
829 struct ucontext __user *new_ctx, 818 struct ucontext __user *new_ctx,
830 int ctx_size, int r6, int r7, int r8, struct pt_regs *regs) 819 int ctx_size, int r6, int r7, int r8, struct pt_regs *regs)
831{ 820{
832 unsigned char tmp; 821 unsigned char tmp;
833 822
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 59b9c9cdd6a9..47f910380a6a 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -116,14 +116,7 @@ static long setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
116 err |= __put_user(0, &sc->v_regs); 116 err |= __put_user(0, &sc->v_regs);
117#endif /* CONFIG_ALTIVEC */ 117#endif /* CONFIG_ALTIVEC */
118 err |= __put_user(&sc->gp_regs, &sc->regs); 118 err |= __put_user(&sc->gp_regs, &sc->regs);
119 if (!FULL_REGS(regs)) { 119 WARN_ON(!FULL_REGS(regs));
120 /* Zero out the unsaved GPRs to avoid information
121 leak, and set TIF_SAVE_NVGPRS to ensure that the
122 registers do actually get saved later. */
123 memset(&regs->gpr[14], 0, 18 * sizeof(unsigned long));
124 set_thread_flag(TIF_SAVE_NVGPRS);
125 current_thread_info()->nvgprs_frame = &sc->gp_regs;
126 }
127 err |= __copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE); 120 err |= __copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE);
128 err |= __copy_to_user(&sc->fp_regs, &current->thread.fpr, FP_REGS_SIZE); 121 err |= __copy_to_user(&sc->fp_regs, &current->thread.fpr, FP_REGS_SIZE);
129 err |= __put_user(signr, &sc->signal); 122 err |= __put_user(signr, &sc->signal);
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 13595a64f013..805eaedbc308 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -541,7 +541,7 @@ int __devinit start_secondary(void *unused)
541 smp_ops->take_timebase(); 541 smp_ops->take_timebase();
542 542
543 if (system_state > SYSTEM_BOOTING) 543 if (system_state > SYSTEM_BOOTING)
544 per_cpu(last_jiffy, cpu) = get_tb(); 544 snapshot_timebase();
545 545
546 spin_lock(&call_lock); 546 spin_lock(&call_lock);
547 cpu_set(cpu, cpu_online_map); 547 cpu_set(cpu, cpu_online_map);
@@ -573,6 +573,8 @@ void __init smp_cpus_done(unsigned int max_cpus)
573 573
574 set_cpus_allowed(current, old_mask); 574 set_cpus_allowed(current, old_mask);
575 575
576 snapshot_timebases();
577
576 dump_numa_cpu_topology(); 578 dump_numa_cpu_topology();
577} 579}
578 580
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
index 475249dc2350..cd75ab2908fa 100644
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
@@ -176,7 +176,6 @@ struct timex32 {
176}; 176};
177 177
178extern int do_adjtimex(struct timex *); 178extern int do_adjtimex(struct timex *);
179extern void ppc_adjtimex(void);
180 179
181asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp) 180asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp)
182{ 181{
@@ -209,9 +208,6 @@ asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp)
209 208
210 ret = do_adjtimex(&txc); 209 ret = do_adjtimex(&txc);
211 210
212 /* adjust the conversion of TB to time of day to track adjtimex */
213 ppc_adjtimex();
214
215 if(put_user(txc.modes, &utp->modes) || 211 if(put_user(txc.modes, &utp->modes) ||
216 __put_user(txc.offset, &utp->offset) || 212 __put_user(txc.offset, &utp->offset) ||
217 __put_user(txc.freq, &utp->freq) || 213 __put_user(txc.freq, &utp->freq) ||
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S
index 8a9f994ed917..1ad55f0466fd 100644
--- a/arch/powerpc/kernel/systbl.S
+++ b/arch/powerpc/kernel/systbl.S
@@ -288,7 +288,7 @@ COMPAT_SYS(clock_settime)
288COMPAT_SYS(clock_gettime) 288COMPAT_SYS(clock_gettime)
289COMPAT_SYS(clock_getres) 289COMPAT_SYS(clock_getres)
290COMPAT_SYS(clock_nanosleep) 290COMPAT_SYS(clock_nanosleep)
291COMPAT_SYS(swapcontext) 291SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext)
292COMPAT_SYS(tgkill) 292COMPAT_SYS(tgkill)
293COMPAT_SYS(utimes) 293COMPAT_SYS(utimes)
294COMPAT_SYS(statfs64) 294COMPAT_SYS(statfs64)
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 1886045a2fd8..4a27218a086c 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -50,6 +50,8 @@
50#include <linux/security.h> 50#include <linux/security.h>
51#include <linux/percpu.h> 51#include <linux/percpu.h>
52#include <linux/rtc.h> 52#include <linux/rtc.h>
53#include <linux/jiffies.h>
54#include <linux/posix-timers.h>
53 55
54#include <asm/io.h> 56#include <asm/io.h>
55#include <asm/processor.h> 57#include <asm/processor.h>
@@ -97,9 +99,18 @@ unsigned long tb_ticks_per_jiffy;
97unsigned long tb_ticks_per_usec = 100; /* sane default */ 99unsigned long tb_ticks_per_usec = 100; /* sane default */
98EXPORT_SYMBOL(tb_ticks_per_usec); 100EXPORT_SYMBOL(tb_ticks_per_usec);
99unsigned long tb_ticks_per_sec; 101unsigned long tb_ticks_per_sec;
102EXPORT_SYMBOL(tb_ticks_per_sec); /* for cputime_t conversions */
100u64 tb_to_xs; 103u64 tb_to_xs;
101unsigned tb_to_us; 104unsigned tb_to_us;
102unsigned long processor_freq; 105
106#define TICKLEN_SCALE (SHIFT_SCALE - 10)
107u64 last_tick_len; /* units are ns / 2^TICKLEN_SCALE */
108u64 ticklen_to_xs; /* 0.64 fraction */
109
110/* If last_tick_len corresponds to about 1/HZ seconds, then
111 last_tick_len << TICKLEN_SHIFT will be about 2^63. */
112#define TICKLEN_SHIFT (63 - 30 - TICKLEN_SCALE + SHIFT_HZ)
113
103DEFINE_SPINLOCK(rtc_lock); 114DEFINE_SPINLOCK(rtc_lock);
104EXPORT_SYMBOL_GPL(rtc_lock); 115EXPORT_SYMBOL_GPL(rtc_lock);
105 116
@@ -113,10 +124,6 @@ extern unsigned long wall_jiffies;
113extern struct timezone sys_tz; 124extern struct timezone sys_tz;
114static long timezone_offset; 125static long timezone_offset;
115 126
116void ppc_adjtimex(void);
117
118static unsigned adjusting_time = 0;
119
120unsigned long ppc_proc_freq; 127unsigned long ppc_proc_freq;
121unsigned long ppc_tb_freq; 128unsigned long ppc_tb_freq;
122 129
@@ -130,6 +137,224 @@ unsigned long tb_last_stamp;
130 */ 137 */
131DEFINE_PER_CPU(unsigned long, last_jiffy); 138DEFINE_PER_CPU(unsigned long, last_jiffy);
132 139
140#ifdef CONFIG_VIRT_CPU_ACCOUNTING
141/*
142 * Factors for converting from cputime_t (timebase ticks) to
143 * jiffies, milliseconds, seconds, and clock_t (1/USER_HZ seconds).
144 * These are all stored as 0.64 fixed-point binary fractions.
145 */
146u64 __cputime_jiffies_factor;
147EXPORT_SYMBOL(__cputime_jiffies_factor);
148u64 __cputime_msec_factor;
149EXPORT_SYMBOL(__cputime_msec_factor);
150u64 __cputime_sec_factor;
151EXPORT_SYMBOL(__cputime_sec_factor);
152u64 __cputime_clockt_factor;
153EXPORT_SYMBOL(__cputime_clockt_factor);
154
155static void calc_cputime_factors(void)
156{
157 struct div_result res;
158
159 div128_by_32(HZ, 0, tb_ticks_per_sec, &res);
160 __cputime_jiffies_factor = res.result_low;
161 div128_by_32(1000, 0, tb_ticks_per_sec, &res);
162 __cputime_msec_factor = res.result_low;
163 div128_by_32(1, 0, tb_ticks_per_sec, &res);
164 __cputime_sec_factor = res.result_low;
165 div128_by_32(USER_HZ, 0, tb_ticks_per_sec, &res);
166 __cputime_clockt_factor = res.result_low;
167}
168
169/*
170 * Read the PURR on systems that have it, otherwise the timebase.
171 */
172static u64 read_purr(void)
173{
174 if (cpu_has_feature(CPU_FTR_PURR))
175 return mfspr(SPRN_PURR);
176 return mftb();
177}
178
179/*
180 * Account time for a transition between system, hard irq
181 * or soft irq state.
182 */
183void account_system_vtime(struct task_struct *tsk)
184{
185 u64 now, delta;
186 unsigned long flags;
187
188 local_irq_save(flags);
189 now = read_purr();
190 delta = now - get_paca()->startpurr;
191 get_paca()->startpurr = now;
192 if (!in_interrupt()) {
193 delta += get_paca()->system_time;
194 get_paca()->system_time = 0;
195 }
196 account_system_time(tsk, 0, delta);
197 local_irq_restore(flags);
198}
199
200/*
201 * Transfer the user and system times accumulated in the paca
202 * by the exception entry and exit code to the generic process
203 * user and system time records.
204 * Must be called with interrupts disabled.
205 */
206void account_process_vtime(struct task_struct *tsk)
207{
208 cputime_t utime;
209
210 utime = get_paca()->user_time;
211 get_paca()->user_time = 0;
212 account_user_time(tsk, utime);
213}
214
215static void account_process_time(struct pt_regs *regs)
216{
217 int cpu = smp_processor_id();
218
219 account_process_vtime(current);
220 run_local_timers();
221 if (rcu_pending(cpu))
222 rcu_check_callbacks(cpu, user_mode(regs));
223 scheduler_tick();
224 run_posix_cpu_timers(current);
225}
226
227#ifdef CONFIG_PPC_SPLPAR
228/*
229 * Stuff for accounting stolen time.
230 */
231struct cpu_purr_data {
232 int initialized; /* thread is running */
233 u64 tb0; /* timebase at origin time */
234 u64 purr0; /* PURR at origin time */
235 u64 tb; /* last TB value read */
236 u64 purr; /* last PURR value read */
237 u64 stolen; /* stolen time so far */
238 spinlock_t lock;
239};
240
241static DEFINE_PER_CPU(struct cpu_purr_data, cpu_purr_data);
242
243static void snapshot_tb_and_purr(void *data)
244{
245 struct cpu_purr_data *p = &__get_cpu_var(cpu_purr_data);
246
247 p->tb0 = mftb();
248 p->purr0 = mfspr(SPRN_PURR);
249 p->tb = p->tb0;
250 p->purr = 0;
251 wmb();
252 p->initialized = 1;
253}
254
255/*
256 * Called during boot when all cpus have come up.
257 */
258void snapshot_timebases(void)
259{
260 int cpu;
261
262 if (!cpu_has_feature(CPU_FTR_PURR))
263 return;
264 for_each_cpu(cpu)
265 spin_lock_init(&per_cpu(cpu_purr_data, cpu).lock);
266 on_each_cpu(snapshot_tb_and_purr, NULL, 0, 1);
267}
268
269void calculate_steal_time(void)
270{
271 u64 tb, purr, t0;
272 s64 stolen;
273 struct cpu_purr_data *p0, *pme, *phim;
274 int cpu;
275
276 if (!cpu_has_feature(CPU_FTR_PURR))
277 return;
278 cpu = smp_processor_id();
279 pme = &per_cpu(cpu_purr_data, cpu);
280 if (!pme->initialized)
281 return; /* this can happen in early boot */
282 p0 = &per_cpu(cpu_purr_data, cpu & ~1);
283 phim = &per_cpu(cpu_purr_data, cpu ^ 1);
284 spin_lock(&p0->lock);
285 tb = mftb();
286 purr = mfspr(SPRN_PURR) - pme->purr0;
287 if (!phim->initialized || !cpu_online(cpu ^ 1)) {
288 stolen = (tb - pme->tb) - (purr - pme->purr);
289 } else {
290 t0 = pme->tb0;
291 if (phim->tb0 < t0)
292 t0 = phim->tb0;
293 stolen = phim->tb - t0 - phim->purr - purr - p0->stolen;
294 }
295 if (stolen > 0) {
296 account_steal_time(current, stolen);
297 p0->stolen += stolen;
298 }
299 pme->tb = tb;
300 pme->purr = purr;
301 spin_unlock(&p0->lock);
302}
303
304/*
305 * Must be called before the cpu is added to the online map when
306 * a cpu is being brought up at runtime.
307 */
308static void snapshot_purr(void)
309{
310 int cpu;
311 u64 purr;
312 struct cpu_purr_data *p0, *pme, *phim;
313 unsigned long flags;
314
315 if (!cpu_has_feature(CPU_FTR_PURR))
316 return;
317 cpu = smp_processor_id();
318 pme = &per_cpu(cpu_purr_data, cpu);
319 p0 = &per_cpu(cpu_purr_data, cpu & ~1);
320 phim = &per_cpu(cpu_purr_data, cpu ^ 1);
321 spin_lock_irqsave(&p0->lock, flags);
322 pme->tb = pme->tb0 = mftb();
323 purr = mfspr(SPRN_PURR);
324 if (!phim->initialized) {
325 pme->purr = 0;
326 pme->purr0 = purr;
327 } else {
328 /* set p->purr and p->purr0 for no change in p0->stolen */
329 pme->purr = phim->tb - phim->tb0 - phim->purr - p0->stolen;
330 pme->purr0 = purr - pme->purr;
331 }
332 pme->initialized = 1;
333 spin_unlock_irqrestore(&p0->lock, flags);
334}
335
336#endif /* CONFIG_PPC_SPLPAR */
337
338#else /* ! CONFIG_VIRT_CPU_ACCOUNTING */
339#define calc_cputime_factors()
340#define account_process_time(regs) update_process_times(user_mode(regs))
341#define calculate_steal_time() do { } while (0)
342#endif
343
344#if !(defined(CONFIG_VIRT_CPU_ACCOUNTING) && defined(CONFIG_PPC_SPLPAR))
345#define snapshot_purr() do { } while (0)
346#endif
347
348/*
349 * Called when a cpu comes up after the system has finished booting,
350 * i.e. as a result of a hotplug cpu action.
351 */
352void snapshot_timebase(void)
353{
354 __get_cpu_var(last_jiffy) = get_tb();
355 snapshot_purr();
356}
357
133void __delay(unsigned long loops) 358void __delay(unsigned long loops)
134{ 359{
135 unsigned long start; 360 unsigned long start;
@@ -178,8 +403,7 @@ static __inline__ void timer_check_rtc(void)
178 */ 403 */
179 if (ppc_md.set_rtc_time && ntp_synced() && 404 if (ppc_md.set_rtc_time && ntp_synced() &&
180 xtime.tv_sec - last_rtc_update >= 659 && 405 xtime.tv_sec - last_rtc_update >= 659 &&
181 abs((xtime.tv_nsec/1000) - (1000000-1000000/HZ)) < 500000/HZ && 406 abs((xtime.tv_nsec/1000) - (1000000-1000000/HZ)) < 500000/HZ) {
182 jiffies - wall_jiffies == 1) {
183 struct rtc_time tm; 407 struct rtc_time tm;
184 to_tm(xtime.tv_sec + 1 + timezone_offset, &tm); 408 to_tm(xtime.tv_sec + 1 + timezone_offset, &tm);
185 tm.tm_year -= 1900; 409 tm.tm_year -= 1900;
@@ -226,15 +450,14 @@ void do_gettimeofday(struct timeval *tv)
226 if (__USE_RTC()) { 450 if (__USE_RTC()) {
227 /* do this the old way */ 451 /* do this the old way */
228 unsigned long flags, seq; 452 unsigned long flags, seq;
229 unsigned int sec, nsec, usec, lost; 453 unsigned int sec, nsec, usec;
230 454
231 do { 455 do {
232 seq = read_seqbegin_irqsave(&xtime_lock, flags); 456 seq = read_seqbegin_irqsave(&xtime_lock, flags);
233 sec = xtime.tv_sec; 457 sec = xtime.tv_sec;
234 nsec = xtime.tv_nsec + tb_ticks_since(tb_last_stamp); 458 nsec = xtime.tv_nsec + tb_ticks_since(tb_last_stamp);
235 lost = jiffies - wall_jiffies;
236 } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); 459 } while (read_seqretry_irqrestore(&xtime_lock, seq, flags));
237 usec = nsec / 1000 + lost * (1000000 / HZ); 460 usec = nsec / 1000;
238 while (usec >= 1000000) { 461 while (usec >= 1000000) {
239 usec -= 1000000; 462 usec -= 1000000;
240 ++sec; 463 ++sec;
@@ -248,23 +471,6 @@ void do_gettimeofday(struct timeval *tv)
248 471
249EXPORT_SYMBOL(do_gettimeofday); 472EXPORT_SYMBOL(do_gettimeofday);
250 473
251/* Synchronize xtime with do_gettimeofday */
252
253static inline void timer_sync_xtime(unsigned long cur_tb)
254{
255#ifdef CONFIG_PPC64
256 /* why do we do this? */
257 struct timeval my_tv;
258
259 __do_gettimeofday(&my_tv, cur_tb);
260
261 if (xtime.tv_sec <= my_tv.tv_sec) {
262 xtime.tv_sec = my_tv.tv_sec;
263 xtime.tv_nsec = my_tv.tv_usec * 1000;
264 }
265#endif
266}
267
268/* 474/*
269 * There are two copies of tb_to_xs and stamp_xsec so that no 475 * There are two copies of tb_to_xs and stamp_xsec so that no
270 * lock is needed to access and use these values in 476 * lock is needed to access and use these values in
@@ -297,9 +503,9 @@ static inline void update_gtod(u64 new_tb_stamp, u64 new_stamp_xsec,
297 * the two values of tb_update_count match and are even then the 503 * the two values of tb_update_count match and are even then the
298 * tb_to_xs and stamp_xsec values are consistent. If not, then it 504 * tb_to_xs and stamp_xsec values are consistent. If not, then it
299 * loops back and reads them again until this criteria is met. 505 * loops back and reads them again until this criteria is met.
506 * We expect the caller to have done the first increment of
507 * vdso_data->tb_update_count already.
300 */ 508 */
301 ++(vdso_data->tb_update_count);
302 smp_wmb();
303 vdso_data->tb_orig_stamp = new_tb_stamp; 509 vdso_data->tb_orig_stamp = new_tb_stamp;
304 vdso_data->stamp_xsec = new_stamp_xsec; 510 vdso_data->stamp_xsec = new_stamp_xsec;
305 vdso_data->tb_to_xs = new_tb_to_xs; 511 vdso_data->tb_to_xs = new_tb_to_xs;
@@ -323,15 +529,40 @@ static __inline__ void timer_recalc_offset(u64 cur_tb)
323{ 529{
324 unsigned long offset; 530 unsigned long offset;
325 u64 new_stamp_xsec; 531 u64 new_stamp_xsec;
532 u64 tlen, t2x;
533 u64 tb, xsec_old, xsec_new;
534 struct gettimeofday_vars *varp;
326 535
327 if (__USE_RTC()) 536 if (__USE_RTC())
328 return; 537 return;
538 tlen = current_tick_length();
329 offset = cur_tb - do_gtod.varp->tb_orig_stamp; 539 offset = cur_tb - do_gtod.varp->tb_orig_stamp;
330 if ((offset & 0x80000000u) == 0) 540 if (tlen == last_tick_len && offset < 0x80000000u)
331 return; 541 return;
332 new_stamp_xsec = do_gtod.varp->stamp_xsec 542 if (tlen != last_tick_len) {
333 + mulhdu(offset, do_gtod.varp->tb_to_xs); 543 t2x = mulhdu(tlen << TICKLEN_SHIFT, ticklen_to_xs);
334 update_gtod(cur_tb, new_stamp_xsec, do_gtod.varp->tb_to_xs); 544 last_tick_len = tlen;
545 } else
546 t2x = do_gtod.varp->tb_to_xs;
547 new_stamp_xsec = (u64) xtime.tv_nsec * XSEC_PER_SEC;
548 do_div(new_stamp_xsec, 1000000000);
549 new_stamp_xsec += (u64) xtime.tv_sec * XSEC_PER_SEC;
550
551 ++vdso_data->tb_update_count;
552 smp_mb();
553
554 /*
555 * Make sure time doesn't go backwards for userspace gettimeofday.
556 */
557 tb = get_tb();
558 varp = do_gtod.varp;
559 xsec_old = mulhdu(tb - varp->tb_orig_stamp, varp->tb_to_xs)
560 + varp->stamp_xsec;
561 xsec_new = mulhdu(tb - cur_tb, t2x) + new_stamp_xsec;
562 if (xsec_new < xsec_old)
563 new_stamp_xsec += xsec_old - xsec_new;
564
565 update_gtod(cur_tb, new_stamp_xsec, t2x);
335} 566}
336 567
337#ifdef CONFIG_SMP 568#ifdef CONFIG_SMP
@@ -381,6 +612,7 @@ static void iSeries_tb_recal(void)
381 new_tb_ticks_per_jiffy, sign, tick_diff ); 612 new_tb_ticks_per_jiffy, sign, tick_diff );
382 tb_ticks_per_jiffy = new_tb_ticks_per_jiffy; 613 tb_ticks_per_jiffy = new_tb_ticks_per_jiffy;
383 tb_ticks_per_sec = new_tb_ticks_per_sec; 614 tb_ticks_per_sec = new_tb_ticks_per_sec;
615 calc_cputime_factors();
384 div128_by_32( XSEC_PER_SEC, 0, tb_ticks_per_sec, &divres ); 616 div128_by_32( XSEC_PER_SEC, 0, tb_ticks_per_sec, &divres );
385 do_gtod.tb_ticks_per_sec = tb_ticks_per_sec; 617 do_gtod.tb_ticks_per_sec = tb_ticks_per_sec;
386 tb_to_xs = divres.result_low; 618 tb_to_xs = divres.result_low;
@@ -429,6 +661,7 @@ void timer_interrupt(struct pt_regs * regs)
429 irq_enter(); 661 irq_enter();
430 662
431 profile_tick(CPU_PROFILING, regs); 663 profile_tick(CPU_PROFILING, regs);
664 calculate_steal_time();
432 665
433#ifdef CONFIG_PPC_ISERIES 666#ifdef CONFIG_PPC_ISERIES
434 get_lppaca()->int_dword.fields.decr_int = 0; 667 get_lppaca()->int_dword.fields.decr_int = 0;
@@ -450,7 +683,7 @@ void timer_interrupt(struct pt_regs * regs)
450 * is the case. 683 * is the case.
451 */ 684 */
452 if (!cpu_is_offline(cpu)) 685 if (!cpu_is_offline(cpu))
453 update_process_times(user_mode(regs)); 686 account_process_time(regs);
454 687
455 /* 688 /*
456 * No need to check whether cpu is offline here; boot_cpuid 689 * No need to check whether cpu is offline here; boot_cpuid
@@ -462,13 +695,10 @@ void timer_interrupt(struct pt_regs * regs)
462 write_seqlock(&xtime_lock); 695 write_seqlock(&xtime_lock);
463 tb_last_jiffy += tb_ticks_per_jiffy; 696 tb_last_jiffy += tb_ticks_per_jiffy;
464 tb_last_stamp = per_cpu(last_jiffy, cpu); 697 tb_last_stamp = per_cpu(last_jiffy, cpu);
465 timer_recalc_offset(tb_last_jiffy);
466 do_timer(regs); 698 do_timer(regs);
467 timer_sync_xtime(tb_last_jiffy); 699 timer_recalc_offset(tb_last_jiffy);
468 timer_check_rtc(); 700 timer_check_rtc();
469 write_sequnlock(&xtime_lock); 701 write_sequnlock(&xtime_lock);
470 if (adjusting_time && (time_adjust == 0))
471 ppc_adjtimex();
472 } 702 }
473 703
474 next_dec = tb_ticks_per_jiffy - ticks; 704 next_dec = tb_ticks_per_jiffy - ticks;
@@ -492,29 +722,45 @@ void timer_interrupt(struct pt_regs * regs)
492 722
493void wakeup_decrementer(void) 723void wakeup_decrementer(void)
494{ 724{
495 int i; 725 unsigned long ticks;
496 726
497 set_dec(tb_ticks_per_jiffy);
498 /* 727 /*
499 * We don't expect this to be called on a machine with a 601, 728 * The timebase gets saved on sleep and restored on wakeup,
500 * so using get_tbl is fine. 729 * so all we need to do is to reset the decrementer.
501 */ 730 */
502 tb_last_stamp = tb_last_jiffy = get_tb(); 731 ticks = tb_ticks_since(__get_cpu_var(last_jiffy));
503 for_each_cpu(i) 732 if (ticks < tb_ticks_per_jiffy)
504 per_cpu(last_jiffy, i) = tb_last_stamp; 733 ticks = tb_ticks_per_jiffy - ticks;
734 else
735 ticks = 1;
736 set_dec(ticks);
505} 737}
506 738
507#ifdef CONFIG_SMP 739#ifdef CONFIG_SMP
508void __init smp_space_timers(unsigned int max_cpus) 740void __init smp_space_timers(unsigned int max_cpus)
509{ 741{
510 int i; 742 int i;
743 unsigned long half = tb_ticks_per_jiffy / 2;
511 unsigned long offset = tb_ticks_per_jiffy / max_cpus; 744 unsigned long offset = tb_ticks_per_jiffy / max_cpus;
512 unsigned long previous_tb = per_cpu(last_jiffy, boot_cpuid); 745 unsigned long previous_tb = per_cpu(last_jiffy, boot_cpuid);
513 746
514 /* make sure tb > per_cpu(last_jiffy, cpu) for all cpus always */ 747 /* make sure tb > per_cpu(last_jiffy, cpu) for all cpus always */
515 previous_tb -= tb_ticks_per_jiffy; 748 previous_tb -= tb_ticks_per_jiffy;
749 /*
750 * The stolen time calculation for POWER5 shared-processor LPAR
751 * systems works better if the two threads' timebase interrupts
752 * are staggered by half a jiffy with respect to each other.
753 */
516 for_each_cpu(i) { 754 for_each_cpu(i) {
517 if (i != boot_cpuid) { 755 if (i == boot_cpuid)
756 continue;
757 if (i == (boot_cpuid ^ 1))
758 per_cpu(last_jiffy, i) =
759 per_cpu(last_jiffy, boot_cpuid) - half;
760 else if (i & 1)
761 per_cpu(last_jiffy, i) =
762 per_cpu(last_jiffy, i ^ 1) + half;
763 else {
518 previous_tb += offset; 764 previous_tb += offset;
519 per_cpu(last_jiffy, i) = previous_tb; 765 per_cpu(last_jiffy, i) = previous_tb;
520 } 766 }
@@ -541,8 +787,8 @@ int do_settimeofday(struct timespec *tv)
541 time_t wtm_sec, new_sec = tv->tv_sec; 787 time_t wtm_sec, new_sec = tv->tv_sec;
542 long wtm_nsec, new_nsec = tv->tv_nsec; 788 long wtm_nsec, new_nsec = tv->tv_nsec;
543 unsigned long flags; 789 unsigned long flags;
544 long int tb_delta; 790 u64 new_xsec;
545 u64 new_xsec, tb_delta_xs; 791 unsigned long tb_delta;
546 792
547 if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) 793 if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
548 return -EINVAL; 794 return -EINVAL;
@@ -563,9 +809,23 @@ int do_settimeofday(struct timespec *tv)
563 first_settimeofday = 0; 809 first_settimeofday = 0;
564 } 810 }
565#endif 811#endif
812
813 /* Make userspace gettimeofday spin until we're done. */
814 ++vdso_data->tb_update_count;
815 smp_mb();
816
817 /*
818 * Subtract off the number of nanoseconds since the
819 * beginning of the last tick.
820 * Note that since we don't increment jiffies_64 anywhere other
821 * than in do_timer (since we don't have a lost tick problem),
822 * wall_jiffies will always be the same as jiffies,
823 * and therefore the (jiffies - wall_jiffies) computation
824 * has been removed.
825 */
566 tb_delta = tb_ticks_since(tb_last_stamp); 826 tb_delta = tb_ticks_since(tb_last_stamp);
567 tb_delta += (jiffies - wall_jiffies) * tb_ticks_per_jiffy; 827 tb_delta = mulhdu(tb_delta, do_gtod.varp->tb_to_xs); /* in xsec */
568 tb_delta_xs = mulhdu(tb_delta, do_gtod.varp->tb_to_xs); 828 new_nsec -= SCALE_XSEC(tb_delta, 1000000000);
569 829
570 wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - new_sec); 830 wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - new_sec);
571 wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - new_nsec); 831 wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - new_nsec);
@@ -580,12 +840,12 @@ int do_settimeofday(struct timespec *tv)
580 840
581 ntp_clear(); 841 ntp_clear();
582 842
583 new_xsec = 0; 843 new_xsec = xtime.tv_nsec;
584 if (new_nsec != 0) { 844 if (new_xsec != 0) {
585 new_xsec = (u64)new_nsec * XSEC_PER_SEC; 845 new_xsec *= XSEC_PER_SEC;
586 do_div(new_xsec, NSEC_PER_SEC); 846 do_div(new_xsec, NSEC_PER_SEC);
587 } 847 }
588 new_xsec += (u64)new_sec * XSEC_PER_SEC - tb_delta_xs; 848 new_xsec += (u64)xtime.tv_sec * XSEC_PER_SEC;
589 update_gtod(tb_last_jiffy, new_xsec, do_gtod.varp->tb_to_xs); 849 update_gtod(tb_last_jiffy, new_xsec, do_gtod.varp->tb_to_xs);
590 850
591 vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; 851 vdso_data->tz_minuteswest = sys_tz.tz_minuteswest;
@@ -671,7 +931,7 @@ void __init time_init(void)
671 unsigned long flags; 931 unsigned long flags;
672 unsigned long tm = 0; 932 unsigned long tm = 0;
673 struct div_result res; 933 struct div_result res;
674 u64 scale; 934 u64 scale, x;
675 unsigned shift; 935 unsigned shift;
676 936
677 if (ppc_md.time_init != NULL) 937 if (ppc_md.time_init != NULL)
@@ -693,11 +953,43 @@ void __init time_init(void)
693 } 953 }
694 954
695 tb_ticks_per_jiffy = ppc_tb_freq / HZ; 955 tb_ticks_per_jiffy = ppc_tb_freq / HZ;
696 tb_ticks_per_sec = tb_ticks_per_jiffy * HZ; 956 tb_ticks_per_sec = ppc_tb_freq;
697 tb_ticks_per_usec = ppc_tb_freq / 1000000; 957 tb_ticks_per_usec = ppc_tb_freq / 1000000;
698 tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000); 958 tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000);
699 div128_by_32(1024*1024, 0, tb_ticks_per_sec, &res); 959 calc_cputime_factors();
700 tb_to_xs = res.result_low; 960
961 /*
962 * Calculate the length of each tick in ns. It will not be
963 * exactly 1e9/HZ unless ppc_tb_freq is divisible by HZ.
964 * We compute 1e9 * tb_ticks_per_jiffy / ppc_tb_freq,
965 * rounded up.
966 */
967 x = (u64) NSEC_PER_SEC * tb_ticks_per_jiffy + ppc_tb_freq - 1;
968 do_div(x, ppc_tb_freq);
969 tick_nsec = x;
970 last_tick_len = x << TICKLEN_SCALE;
971
972 /*
973 * Compute ticklen_to_xs, which is a factor which gets multiplied
974 * by (last_tick_len << TICKLEN_SHIFT) to get a tb_to_xs value.
975 * It is computed as:
976 * ticklen_to_xs = 2^N / (tb_ticks_per_jiffy * 1e9)
977 * where N = 64 + 20 - TICKLEN_SCALE - TICKLEN_SHIFT
978 * which turns out to be N = 51 - SHIFT_HZ.
979 * This gives the result as a 0.64 fixed-point fraction.
980 * That value is reduced by an offset amounting to 1 xsec per
981 * 2^31 timebase ticks to avoid problems with time going backwards
982 * by 1 xsec when we do timer_recalc_offset due to losing the
983 * fractional xsec. That offset is equal to ppc_tb_freq/2^51
984 * since there are 2^20 xsec in a second.
985 */
986 div128_by_32((1ULL << 51) - ppc_tb_freq, 0,
987 tb_ticks_per_jiffy << SHIFT_HZ, &res);
988 div128_by_32(res.result_high, res.result_low, NSEC_PER_SEC, &res);
989 ticklen_to_xs = res.result_low;
990
991 /* Compute tb_to_xs from tick_nsec */
992 tb_to_xs = mulhdu(last_tick_len << TICKLEN_SHIFT, ticklen_to_xs);
701 993
702 /* 994 /*
703 * Compute scale factor for sched_clock. 995 * Compute scale factor for sched_clock.
@@ -724,6 +1016,14 @@ void __init time_init(void)
724 tm = get_boot_time(); 1016 tm = get_boot_time();
725 1017
726 write_seqlock_irqsave(&xtime_lock, flags); 1018 write_seqlock_irqsave(&xtime_lock, flags);
1019
1020 /* If platform provided a timezone (pmac), we correct the time */
1021 if (timezone_offset) {
1022 sys_tz.tz_minuteswest = -timezone_offset / 60;
1023 sys_tz.tz_dsttime = 0;
1024 tm -= timezone_offset;
1025 }
1026
727 xtime.tv_sec = tm; 1027 xtime.tv_sec = tm;
728 xtime.tv_nsec = 0; 1028 xtime.tv_nsec = 0;
729 do_gtod.varp = &do_gtod.vars[0]; 1029 do_gtod.varp = &do_gtod.vars[0];
@@ -738,18 +1038,11 @@ void __init time_init(void)
738 vdso_data->tb_orig_stamp = tb_last_jiffy; 1038 vdso_data->tb_orig_stamp = tb_last_jiffy;
739 vdso_data->tb_update_count = 0; 1039 vdso_data->tb_update_count = 0;
740 vdso_data->tb_ticks_per_sec = tb_ticks_per_sec; 1040 vdso_data->tb_ticks_per_sec = tb_ticks_per_sec;
741 vdso_data->stamp_xsec = xtime.tv_sec * XSEC_PER_SEC; 1041 vdso_data->stamp_xsec = (u64) xtime.tv_sec * XSEC_PER_SEC;
742 vdso_data->tb_to_xs = tb_to_xs; 1042 vdso_data->tb_to_xs = tb_to_xs;
743 1043
744 time_freq = 0; 1044 time_freq = 0;
745 1045
746 /* If platform provided a timezone (pmac), we correct the time */
747 if (timezone_offset) {
748 sys_tz.tz_minuteswest = -timezone_offset / 60;
749 sys_tz.tz_dsttime = 0;
750 xtime.tv_sec -= timezone_offset;
751 }
752
753 last_rtc_update = xtime.tv_sec; 1046 last_rtc_update = xtime.tv_sec;
754 set_normalized_timespec(&wall_to_monotonic, 1047 set_normalized_timespec(&wall_to_monotonic,
755 -xtime.tv_sec, -xtime.tv_nsec); 1048 -xtime.tv_sec, -xtime.tv_nsec);
@@ -759,126 +1052,6 @@ void __init time_init(void)
759 set_dec(tb_ticks_per_jiffy); 1052 set_dec(tb_ticks_per_jiffy);
760} 1053}
761 1054
762/*
763 * After adjtimex is called, adjust the conversion of tb ticks
764 * to microseconds to keep do_gettimeofday synchronized
765 * with ntpd.
766 *
767 * Use the time_adjust, time_freq and time_offset computed by adjtimex to
768 * adjust the frequency.
769 */
770
771/* #define DEBUG_PPC_ADJTIMEX 1 */
772
773void ppc_adjtimex(void)
774{
775#ifdef CONFIG_PPC64
776 unsigned long den, new_tb_ticks_per_sec, tb_ticks, old_xsec,
777 new_tb_to_xs, new_xsec, new_stamp_xsec;
778 unsigned long tb_ticks_per_sec_delta;
779 long delta_freq, ltemp;
780 struct div_result divres;
781 unsigned long flags;
782 long singleshot_ppm = 0;
783
784 /*
785 * Compute parts per million frequency adjustment to
786 * accomplish the time adjustment implied by time_offset to be
787 * applied over the elapsed time indicated by time_constant.
788 * Use SHIFT_USEC to get it into the same units as
789 * time_freq.
790 */
791 if ( time_offset < 0 ) {
792 ltemp = -time_offset;
793 ltemp <<= SHIFT_USEC - SHIFT_UPDATE;
794 ltemp >>= SHIFT_KG + time_constant;
795 ltemp = -ltemp;
796 } else {
797 ltemp = time_offset;
798 ltemp <<= SHIFT_USEC - SHIFT_UPDATE;
799 ltemp >>= SHIFT_KG + time_constant;
800 }
801
802 /* If there is a single shot time adjustment in progress */
803 if ( time_adjust ) {
804#ifdef DEBUG_PPC_ADJTIMEX
805 printk("ppc_adjtimex: ");
806 if ( adjusting_time == 0 )
807 printk("starting ");
808 printk("single shot time_adjust = %ld\n", time_adjust);
809#endif
810
811 adjusting_time = 1;
812
813 /*
814 * Compute parts per million frequency adjustment
815 * to match time_adjust
816 */
817 singleshot_ppm = tickadj * HZ;
818 /*
819 * The adjustment should be tickadj*HZ to match the code in
820 * linux/kernel/timer.c, but experiments show that this is too
821 * large. 3/4 of tickadj*HZ seems about right
822 */
823 singleshot_ppm -= singleshot_ppm / 4;
824 /* Use SHIFT_USEC to get it into the same units as time_freq */
825 singleshot_ppm <<= SHIFT_USEC;
826 if ( time_adjust < 0 )
827 singleshot_ppm = -singleshot_ppm;
828 }
829 else {
830#ifdef DEBUG_PPC_ADJTIMEX
831 if ( adjusting_time )
832 printk("ppc_adjtimex: ending single shot time_adjust\n");
833#endif
834 adjusting_time = 0;
835 }
836
837 /* Add up all of the frequency adjustments */
838 delta_freq = time_freq + ltemp + singleshot_ppm;
839
840 /*
841 * Compute a new value for tb_ticks_per_sec based on
842 * the frequency adjustment
843 */
844 den = 1000000 * (1 << (SHIFT_USEC - 8));
845 if ( delta_freq < 0 ) {
846 tb_ticks_per_sec_delta = ( tb_ticks_per_sec * ( (-delta_freq) >> (SHIFT_USEC - 8))) / den;
847 new_tb_ticks_per_sec = tb_ticks_per_sec + tb_ticks_per_sec_delta;
848 }
849 else {
850 tb_ticks_per_sec_delta = ( tb_ticks_per_sec * ( delta_freq >> (SHIFT_USEC - 8))) / den;
851 new_tb_ticks_per_sec = tb_ticks_per_sec - tb_ticks_per_sec_delta;
852 }
853
854#ifdef DEBUG_PPC_ADJTIMEX
855 printk("ppc_adjtimex: ltemp = %ld, time_freq = %ld, singleshot_ppm = %ld\n", ltemp, time_freq, singleshot_ppm);
856 printk("ppc_adjtimex: tb_ticks_per_sec - base = %ld new = %ld\n", tb_ticks_per_sec, new_tb_ticks_per_sec);
857#endif
858
859 /*
860 * Compute a new value of tb_to_xs (used to convert tb to
861 * microseconds) and a new value of stamp_xsec which is the
862 * time (in 1/2^20 second units) corresponding to
863 * tb_orig_stamp. This new value of stamp_xsec compensates
864 * for the change in frequency (implied by the new tb_to_xs)
865 * which guarantees that the current time remains the same.
866 */
867 write_seqlock_irqsave( &xtime_lock, flags );
868 tb_ticks = get_tb() - do_gtod.varp->tb_orig_stamp;
869 div128_by_32(1024*1024, 0, new_tb_ticks_per_sec, &divres);
870 new_tb_to_xs = divres.result_low;
871 new_xsec = mulhdu(tb_ticks, new_tb_to_xs);
872
873 old_xsec = mulhdu(tb_ticks, do_gtod.varp->tb_to_xs);
874 new_stamp_xsec = do_gtod.varp->stamp_xsec + old_xsec - new_xsec;
875
876 update_gtod(do_gtod.varp->tb_orig_stamp, new_stamp_xsec, new_tb_to_xs);
877
878 write_sequnlock_irqrestore( &xtime_lock, flags );
879#endif /* CONFIG_PPC64 */
880}
881
882 1055
883#define FEBRUARY 2 1056#define FEBRUARY 2
884#define STARTOFTIME 1970 1057#define STARTOFTIME 1970
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 7509aa6474f2..98660aedeeb7 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -814,6 +814,8 @@ void __kprobes program_check_exception(struct pt_regs *regs)
814 return; 814 return;
815 } 815 }
816 816
817 local_irq_enable();
818
817 /* Try to emulate it if we should. */ 819 /* Try to emulate it if we should. */
818 if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) { 820 if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) {
819 switch (emulate_instruction(regs)) { 821 switch (emulate_instruction(regs)) {
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index b316fda58b89..ec8370368423 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -180,8 +180,8 @@ static struct page * vdso_vma_nopage(struct vm_area_struct * vma,
180 unsigned long offset = address - vma->vm_start; 180 unsigned long offset = address - vma->vm_start;
181 struct page *pg; 181 struct page *pg;
182#ifdef CONFIG_PPC64 182#ifdef CONFIG_PPC64
183 void *vbase = test_thread_flag(TIF_32BIT) ? 183 void *vbase = (vma->vm_mm->task_size > TASK_SIZE_USER32) ?
184 vdso32_kbase : vdso64_kbase; 184 vdso64_kbase : vdso32_kbase;
185#else 185#else
186 void *vbase = vdso32_kbase; 186 void *vbase = vdso32_kbase;
187#endif 187#endif
diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S
index ccaeda5136d1..4ee871f1cadb 100644
--- a/arch/powerpc/kernel/vdso64/gettimeofday.S
+++ b/arch/powerpc/kernel/vdso64/gettimeofday.S
@@ -225,9 +225,9 @@ V_FUNCTION_BEGIN(__do_get_xsec)
225 .cfi_startproc 225 .cfi_startproc
226 /* check for update count & load values */ 226 /* check for update count & load values */
2271: ld r8,CFG_TB_UPDATE_COUNT(r3) 2271: ld r8,CFG_TB_UPDATE_COUNT(r3)
228 andi. r0,r4,1 /* pending update ? loop */ 228 andi. r0,r8,1 /* pending update ? loop */
229 bne- 1b 229 bne- 1b
230 xor r0,r4,r4 /* create dependency */ 230 xor r0,r8,r8 /* create dependency */
231 add r3,r3,r0 231 add r3,r3,r0
232 232
233 /* Get TB & offset it */ 233 /* Get TB & offset it */
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c
index d96bcfe4c6f6..33654d1b1b43 100644
--- a/arch/powerpc/mm/hash_native_64.c
+++ b/arch/powerpc/mm/hash_native_64.c
@@ -403,12 +403,17 @@ static void native_hpte_clear(void)
403 */ 403 */
404 hpte_v = hptep->v; 404 hpte_v = hptep->v;
405 405
406 /*
407 * Call __tlbie() here rather than tlbie() since we
408 * already hold the native_tlbie_lock.
409 */
406 if (hpte_v & HPTE_V_VALID) { 410 if (hpte_v & HPTE_V_VALID) {
407 hptep->v = 0; 411 hptep->v = 0;
408 tlbie(slot2va(hpte_v, slot), MMU_PAGE_4K, 0); 412 __tlbie(slot2va(hpte_v, slot), MMU_PAGE_4K);
409 } 413 }
410 } 414 }
411 415
416 asm volatile("eieio; tlbsync; ptesync":::"memory");
412 spin_unlock(&native_tlbie_lock); 417 spin_unlock(&native_tlbie_lock);
413 local_irq_restore(flags); 418 local_irq_restore(flags);
414} 419}
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 95b4cd6b65e0..7d9ce9a48219 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -88,6 +88,7 @@ static unsigned long _SDR1;
88struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; 88struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT];
89 89
90hpte_t *htab_address; 90hpte_t *htab_address;
91unsigned long htab_size_bytes;
91unsigned long htab_hash_mask; 92unsigned long htab_hash_mask;
92int mmu_linear_psize = MMU_PAGE_4K; 93int mmu_linear_psize = MMU_PAGE_4K;
93int mmu_virtual_psize = MMU_PAGE_4K; 94int mmu_virtual_psize = MMU_PAGE_4K;
@@ -168,7 +169,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
168#ifdef CONFIG_PPC_ISERIES 169#ifdef CONFIG_PPC_ISERIES
169 if (_machine == PLATFORM_ISERIES_LPAR) 170 if (_machine == PLATFORM_ISERIES_LPAR)
170 ret = iSeries_hpte_insert(hpteg, va, 171 ret = iSeries_hpte_insert(hpteg, va,
171 virt_to_abs(paddr), 172 __pa(vaddr),
172 tmp_mode, 173 tmp_mode,
173 HPTE_V_BOLTED, 174 HPTE_V_BOLTED,
174 psize); 175 psize);
@@ -399,7 +400,7 @@ void create_section_mapping(unsigned long start, unsigned long end)
399 400
400void __init htab_initialize(void) 401void __init htab_initialize(void)
401{ 402{
402 unsigned long table, htab_size_bytes; 403 unsigned long table;
403 unsigned long pteg_count; 404 unsigned long pteg_count;
404 unsigned long mode_rw; 405 unsigned long mode_rw;
405 unsigned long base = 0, size = 0; 406 unsigned long base = 0, size = 0;
diff --git a/arch/powerpc/mm/lmb.c b/arch/powerpc/mm/lmb.c
index 874cd103ce6e..417d58518558 100644
--- a/arch/powerpc/mm/lmb.c
+++ b/arch/powerpc/mm/lmb.c
@@ -232,7 +232,7 @@ unsigned long __init lmb_alloc_base(unsigned long size, unsigned long align,
232 232
233 alloc = __lmb_alloc_base(size, align, max_addr); 233 alloc = __lmb_alloc_base(size, align, max_addr);
234 234
235 if (alloc < 0) 235 if (alloc == 0)
236 panic("ERROR: Failed to allocate 0x%lx bytes below 0x%lx.\n", 236 panic("ERROR: Failed to allocate 0x%lx bytes below 0x%lx.\n",
237 size, max_addr); 237 size, max_addr);
238 238
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index f4e5ac122615..d296eb6b4545 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -37,6 +37,7 @@
37 37
38unsigned long ioremap_base; 38unsigned long ioremap_base;
39unsigned long ioremap_bot; 39unsigned long ioremap_bot;
40EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
40int io_bat_index; 41int io_bat_index;
41 42
42#if defined(CONFIG_6xx) || defined(CONFIG_POWER3) 43#if defined(CONFIG_6xx) || defined(CONFIG_POWER3)
@@ -153,6 +154,7 @@ ioremap64(unsigned long long addr, unsigned long size)
153{ 154{
154 return __ioremap(addr, size, _PAGE_NO_CACHE); 155 return __ioremap(addr, size, _PAGE_NO_CACHE);
155} 156}
157EXPORT_SYMBOL(ioremap64);
156 158
157void __iomem * 159void __iomem *
158ioremap(phys_addr_t addr, unsigned long size) 160ioremap(phys_addr_t addr, unsigned long size)
@@ -162,6 +164,7 @@ ioremap(phys_addr_t addr, unsigned long size)
162 return ioremap64(addr64, size); 164 return ioremap64(addr64, size);
163} 165}
164#endif /* CONFIG_PHYS_64BIT */ 166#endif /* CONFIG_PHYS_64BIT */
167EXPORT_SYMBOL(ioremap);
165 168
166void __iomem * 169void __iomem *
167__ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) 170__ioremap(phys_addr_t addr, unsigned long size, unsigned long flags)
@@ -247,6 +250,7 @@ __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags)
247out: 250out:
248 return (void __iomem *) (v + ((unsigned long)addr & ~PAGE_MASK)); 251 return (void __iomem *) (v + ((unsigned long)addr & ~PAGE_MASK));
249} 252}
253EXPORT_SYMBOL(__ioremap);
250 254
251void iounmap(volatile void __iomem *addr) 255void iounmap(volatile void __iomem *addr)
252{ 256{
@@ -259,6 +263,7 @@ void iounmap(volatile void __iomem *addr)
259 if (addr > high_memory && (unsigned long) addr < ioremap_bot) 263 if (addr > high_memory && (unsigned long) addr < ioremap_bot)
260 vunmap((void *) (PAGE_MASK & (unsigned long)addr)); 264 vunmap((void *) (PAGE_MASK & (unsigned long)addr));
261} 265}
266EXPORT_SYMBOL(iounmap);
262 267
263void __iomem *ioport_map(unsigned long port, unsigned int len) 268void __iomem *ioport_map(unsigned long port, unsigned int len)
264{ 269{
diff --git a/arch/powerpc/oprofile/Kconfig b/arch/powerpc/oprofile/Kconfig
index eb2dece76a54..d03c0e5ca870 100644
--- a/arch/powerpc/oprofile/Kconfig
+++ b/arch/powerpc/oprofile/Kconfig
@@ -1,4 +1,5 @@
1config PROFILING 1config PROFILING
2 depends on !PPC_ISERIES
2 bool "Profiling support (EXPERIMENTAL)" 3 bool "Profiling support (EXPERIMENTAL)"
3 help 4 help
4 Say Y here to enable the extended profiling support mechanisms used 5 Say Y here to enable the extended profiling support mechanisms used
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c
index 0b885300d1d1..8ca7b9396355 100644
--- a/arch/powerpc/platforms/iseries/lpevents.c
+++ b/arch/powerpc/platforms/iseries/lpevents.c
@@ -184,6 +184,8 @@ void setup_hvlpevent_queue(void)
184{ 184{
185 void *eventStack; 185 void *eventStack;
186 186
187 spin_lock_init(&hvlpevent_queue.lock);
188
187 /* Allocate a page for the Event Stack. */ 189 /* Allocate a page for the Event Stack. */
188 eventStack = alloc_bootmem_pages(LpEventStackSize); 190 eventStack = alloc_bootmem_pages(LpEventStackSize);
189 memset(eventStack, 0, LpEventStackSize); 191 memset(eventStack, 0, LpEventStackSize);
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c
index 3f8790146b00..3ecc4a652d82 100644
--- a/arch/powerpc/platforms/iseries/setup.c
+++ b/arch/powerpc/platforms/iseries/setup.c
@@ -648,6 +648,7 @@ static void yield_shared_processor(void)
648 * here and let the timer_interrupt code sort out the actual time. 648 * here and let the timer_interrupt code sort out the actual time.
649 */ 649 */
650 get_lppaca()->int_dword.fields.decr_int = 1; 650 get_lppaca()->int_dword.fields.decr_int = 1;
651 ppc64_runlatch_on();
651 process_iSeries_events(); 652 process_iSeries_events();
652} 653}
653 654
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 7d4099a34f92..85d6c93659cc 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -435,8 +435,8 @@ void __init maple_pci_init(void)
435 PCI_DN(np)->busno = 0xf0; 435 PCI_DN(np)->busno = 0xf0;
436 } 436 }
437 437
438 /* Tell pci.c to use the common resource allocation mecanism */ 438 /* Tell pci.c to not change any resource allocations. */
439 pci_probe_only = 0; 439 pci_probe_only = 1;
440 440
441 /* Allow all IO */ 441 /* Allow all IO */
442 io_page_mask = -1; 442 io_page_mask = -1;
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c
index 50ed8890dd33..e49eddd5042d 100644
--- a/arch/powerpc/platforms/powermac/feature.c
+++ b/arch/powerpc/platforms/powermac/feature.c
@@ -1644,10 +1644,10 @@ static void intrepid_shutdown(struct macio_chip *macio, int sleep_mode)
1644 KL0_SCC_CELL_ENABLE); 1644 KL0_SCC_CELL_ENABLE);
1645 1645
1646 MACIO_BIC(KEYLARGO_FCR1, 1646 MACIO_BIC(KEYLARGO_FCR1,
1647 /*KL1_USB2_CELL_ENABLE |*/
1648 KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT | 1647 KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT |
1649 KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE | 1648 KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE |
1650 KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE); 1649 KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE |
1650 KL1_EIDE0_ENABLE);
1651 if (pmac_mb.board_flags & PMAC_MB_MOBILE) 1651 if (pmac_mb.board_flags & PMAC_MB_MOBILE)
1652 MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N); 1652 MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N);
1653 1653
@@ -2181,7 +2181,7 @@ static struct pmac_mb_def pmac_mb_defs[] = {
2181 }, 2181 },
2182 { "PowerMac10,1", "Mac mini", 2182 { "PowerMac10,1", "Mac mini",
2183 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2183 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2184 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER, 2184 PMAC_MB_MAY_SLEEP,
2185 }, 2185 },
2186 { "iMac,1", "iMac (first generation)", 2186 { "iMac,1", "iMac (first generation)",
2187 PMAC_TYPE_ORIG_IMAC, paddington_features, 2187 PMAC_TYPE_ORIG_IMAC, paddington_features,
@@ -2293,11 +2293,11 @@ static struct pmac_mb_def pmac_mb_defs[] = {
2293 }, 2293 },
2294 { "PowerBook5,8", "PowerBook G4 15\"", 2294 { "PowerBook5,8", "PowerBook G4 15\"",
2295 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2295 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2296 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, 2296 PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE,
2297 }, 2297 },
2298 { "PowerBook5,9", "PowerBook G4 17\"", 2298 { "PowerBook5,9", "PowerBook G4 17\"",
2299 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2299 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2300 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, 2300 PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE,
2301 }, 2301 },
2302 { "PowerBook6,1", "PowerBook G4 12\"", 2302 { "PowerBook6,1", "PowerBook G4 12\"",
2303 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2303 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
@@ -2489,9 +2489,7 @@ found:
2489 pmac_mb.model_id = PMAC_TYPE_COMET; 2489 pmac_mb.model_id = PMAC_TYPE_COMET;
2490 iounmap(mach_id_ptr); 2490 iounmap(mach_id_ptr);
2491 } 2491 }
2492#endif /* CONFIG_POWER4 */
2493 2492
2494#ifdef CONFIG_6xx
2495 /* Set default value of powersave_nap on machines that support it. 2493 /* Set default value of powersave_nap on machines that support it.
2496 * It appears that uninorth rev 3 has a problem with it, we don't 2494 * It appears that uninorth rev 3 has a problem with it, we don't
2497 * enable it on those. In theory, the flush-on-lock property is 2495 * enable it on those. In theory, the flush-on-lock property is
@@ -2520,10 +2518,11 @@ found:
2520 * NAP mode 2518 * NAP mode
2521 */ 2519 */
2522 powersave_lowspeed = 1; 2520 powersave_lowspeed = 1;
2523#endif /* CONFIG_6xx */ 2521
2524#ifdef CONFIG_POWER4 2522#else /* CONFIG_POWER4 */
2525 powersave_nap = 1; 2523 powersave_nap = 1;
2526#endif 2524#endif /* CONFIG_POWER4 */
2525
2527 /* Check for "mobile" machine */ 2526 /* Check for "mobile" machine */
2528 if (model && (strncmp(model, "PowerBook", 9) == 0 2527 if (model && (strncmp(model, "PowerBook", 9) == 0
2529 || strncmp(model, "iBook", 5) == 0)) 2528 || strncmp(model, "iBook", 5) == 0))
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c
index 4ffd2a9832a0..9b7150f10414 100644
--- a/arch/powerpc/platforms/powermac/pfunc_base.c
+++ b/arch/powerpc/platforms/powermac/pfunc_base.c
@@ -9,7 +9,12 @@
9#include <asm/pmac_feature.h> 9#include <asm/pmac_feature.h>
10#include <asm/pmac_pfunc.h> 10#include <asm/pmac_pfunc.h>
11 11
12#undef DEBUG
13#ifdef DEBUG
12#define DBG(fmt...) printk(fmt) 14#define DBG(fmt...) printk(fmt)
15#else
16#define DBG(fmt...)
17#endif
13 18
14static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) 19static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs)
15{ 20{
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c
index 356a739e52b2..4baa75b1d36f 100644
--- a/arch/powerpc/platforms/powermac/pfunc_core.c
+++ b/arch/powerpc/platforms/powermac/pfunc_core.c
@@ -20,7 +20,13 @@
20#define LOG_PARSE(fmt...) 20#define LOG_PARSE(fmt...)
21#define LOG_ERROR(fmt...) printk(fmt) 21#define LOG_ERROR(fmt...) printk(fmt)
22#define LOG_BLOB(t,b,c) 22#define LOG_BLOB(t,b,c)
23
24#undef DEBUG
25#ifdef DEBUG
23#define DBG(fmt...) printk(fmt) 26#define DBG(fmt...) printk(fmt)
27#else
28#define DBG(fmt...)
29#endif
24 30
25/* Command numbers */ 31/* Command numbers */
26#define PMF_CMD_LIST 0 32#define PMF_CMD_LIST 0
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 97c54e19c1b5..385aab90c4d2 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -621,10 +621,6 @@ static void __init pmac_init_early(void)
621 /* Probe motherboard chipset */ 621 /* Probe motherboard chipset */
622 pmac_feature_init(); 622 pmac_feature_init();
623 623
624 /* We can NAP */
625 powersave_nap = 1;
626 printk(KERN_INFO "Using native/NAP idle loop\n");
627
628 /* Initialize debug stuff */ 624 /* Initialize debug stuff */
629 udbg_scc_init(!!strstr(cmd_line, "sccdbg")); 625 udbg_scc_init(!!strstr(cmd_line, "sccdbg"));
630 udbg_adb_init(!!strstr(cmd_line, "btextdbg")); 626 udbg_adb_init(!!strstr(cmd_line, "btextdbg"));
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 0df2cdcd805c..6d64a9bf3474 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -435,7 +435,7 @@ struct smp_ops_t psurge_smp_ops = {
435 */ 435 */
436 436
437static void (*pmac_tb_freeze)(int freeze); 437static void (*pmac_tb_freeze)(int freeze);
438static unsigned long timebase; 438static u64 timebase;
439static int tb_req; 439static int tb_req;
440 440
441static void smp_core99_give_timebase(void) 441static void smp_core99_give_timebase(void)
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
index e3fc3407bb1f..a57032cf6f1b 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -9,13 +9,6 @@ config PPC_SPLPAR
9 processors, that is, which share physical processors between 9 processors, that is, which share physical processors between
10 two or more partitions. 10 two or more partitions.
11 11
12config HMT
13 bool "Hardware multithreading"
14 depends on SMP && PPC_PSERIES && BROKEN
15 help
16 This option enables hardware multithreading on RS64 cpus.
17 pSeries systems p620 and p660 have such a cpu type.
18
19config EEH 12config EEH
20 bool "PCI Extended Error Handling (EEH)" if EMBEDDED 13 bool "PCI Extended Error Handling (EEH)" if EMBEDDED
21 depends on PPC_PSERIES 14 depends on PPC_PSERIES
@@ -26,7 +19,7 @@ config SCANLOG
26 depends on RTAS_PROC && PPC_PSERIES 19 depends on RTAS_PROC && PPC_PSERIES
27 20
28config LPARCFG 21config LPARCFG
29 tristate "LPAR Configuration Data" 22 bool "LPAR Configuration Data"
30 depends on PPC_PSERIES || PPC_ISERIES 23 depends on PPC_PSERIES || PPC_ISERIES
31 help 24 help
32 Provide system capacity information via human readable 25 Provide system capacity information via human readable
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c
index 83578313ee7e..2ab9dcdfb415 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -893,6 +893,20 @@ void eeh_add_device_tree_early(struct device_node *dn)
893} 893}
894EXPORT_SYMBOL_GPL(eeh_add_device_tree_early); 894EXPORT_SYMBOL_GPL(eeh_add_device_tree_early);
895 895
896void eeh_add_device_tree_late(struct pci_bus *bus)
897{
898 struct pci_dev *dev;
899
900 list_for_each_entry(dev, &bus->devices, bus_list) {
901 eeh_add_device_late(dev);
902 if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
903 struct pci_bus *subbus = dev->subordinate;
904 if (subbus)
905 eeh_add_device_tree_late(subbus);
906 }
907 }
908}
909
896/** 910/**
897 * eeh_add_device_late - perform EEH initialization for the indicated pci device 911 * eeh_add_device_late - perform EEH initialization for the indicated pci device
898 * @dev: pci device for which to set up EEH 912 * @dev: pci device for which to set up EEH
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c
index e3cbba49fd6e..b811d5ff92fe 100644
--- a/arch/powerpc/platforms/pseries/eeh_driver.c
+++ b/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -37,7 +37,7 @@
37 37
38static inline const char * pcid_name (struct pci_dev *pdev) 38static inline const char * pcid_name (struct pci_dev *pdev)
39{ 39{
40 if (pdev->dev.driver) 40 if (pdev && pdev->dev.driver)
41 return pdev->dev.driver->name; 41 return pdev->dev.driver->name;
42 return ""; 42 return "";
43} 43}
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c
index bdaa8aabdaa6..44abdeb9ca03 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -27,6 +27,7 @@
27 27
28#include <linux/pci.h> 28#include <linux/pci.h>
29#include <asm/pci-bridge.h> 29#include <asm/pci-bridge.h>
30#include <asm/ppc-pci.h>
30 31
31static struct pci_bus * 32static struct pci_bus *
32find_bus_among_children(struct pci_bus *bus, 33find_bus_among_children(struct pci_bus *bus,
@@ -106,6 +107,8 @@ pcibios_fixup_new_pci_devices(struct pci_bus *bus, int fix_bus)
106 } 107 }
107 } 108 }
108 } 109 }
110
111 eeh_add_device_tree_late(bus);
109} 112}
110EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices); 113EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices);
111 114
@@ -114,7 +117,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev)
114{ 117{
115 u8 sec_busno; 118 u8 sec_busno;
116 struct pci_bus *child_bus; 119 struct pci_bus *child_bus;
117 struct pci_dev *child_dev;
118 120
119 /* Get busno of downstream bus */ 121 /* Get busno of downstream bus */
120 pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno); 122 pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno);
@@ -129,10 +131,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev)
129 131
130 pci_scan_child_bus(child_bus); 132 pci_scan_child_bus(child_bus);
131 133
132 list_for_each_entry(child_dev, &child_bus->devices, bus_list) {
133 eeh_add_device_late(child_dev);
134 }
135
136 /* Fixup new pci devices without touching bus struct */ 134 /* Fixup new pci devices without touching bus struct */
137 pcibios_fixup_new_pci_devices(child_bus, 0); 135 pcibios_fixup_new_pci_devices(child_bus, 0);
138 136
@@ -160,18 +158,52 @@ pcibios_add_pci_devices(struct pci_bus * bus)
160 158
161 eeh_add_device_tree_early(dn); 159 eeh_add_device_tree_early(dn);
162 160
163 /* pci_scan_slot should find all children */ 161 if (_machine == PLATFORM_PSERIES_LPAR) {
164 slotno = PCI_SLOT(PCI_DN(dn->child)->devfn); 162 /* use ofdt-based probe */
165 num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0)); 163 of_scan_bus(dn, bus);
166 if (num) { 164 if (!list_empty(&bus->devices)) {
167 pcibios_fixup_new_pci_devices(bus, 1); 165 pcibios_fixup_new_pci_devices(bus, 0);
168 pci_bus_add_devices(bus); 166 pci_bus_add_devices(bus);
169 } 167 }
168 } else {
169 /* use legacy probe */
170 slotno = PCI_SLOT(PCI_DN(dn->child)->devfn);
171 num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0));
172 if (num) {
173 pcibios_fixup_new_pci_devices(bus, 1);
174 pci_bus_add_devices(bus);
175 }
170 176
171 list_for_each_entry(dev, &bus->devices, bus_list) { 177 list_for_each_entry(dev, &bus->devices, bus_list)
172 eeh_add_device_late (dev); 178 if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE)
173 if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) 179 pcibios_pci_config_bridge(dev);
174 pcibios_pci_config_bridge(dev);
175 } 180 }
176} 181}
177EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); 182EXPORT_SYMBOL_GPL(pcibios_add_pci_devices);
183
184struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
185{
186 struct pci_controller *phb;
187 int primary;
188
189 primary = list_empty(&hose_list);
190 phb = pcibios_alloc_controller(dn);
191 if (!phb)
192 return NULL;
193 setup_phb(dn, phb);
194 pci_process_bridge_OF_ranges(phb, dn, 0);
195
196 pci_setup_phb_io_dynamic(phb, primary);
197
198 pci_devs_phb_init_dynamic(phb);
199
200 if (dn->child)
201 eeh_add_device_tree_early(dn);
202
203 scan_phb(phb);
204 pcibios_fixup_new_pci_devices(phb->bus, 0);
205 pci_bus_add_devices(phb->bus);
206
207 return phb;
208}
209EXPORT_SYMBOL_GPL(init_phb_dynamic);
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 8e6b1ed1396e..8d710af50756 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -292,7 +292,7 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
292 if (start_cpu == RTAS_UNKNOWN_SERVICE) 292 if (start_cpu == RTAS_UNKNOWN_SERVICE)
293 return 1; 293 return 1;
294 294
295 status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, lcpu); 295 status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, pcpu);
296 if (status != 0) { 296 if (status != 0) {
297 printk(KERN_ERR "start-cpu failed: %i\n", status); 297 printk(KERN_ERR "start-cpu failed: %i\n", status);
298 return 0; 298 return 0;
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 4f26304d0263..7dcdfcb3c984 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -234,7 +234,7 @@ static void mpic_shutdown_ht_interrupt(struct mpic *mpic, unsigned int source,
234 spin_lock_irqsave(&mpic->fixup_lock, flags); 234 spin_lock_irqsave(&mpic->fixup_lock, flags);
235 writeb(0x10 + 2 * fixup->index, fixup->base + 2); 235 writeb(0x10 + 2 * fixup->index, fixup->base + 2);
236 tmp = readl(fixup->base + 4); 236 tmp = readl(fixup->base + 4);
237 tmp &= ~1U; 237 tmp |= 1;
238 writel(tmp, fixup->base + 4); 238 writel(tmp, fixup->base + 4);
239 spin_unlock_irqrestore(&mpic->fixup_lock, flags); 239 spin_unlock_irqrestore(&mpic->fixup_lock, flags);
240} 240}
@@ -446,14 +446,15 @@ static unsigned int mpic_startup_irq(unsigned int irq)
446#ifdef CONFIG_MPIC_BROKEN_U3 446#ifdef CONFIG_MPIC_BROKEN_U3
447 struct mpic *mpic = mpic_from_irq(irq); 447 struct mpic *mpic = mpic_from_irq(irq);
448 unsigned int src = irq - mpic->irq_offset; 448 unsigned int src = irq - mpic->irq_offset;
449#endif /* CONFIG_MPIC_BROKEN_U3 */
450
451 mpic_enable_irq(irq);
449 452
453#ifdef CONFIG_MPIC_BROKEN_U3
450 if (mpic_is_ht_interrupt(mpic, src)) 454 if (mpic_is_ht_interrupt(mpic, src))
451 mpic_startup_ht_interrupt(mpic, src, irq_desc[irq].status); 455 mpic_startup_ht_interrupt(mpic, src, irq_desc[irq].status);
452
453#endif /* CONFIG_MPIC_BROKEN_U3 */ 456#endif /* CONFIG_MPIC_BROKEN_U3 */
454 457
455 mpic_enable_irq(irq);
456
457 return 0; 458 return 0;
458} 459}
459 460
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 7d02fa2a8990..4735b41c113c 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -191,6 +191,7 @@ Commands:\n\
191 di dump instructions\n\ 191 di dump instructions\n\
192 df dump float values\n\ 192 df dump float values\n\
193 dd dump double values\n\ 193 dd dump double values\n\
194 dr dump stream of raw bytes\n\
194 e print exception information\n\ 195 e print exception information\n\
195 f flush cache\n\ 196 f flush cache\n\
196 la lookup symbol+offset of specified address\n\ 197 la lookup symbol+offset of specified address\n\
@@ -1938,6 +1939,28 @@ bsesc(void)
1938 return c; 1939 return c;
1939} 1940}
1940 1941
1942static void xmon_rawdump (unsigned long adrs, long ndump)
1943{
1944 long n, m, r, nr;
1945 unsigned char temp[16];
1946
1947 for (n = ndump; n > 0;) {
1948 r = n < 16? n: 16;
1949 nr = mread(adrs, temp, r);
1950 adrs += nr;
1951 for (m = 0; m < r; ++m) {
1952 if (m < nr)
1953 printf("%.2x", temp[m]);
1954 else
1955 printf("%s", fault_chars[fault_type]);
1956 }
1957 n -= r;
1958 if (nr < r)
1959 break;
1960 }
1961 printf("\n");
1962}
1963
1941#define isxdigit(c) (('0' <= (c) && (c) <= '9') \ 1964#define isxdigit(c) (('0' <= (c) && (c) <= '9') \
1942 || ('a' <= (c) && (c) <= 'f') \ 1965 || ('a' <= (c) && (c) <= 'f') \
1943 || ('A' <= (c) && (c) <= 'F')) 1966 || ('A' <= (c) && (c) <= 'F'))
@@ -1960,6 +1983,13 @@ dump(void)
1960 nidump = MAX_DUMP; 1983 nidump = MAX_DUMP;
1961 adrs += ppc_inst_dump(adrs, nidump, 1); 1984 adrs += ppc_inst_dump(adrs, nidump, 1);
1962 last_cmd = "di\n"; 1985 last_cmd = "di\n";
1986 } else if (c == 'r') {
1987 scanhex(&ndump);
1988 if (ndump == 0)
1989 ndump = 64;
1990 xmon_rawdump(adrs, ndump);
1991 adrs += ndump;
1992 last_cmd = "dr\n";
1963 } else { 1993 } else {
1964 scanhex(&ndump); 1994 scanhex(&ndump);
1965 if (ndump == 0) 1995 if (ndump == 0)