aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 12:57:54 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 12:57:54 -0400
commit4937ce87959629d31e9b09cf5bdf1e12a305c805 (patch)
treef5b93ec4f8271c7109bbd61e09c788e0be7caa85
parent4271e0f7e12bdbbd7ce131187aaae2ba5233a309 (diff)
parent432a7d6587fc5028421342785f6c9552c9fba175 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] update sn2_defconfig [IA64] Fix kernel hangup in kdump on INIT [IA64] Fix kernel panic in kdump on INIT [IA64] Remove vector from ia64_machine_kexec() [IA64] Fix race when multiple cpus go through MCA [IA64] Remove needless delay in MCA rendezvous [IA64] add driver for ACPI methods to call native firmware [IA64] abstract SAL_CALL wrapper to allow other firmware entry points [IA64] perfmon: Remove exit_pfm_fs() [IA64] tree-wide: Misc __cpu{initdata, init, exit} annotations
-rw-r--r--arch/ia64/Kconfig10
-rw-r--r--arch/ia64/configs/sn2_defconfig443
-rw-r--r--arch/ia64/hp/common/Makefile1
-rw-r--r--arch/ia64/hp/common/aml_nfw.c236
-rw-r--r--arch/ia64/kernel/crash.c13
-rw-r--r--arch/ia64/kernel/machine_kexec.c6
-rw-r--r--arch/ia64/kernel/mca.c88
-rw-r--r--arch/ia64/kernel/mca_drv.h2
-rw-r--r--arch/ia64/kernel/palinfo.c6
-rw-r--r--arch/ia64/kernel/perfmon.c7
-rw-r--r--arch/ia64/kernel/salinfo.c4
-rw-r--r--arch/ia64/kernel/topology.c12
-rw-r--r--include/asm-ia64/mca.h2
-rw-r--r--include/asm-ia64/sal.h15
14 files changed, 511 insertions, 334 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 8c39913d1729..2e6310b8eab7 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -461,6 +461,16 @@ config IA64_ESI
461 firmware extensions, such as the ability to inject memory-errors 461 firmware extensions, such as the ability to inject memory-errors
462 for test-purposes. If you're unsure, say N. 462 for test-purposes. If you're unsure, say N.
463 463
464config IA64_HP_AML_NFW
465 bool "Support ACPI AML calls to native firmware"
466 help
467 This driver installs a global ACPI Operation Region handler for
468 region 0xA1. AML methods can use this OpRegion to call arbitrary
469 native firmware functions. The driver installs the OpRegion
470 handler if there is an HPQ5001 device or if the user supplies
471 the "force" module parameter, e.g., with the "aml_nfw.force"
472 kernel command line option.
473
464source "drivers/sn/Kconfig" 474source "drivers/sn/Kconfig"
465 475
466config KEXEC 476config KEXEC
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig
index 9aecfceeb38c..449d3e75bfc2 100644
--- a/arch/ia64/configs/sn2_defconfig
+++ b/arch/ia64/configs/sn2_defconfig
@@ -1,40 +1,40 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc1 3# Linux kernel version: 2.6.23-rc6
4# Mon Oct 9 10:53:59 2006 4# Tue Sep 18 11:24:01 2007
5# 5#
6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
7 7
8# 8#
9# Code maturity level options 9# General setup
10# 10#
11CONFIG_EXPERIMENTAL=y 11CONFIG_EXPERIMENTAL=y
12CONFIG_LOCK_KERNEL=y 12CONFIG_LOCK_KERNEL=y
13CONFIG_INIT_ENV_ARG_LIMIT=32 13CONFIG_INIT_ENV_ARG_LIMIT=32
14
15#
16# General setup
17#
18CONFIG_LOCALVERSION="" 14CONFIG_LOCALVERSION=""
19# CONFIG_LOCALVERSION_AUTO is not set 15# CONFIG_LOCALVERSION_AUTO is not set
20CONFIG_SWAP=y 16CONFIG_SWAP=y
21CONFIG_SYSVIPC=y 17CONFIG_SYSVIPC=y
22# CONFIG_IPC_NS is not set 18CONFIG_SYSVIPC_SYSCTL=y
23CONFIG_POSIX_MQUEUE=y 19CONFIG_POSIX_MQUEUE=y
24# CONFIG_BSD_PROCESS_ACCT is not set 20# CONFIG_BSD_PROCESS_ACCT is not set
25CONFIG_TASKSTATS=y 21CONFIG_TASKSTATS=y
26# CONFIG_TASK_DELAY_ACCT is not set 22# CONFIG_TASK_DELAY_ACCT is not set
27# CONFIG_UTS_NS is not set 23CONFIG_TASK_XACCT=y
24CONFIG_TASK_IO_ACCOUNTING=y
25# CONFIG_USER_NS is not set
28# CONFIG_AUDIT is not set 26# CONFIG_AUDIT is not set
29# CONFIG_IKCONFIG is not set 27# CONFIG_IKCONFIG is not set
28CONFIG_LOG_BUF_SHIFT=20
30CONFIG_CPUSETS=y 29CONFIG_CPUSETS=y
30CONFIG_SYSFS_DEPRECATED=y
31CONFIG_RELAY=y 31CONFIG_RELAY=y
32CONFIG_BLK_DEV_INITRD=y
32CONFIG_INITRAMFS_SOURCE="" 33CONFIG_INITRAMFS_SOURCE=""
33CONFIG_CC_OPTIMIZE_FOR_SIZE=y 34CONFIG_CC_OPTIMIZE_FOR_SIZE=y
34CONFIG_TASK_XACCT=y
35CONFIG_SYSCTL=y 35CONFIG_SYSCTL=y
36# CONFIG_EMBEDDED is not set 36# CONFIG_EMBEDDED is not set
37# CONFIG_SYSCTL_SYSCALL is not set 37CONFIG_SYSCTL_SYSCALL=y
38CONFIG_KALLSYMS=y 38CONFIG_KALLSYMS=y
39CONFIG_KALLSYMS_ALL=y 39CONFIG_KALLSYMS_ALL=y
40# CONFIG_KALLSYMS_EXTRA_PASS is not set 40# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -44,18 +44,20 @@ CONFIG_BUG=y
44CONFIG_ELF_CORE=y 44CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 45CONFIG_BASE_FULL=y
46CONFIG_FUTEX=y 46CONFIG_FUTEX=y
47CONFIG_ANON_INODES=y
47CONFIG_EPOLL=y 48CONFIG_EPOLL=y
49CONFIG_SIGNALFD=y
50CONFIG_TIMERFD=y
51CONFIG_EVENTFD=y
48CONFIG_SHMEM=y 52CONFIG_SHMEM=y
49CONFIG_SLUB=y
50CONFIG_VM_EVENT_COUNTERS=y 53CONFIG_VM_EVENT_COUNTERS=y
54CONFIG_SLUB_DEBUG=y
55# CONFIG_SLAB is not set
56CONFIG_SLUB=y
57# CONFIG_SLOB is not set
51CONFIG_RT_MUTEXES=y 58CONFIG_RT_MUTEXES=y
52# CONFIG_TINY_SHMEM is not set 59# CONFIG_TINY_SHMEM is not set
53CONFIG_BASE_SMALL=0 60CONFIG_BASE_SMALL=0
54# CONFIG_SLOB is not set
55
56#
57# Loadable module support
58#
59CONFIG_MODULES=y 61CONFIG_MODULES=y
60CONFIG_MODULE_UNLOAD=y 62CONFIG_MODULE_UNLOAD=y
61# CONFIG_MODULE_FORCE_UNLOAD is not set 63# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -63,12 +65,9 @@ CONFIG_MODULE_UNLOAD=y
63# CONFIG_MODULE_SRCVERSION_ALL is not set 65# CONFIG_MODULE_SRCVERSION_ALL is not set
64CONFIG_KMOD=y 66CONFIG_KMOD=y
65CONFIG_STOP_MACHINE=y 67CONFIG_STOP_MACHINE=y
66
67#
68# Block layer
69#
70CONFIG_BLOCK=y 68CONFIG_BLOCK=y
71# CONFIG_BLK_DEV_IO_TRACE is not set 69# CONFIG_BLK_DEV_IO_TRACE is not set
70CONFIG_BLK_DEV_BSG=y
72 71
73# 72#
74# IO Schedulers 73# IO Schedulers
@@ -88,12 +87,15 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
88# 87#
89CONFIG_IA64=y 88CONFIG_IA64=y
90CONFIG_64BIT=y 89CONFIG_64BIT=y
90CONFIG_QUICKLIST=y
91CONFIG_MMU=y 91CONFIG_MMU=y
92CONFIG_SWIOTLB=y
93CONFIG_RWSEM_XCHGADD_ALGORITHM=y 92CONFIG_RWSEM_XCHGADD_ALGORITHM=y
93# CONFIG_ARCH_HAS_ILOG2_U32 is not set
94# CONFIG_ARCH_HAS_ILOG2_U64 is not set
94CONFIG_GENERIC_FIND_NEXT_BIT=y 95CONFIG_GENERIC_FIND_NEXT_BIT=y
95CONFIG_GENERIC_CALIBRATE_DELAY=y 96CONFIG_GENERIC_CALIBRATE_DELAY=y
96CONFIG_GENERIC_TIME=y 97CONFIG_GENERIC_TIME=y
98CONFIG_GENERIC_TIME_VSYSCALL=y
97CONFIG_DMI=y 99CONFIG_DMI=y
98CONFIG_EFI=y 100CONFIG_EFI=y
99CONFIG_GENERIC_IOMAP=y 101CONFIG_GENERIC_IOMAP=y
@@ -116,6 +118,7 @@ CONFIG_IA64_PAGE_SIZE_16KB=y
116CONFIG_PGTABLE_4=y 118CONFIG_PGTABLE_4=y
117# CONFIG_HZ_100 is not set 119# CONFIG_HZ_100 is not set
118CONFIG_HZ_250=y 120CONFIG_HZ_250=y
121# CONFIG_HZ_300 is not set
119# CONFIG_HZ_1000 is not set 122# CONFIG_HZ_1000 is not set
120CONFIG_HZ=250 123CONFIG_HZ=250
121CONFIG_IA64_L1_CACHE_SHIFT=7 124CONFIG_IA64_L1_CACHE_SHIFT=7
@@ -128,7 +131,10 @@ CONFIG_NR_CPUS=1024
128# CONFIG_HOTPLUG_CPU is not set 131# CONFIG_HOTPLUG_CPU is not set
129CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 132CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
130CONFIG_SCHED_SMT=y 133CONFIG_SCHED_SMT=y
131CONFIG_PREEMPT=y 134CONFIG_PREEMPT_NONE=y
135# CONFIG_PREEMPT_VOLUNTARY is not set
136# CONFIG_PREEMPT is not set
137CONFIG_PREEMPT_BKL=y
132CONFIG_SELECT_MEMORY_MODEL=y 138CONFIG_SELECT_MEMORY_MODEL=y
133# CONFIG_FLATMEM_MANUAL is not set 139# CONFIG_FLATMEM_MANUAL is not set
134CONFIG_DISCONTIGMEM_MANUAL=y 140CONFIG_DISCONTIGMEM_MANUAL=y
@@ -140,6 +146,9 @@ CONFIG_NEED_MULTIPLE_NODES=y
140CONFIG_SPLIT_PTLOCK_CPUS=4 146CONFIG_SPLIT_PTLOCK_CPUS=4
141CONFIG_MIGRATION=y 147CONFIG_MIGRATION=y
142CONFIG_RESOURCES_64BIT=y 148CONFIG_RESOURCES_64BIT=y
149CONFIG_ZONE_DMA_FLAG=0
150CONFIG_NR_QUICK=1
151CONFIG_VIRT_TO_BUS=y
143CONFIG_ARCH_SELECT_MEMORY_MODEL=y 152CONFIG_ARCH_SELECT_MEMORY_MODEL=y
144CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 153CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
145CONFIG_ARCH_FLATMEM_ENABLE=y 154CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -154,16 +163,17 @@ CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
154CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y 163CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
155CONFIG_IA32_SUPPORT=y 164CONFIG_IA32_SUPPORT=y
156CONFIG_COMPAT=y 165CONFIG_COMPAT=y
166CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
157CONFIG_IA64_MCA_RECOVERY=y 167CONFIG_IA64_MCA_RECOVERY=y
158CONFIG_PERFMON=y 168CONFIG_PERFMON=y
159CONFIG_IA64_PALINFO=y 169CONFIG_IA64_PALINFO=y
170CONFIG_IA64_MC_ERR_INJECT=y
160CONFIG_SGI_SN=y 171CONFIG_SGI_SN=y
161# CONFIG_IA64_ESI is not set 172# CONFIG_IA64_ESI is not set
162 173
163# 174#
164# SN Devices 175# SN Devices
165# 176#
166CONFIG_SGI_IOC4=y
167CONFIG_SGI_IOC3=y 177CONFIG_SGI_IOC3=y
168 178
169# 179#
@@ -171,6 +181,7 @@ CONFIG_SGI_IOC3=y
171# 181#
172CONFIG_EFI_VARS=y 182CONFIG_EFI_VARS=y
173CONFIG_EFI_PCDP=y 183CONFIG_EFI_PCDP=y
184CONFIG_DMIID=y
174CONFIG_BINFMT_ELF=y 185CONFIG_BINFMT_ELF=y
175# CONFIG_BINFMT_MISC is not set 186# CONFIG_BINFMT_MISC is not set
176 187
@@ -180,12 +191,9 @@ CONFIG_BINFMT_ELF=y
180CONFIG_PM=y 191CONFIG_PM=y
181# CONFIG_PM_LEGACY is not set 192# CONFIG_PM_LEGACY is not set
182# CONFIG_PM_DEBUG is not set 193# CONFIG_PM_DEBUG is not set
183# CONFIG_PM_SYSFS_DEPRECATED is not set
184
185#
186# ACPI (Advanced Configuration and Power Interface) Support
187#
188CONFIG_ACPI=y 194CONFIG_ACPI=y
195# CONFIG_ACPI_PROCFS is not set
196CONFIG_ACPI_PROC_EVENT=y
189# CONFIG_ACPI_BUTTON is not set 197# CONFIG_ACPI_BUTTON is not set
190# CONFIG_ACPI_FAN is not set 198# CONFIG_ACPI_FAN is not set
191# CONFIG_ACPI_DOCK is not set 199# CONFIG_ACPI_DOCK is not set
@@ -208,17 +216,14 @@ CONFIG_ACPI_SYSTEM=y
208# 216#
209CONFIG_PCI=y 217CONFIG_PCI=y
210CONFIG_PCI_DOMAINS=y 218CONFIG_PCI_DOMAINS=y
219CONFIG_PCI_SYSCALL=y
211CONFIG_PCIEPORTBUS=y 220CONFIG_PCIEPORTBUS=y
212CONFIG_HOTPLUG_PCI_PCIE=y 221CONFIG_HOTPLUG_PCI_PCIE=y
213# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set 222# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
214CONFIG_PCIEAER=y 223CONFIG_PCIEAER=y
224CONFIG_ARCH_SUPPORTS_MSI=y
215# CONFIG_PCI_MSI is not set 225# CONFIG_PCI_MSI is not set
216# CONFIG_PCI_MULTITHREAD_PROBE is not set
217# CONFIG_PCI_DEBUG is not set 226# CONFIG_PCI_DEBUG is not set
218
219#
220# PCI Hotplug Support
221#
222CONFIG_HOTPLUG_PCI=y 227CONFIG_HOTPLUG_PCI=y
223# CONFIG_HOTPLUG_PCI_FAKE is not set 228# CONFIG_HOTPLUG_PCI_FAKE is not set
224# CONFIG_HOTPLUG_PCI_ACPI is not set 229# CONFIG_HOTPLUG_PCI_ACPI is not set
@@ -239,13 +244,13 @@ CONFIG_NET=y
239# 244#
240# Networking options 245# Networking options
241# 246#
242# CONFIG_NETDEBUG is not set
243CONFIG_PACKET=y 247CONFIG_PACKET=y
244CONFIG_PACKET_MMAP=y 248CONFIG_PACKET_MMAP=y
245CONFIG_UNIX=y 249CONFIG_UNIX=y
246CONFIG_XFRM=y 250CONFIG_XFRM=y
247# CONFIG_XFRM_USER is not set 251# CONFIG_XFRM_USER is not set
248# CONFIG_XFRM_SUB_POLICY is not set 252# CONFIG_XFRM_SUB_POLICY is not set
253# CONFIG_XFRM_MIGRATE is not set
249# CONFIG_NET_KEY is not set 254# CONFIG_NET_KEY is not set
250CONFIG_INET=y 255CONFIG_INET=y
251CONFIG_IP_MULTICAST=y 256CONFIG_IP_MULTICAST=y
@@ -261,7 +266,7 @@ CONFIG_SYN_COOKIES=y
261# CONFIG_INET_ESP is not set 266# CONFIG_INET_ESP is not set
262# CONFIG_INET_IPCOMP is not set 267# CONFIG_INET_IPCOMP is not set
263# CONFIG_INET_XFRM_TUNNEL is not set 268# CONFIG_INET_XFRM_TUNNEL is not set
264# CONFIG_INET_TUNNEL is not set 269CONFIG_INET_TUNNEL=m
265CONFIG_INET_XFRM_MODE_TRANSPORT=y 270CONFIG_INET_XFRM_MODE_TRANSPORT=y
266CONFIG_INET_XFRM_MODE_TUNNEL=y 271CONFIG_INET_XFRM_MODE_TUNNEL=y
267CONFIG_INET_XFRM_MODE_BEET=y 272CONFIG_INET_XFRM_MODE_BEET=y
@@ -270,9 +275,11 @@ CONFIG_INET_TCP_DIAG=m
270# CONFIG_TCP_CONG_ADVANCED is not set 275# CONFIG_TCP_CONG_ADVANCED is not set
271CONFIG_TCP_CONG_CUBIC=y 276CONFIG_TCP_CONG_CUBIC=y
272CONFIG_DEFAULT_TCP_CONG="cubic" 277CONFIG_DEFAULT_TCP_CONG="cubic"
278# CONFIG_TCP_MD5SIG is not set
273CONFIG_IPV6=m 279CONFIG_IPV6=m
274# CONFIG_IPV6_PRIVACY is not set 280# CONFIG_IPV6_PRIVACY is not set
275# CONFIG_IPV6_ROUTER_PREF is not set 281# CONFIG_IPV6_ROUTER_PREF is not set
282# CONFIG_IPV6_OPTIMISTIC_DAD is not set
276# CONFIG_INET6_AH is not set 283# CONFIG_INET6_AH is not set
277# CONFIG_INET6_ESP is not set 284# CONFIG_INET6_ESP is not set
278# CONFIG_INET6_IPCOMP is not set 285# CONFIG_INET6_IPCOMP is not set
@@ -283,25 +290,13 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=m
283CONFIG_INET6_XFRM_MODE_TUNNEL=m 290CONFIG_INET6_XFRM_MODE_TUNNEL=m
284CONFIG_INET6_XFRM_MODE_BEET=m 291CONFIG_INET6_XFRM_MODE_BEET=m
285# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 292# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
293CONFIG_IPV6_SIT=m
286# CONFIG_IPV6_TUNNEL is not set 294# CONFIG_IPV6_TUNNEL is not set
287# CONFIG_IPV6_SUBTREES is not set
288# CONFIG_IPV6_MULTIPLE_TABLES is not set 295# CONFIG_IPV6_MULTIPLE_TABLES is not set
289# CONFIG_NETWORK_SECMARK is not set 296# CONFIG_NETWORK_SECMARK is not set
290# CONFIG_NETFILTER is not set 297# CONFIG_NETFILTER is not set
291
292#
293# DCCP Configuration (EXPERIMENTAL)
294#
295# CONFIG_IP_DCCP is not set 298# CONFIG_IP_DCCP is not set
296
297#
298# SCTP Configuration (EXPERIMENTAL)
299#
300# CONFIG_IP_SCTP is not set 299# CONFIG_IP_SCTP is not set
301
302#
303# TIPC Configuration (EXPERIMENTAL)
304#
305# CONFIG_TIPC is not set 300# CONFIG_TIPC is not set
306# CONFIG_ATM is not set 301# CONFIG_ATM is not set
307# CONFIG_BRIDGE is not set 302# CONFIG_BRIDGE is not set
@@ -327,7 +322,17 @@ CONFIG_INET6_XFRM_MODE_BEET=m
327# CONFIG_HAMRADIO is not set 322# CONFIG_HAMRADIO is not set
328# CONFIG_IRDA is not set 323# CONFIG_IRDA is not set
329# CONFIG_BT is not set 324# CONFIG_BT is not set
325# CONFIG_AF_RXRPC is not set
326
327#
328# Wireless
329#
330# CONFIG_CFG80211 is not set
331# CONFIG_WIRELESS_EXT is not set
332# CONFIG_MAC80211 is not set
330# CONFIG_IEEE80211 is not set 333# CONFIG_IEEE80211 is not set
334# CONFIG_RFKILL is not set
335# CONFIG_NET_9P is not set
331 336
332# 337#
333# Device Drivers 338# Device Drivers
@@ -340,31 +345,19 @@ CONFIG_STANDALONE=y
340CONFIG_PREVENT_FIRMWARE_BUILD=y 345CONFIG_PREVENT_FIRMWARE_BUILD=y
341CONFIG_FW_LOADER=y 346CONFIG_FW_LOADER=y
342# CONFIG_DEBUG_DRIVER is not set 347# CONFIG_DEBUG_DRIVER is not set
348# CONFIG_DEBUG_DEVRES is not set
343# CONFIG_SYS_HYPERVISOR is not set 349# CONFIG_SYS_HYPERVISOR is not set
344
345#
346# Connector - unified userspace <-> kernelspace linker
347#
348# CONFIG_CONNECTOR is not set 350# CONFIG_CONNECTOR is not set
349
350#
351# Memory Technology Devices (MTD)
352#
353# CONFIG_MTD is not set 351# CONFIG_MTD is not set
354
355#
356# Parallel port support
357#
358# CONFIG_PARPORT is not set 352# CONFIG_PARPORT is not set
353CONFIG_PNP=y
354# CONFIG_PNP_DEBUG is not set
359 355
360# 356#
361# Plug and Play support 357# Protocols
362#
363# CONFIG_PNP is not set
364
365#
366# Block devices
367# 358#
359CONFIG_PNPACPI=y
360CONFIG_BLK_DEV=y
368# CONFIG_BLK_CPQ_DA is not set 361# CONFIG_BLK_CPQ_DA is not set
369# CONFIG_BLK_CPQ_CISS_DA is not set 362# CONFIG_BLK_CPQ_CISS_DA is not set
370# CONFIG_BLK_DEV_DAC960 is not set 363# CONFIG_BLK_DEV_DAC960 is not set
@@ -379,13 +372,13 @@ CONFIG_BLK_DEV_RAM=y
379CONFIG_BLK_DEV_RAM_COUNT=16 372CONFIG_BLK_DEV_RAM_COUNT=16
380CONFIG_BLK_DEV_RAM_SIZE=4096 373CONFIG_BLK_DEV_RAM_SIZE=4096
381CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 374CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
382CONFIG_BLK_DEV_INITRD=y
383# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
384CONFIG_ATA_OVER_ETH=m 376CONFIG_ATA_OVER_ETH=m
385 377CONFIG_MISC_DEVICES=y
386# 378# CONFIG_PHANTOM is not set
387# ATA/ATAPI/MFM/RLL support 379# CONFIG_EEPROM_93CX6 is not set
388# 380CONFIG_SGI_IOC4=y
381# CONFIG_TIFM_CORE is not set
389CONFIG_IDE=y 382CONFIG_IDE=y
390CONFIG_IDE_MAX_HWIFS=4 383CONFIG_IDE_MAX_HWIFS=4
391CONFIG_BLK_DEV_IDE=y 384CONFIG_BLK_DEV_IDE=y
@@ -400,20 +393,23 @@ CONFIG_BLK_DEV_IDECD=y
400# CONFIG_BLK_DEV_IDETAPE is not set 393# CONFIG_BLK_DEV_IDETAPE is not set
401# CONFIG_BLK_DEV_IDEFLOPPY is not set 394# CONFIG_BLK_DEV_IDEFLOPPY is not set
402# CONFIG_BLK_DEV_IDESCSI is not set 395# CONFIG_BLK_DEV_IDESCSI is not set
396# CONFIG_BLK_DEV_IDEACPI is not set
403# CONFIG_IDE_TASK_IOCTL is not set 397# CONFIG_IDE_TASK_IOCTL is not set
398CONFIG_IDE_PROC_FS=y
404 399
405# 400#
406# IDE chipset support/bugfixes 401# IDE chipset support/bugfixes
407# 402#
408CONFIG_IDE_GENERIC=y 403CONFIG_IDE_GENERIC=y
404# CONFIG_BLK_DEV_IDEPNP is not set
409CONFIG_BLK_DEV_IDEPCI=y 405CONFIG_BLK_DEV_IDEPCI=y
410CONFIG_IDEPCI_SHARE_IRQ=y 406CONFIG_IDEPCI_SHARE_IRQ=y
407CONFIG_IDEPCI_PCIBUS_ORDER=y
411# CONFIG_BLK_DEV_OFFBOARD is not set 408# CONFIG_BLK_DEV_OFFBOARD is not set
412# CONFIG_BLK_DEV_GENERIC is not set 409# CONFIG_BLK_DEV_GENERIC is not set
413# CONFIG_BLK_DEV_OPTI621 is not set 410# CONFIG_BLK_DEV_OPTI621 is not set
414CONFIG_BLK_DEV_IDEDMA_PCI=y 411CONFIG_BLK_DEV_IDEDMA_PCI=y
415# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 412# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
416CONFIG_IDEDMA_PCI_AUTO=y
417# CONFIG_IDEDMA_ONLYDISK is not set 413# CONFIG_IDEDMA_ONLYDISK is not set
418# CONFIG_BLK_DEV_AEC62XX is not set 414# CONFIG_BLK_DEV_AEC62XX is not set
419# CONFIG_BLK_DEV_ALI15X3 is not set 415# CONFIG_BLK_DEV_ALI15X3 is not set
@@ -428,6 +424,7 @@ CONFIG_IDEDMA_PCI_AUTO=y
428# CONFIG_BLK_DEV_JMICRON is not set 424# CONFIG_BLK_DEV_JMICRON is not set
429# CONFIG_BLK_DEV_SC1200 is not set 425# CONFIG_BLK_DEV_SC1200 is not set
430# CONFIG_BLK_DEV_PIIX is not set 426# CONFIG_BLK_DEV_PIIX is not set
427# CONFIG_BLK_DEV_IT8213 is not set
431# CONFIG_BLK_DEV_IT821X is not set 428# CONFIG_BLK_DEV_IT821X is not set
432# CONFIG_BLK_DEV_NS87415 is not set 429# CONFIG_BLK_DEV_NS87415 is not set
433# CONFIG_BLK_DEV_PDC202XX_OLD is not set 430# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -438,10 +435,10 @@ CONFIG_BLK_DEV_SGIIOC4=y
438# CONFIG_BLK_DEV_SLC90E66 is not set 435# CONFIG_BLK_DEV_SLC90E66 is not set
439# CONFIG_BLK_DEV_TRM290 is not set 436# CONFIG_BLK_DEV_TRM290 is not set
440# CONFIG_BLK_DEV_VIA82CXXX is not set 437# CONFIG_BLK_DEV_VIA82CXXX is not set
438# CONFIG_BLK_DEV_TC86C001 is not set
441# CONFIG_IDE_ARM is not set 439# CONFIG_IDE_ARM is not set
442CONFIG_BLK_DEV_IDEDMA=y 440CONFIG_BLK_DEV_IDEDMA=y
443# CONFIG_IDEDMA_IVB is not set 441# CONFIG_IDEDMA_IVB is not set
444CONFIG_IDEDMA_AUTO=y
445# CONFIG_BLK_DEV_HD is not set 442# CONFIG_BLK_DEV_HD is not set
446 443
447# 444#
@@ -449,6 +446,8 @@ CONFIG_IDEDMA_AUTO=y
449# 446#
450# CONFIG_RAID_ATTRS is not set 447# CONFIG_RAID_ATTRS is not set
451CONFIG_SCSI=y 448CONFIG_SCSI=y
449CONFIG_SCSI_DMA=y
450# CONFIG_SCSI_TGT is not set
452CONFIG_SCSI_NETLINK=y 451CONFIG_SCSI_NETLINK=y
453CONFIG_SCSI_PROC_FS=y 452CONFIG_SCSI_PROC_FS=y
454 453
@@ -469,6 +468,8 @@ CONFIG_CHR_DEV_SCH=m
469# CONFIG_SCSI_MULTI_LUN is not set 468# CONFIG_SCSI_MULTI_LUN is not set
470CONFIG_SCSI_CONSTANTS=y 469CONFIG_SCSI_CONSTANTS=y
471# CONFIG_SCSI_LOGGING is not set 470# CONFIG_SCSI_LOGGING is not set
471# CONFIG_SCSI_SCAN_ASYNC is not set
472CONFIG_SCSI_WAIT_SCAN=m
472 473
473# 474#
474# SCSI Transports 475# SCSI Transports
@@ -478,11 +479,9 @@ CONFIG_SCSI_FC_ATTRS=y
478CONFIG_SCSI_ISCSI_ATTRS=m 479CONFIG_SCSI_ISCSI_ATTRS=m
479CONFIG_SCSI_SAS_ATTRS=y 480CONFIG_SCSI_SAS_ATTRS=y
480CONFIG_SCSI_SAS_LIBSAS=y 481CONFIG_SCSI_SAS_LIBSAS=y
482# CONFIG_SCSI_SAS_ATA is not set
481# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 483# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
482 484CONFIG_SCSI_LOWLEVEL=y
483#
484# SCSI low-level drivers
485#
486CONFIG_ISCSI_TCP=m 485CONFIG_ISCSI_TCP=m
487# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
488# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
@@ -512,11 +511,10 @@ CONFIG_SCSI_QLA_FC=y
512# CONFIG_SCSI_DC395x is not set 511# CONFIG_SCSI_DC395x is not set
513# CONFIG_SCSI_DC390T is not set 512# CONFIG_SCSI_DC390T is not set
514# CONFIG_SCSI_DEBUG is not set 513# CONFIG_SCSI_DEBUG is not set
515 514# CONFIG_SCSI_SRP is not set
516#
517# Serial ATA (prod) and Parallel ATA (experimental) drivers
518#
519CONFIG_ATA=y 515CONFIG_ATA=y
516CONFIG_ATA_NONSTANDARD=y
517CONFIG_ATA_ACPI=y
520# CONFIG_SATA_AHCI is not set 518# CONFIG_SATA_AHCI is not set
521# CONFIG_SATA_SVW is not set 519# CONFIG_SATA_SVW is not set
522# CONFIG_ATA_PIIX is not set 520# CONFIG_ATA_PIIX is not set
@@ -532,10 +530,12 @@ CONFIG_ATA=y
532# CONFIG_SATA_ULI is not set 530# CONFIG_SATA_ULI is not set
533# CONFIG_SATA_VIA is not set 531# CONFIG_SATA_VIA is not set
534CONFIG_SATA_VITESSE=y 532CONFIG_SATA_VITESSE=y
533# CONFIG_SATA_INIC162X is not set
535# CONFIG_PATA_ALI is not set 534# CONFIG_PATA_ALI is not set
536# CONFIG_PATA_AMD is not set 535# CONFIG_PATA_AMD is not set
537# CONFIG_PATA_ARTOP is not set 536# CONFIG_PATA_ARTOP is not set
538# CONFIG_PATA_ATIIXP is not set 537# CONFIG_PATA_ATIIXP is not set
538# CONFIG_PATA_CMD640_PCI is not set
539# CONFIG_PATA_CMD64X is not set 539# CONFIG_PATA_CMD64X is not set
540# CONFIG_PATA_CS5520 is not set 540# CONFIG_PATA_CS5520 is not set
541# CONFIG_PATA_CS5530 is not set 541# CONFIG_PATA_CS5530 is not set
@@ -547,8 +547,10 @@ CONFIG_SATA_VITESSE=y
547# CONFIG_PATA_HPT3X2N is not set 547# CONFIG_PATA_HPT3X2N is not set
548# CONFIG_PATA_HPT3X3 is not set 548# CONFIG_PATA_HPT3X3 is not set
549# CONFIG_PATA_IT821X is not set 549# CONFIG_PATA_IT821X is not set
550# CONFIG_PATA_IT8213 is not set
550# CONFIG_PATA_JMICRON is not set 551# CONFIG_PATA_JMICRON is not set
551# CONFIG_PATA_TRIFLEX is not set 552# CONFIG_PATA_TRIFLEX is not set
553# CONFIG_PATA_MARVELL is not set
552# CONFIG_PATA_MPIIX is not set 554# CONFIG_PATA_MPIIX is not set
553# CONFIG_PATA_OLDPIIX is not set 555# CONFIG_PATA_OLDPIIX is not set
554# CONFIG_PATA_NETCELL is not set 556# CONFIG_PATA_NETCELL is not set
@@ -565,10 +567,6 @@ CONFIG_SATA_VITESSE=y
565# CONFIG_PATA_SIS is not set 567# CONFIG_PATA_SIS is not set
566# CONFIG_PATA_VIA is not set 568# CONFIG_PATA_VIA is not set
567# CONFIG_PATA_WINBOND is not set 569# CONFIG_PATA_WINBOND is not set
568
569#
570# Multi-device support (RAID and LVM)
571#
572CONFIG_MD=y 570CONFIG_MD=y
573CONFIG_BLK_DEV_MD=y 571CONFIG_BLK_DEV_MD=y
574CONFIG_MD_LINEAR=y 572CONFIG_MD_LINEAR=y
@@ -587,6 +585,8 @@ CONFIG_DM_MIRROR=m
587CONFIG_DM_ZERO=m 585CONFIG_DM_ZERO=m
588CONFIG_DM_MULTIPATH=m 586CONFIG_DM_MULTIPATH=m
589CONFIG_DM_MULTIPATH_EMC=m 587CONFIG_DM_MULTIPATH_EMC=m
588# CONFIG_DM_MULTIPATH_RDAC is not set
589# CONFIG_DM_DELAY is not set
590 590
591# 591#
592# Fusion MPT device support 592# Fusion MPT device support
@@ -597,43 +597,25 @@ CONFIG_FUSION_FC=y
597CONFIG_FUSION_SAS=y 597CONFIG_FUSION_SAS=y
598CONFIG_FUSION_MAX_SGE=128 598CONFIG_FUSION_MAX_SGE=128
599CONFIG_FUSION_CTL=m 599CONFIG_FUSION_CTL=m
600CONFIG_FUSION_LOGGING=y
600 601
601# 602#
602# IEEE 1394 (FireWire) support 603# IEEE 1394 (FireWire) support
603# 604#
605# CONFIG_FIREWIRE is not set
604# CONFIG_IEEE1394 is not set 606# CONFIG_IEEE1394 is not set
605
606#
607# I2O device support
608#
609# CONFIG_I2O is not set 607# CONFIG_I2O is not set
610
611#
612# Network device support
613#
614CONFIG_NETDEVICES=y 608CONFIG_NETDEVICES=y
609# CONFIG_NETDEVICES_MULTIQUEUE is not set
615# CONFIG_DUMMY is not set 610# CONFIG_DUMMY is not set
616# CONFIG_BONDING is not set 611# CONFIG_BONDING is not set
612# CONFIG_MACVLAN is not set
617# CONFIG_EQUALIZER is not set 613# CONFIG_EQUALIZER is not set
618# CONFIG_TUN is not set 614# CONFIG_TUN is not set
619 615# CONFIG_NET_SB1000 is not set
620#
621# ARCnet devices
622#
623# CONFIG_ARCNET is not set 616# CONFIG_ARCNET is not set
624
625#
626# PHY device support
627#
628
629#
630# Ethernet (10 or 100Mbit)
631#
632# CONFIG_NET_ETHERNET is not set 617# CONFIG_NET_ETHERNET is not set
633 618CONFIG_NETDEV_1000=y
634#
635# Ethernet (1000 Mbit)
636#
637# CONFIG_ACENIC is not set 619# CONFIG_ACENIC is not set
638# CONFIG_DL2K is not set 620# CONFIG_DL2K is not set
639# CONFIG_E1000 is not set 621# CONFIG_E1000 is not set
@@ -645,32 +627,39 @@ CONFIG_NETDEVICES=y
645# CONFIG_SKGE is not set 627# CONFIG_SKGE is not set
646# CONFIG_SKY2 is not set 628# CONFIG_SKY2 is not set
647# CONFIG_SK98LIN is not set 629# CONFIG_SK98LIN is not set
630# CONFIG_VIA_VELOCITY is not set
648CONFIG_TIGON3=y 631CONFIG_TIGON3=y
649# CONFIG_BNX2 is not set 632# CONFIG_BNX2 is not set
650# CONFIG_QLA3XXX is not set 633# CONFIG_QLA3XXX is not set
651 634# CONFIG_ATL1 is not set
652# 635CONFIG_NETDEV_10000=y
653# Ethernet (10000 Mbit)
654#
655CONFIG_CHELSIO_T1=m 636CONFIG_CHELSIO_T1=m
637CONFIG_CHELSIO_T1_1G=y
638# CONFIG_CHELSIO_T1_NAPI is not set
639CONFIG_CHELSIO_T3=m
656# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
657CONFIG_S2IO=m 641CONFIG_S2IO=m
658# CONFIG_S2IO_NAPI is not set 642# CONFIG_S2IO_NAPI is not set
659# CONFIG_MYRI10GE is not set 643# CONFIG_MYRI10GE is not set
660 644# CONFIG_NETXEN_NIC is not set
661# 645# CONFIG_MLX4_CORE is not set
662# Token Ring devices
663#
664# CONFIG_TR is not set 646# CONFIG_TR is not set
665 647
666# 648#
667# Wireless LAN (non-hamradio) 649# Wireless LAN
668# 650#
669# CONFIG_NET_RADIO is not set 651# CONFIG_WLAN_PRE80211 is not set
652# CONFIG_WLAN_80211 is not set
670 653
671# 654#
672# Wan interfaces 655# USB Network Adapters
673# 656#
657# CONFIG_USB_CATC is not set
658# CONFIG_USB_KAWETH is not set
659# CONFIG_USB_PEGASUS is not set
660# CONFIG_USB_RTL8150 is not set
661# CONFIG_USB_USBNET_MII is not set
662# CONFIG_USB_USBNET is not set
674# CONFIG_WAN is not set 663# CONFIG_WAN is not set
675# CONFIG_FDDI is not set 664# CONFIG_FDDI is not set
676# CONFIG_HIPPI is not set 665# CONFIG_HIPPI is not set
@@ -680,18 +669,9 @@ CONFIG_S2IO=m
680# CONFIG_SHAPER is not set 669# CONFIG_SHAPER is not set
681CONFIG_NETCONSOLE=y 670CONFIG_NETCONSOLE=y
682CONFIG_NETPOLL=y 671CONFIG_NETPOLL=y
683# CONFIG_NETPOLL_RX is not set
684# CONFIG_NETPOLL_TRAP is not set 672# CONFIG_NETPOLL_TRAP is not set
685CONFIG_NET_POLL_CONTROLLER=y 673CONFIG_NET_POLL_CONTROLLER=y
686
687#
688# ISDN subsystem
689#
690# CONFIG_ISDN is not set 674# CONFIG_ISDN is not set
691
692#
693# Telephony Support
694#
695# CONFIG_PHONE is not set 675# CONFIG_PHONE is not set
696 676
697# 677#
@@ -699,6 +679,7 @@ CONFIG_NET_POLL_CONTROLLER=y
699# 679#
700CONFIG_INPUT=y 680CONFIG_INPUT=y
701# CONFIG_INPUT_FF_MEMLESS is not set 681# CONFIG_INPUT_FF_MEMLESS is not set
682# CONFIG_INPUT_POLLDEV is not set
702 683
703# 684#
704# Userland interfaces 685# Userland interfaces
@@ -718,6 +699,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
718# CONFIG_INPUT_KEYBOARD is not set 699# CONFIG_INPUT_KEYBOARD is not set
719# CONFIG_INPUT_MOUSE is not set 700# CONFIG_INPUT_MOUSE is not set
720# CONFIG_INPUT_JOYSTICK is not set 701# CONFIG_INPUT_JOYSTICK is not set
702# CONFIG_INPUT_TABLET is not set
721# CONFIG_INPUT_TOUCHSCREEN is not set 703# CONFIG_INPUT_TOUCHSCREEN is not set
722# CONFIG_INPUT_MISC is not set 704# CONFIG_INPUT_MISC is not set
723 705
@@ -741,6 +723,7 @@ CONFIG_SERIAL_NONSTANDARD=y
741# CONFIG_DIGIEPCA is not set 723# CONFIG_DIGIEPCA is not set
742# CONFIG_MOXA_INTELLIO is not set 724# CONFIG_MOXA_INTELLIO is not set
743# CONFIG_MOXA_SMARTIO is not set 725# CONFIG_MOXA_SMARTIO is not set
726# CONFIG_MOXA_SMARTIO_NEW is not set
744# CONFIG_ISI is not set 727# CONFIG_ISI is not set
745# CONFIG_SYNCLINKMP is not set 728# CONFIG_SYNCLINKMP is not set
746# CONFIG_SYNCLINK_GT is not set 729# CONFIG_SYNCLINK_GT is not set
@@ -752,7 +735,6 @@ CONFIG_SERIAL_NONSTANDARD=y
752CONFIG_SGI_SNSC=y 735CONFIG_SGI_SNSC=y
753CONFIG_SGI_TIOCX=y 736CONFIG_SGI_TIOCX=y
754CONFIG_SGI_MBCS=m 737CONFIG_SGI_MBCS=m
755CONFIG_MSPEC=y
756 738
757# 739#
758# Serial drivers 740# Serial drivers
@@ -771,28 +753,13 @@ CONFIG_SERIAL_SGI_IOC3=y
771CONFIG_UNIX98_PTYS=y 753CONFIG_UNIX98_PTYS=y
772CONFIG_LEGACY_PTYS=y 754CONFIG_LEGACY_PTYS=y
773CONFIG_LEGACY_PTY_COUNT=256 755CONFIG_LEGACY_PTY_COUNT=256
774
775#
776# IPMI
777#
778# CONFIG_IPMI_HANDLER is not set 756# CONFIG_IPMI_HANDLER is not set
779
780#
781# Watchdog Cards
782#
783# CONFIG_WATCHDOG is not set 757# CONFIG_WATCHDOG is not set
784# CONFIG_HW_RANDOM is not set 758# CONFIG_HW_RANDOM is not set
785CONFIG_EFI_RTC=y 759CONFIG_EFI_RTC=y
786# CONFIG_DTLK is not set
787# CONFIG_R3964 is not set 760# CONFIG_R3964 is not set
788# CONFIG_APPLICOM is not set 761# CONFIG_APPLICOM is not set
789
790#
791# Ftape, the floppy tape device driver
792#
793CONFIG_AGP=y 762CONFIG_AGP=y
794# CONFIG_AGP_SIS is not set
795# CONFIG_AGP_VIA is not set
796CONFIG_AGP_SGI_TIOCA=y 763CONFIG_AGP_SGI_TIOCA=y
797# CONFIG_DRM is not set 764# CONFIG_DRM is not set
798CONFIG_RAW_DRIVER=m 765CONFIG_RAW_DRIVER=m
@@ -800,16 +767,8 @@ CONFIG_MAX_RAW_DEVS=256
800# CONFIG_HPET is not set 767# CONFIG_HPET is not set
801# CONFIG_HANGCHECK_TIMER is not set 768# CONFIG_HANGCHECK_TIMER is not set
802CONFIG_MMTIMER=y 769CONFIG_MMTIMER=y
803
804#
805# TPM devices
806#
807# CONFIG_TCG_TPM is not set 770# CONFIG_TCG_TPM is not set
808# CONFIG_TELCLOCK is not set 771CONFIG_DEVPORT=y
809
810#
811# I2C support
812#
813# CONFIG_I2C is not set 772# CONFIG_I2C is not set
814 773
815# 774#
@@ -817,37 +776,33 @@ CONFIG_MMTIMER=y
817# 776#
818# CONFIG_SPI is not set 777# CONFIG_SPI is not set
819# CONFIG_SPI_MASTER is not set 778# CONFIG_SPI_MASTER is not set
820 779# CONFIG_W1 is not set
821# 780# CONFIG_POWER_SUPPLY is not set
822# Dallas's 1-wire bus
823#
824
825#
826# Hardware Monitoring support
827#
828# CONFIG_HWMON is not set 781# CONFIG_HWMON is not set
829# CONFIG_HWMON_VID is not set
830 782
831# 783#
832# Misc devices 784# Multifunction device drivers
833# 785#
834# CONFIG_TIFM_CORE is not set 786# CONFIG_MFD_SM501 is not set
835 787
836# 788#
837# Multimedia devices 789# Multimedia devices
838# 790#
839# CONFIG_VIDEO_DEV is not set 791# CONFIG_VIDEO_DEV is not set
792# CONFIG_DVB_CORE is not set
793# CONFIG_DAB is not set
840 794
841# 795#
842# Digital Video Broadcasting Devices 796# Graphics support
843# 797#
844# CONFIG_DVB is not set 798# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
845# CONFIG_USB_DABUSB is not set
846 799
847# 800#
848# Graphics support 801# Display device support
849# 802#
850CONFIG_FIRMWARE_EDID=y 803# CONFIG_DISPLAY_SUPPORT is not set
804# CONFIG_VGASTATE is not set
805CONFIG_VIDEO_OUTPUT_CONTROL=m
851# CONFIG_FB is not set 806# CONFIG_FB is not set
852 807
853# 808#
@@ -856,16 +811,29 @@ CONFIG_FIRMWARE_EDID=y
856CONFIG_VGA_CONSOLE=y 811CONFIG_VGA_CONSOLE=y
857# CONFIG_VGACON_SOFT_SCROLLBACK is not set 812# CONFIG_VGACON_SOFT_SCROLLBACK is not set
858CONFIG_DUMMY_CONSOLE=y 813CONFIG_DUMMY_CONSOLE=y
859# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
860 814
861# 815#
862# Sound 816# Sound
863# 817#
864# CONFIG_SOUND is not set 818# CONFIG_SOUND is not set
819CONFIG_HID_SUPPORT=y
820CONFIG_HID=y
821CONFIG_HID_DEBUG=y
865 822
866# 823#
867# USB support 824# USB Input Devices
825#
826CONFIG_USB_HID=m
827# CONFIG_USB_HIDINPUT_POWERBOOK is not set
828# CONFIG_HID_FF is not set
829# CONFIG_USB_HIDDEV is not set
830
831#
832# USB HID Boot Protocol drivers
868# 833#
834# CONFIG_USB_KBD is not set
835# CONFIG_USB_MOUSE is not set
836CONFIG_USB_SUPPORT=y
869CONFIG_USB_ARCH_HAS_HCD=y 837CONFIG_USB_ARCH_HAS_HCD=y
870CONFIG_USB_ARCH_HAS_OHCI=y 838CONFIG_USB_ARCH_HAS_OHCI=y
871CONFIG_USB_ARCH_HAS_EHCI=y 839CONFIG_USB_ARCH_HAS_EHCI=y
@@ -876,9 +844,10 @@ CONFIG_USB=m
876# Miscellaneous USB options 844# Miscellaneous USB options
877# 845#
878# CONFIG_USB_DEVICEFS is not set 846# CONFIG_USB_DEVICEFS is not set
879# CONFIG_USB_BANDWIDTH is not set 847CONFIG_USB_DEVICE_CLASS=y
880# CONFIG_USB_DYNAMIC_MINORS is not set 848# CONFIG_USB_DYNAMIC_MINORS is not set
881# CONFIG_USB_SUSPEND is not set 849# CONFIG_USB_SUSPEND is not set
850# CONFIG_USB_PERSIST is not set
882# CONFIG_USB_OTG is not set 851# CONFIG_USB_OTG is not set
883 852
884# 853#
@@ -890,10 +859,12 @@ CONFIG_USB_EHCI_HCD=m
890# CONFIG_USB_EHCI_TT_NEWSCHED is not set 859# CONFIG_USB_EHCI_TT_NEWSCHED is not set
891# CONFIG_USB_ISP116X_HCD is not set 860# CONFIG_USB_ISP116X_HCD is not set
892CONFIG_USB_OHCI_HCD=m 861CONFIG_USB_OHCI_HCD=m
893# CONFIG_USB_OHCI_BIG_ENDIAN is not set 862# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
863# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
894CONFIG_USB_OHCI_LITTLE_ENDIAN=y 864CONFIG_USB_OHCI_LITTLE_ENDIAN=y
895CONFIG_USB_UHCI_HCD=m 865CONFIG_USB_UHCI_HCD=m
896# CONFIG_USB_SL811_HCD is not set 866# CONFIG_USB_SL811_HCD is not set
867# CONFIG_USB_R8A66597_HCD is not set
897 868
898# 869#
899# USB Device Class drivers 870# USB Device Class drivers
@@ -912,47 +883,10 @@ CONFIG_USB_UHCI_HCD=m
912# CONFIG_USB_LIBUSUAL is not set 883# CONFIG_USB_LIBUSUAL is not set
913 884
914# 885#
915# USB Input Devices
916#
917CONFIG_USB_HID=m
918CONFIG_USB_HIDINPUT=y
919# CONFIG_USB_HIDINPUT_POWERBOOK is not set
920# CONFIG_HID_FF is not set
921# CONFIG_USB_HIDDEV is not set
922
923#
924# USB HID Boot Protocol drivers
925#
926# CONFIG_USB_KBD is not set
927# CONFIG_USB_MOUSE is not set
928# CONFIG_USB_AIPTEK is not set
929# CONFIG_USB_WACOM is not set
930# CONFIG_USB_ACECAD is not set
931# CONFIG_USB_KBTAB is not set
932# CONFIG_USB_POWERMATE is not set
933# CONFIG_USB_TOUCHSCREEN is not set
934# CONFIG_USB_YEALINK is not set
935# CONFIG_USB_XPAD is not set
936# CONFIG_USB_ATI_REMOTE is not set
937# CONFIG_USB_ATI_REMOTE2 is not set
938# CONFIG_USB_KEYSPAN_REMOTE is not set
939# CONFIG_USB_APPLETOUCH is not set
940# CONFIG_USB_TRANCEVIBRATOR is not set
941
942#
943# USB Imaging devices 886# USB Imaging devices
944# 887#
945# CONFIG_USB_MDC800 is not set 888# CONFIG_USB_MDC800 is not set
946# CONFIG_USB_MICROTEK is not set 889# CONFIG_USB_MICROTEK is not set
947
948#
949# USB Network Adapters
950#
951# CONFIG_USB_CATC is not set
952# CONFIG_USB_KAWETH is not set
953# CONFIG_USB_PEGASUS is not set
954# CONFIG_USB_RTL8150 is not set
955# CONFIG_USB_USBNET is not set
956CONFIG_USB_MON=y 890CONFIG_USB_MON=y
957 891
958# 892#
@@ -974,6 +908,7 @@ CONFIG_USB_MON=y
974# CONFIG_USB_RIO500 is not set 908# CONFIG_USB_RIO500 is not set
975# CONFIG_USB_LEGOTOWER is not set 909# CONFIG_USB_LEGOTOWER is not set
976# CONFIG_USB_LCD is not set 910# CONFIG_USB_LCD is not set
911# CONFIG_USB_BERRY_CHARGE is not set
977# CONFIG_USB_LED is not set 912# CONFIG_USB_LED is not set
978# CONFIG_USB_CYPRESS_CY7C63 is not set 913# CONFIG_USB_CYPRESS_CY7C63 is not set
979# CONFIG_USB_CYTHERM is not set 914# CONFIG_USB_CYTHERM is not set
@@ -983,6 +918,8 @@ CONFIG_USB_MON=y
983# CONFIG_USB_APPLEDISPLAY is not set 918# CONFIG_USB_APPLEDISPLAY is not set
984# CONFIG_USB_SISUSBVGA is not set 919# CONFIG_USB_SISUSBVGA is not set
985# CONFIG_USB_LD is not set 920# CONFIG_USB_LD is not set
921# CONFIG_USB_TRANCEVIBRATOR is not set
922# CONFIG_USB_IOWARRIOR is not set
986 923
987# 924#
988# USB DSL modem support 925# USB DSL modem support
@@ -992,48 +929,24 @@ CONFIG_USB_MON=y
992# USB Gadget Support 929# USB Gadget Support
993# 930#
994# CONFIG_USB_GADGET is not set 931# CONFIG_USB_GADGET is not set
995
996#
997# MMC/SD Card support
998#
999# CONFIG_MMC is not set 932# CONFIG_MMC is not set
1000
1001#
1002# LED devices
1003#
1004# CONFIG_NEW_LEDS is not set 933# CONFIG_NEW_LEDS is not set
1005
1006#
1007# LED drivers
1008#
1009
1010#
1011# LED Triggers
1012#
1013
1014#
1015# InfiniBand support
1016#
1017CONFIG_INFINIBAND=m 934CONFIG_INFINIBAND=m
1018# CONFIG_INFINIBAND_USER_MAD is not set 935# CONFIG_INFINIBAND_USER_MAD is not set
1019CONFIG_INFINIBAND_USER_ACCESS=m 936CONFIG_INFINIBAND_USER_ACCESS=m
937CONFIG_INFINIBAND_USER_MEM=y
1020CONFIG_INFINIBAND_ADDR_TRANS=y 938CONFIG_INFINIBAND_ADDR_TRANS=y
1021CONFIG_INFINIBAND_MTHCA=m 939CONFIG_INFINIBAND_MTHCA=m
1022CONFIG_INFINIBAND_MTHCA_DEBUG=y 940CONFIG_INFINIBAND_MTHCA_DEBUG=y
1023# CONFIG_INFINIBAND_AMSO1100 is not set 941# CONFIG_INFINIBAND_AMSO1100 is not set
942# CONFIG_INFINIBAND_CXGB3 is not set
943# CONFIG_MLX4_INFINIBAND is not set
1024CONFIG_INFINIBAND_IPOIB=m 944CONFIG_INFINIBAND_IPOIB=m
945# CONFIG_INFINIBAND_IPOIB_CM is not set
1025CONFIG_INFINIBAND_IPOIB_DEBUG=y 946CONFIG_INFINIBAND_IPOIB_DEBUG=y
1026# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set 947# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
1027CONFIG_INFINIBAND_SRP=m 948CONFIG_INFINIBAND_SRP=m
1028# CONFIG_INFINIBAND_ISER is not set 949# CONFIG_INFINIBAND_ISER is not set
1029
1030#
1031# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1032#
1033
1034#
1035# Real Time Clock
1036#
1037# CONFIG_RTC_CLASS is not set 950# CONFIG_RTC_CLASS is not set
1038 951
1039# 952#
@@ -1050,6 +963,12 @@ CONFIG_INFINIBAND_SRP=m
1050# 963#
1051 964
1052# 965#
966# Userspace I/O
967#
968# CONFIG_UIO is not set
969CONFIG_MSPEC=y
970
971#
1053# File systems 972# File systems
1054# 973#
1055CONFIG_EXT2_FS=y 974CONFIG_EXT2_FS=y
@@ -1061,6 +980,7 @@ CONFIG_EXT3_FS=y
1061CONFIG_EXT3_FS_XATTR=y 980CONFIG_EXT3_FS_XATTR=y
1062CONFIG_EXT3_FS_POSIX_ACL=y 981CONFIG_EXT3_FS_POSIX_ACL=y
1063CONFIG_EXT3_FS_SECURITY=y 982CONFIG_EXT3_FS_SECURITY=y
983# CONFIG_EXT4DEV_FS is not set
1064CONFIG_JBD=y 984CONFIG_JBD=y
1065# CONFIG_JBD_DEBUG is not set 985# CONFIG_JBD_DEBUG is not set
1066CONFIG_FS_MBCACHE=y 986CONFIG_FS_MBCACHE=y
@@ -1161,6 +1081,7 @@ CONFIG_EXPORTFS=m
1161CONFIG_NFS_COMMON=y 1081CONFIG_NFS_COMMON=y
1162CONFIG_SUNRPC=m 1082CONFIG_SUNRPC=m
1163CONFIG_SUNRPC_GSS=m 1083CONFIG_SUNRPC_GSS=m
1084# CONFIG_SUNRPC_BIND34 is not set
1164CONFIG_RPCSEC_GSS_KRB5=m 1085CONFIG_RPCSEC_GSS_KRB5=m
1165# CONFIG_RPCSEC_GSS_SPKM3 is not set 1086# CONFIG_RPCSEC_GSS_SPKM3 is not set
1166CONFIG_SMB_FS=m 1087CONFIG_SMB_FS=m
@@ -1174,7 +1095,6 @@ CONFIG_CIFS=m
1174# CONFIG_NCP_FS is not set 1095# CONFIG_NCP_FS is not set
1175# CONFIG_CODA_FS is not set 1096# CONFIG_CODA_FS is not set
1176# CONFIG_AFS_FS is not set 1097# CONFIG_AFS_FS is not set
1177# CONFIG_9P_FS is not set
1178 1098
1179# 1099#
1180# Partition Types 1100# Partition Types
@@ -1196,6 +1116,7 @@ CONFIG_SGI_PARTITION=y
1196# CONFIG_SUN_PARTITION is not set 1116# CONFIG_SUN_PARTITION is not set
1197# CONFIG_KARMA_PARTITION is not set 1117# CONFIG_KARMA_PARTITION is not set
1198CONFIG_EFI_PARTITION=y 1118CONFIG_EFI_PARTITION=y
1119# CONFIG_SYSV68_PARTITION is not set
1199 1120
1200# 1121#
1201# Native Language Support 1122# Native Language Support
@@ -1244,18 +1165,25 @@ CONFIG_NLS_UTF8=y
1244# 1165#
1245# Distributed Lock Manager 1166# Distributed Lock Manager
1246# 1167#
1168# CONFIG_DLM is not set
1247 1169
1248# 1170#
1249# Library routines 1171# Library routines
1250# 1172#
1173CONFIG_BITREVERSE=y
1251# CONFIG_CRC_CCITT is not set 1174# CONFIG_CRC_CCITT is not set
1252CONFIG_CRC16=m 1175CONFIG_CRC16=m
1176# CONFIG_CRC_ITU_T is not set
1253CONFIG_CRC32=y 1177CONFIG_CRC32=y
1178# CONFIG_CRC7 is not set
1254CONFIG_LIBCRC32C=m 1179CONFIG_LIBCRC32C=m
1255CONFIG_ZLIB_INFLATE=m 1180CONFIG_ZLIB_INFLATE=m
1256CONFIG_ZLIB_DEFLATE=m 1181CONFIG_ZLIB_DEFLATE=m
1257CONFIG_GENERIC_ALLOCATOR=y 1182CONFIG_GENERIC_ALLOCATOR=y
1258CONFIG_PLIST=y 1183CONFIG_PLIST=y
1184CONFIG_HAS_IOMEM=y
1185CONFIG_HAS_IOPORT=y
1186CONFIG_HAS_DMA=y
1259CONFIG_GENERIC_HARDIRQS=y 1187CONFIG_GENERIC_HARDIRQS=y
1260CONFIG_GENERIC_IRQ_PROBE=y 1188CONFIG_GENERIC_IRQ_PROBE=y
1261CONFIG_GENERIC_PENDING_IRQ=y 1189CONFIG_GENERIC_PENDING_IRQ=y
@@ -1274,25 +1202,28 @@ CONFIG_IRQ_PER_CPU=y
1274CONFIG_ENABLE_MUST_CHECK=y 1202CONFIG_ENABLE_MUST_CHECK=y
1275CONFIG_MAGIC_SYSRQ=y 1203CONFIG_MAGIC_SYSRQ=y
1276# CONFIG_UNUSED_SYMBOLS is not set 1204# CONFIG_UNUSED_SYMBOLS is not set
1205# CONFIG_DEBUG_FS is not set
1206# CONFIG_HEADERS_CHECK is not set
1277CONFIG_DEBUG_KERNEL=y 1207CONFIG_DEBUG_KERNEL=y
1278CONFIG_LOG_BUF_SHIFT=20 1208# CONFIG_DEBUG_SHIRQ is not set
1279CONFIG_DETECT_SOFTLOCKUP=y 1209CONFIG_DETECT_SOFTLOCKUP=y
1210CONFIG_SCHED_DEBUG=y
1280# CONFIG_SCHEDSTATS is not set 1211# CONFIG_SCHEDSTATS is not set
1281# CONFIG_DEBUG_SLAB is not set 1212# CONFIG_TIMER_STATS is not set
1213# CONFIG_SLUB_DEBUG_ON is not set
1282# CONFIG_DEBUG_RT_MUTEXES is not set 1214# CONFIG_DEBUG_RT_MUTEXES is not set
1283# CONFIG_RT_MUTEX_TESTER is not set 1215# CONFIG_RT_MUTEX_TESTER is not set
1284# CONFIG_DEBUG_SPINLOCK is not set 1216# CONFIG_DEBUG_SPINLOCK is not set
1285# CONFIG_DEBUG_MUTEXES is not set 1217# CONFIG_DEBUG_MUTEXES is not set
1286# CONFIG_DEBUG_RWSEMS is not set
1287# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1218# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1288# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1219# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1289# CONFIG_DEBUG_KOBJECT is not set 1220# CONFIG_DEBUG_KOBJECT is not set
1290CONFIG_DEBUG_INFO=y 1221CONFIG_DEBUG_INFO=y
1291# CONFIG_DEBUG_FS is not set
1292# CONFIG_DEBUG_VM is not set 1222# CONFIG_DEBUG_VM is not set
1293# CONFIG_DEBUG_LIST is not set 1223# CONFIG_DEBUG_LIST is not set
1294CONFIG_FORCED_INLINING=y 1224CONFIG_FORCED_INLINING=y
1295# CONFIG_RCU_TORTURE_TEST is not set 1225# CONFIG_RCU_TORTURE_TEST is not set
1226# CONFIG_FAULT_INJECTION is not set
1296CONFIG_IA64_GRANULE_16MB=y 1227CONFIG_IA64_GRANULE_16MB=y
1297# CONFIG_IA64_GRANULE_64MB is not set 1228# CONFIG_IA64_GRANULE_64MB is not set
1298# CONFIG_IA64_PRINT_HAZARDS is not set 1229# CONFIG_IA64_PRINT_HAZARDS is not set
@@ -1306,16 +1237,17 @@ CONFIG_SYSVIPC_COMPAT=y
1306# 1237#
1307# CONFIG_KEYS is not set 1238# CONFIG_KEYS is not set
1308# CONFIG_SECURITY is not set 1239# CONFIG_SECURITY is not set
1309 1240CONFIG_XOR_BLOCKS=y
1310# 1241CONFIG_ASYNC_CORE=y
1311# Cryptographic options 1242CONFIG_ASYNC_MEMCPY=y
1312# 1243CONFIG_ASYNC_XOR=y
1313CONFIG_CRYPTO=y 1244CONFIG_CRYPTO=y
1314CONFIG_CRYPTO_ALGAPI=y 1245CONFIG_CRYPTO_ALGAPI=y
1315CONFIG_CRYPTO_BLKCIPHER=m 1246CONFIG_CRYPTO_BLKCIPHER=m
1316CONFIG_CRYPTO_HASH=y 1247CONFIG_CRYPTO_HASH=y
1317CONFIG_CRYPTO_MANAGER=m 1248CONFIG_CRYPTO_MANAGER=y
1318CONFIG_CRYPTO_HMAC=y 1249CONFIG_CRYPTO_HMAC=y
1250# CONFIG_CRYPTO_XCBC is not set
1319# CONFIG_CRYPTO_NULL is not set 1251# CONFIG_CRYPTO_NULL is not set
1320# CONFIG_CRYPTO_MD4 is not set 1252# CONFIG_CRYPTO_MD4 is not set
1321CONFIG_CRYPTO_MD5=y 1253CONFIG_CRYPTO_MD5=y
@@ -1324,9 +1256,14 @@ CONFIG_CRYPTO_SHA1=m
1324# CONFIG_CRYPTO_SHA512 is not set 1256# CONFIG_CRYPTO_SHA512 is not set
1325# CONFIG_CRYPTO_WP512 is not set 1257# CONFIG_CRYPTO_WP512 is not set
1326# CONFIG_CRYPTO_TGR192 is not set 1258# CONFIG_CRYPTO_TGR192 is not set
1259# CONFIG_CRYPTO_GF128MUL is not set
1327CONFIG_CRYPTO_ECB=m 1260CONFIG_CRYPTO_ECB=m
1328CONFIG_CRYPTO_CBC=m 1261CONFIG_CRYPTO_CBC=m
1262CONFIG_CRYPTO_PCBC=m
1263# CONFIG_CRYPTO_LRW is not set
1264# CONFIG_CRYPTO_CRYPTD is not set
1329CONFIG_CRYPTO_DES=m 1265CONFIG_CRYPTO_DES=m
1266# CONFIG_CRYPTO_FCRYPT is not set
1330# CONFIG_CRYPTO_BLOWFISH is not set 1267# CONFIG_CRYPTO_BLOWFISH is not set
1331# CONFIG_CRYPTO_TWOFISH is not set 1268# CONFIG_CRYPTO_TWOFISH is not set
1332# CONFIG_CRYPTO_SERPENT is not set 1269# CONFIG_CRYPTO_SERPENT is not set
@@ -1340,8 +1277,6 @@ CONFIG_CRYPTO_DES=m
1340CONFIG_CRYPTO_DEFLATE=m 1277CONFIG_CRYPTO_DEFLATE=m
1341# CONFIG_CRYPTO_MICHAEL_MIC is not set 1278# CONFIG_CRYPTO_MICHAEL_MIC is not set
1342CONFIG_CRYPTO_CRC32C=m 1279CONFIG_CRYPTO_CRC32C=m
1280# CONFIG_CRYPTO_CAMELLIA is not set
1343# CONFIG_CRYPTO_TEST is not set 1281# CONFIG_CRYPTO_TEST is not set
1344 1282# CONFIG_CRYPTO_HW is not set
1345#
1346# Hardware crypto devices
1347#
diff --git a/arch/ia64/hp/common/Makefile b/arch/ia64/hp/common/Makefile
index f61a60057ff7..9e179dd06b85 100644
--- a/arch/ia64/hp/common/Makefile
+++ b/arch/ia64/hp/common/Makefile
@@ -8,3 +8,4 @@
8obj-y := sba_iommu.o 8obj-y := sba_iommu.o
9obj-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += hwsw_iommu.o 9obj-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += hwsw_iommu.o
10obj-$(CONFIG_IA64_GENERIC) += hwsw_iommu.o 10obj-$(CONFIG_IA64_GENERIC) += hwsw_iommu.o
11obj-$(CONFIG_IA64_HP_AML_NFW) += aml_nfw.o
diff --git a/arch/ia64/hp/common/aml_nfw.c b/arch/ia64/hp/common/aml_nfw.c
new file mode 100644
index 000000000000..4abd2c79bb1d
--- /dev/null
+++ b/arch/ia64/hp/common/aml_nfw.c
@@ -0,0 +1,236 @@
1/*
2 * OpRegion handler to allow AML to call native firmware
3 *
4 * (c) Copyright 2007 Hewlett-Packard Development Company, L.P.
5 * Bjorn Helgaas <bjorn.helgaas@hp.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * This driver implements HP Open Source Review Board proposal 1842,
12 * which was approved on 9/20/2006.
13 *
14 * For technical documentation, see the HP SPPA Firmware EAS, Appendix F.
15 *
16 * ACPI does not define a mechanism for AML methods to call native firmware
17 * interfaces such as PAL or SAL. This OpRegion handler adds such a mechanism.
18 * After the handler is installed, an AML method can call native firmware by
19 * storing the arguments and firmware entry point to specific offsets in the
20 * OpRegion. When AML reads the "return value" offset from the OpRegion, this
21 * handler loads up the arguments, makes the firmware call, and returns the
22 * result.
23 */
24
25#include <linux/module.h>
26#include <acpi/acpi_bus.h>
27#include <acpi/acpi_drivers.h>
28#include <asm/sal.h>
29
30MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>");
31MODULE_LICENSE("GPL");
32MODULE_DESCRIPTION("ACPI opregion handler for native firmware calls");
33
34static int force_register;
35module_param_named(force, force_register, bool, 0);
36MODULE_PARM_DESC(force, "Install opregion handler even without HPQ5001 device");
37
38#define AML_NFW_SPACE 0xA1
39
40struct ia64_pdesc {
41 void *ip;
42 void *gp;
43};
44
45/*
46 * N.B. The layout of this structure is defined in the HP SPPA FW EAS, and
47 * the member offsets are embedded in AML methods.
48 */
49struct ia64_nfw_context {
50 u64 arg[8];
51 struct ia64_sal_retval ret;
52 u64 ip;
53 u64 gp;
54 u64 pad[2];
55};
56
57static void *virt_map(u64 address)
58{
59 if (address & (1UL << 63))
60 return (void *) (__IA64_UNCACHED_OFFSET | address);
61
62 return __va(address);
63}
64
65static void aml_nfw_execute(struct ia64_nfw_context *c)
66{
67 struct ia64_pdesc virt_entry;
68 ia64_sal_handler entry;
69
70 virt_entry.ip = virt_map(c->ip);
71 virt_entry.gp = virt_map(c->gp);
72
73 entry = (ia64_sal_handler) &virt_entry;
74
75 IA64_FW_CALL(entry, c->ret,
76 c->arg[0], c->arg[1], c->arg[2], c->arg[3],
77 c->arg[4], c->arg[5], c->arg[6], c->arg[7]);
78}
79
80static void aml_nfw_read_arg(u8 *offset, u32 bit_width, acpi_integer *value)
81{
82 switch (bit_width) {
83 case 8:
84 *value = *(u8 *)offset;
85 break;
86 case 16:
87 *value = *(u16 *)offset;
88 break;
89 case 32:
90 *value = *(u32 *)offset;
91 break;
92 case 64:
93 *value = *(u64 *)offset;
94 break;
95 }
96}
97
98static void aml_nfw_write_arg(u8 *offset, u32 bit_width, acpi_integer *value)
99{
100 switch (bit_width) {
101 case 8:
102 *(u8 *) offset = *value;
103 break;
104 case 16:
105 *(u16 *) offset = *value;
106 break;
107 case 32:
108 *(u32 *) offset = *value;
109 break;
110 case 64:
111 *(u64 *) offset = *value;
112 break;
113 }
114}
115
116static acpi_status aml_nfw_handler(u32 function, acpi_physical_address address,
117 u32 bit_width, acpi_integer *value, void *handler_context,
118 void *region_context)
119{
120 struct ia64_nfw_context *context = handler_context;
121 u8 *offset = (u8 *) context + address;
122
123 if (bit_width != 8 && bit_width != 16 &&
124 bit_width != 32 && bit_width != 64)
125 return AE_BAD_PARAMETER;
126
127 if (address + (bit_width >> 3) > sizeof(struct ia64_nfw_context))
128 return AE_BAD_PARAMETER;
129
130 switch (function) {
131 case ACPI_READ:
132 if (address == offsetof(struct ia64_nfw_context, ret))
133 aml_nfw_execute(context);
134 aml_nfw_read_arg(offset, bit_width, value);
135 break;
136 case ACPI_WRITE:
137 aml_nfw_write_arg(offset, bit_width, value);
138 break;
139 }
140
141 return AE_OK;
142}
143
144static struct ia64_nfw_context global_context;
145static int global_handler_registered;
146
147static int aml_nfw_add_global_handler(void)
148{
149 acpi_status status;
150
151 if (global_handler_registered)
152 return 0;
153
154 status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,
155 AML_NFW_SPACE, aml_nfw_handler, NULL, &global_context);
156 if (ACPI_FAILURE(status))
157 return -ENODEV;
158
159 global_handler_registered = 1;
160 printk(KERN_INFO "Global 0x%02X opregion handler registered\n",
161 AML_NFW_SPACE);
162 return 0;
163}
164
165static int aml_nfw_remove_global_handler(void)
166{
167 acpi_status status;
168
169 if (!global_handler_registered)
170 return 0;
171
172 status = acpi_remove_address_space_handler(ACPI_ROOT_OBJECT,
173 AML_NFW_SPACE, aml_nfw_handler);
174 if (ACPI_FAILURE(status))
175 return -ENODEV;
176
177 global_handler_registered = 0;
178 printk(KERN_INFO "Global 0x%02X opregion handler removed\n",
179 AML_NFW_SPACE);
180 return 0;
181}
182
183static int aml_nfw_add(struct acpi_device *device)
184{
185 /*
186 * We would normally allocate a new context structure and install
187 * the address space handler for the specific device we found.
188 * But the HP-UX implementation shares a single global context
189 * and always puts the handler at the root, so we'll do the same.
190 */
191 return aml_nfw_add_global_handler();
192}
193
194static int aml_nfw_remove(struct acpi_device *device, int type)
195{
196 return aml_nfw_remove_global_handler();
197}
198
199static const struct acpi_device_id aml_nfw_ids[] = {
200 {"HPQ5001", 0},
201 {"", 0}
202};
203
204static struct acpi_driver acpi_aml_nfw_driver = {
205 .name = "native firmware",
206 .ids = aml_nfw_ids,
207 .ops = {
208 .add = aml_nfw_add,
209 .remove = aml_nfw_remove,
210 },
211};
212
213static int __init aml_nfw_init(void)
214{
215 int result;
216
217 if (force_register)
218 aml_nfw_add_global_handler();
219
220 result = acpi_bus_register_driver(&acpi_aml_nfw_driver);
221 if (result < 0) {
222 aml_nfw_remove_global_handler();
223 return result;
224 }
225
226 return 0;
227}
228
229static void __exit aml_nfw_exit(void)
230{
231 acpi_bus_unregister_driver(&acpi_aml_nfw_driver);
232 aml_nfw_remove_global_handler();
233}
234
235module_init(aml_nfw_init);
236module_exit(aml_nfw_exit);
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index 1d64ef478dde..f1cf2df97a2d 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -118,11 +118,6 @@ machine_crash_shutdown(struct pt_regs *pt)
118static void 118static void
119machine_kdump_on_init(void) 119machine_kdump_on_init(void)
120{ 120{
121 if (!ia64_kimage) {
122 printk(KERN_NOTICE "machine_kdump_on_init(): "
123 "kdump not configured\n");
124 return;
125 }
126 local_irq_disable(); 121 local_irq_disable();
127 kexec_disable_iosapic(); 122 kexec_disable_iosapic();
128 machine_kexec(ia64_kimage); 123 machine_kexec(ia64_kimage);
@@ -156,6 +151,14 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data)
156 if (!kdump_on_init) 151 if (!kdump_on_init)
157 return NOTIFY_DONE; 152 return NOTIFY_DONE;
158 153
154 if (!ia64_kimage) {
155 if (val == DIE_INIT_MONARCH_LEAVE)
156 ia64_mca_printk(KERN_NOTICE
157 "%s: kdump not configured\n",
158 __FUNCTION__);
159 return NOTIFY_DONE;
160 }
161
159 if (val != DIE_INIT_MONARCH_LEAVE && 162 if (val != DIE_INIT_MONARCH_LEAVE &&
160 val != DIE_INIT_SLAVE_LEAVE && 163 val != DIE_INIT_SLAVE_LEAVE &&
161 val != DIE_INIT_MONARCH_PROCESS && 164 val != DIE_INIT_MONARCH_PROCESS &&
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c
index 4f0f3b8c1ee2..58e943a5d95c 100644
--- a/arch/ia64/kernel/machine_kexec.c
+++ b/arch/ia64/kernel/machine_kexec.c
@@ -79,7 +79,6 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg)
79 relocate_new_kernel_t rnk; 79 relocate_new_kernel_t rnk;
80 void *pal_addr = efi_get_pal_addr(); 80 void *pal_addr = efi_get_pal_addr();
81 unsigned long code_addr = (unsigned long)page_address(image->control_code_page); 81 unsigned long code_addr = (unsigned long)page_address(image->control_code_page);
82 unsigned long vector;
83 int ii; 82 int ii;
84 83
85 BUG_ON(!image); 84 BUG_ON(!image);
@@ -107,11 +106,8 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg)
107 /* unmask TPR and clear any pending interrupts */ 106 /* unmask TPR and clear any pending interrupts */
108 ia64_setreg(_IA64_REG_CR_TPR, 0); 107 ia64_setreg(_IA64_REG_CR_TPR, 0);
109 ia64_srlz_d(); 108 ia64_srlz_d();
110 vector = ia64_get_ivr(); 109 while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR)
111 while (vector != IA64_SPURIOUS_INT_VECTOR) {
112 ia64_eoi(); 110 ia64_eoi();
113 vector = ia64_get_ivr();
114 }
115 platform_kernel_launch_event(); 111 platform_kernel_launch_event();
116 rnk = (relocate_new_kernel_t)&code_addr; 112 rnk = (relocate_new_kernel_t)&code_addr;
117 (*rnk)(image->head, image->start, ia64_boot_param, 113 (*rnk)(image->head, image->start, ia64_boot_param,
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 63b73f3d4c9f..cc87025e8f54 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -701,8 +701,7 @@ ia64_mca_cmc_vector_enable_keventd(struct work_struct *unused)
701/* 701/*
702 * ia64_mca_wakeup 702 * ia64_mca_wakeup
703 * 703 *
704 * Send an inter-cpu interrupt to wake-up a particular cpu 704 * Send an inter-cpu interrupt to wake-up a particular cpu.
705 * and mark that cpu to be out of rendez.
706 * 705 *
707 * Inputs : cpuid 706 * Inputs : cpuid
708 * Outputs : None 707 * Outputs : None
@@ -711,14 +710,12 @@ static void
711ia64_mca_wakeup(int cpu) 710ia64_mca_wakeup(int cpu)
712{ 711{
713 platform_send_ipi(cpu, IA64_MCA_WAKEUP_VECTOR, IA64_IPI_DM_INT, 0); 712 platform_send_ipi(cpu, IA64_MCA_WAKEUP_VECTOR, IA64_IPI_DM_INT, 0);
714 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
715
716} 713}
717 714
718/* 715/*
719 * ia64_mca_wakeup_all 716 * ia64_mca_wakeup_all
720 * 717 *
721 * Wakeup all the cpus which have rendez'ed previously. 718 * Wakeup all the slave cpus which have rendez'ed previously.
722 * 719 *
723 * Inputs : None 720 * Inputs : None
724 * Outputs : None 721 * Outputs : None
@@ -741,7 +738,10 @@ ia64_mca_wakeup_all(void)
741 * 738 *
742 * This is handler used to put slave processors into spinloop 739 * This is handler used to put slave processors into spinloop
743 * while the monarch processor does the mca handling and later 740 * while the monarch processor does the mca handling and later
744 * wake each slave up once the monarch is done. 741 * wake each slave up once the monarch is done. The state
742 * IA64_MCA_RENDEZ_CHECKIN_DONE indicates the cpu is rendez'ed
743 * in SAL. The state IA64_MCA_RENDEZ_CHECKIN_NOTDONE indicates
744 * the cpu has come out of OS rendezvous.
745 * 745 *
746 * Inputs : None 746 * Inputs : None
747 * Outputs : None 747 * Outputs : None
@@ -778,6 +778,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg)
778 (long)&nd, 0, 0) == NOTIFY_STOP) 778 (long)&nd, 0, 0) == NOTIFY_STOP)
779 ia64_mca_spin(__FUNCTION__); 779 ia64_mca_spin(__FUNCTION__);
780 780
781 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
781 /* Enable all interrupts */ 782 /* Enable all interrupts */
782 local_irq_restore(flags); 783 local_irq_restore(flags);
783 return IRQ_HANDLED; 784 return IRQ_HANDLED;
@@ -1135,30 +1136,27 @@ no_mod:
1135static void 1136static void
1136ia64_wait_for_slaves(int monarch, const char *type) 1137ia64_wait_for_slaves(int monarch, const char *type)
1137{ 1138{
1138 int c, wait = 0, missing = 0; 1139 int c, i , wait;
1139 for_each_online_cpu(c) { 1140
1140 if (c == monarch) 1141 /*
1141 continue; 1142 * wait 5 seconds total for slaves (arbitrary)
1142 if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { 1143 */
1143 udelay(1000); /* short wait first */ 1144 for (i = 0; i < 5000; i++) {
1144 wait = 1; 1145 wait = 0;
1145 break; 1146 for_each_online_cpu(c) {
1146 } 1147 if (c == monarch)
1147 } 1148 continue;
1148 if (!wait) 1149 if (ia64_mc_info.imi_rendez_checkin[c]
1149 goto all_in; 1150 == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) {
1150 for_each_online_cpu(c) { 1151 udelay(1000); /* short wait */
1151 if (c == monarch) 1152 wait = 1;
1152 continue; 1153 break;
1153 if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { 1154 }
1154 udelay(5*1000000); /* wait 5 seconds for slaves (arbitrary) */
1155 if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE)
1156 missing = 1;
1157 break;
1158 } 1155 }
1156 if (!wait)
1157 goto all_in;
1159 } 1158 }
1160 if (!missing) 1159
1161 goto all_in;
1162 /* 1160 /*
1163 * Maybe slave(s) dead. Print buffered messages immediately. 1161 * Maybe slave(s) dead. Print buffered messages immediately.
1164 */ 1162 */
@@ -1224,26 +1222,27 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw,
1224 if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) 1222 if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0)
1225 == NOTIFY_STOP) 1223 == NOTIFY_STOP)
1226 ia64_mca_spin(__FUNCTION__); 1224 ia64_mca_spin(__FUNCTION__);
1225
1226 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA;
1227 if (sos->monarch) { 1227 if (sos->monarch) {
1228 ia64_wait_for_slaves(cpu, "MCA"); 1228 ia64_wait_for_slaves(cpu, "MCA");
1229
1230 /* Wakeup all the processors which are spinning in the
1231 * rendezvous loop. They will leave SAL, then spin in the OS
1232 * with interrupts disabled until this monarch cpu leaves the
1233 * MCA handler. That gets control back to the OS so we can
1234 * backtrace the other cpus, backtrace when spinning in SAL
1235 * does not work.
1236 */
1237 ia64_mca_wakeup_all();
1238 if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0)
1239 == NOTIFY_STOP)
1240 ia64_mca_spin(__FUNCTION__);
1229 } else { 1241 } else {
1230 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA;
1231 while (cpu_isset(cpu, mca_cpu)) 1242 while (cpu_isset(cpu, mca_cpu))
1232 cpu_relax(); /* spin until monarch wakes us */ 1243 cpu_relax(); /* spin until monarch wakes us */
1233 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
1234 } 1244 }
1235 1245
1236 /* Wakeup all the processors which are spinning in the rendezvous loop.
1237 * They will leave SAL, then spin in the OS with interrupts disabled
1238 * until this monarch cpu leaves the MCA handler. That gets control
1239 * back to the OS so we can backtrace the other cpus, backtrace when
1240 * spinning in SAL does not work.
1241 */
1242 ia64_mca_wakeup_all();
1243 if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0)
1244 == NOTIFY_STOP)
1245 ia64_mca_spin(__FUNCTION__);
1246
1247 /* Get the MCA error record and log it */ 1246 /* Get the MCA error record and log it */
1248 ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA); 1247 ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA);
1249 1248
@@ -1277,21 +1276,22 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw,
1277 /* wake up the next monarch cpu, 1276 /* wake up the next monarch cpu,
1278 * and put this cpu in the rendez loop. 1277 * and put this cpu in the rendez loop.
1279 */ 1278 */
1280 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA;
1281 for_each_online_cpu(i) { 1279 for_each_online_cpu(i) {
1282 if (cpu_isset(i, mca_cpu)) { 1280 if (cpu_isset(i, mca_cpu)) {
1283 monarch_cpu = i; 1281 monarch_cpu = i;
1284 cpu_clear(i, mca_cpu); /* wake next cpu */ 1282 cpu_clear(i, mca_cpu); /* wake next cpu */
1285 while (monarch_cpu != -1) 1283 while (monarch_cpu != -1)
1286 cpu_relax(); /* spin until last cpu leaves */ 1284 cpu_relax(); /* spin until last cpu leaves */
1287 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
1288 set_curr_task(cpu, previous_current); 1285 set_curr_task(cpu, previous_current);
1286 ia64_mc_info.imi_rendez_checkin[cpu]
1287 = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
1289 return; 1288 return;
1290 } 1289 }
1291 } 1290 }
1292 } 1291 }
1293 set_curr_task(cpu, previous_current); 1292 set_curr_task(cpu, previous_current);
1294 monarch_cpu = -1; 1293 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
1294 monarch_cpu = -1; /* This frees the slaves and previous monarchs */
1295} 1295}
1296 1296
1297static DECLARE_WORK(cmc_disable_work, ia64_mca_cmc_vector_disable_keventd); 1297static DECLARE_WORK(cmc_disable_work, ia64_mca_cmc_vector_disable_keventd);
diff --git a/arch/ia64/kernel/mca_drv.h b/arch/ia64/kernel/mca_drv.h
index c85e943ba5fd..485e34d0b199 100644
--- a/arch/ia64/kernel/mca_drv.h
+++ b/arch/ia64/kernel/mca_drv.h
@@ -118,7 +118,5 @@ struct mca_table_entry {
118 118
119extern const struct mca_table_entry *search_mca_tables (unsigned long addr); 119extern const struct mca_table_entry *search_mca_tables (unsigned long addr);
120extern int mca_recover_range(unsigned long); 120extern int mca_recover_range(unsigned long);
121extern void ia64_mca_printk(const char * fmt, ...)
122 __attribute__ ((format (printf, 1, 2)));
123extern void ia64_mlogbuf_dump(void); 121extern void ia64_mlogbuf_dump(void);
124 122
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
index 85829e27785c..6ef6ffb943a0 100644
--- a/arch/ia64/kernel/palinfo.c
+++ b/arch/ia64/kernel/palinfo.c
@@ -907,7 +907,7 @@ palinfo_read_entry(char *page, char **start, off_t off, int count, int *eof, voi
907 return len; 907 return len;
908} 908}
909 909
910static void 910static void __cpuinit
911create_palinfo_proc_entries(unsigned int cpu) 911create_palinfo_proc_entries(unsigned int cpu)
912{ 912{
913# define CPUSTR "cpu%d" 913# define CPUSTR "cpu%d"
@@ -968,7 +968,7 @@ remove_palinfo_proc_entries(unsigned int hcpu)
968 } 968 }
969} 969}
970 970
971static int palinfo_cpu_callback(struct notifier_block *nfb, 971static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb,
972 unsigned long action, void *hcpu) 972 unsigned long action, void *hcpu)
973{ 973{
974 unsigned int hotcpu = (unsigned long)hcpu; 974 unsigned int hotcpu = (unsigned long)hcpu;
@@ -986,7 +986,7 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
986 return NOTIFY_OK; 986 return NOTIFY_OK;
987} 987}
988 988
989static struct notifier_block palinfo_cpu_notifier = 989static struct notifier_block palinfo_cpu_notifier __cpuinitdata =
990{ 990{
991 .notifier_call = palinfo_cpu_callback, 991 .notifier_call = palinfo_cpu_callback,
992 .priority = 0, 992 .priority = 0,
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index 14b8e5a6222b..f55fa07849c4 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -1538,13 +1538,6 @@ init_pfm_fs(void)
1538 return err; 1538 return err;
1539} 1539}
1540 1540
1541static void __exit
1542exit_pfm_fs(void)
1543{
1544 unregister_filesystem(&pfm_fs_type);
1545 mntput(pfmfs_mnt);
1546}
1547
1548static ssize_t 1541static ssize_t
1549pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) 1542pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos)
1550{ 1543{
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index 25cd75f50ab1..779c3cca206c 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -574,7 +574,7 @@ static const struct file_operations salinfo_data_fops = {
574 .write = salinfo_log_write, 574 .write = salinfo_log_write,
575}; 575};
576 576
577static int __devinit 577static int __cpuinit
578salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) 578salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
579{ 579{
580 unsigned int i, cpu = (unsigned long)hcpu; 580 unsigned int i, cpu = (unsigned long)hcpu;
@@ -615,7 +615,7 @@ salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu
615 return NOTIFY_OK; 615 return NOTIFY_OK;
616} 616}
617 617
618static struct notifier_block salinfo_cpu_notifier = 618static struct notifier_block salinfo_cpu_notifier __cpuinitdata =
619{ 619{
620 .notifier_call = salinfo_cpu_callback, 620 .notifier_call = salinfo_cpu_callback,
621 .priority = 0, 621 .priority = 0,
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index 94ae3c87d828..14261fee5f4d 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -118,11 +118,11 @@ struct cpu_cache_info {
118 struct kobject kobj; 118 struct kobject kobj;
119}; 119};
120 120
121static struct cpu_cache_info all_cpu_cache_info[NR_CPUS]; 121static struct cpu_cache_info all_cpu_cache_info[NR_CPUS] __cpuinitdata;
122#define LEAF_KOBJECT_PTR(x,y) (&all_cpu_cache_info[x].cache_leaves[y]) 122#define LEAF_KOBJECT_PTR(x,y) (&all_cpu_cache_info[x].cache_leaves[y])
123 123
124#ifdef CONFIG_SMP 124#ifdef CONFIG_SMP
125static void cache_shared_cpu_map_setup( unsigned int cpu, 125static void __cpuinit cache_shared_cpu_map_setup( unsigned int cpu,
126 struct cache_info * this_leaf) 126 struct cache_info * this_leaf)
127{ 127{
128 pal_cache_shared_info_t csi; 128 pal_cache_shared_info_t csi;
@@ -157,7 +157,7 @@ static void cache_shared_cpu_map_setup( unsigned int cpu,
157 &csi) == PAL_STATUS_SUCCESS); 157 &csi) == PAL_STATUS_SUCCESS);
158} 158}
159#else 159#else
160static void cache_shared_cpu_map_setup(unsigned int cpu, 160static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu,
161 struct cache_info * this_leaf) 161 struct cache_info * this_leaf)
162{ 162{
163 cpu_set(cpu, this_leaf->shared_cpu_map); 163 cpu_set(cpu, this_leaf->shared_cpu_map);
@@ -428,13 +428,13 @@ static struct notifier_block __cpuinitdata cache_cpu_notifier =
428 .notifier_call = cache_cpu_callback 428 .notifier_call = cache_cpu_callback
429}; 429};
430 430
431static int __cpuinit cache_sysfs_init(void) 431static int __init cache_sysfs_init(void)
432{ 432{
433 int i; 433 int i;
434 434
435 for_each_online_cpu(i) { 435 for_each_online_cpu(i) {
436 cache_cpu_callback(&cache_cpu_notifier, CPU_ONLINE, 436 struct sys_device *sys_dev = get_cpu_sysdev((unsigned int)i);
437 (void *)(long)i); 437 cache_add_dev(sys_dev);
438 } 438 }
439 439
440 register_hotcpu_notifier(&cache_cpu_notifier); 440 register_hotcpu_notifier(&cache_cpu_notifier);
diff --git a/include/asm-ia64/mca.h b/include/asm-ia64/mca.h
index edd5d01028df..823553bf12e6 100644
--- a/include/asm-ia64/mca.h
+++ b/include/asm-ia64/mca.h
@@ -151,6 +151,8 @@ extern void ia64_mca_cmc_vector_setup(void);
151extern int ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *)); 151extern int ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *));
152extern void ia64_unreg_MCA_extension(void); 152extern void ia64_unreg_MCA_extension(void);
153extern u64 ia64_get_rnat(u64 *); 153extern u64 ia64_get_rnat(u64 *);
154extern void ia64_mca_printk(const char * fmt, ...)
155 __attribute__ ((format (printf, 1, 2)));
154 156
155struct ia64_mca_notify_die { 157struct ia64_mca_notify_die {
156 struct ia64_sal_os_state *sos; 158 struct ia64_sal_os_state *sos;
diff --git a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h
index 46cadf5aaac5..1f5412d6f9bb 100644
--- a/include/asm-ia64/sal.h
+++ b/include/asm-ia64/sal.h
@@ -46,25 +46,28 @@
46extern spinlock_t sal_lock; 46extern spinlock_t sal_lock;
47 47
48/* SAL spec _requires_ eight args for each call. */ 48/* SAL spec _requires_ eight args for each call. */
49#define __SAL_CALL(result,a0,a1,a2,a3,a4,a5,a6,a7) \ 49#define __IA64_FW_CALL(entry,result,a0,a1,a2,a3,a4,a5,a6,a7) \
50 result = (*ia64_sal)(a0,a1,a2,a3,a4,a5,a6,a7) 50 result = (*entry)(a0,a1,a2,a3,a4,a5,a6,a7)
51 51
52# define SAL_CALL(result,args...) do { \ 52# define IA64_FW_CALL(entry,result,args...) do { \
53 unsigned long __ia64_sc_flags; \ 53 unsigned long __ia64_sc_flags; \
54 struct ia64_fpreg __ia64_sc_fr[6]; \ 54 struct ia64_fpreg __ia64_sc_fr[6]; \
55 ia64_save_scratch_fpregs(__ia64_sc_fr); \ 55 ia64_save_scratch_fpregs(__ia64_sc_fr); \
56 spin_lock_irqsave(&sal_lock, __ia64_sc_flags); \ 56 spin_lock_irqsave(&sal_lock, __ia64_sc_flags); \
57 __SAL_CALL(result, args); \ 57 __IA64_FW_CALL(entry, result, args); \
58 spin_unlock_irqrestore(&sal_lock, __ia64_sc_flags); \ 58 spin_unlock_irqrestore(&sal_lock, __ia64_sc_flags); \
59 ia64_load_scratch_fpregs(__ia64_sc_fr); \ 59 ia64_load_scratch_fpregs(__ia64_sc_fr); \
60} while (0) 60} while (0)
61 61
62# define SAL_CALL(result,args...) \
63 IA64_FW_CALL(ia64_sal, result, args);
64
62# define SAL_CALL_NOLOCK(result,args...) do { \ 65# define SAL_CALL_NOLOCK(result,args...) do { \
63 unsigned long __ia64_scn_flags; \ 66 unsigned long __ia64_scn_flags; \
64 struct ia64_fpreg __ia64_scn_fr[6]; \ 67 struct ia64_fpreg __ia64_scn_fr[6]; \
65 ia64_save_scratch_fpregs(__ia64_scn_fr); \ 68 ia64_save_scratch_fpregs(__ia64_scn_fr); \
66 local_irq_save(__ia64_scn_flags); \ 69 local_irq_save(__ia64_scn_flags); \
67 __SAL_CALL(result, args); \ 70 __IA64_FW_CALL(ia64_sal, result, args); \
68 local_irq_restore(__ia64_scn_flags); \ 71 local_irq_restore(__ia64_scn_flags); \
69 ia64_load_scratch_fpregs(__ia64_scn_fr); \ 72 ia64_load_scratch_fpregs(__ia64_scn_fr); \
70} while (0) 73} while (0)
@@ -73,7 +76,7 @@ extern spinlock_t sal_lock;
73 struct ia64_fpreg __ia64_scs_fr[6]; \ 76 struct ia64_fpreg __ia64_scs_fr[6]; \
74 ia64_save_scratch_fpregs(__ia64_scs_fr); \ 77 ia64_save_scratch_fpregs(__ia64_scs_fr); \
75 preempt_disable(); \ 78 preempt_disable(); \
76 __SAL_CALL(result, args); \ 79 __IA64_FW_CALL(ia64_sal, result, args); \
77 preempt_enable(); \ 80 preempt_enable(); \
78 ia64_load_scratch_fpregs(__ia64_scs_fr); \ 81 ia64_load_scratch_fpregs(__ia64_scs_fr); \
79} while (0) 82} while (0)