aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-27 12:42:21 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-27 12:42:21 -0400
commit96665822dc43957d4337509e138017dc1cb960b1 (patch)
tree11e9a33e2f58c477db25e5a15f176534ed636d43
parentd96a2a5c6479342229416565944b56bc7a2b1a60 (diff)
parent175587cca7447daf5a13e4a53d32360ed8cba804 (diff)
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix SLB initialization at boot time [POWERPC] Fix undefined reference to device_power_up/resume [POWERPC] cell: Update cell_defconfig for 2.6.23 [POWERPC] axonram: Do not delete gendisks queue in error path [POWERPC] axonram: Module modification for latest firmware API changes [POWERPC] cell: Support pinhole-reset on IBM cell blades [POWERPC] spu_manage: Use newer physical-id attribute [POWERPC] pasemi: Another IOMMU bugfix for 64K PAGE_SIZE
-rw-r--r--arch/powerpc/configs/cell_defconfig220
-rw-r--r--arch/powerpc/mm/slb.c36
-rw-r--r--arch/powerpc/platforms/cell/cbe_regs.h8
-rw-r--r--arch/powerpc/platforms/cell/cbe_thermal.c6
-rw-r--r--arch/powerpc/platforms/cell/pervasive.c26
-rw-r--r--arch/powerpc/platforms/cell/spu_manage.c2
-rw-r--r--arch/powerpc/platforms/pasemi/iommu.c6
-rw-r--r--arch/powerpc/sysdev/axonram.c46
-rw-r--r--drivers/macintosh/adb.c4
-rw-r--r--drivers/macintosh/via-pmu.c34
-rw-r--r--include/linux/pmu.h2
11 files changed, 172 insertions, 218 deletions
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index d9ac24e8de16..8b47c846421c 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1,9 +1,23 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc6 3# Linux kernel version: 2.6.23-rc3
4# Tue Jun 26 12:32:34 2007 4# Wed Aug 22 15:19:19 2007
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7
8#
9# Processor support
10#
11# CONFIG_POWER4_ONLY is not set
12CONFIG_POWER3=y
13CONFIG_POWER4=y
14CONFIG_PPC_FPU=y
15CONFIG_ALTIVEC=y
16CONFIG_PPC_STD_MMU=y
17CONFIG_PPC_MM_SLICES=y
18CONFIG_VIRT_CPU_ACCOUNTING=y
19CONFIG_SMP=y
20CONFIG_NR_CPUS=4
7CONFIG_64BIT=y 21CONFIG_64BIT=y
8CONFIG_PPC_MERGE=y 22CONFIG_PPC_MERGE=y
9CONFIG_MMU=y 23CONFIG_MMU=y
@@ -15,6 +29,7 @@ CONFIG_ARCH_HAS_ILOG2_U64=y
15CONFIG_GENERIC_HWEIGHT=y 29CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y 30CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_GENERIC_FIND_NEXT_BIT=y 31CONFIG_GENERIC_FIND_NEXT_BIT=y
32CONFIG_ARCH_NO_VIRT_TO_BUS=y
18CONFIG_PPC=y 33CONFIG_PPC=y
19CONFIG_EARLY_PRINTK=y 34CONFIG_EARLY_PRINTK=y
20CONFIG_COMPAT=y 35CONFIG_COMPAT=y
@@ -22,51 +37,33 @@ CONFIG_SYSVIPC_COMPAT=y
22CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 37CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
23CONFIG_ARCH_MAY_HAVE_PC_FDC=y 38CONFIG_ARCH_MAY_HAVE_PC_FDC=y
24CONFIG_PPC_OF=y 39CONFIG_PPC_OF=y
40CONFIG_OF=y
25CONFIG_PPC_UDBG_16550=y 41CONFIG_PPC_UDBG_16550=y
26# CONFIG_GENERIC_TBSYNC is not set 42# CONFIG_GENERIC_TBSYNC is not set
27CONFIG_AUDIT_ARCH=y 43CONFIG_AUDIT_ARCH=y
28CONFIG_GENERIC_BUG=y 44CONFIG_GENERIC_BUG=y
29# CONFIG_DEFAULT_UIMAGE is not set 45# CONFIG_DEFAULT_UIMAGE is not set
30
31#
32# Processor support
33#
34# CONFIG_POWER4_ONLY is not set
35CONFIG_POWER3=y
36CONFIG_POWER4=y
37CONFIG_PPC_FPU=y
38# CONFIG_PPC_DCR_NATIVE is not set 46# CONFIG_PPC_DCR_NATIVE is not set
39CONFIG_PPC_DCR_MMIO=y 47CONFIG_PPC_DCR_MMIO=y
40CONFIG_PPC_DCR=y 48CONFIG_PPC_DCR=y
41CONFIG_PPC_OF_PLATFORM_PCI=y 49CONFIG_PPC_OF_PLATFORM_PCI=y
42CONFIG_ALTIVEC=y
43CONFIG_PPC_STD_MMU=y
44CONFIG_PPC_MM_SLICES=y
45CONFIG_VIRT_CPU_ACCOUNTING=y
46CONFIG_SMP=y
47CONFIG_NR_CPUS=4
48CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 50CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
49 51
50# 52#
51# Code maturity level options 53# General setup
52# 54#
53CONFIG_EXPERIMENTAL=y 55CONFIG_EXPERIMENTAL=y
54CONFIG_LOCK_KERNEL=y 56CONFIG_LOCK_KERNEL=y
55CONFIG_INIT_ENV_ARG_LIMIT=32 57CONFIG_INIT_ENV_ARG_LIMIT=32
56
57#
58# General setup
59#
60CONFIG_LOCALVERSION="" 58CONFIG_LOCALVERSION=""
61CONFIG_LOCALVERSION_AUTO=y 59CONFIG_LOCALVERSION_AUTO=y
62CONFIG_SWAP=y 60CONFIG_SWAP=y
63CONFIG_SYSVIPC=y 61CONFIG_SYSVIPC=y
64# CONFIG_IPC_NS is not set
65CONFIG_SYSVIPC_SYSCTL=y 62CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 63# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 64# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 65# CONFIG_TASKSTATS is not set
69# CONFIG_UTS_NS is not set 66# CONFIG_USER_NS is not set
70# CONFIG_AUDIT is not set 67# CONFIG_AUDIT is not set
71CONFIG_IKCONFIG=y 68CONFIG_IKCONFIG=y
72CONFIG_IKCONFIG_PROC=y 69CONFIG_IKCONFIG_PROC=y
@@ -96,16 +93,13 @@ CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 93CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 94CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
99CONFIG_SLAB=y 96CONFIG_SLUB_DEBUG=y
100# CONFIG_SLUB is not set 97# CONFIG_SLAB is not set
98CONFIG_SLUB=y
101# CONFIG_SLOB is not set 99# CONFIG_SLOB is not set
102CONFIG_RT_MUTEXES=y 100CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 101# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
105
106#
107# Loadable module support
108#
109CONFIG_MODULES=y 103CONFIG_MODULES=y
110CONFIG_MODULE_UNLOAD=y 104CONFIG_MODULE_UNLOAD=y
111# CONFIG_MODULE_FORCE_UNLOAD is not set 105# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -113,12 +107,9 @@ CONFIG_MODULE_UNLOAD=y
113# CONFIG_MODULE_SRCVERSION_ALL is not set 107# CONFIG_MODULE_SRCVERSION_ALL is not set
114CONFIG_KMOD=y 108CONFIG_KMOD=y
115CONFIG_STOP_MACHINE=y 109CONFIG_STOP_MACHINE=y
116
117#
118# Block layer
119#
120CONFIG_BLOCK=y 110CONFIG_BLOCK=y
121# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
112# CONFIG_BLK_DEV_BSG is not set
122 113
123# 114#
124# IO Schedulers 115# IO Schedulers
@@ -138,7 +129,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
138# 129#
139CONFIG_PPC_MULTIPLATFORM=y 130CONFIG_PPC_MULTIPLATFORM=y
140# CONFIG_EMBEDDED6xx is not set 131# CONFIG_EMBEDDED6xx is not set
141# CONFIG_APUS is not set 132# CONFIG_PPC_82xx is not set
133# CONFIG_PPC_83xx is not set
134# CONFIG_PPC_86xx is not set
142# CONFIG_PPC_PSERIES is not set 135# CONFIG_PPC_PSERIES is not set
143# CONFIG_PPC_ISERIES is not set 136# CONFIG_PPC_ISERIES is not set
144# CONFIG_PPC_MPC52xx is not set 137# CONFIG_PPC_MPC52xx is not set
@@ -158,7 +151,11 @@ CONFIG_PS3_HTAB_SIZE=20
158CONFIG_PS3_USE_LPAR_ADDR=y 151CONFIG_PS3_USE_LPAR_ADDR=y
159CONFIG_PS3_VUART=y 152CONFIG_PS3_VUART=y
160CONFIG_PS3_PS3AV=y 153CONFIG_PS3_PS3AV=y
161CONFIG_PS3_SYS_MANAGER=y 154CONFIG_PS3_SYS_MANAGER=m
155CONFIG_PS3_STORAGE=y
156CONFIG_PS3_DISK=y
157CONFIG_PS3_ROM=m
158CONFIG_PS3_FLASH=m
162CONFIG_PPC_CELL=y 159CONFIG_PPC_CELL=y
163CONFIG_PPC_CELL_NATIVE=y 160CONFIG_PPC_CELL_NATIVE=y
164CONFIG_PPC_IBM_CELL_BLADE=y 161CONFIG_PPC_IBM_CELL_BLADE=y
@@ -171,6 +168,7 @@ CONFIG_SPU_BASE=y
171CONFIG_CBE_RAS=y 168CONFIG_CBE_RAS=y
172CONFIG_CBE_THERM=m 169CONFIG_CBE_THERM=m
173CONFIG_CBE_CPUFREQ=m 170CONFIG_CBE_CPUFREQ=m
171CONFIG_CBE_CPUFREQ_PMI=m
174# CONFIG_PQ2ADS is not set 172# CONFIG_PQ2ADS is not set
175CONFIG_PPC_NATIVE=y 173CONFIG_PPC_NATIVE=y
176CONFIG_UDBG_RTAS_CONSOLE=y 174CONFIG_UDBG_RTAS_CONSOLE=y
@@ -183,7 +181,7 @@ CONFIG_PPC_RTAS=y
183# CONFIG_RTAS_ERROR_LOGGING is not set 181# CONFIG_RTAS_ERROR_LOGGING is not set
184CONFIG_RTAS_PROC=y 182CONFIG_RTAS_PROC=y
185CONFIG_RTAS_FLASH=y 183CONFIG_RTAS_FLASH=y
186# CONFIG_PPC_PMI is not set 184CONFIG_PPC_PMI=m
187CONFIG_MMIO_NVRAM=y 185CONFIG_MMIO_NVRAM=y
188# CONFIG_PPC_MPC106 is not set 186# CONFIG_PPC_MPC106 is not set
189# CONFIG_PPC_970_NAP is not set 187# CONFIG_PPC_970_NAP is not set
@@ -206,6 +204,8 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
206# CPU Frequency drivers 204# CPU Frequency drivers
207# 205#
208# CONFIG_CPM2 is not set 206# CONFIG_CPM2 is not set
207CONFIG_AXON_RAM=m
208# CONFIG_FSL_ULI1575 is not set
209 209
210# 210#
211# Kernel options 211# Kernel options
@@ -248,6 +248,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
248CONFIG_MIGRATION=y 248CONFIG_MIGRATION=y
249CONFIG_RESOURCES_64BIT=y 249CONFIG_RESOURCES_64BIT=y
250CONFIG_ZONE_DMA_FLAG=1 250CONFIG_ZONE_DMA_FLAG=1
251CONFIG_BOUNCE=y
251CONFIG_ARCH_MEMORY_PROBE=y 252CONFIG_ARCH_MEMORY_PROBE=y
252CONFIG_NODES_SPAN_OTHER_NODES=y 253CONFIG_NODES_SPAN_OTHER_NODES=y
253CONFIG_PPC_HAS_HASH_64K=y 254CONFIG_PPC_HAS_HASH_64K=y
@@ -268,7 +269,9 @@ CONFIG_GENERIC_ISA_DMA=y
268# CONFIG_PPC_INDIRECT_PCI is not set 269# CONFIG_PPC_INDIRECT_PCI is not set
269CONFIG_PCI=y 270CONFIG_PCI=y
270CONFIG_PCI_DOMAINS=y 271CONFIG_PCI_DOMAINS=y
272CONFIG_PCI_SYSCALL=y
271CONFIG_PCIEPORTBUS=y 273CONFIG_PCIEPORTBUS=y
274CONFIG_PCIEAER=y
272CONFIG_ARCH_SUPPORTS_MSI=y 275CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 276# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
@@ -359,6 +362,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
359CONFIG_NETFILTER_XT_TARGET_MARK=m 362CONFIG_NETFILTER_XT_TARGET_MARK=m
360CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 363CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
361CONFIG_NETFILTER_XT_TARGET_NFLOG=m 364CONFIG_NETFILTER_XT_TARGET_NFLOG=m
365# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
362CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 366CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
363CONFIG_NETFILTER_XT_MATCH_COMMENT=m 367CONFIG_NETFILTER_XT_MATCH_COMMENT=m
364CONFIG_NETFILTER_XT_MATCH_DCCP=m 368CONFIG_NETFILTER_XT_MATCH_DCCP=m
@@ -377,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_SCTP=m
377CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 381CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
378CONFIG_NETFILTER_XT_MATCH_STRING=m 382CONFIG_NETFILTER_XT_MATCH_STRING=m
379CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 383CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
384CONFIG_NETFILTER_XT_MATCH_U32=m
380CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 385CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
381 386
382# 387#
@@ -448,6 +453,7 @@ CONFIG_NET_CLS_ROUTE=y
448# CONFIG_MAC80211 is not set 453# CONFIG_MAC80211 is not set
449# CONFIG_IEEE80211 is not set 454# CONFIG_IEEE80211 is not set
450# CONFIG_RFKILL is not set 455# CONFIG_RFKILL is not set
456# CONFIG_NET_9P is not set
451 457
452# 458#
453# Device Drivers 459# Device Drivers
@@ -462,28 +468,12 @@ CONFIG_FW_LOADER=y
462# CONFIG_DEBUG_DRIVER is not set 468# CONFIG_DEBUG_DRIVER is not set
463# CONFIG_DEBUG_DEVRES is not set 469# CONFIG_DEBUG_DEVRES is not set
464# CONFIG_SYS_HYPERVISOR is not set 470# CONFIG_SYS_HYPERVISOR is not set
465
466#
467# Connector - unified userspace <-> kernelspace linker
468#
469# CONFIG_CONNECTOR is not set 471# CONFIG_CONNECTOR is not set
470# CONFIG_MTD is not set 472# CONFIG_MTD is not set
471 473CONFIG_OF_DEVICE=y
472#
473# Parallel port support
474#
475# CONFIG_PARPORT is not set 474# CONFIG_PARPORT is not set
476 475CONFIG_BLK_DEV=y
477#
478# Plug and Play support
479#
480# CONFIG_PNPACPI is not set
481
482#
483# Block devices
484#
485# CONFIG_BLK_DEV_FD is not set 476# CONFIG_BLK_DEV_FD is not set
486# CONFIG_BLK_CPQ_DA is not set
487# CONFIG_BLK_CPQ_CISS_DA is not set 477# CONFIG_BLK_CPQ_CISS_DA is not set
488# CONFIG_BLK_DEV_DAC960 is not set 478# CONFIG_BLK_DEV_DAC960 is not set
489# CONFIG_BLK_DEV_UMEM is not set 479# CONFIG_BLK_DEV_UMEM is not set
@@ -499,14 +489,11 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
499CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 489CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
500# CONFIG_CDROM_PKTCDVD is not set 490# CONFIG_CDROM_PKTCDVD is not set
501# CONFIG_ATA_OVER_ETH is not set 491# CONFIG_ATA_OVER_ETH is not set
502 492CONFIG_MISC_DEVICES=y
503#
504# Misc devices
505#
506# CONFIG_PHANTOM is not set 493# CONFIG_PHANTOM is not set
494# CONFIG_EEPROM_93CX6 is not set
507# CONFIG_SGI_IOC4 is not set 495# CONFIG_SGI_IOC4 is not set
508# CONFIG_TIFM_CORE is not set 496# CONFIG_TIFM_CORE is not set
509# CONFIG_BLINK is not set
510CONFIG_IDE=y 497CONFIG_IDE=y
511CONFIG_BLK_DEV_IDE=y 498CONFIG_BLK_DEV_IDE=y
512 499
@@ -572,6 +559,7 @@ CONFIG_BLK_DEV_IDEDMA=y
572# 559#
573# CONFIG_RAID_ATTRS is not set 560# CONFIG_RAID_ATTRS is not set
574CONFIG_SCSI=y 561CONFIG_SCSI=y
562CONFIG_SCSI_DMA=y
575# CONFIG_SCSI_TGT is not set 563# CONFIG_SCSI_TGT is not set
576# CONFIG_SCSI_NETLINK is not set 564# CONFIG_SCSI_NETLINK is not set
577CONFIG_SCSI_PROC_FS=y 565CONFIG_SCSI_PROC_FS=y
@@ -604,10 +592,7 @@ CONFIG_SCSI_WAIT_SCAN=m
604# CONFIG_SCSI_ISCSI_ATTRS is not set 592# CONFIG_SCSI_ISCSI_ATTRS is not set
605CONFIG_SCSI_SAS_ATTRS=y 593CONFIG_SCSI_SAS_ATTRS=y
606# CONFIG_SCSI_SAS_LIBSAS is not set 594# CONFIG_SCSI_SAS_LIBSAS is not set
607 595CONFIG_SCSI_LOWLEVEL=y
608#
609# SCSI low-level drivers
610#
611# CONFIG_ISCSI_TCP is not set 596# CONFIG_ISCSI_TCP is not set
612# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 597# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
613# CONFIG_SCSI_3W_9XXX is not set 598# CONFIG_SCSI_3W_9XXX is not set
@@ -622,7 +607,6 @@ CONFIG_SCSI_SAS_ATTRS=y
622# CONFIG_MEGARAID_LEGACY is not set 607# CONFIG_MEGARAID_LEGACY is not set
623# CONFIG_MEGARAID_SAS is not set 608# CONFIG_MEGARAID_SAS is not set
624# CONFIG_SCSI_HPTIOP is not set 609# CONFIG_SCSI_HPTIOP is not set
625# CONFIG_SCSI_BUSLOGIC is not set
626# CONFIG_SCSI_DMX3191D is not set 610# CONFIG_SCSI_DMX3191D is not set
627# CONFIG_SCSI_EATA is not set 611# CONFIG_SCSI_EATA is not set
628# CONFIG_SCSI_FUTURE_DOMAIN is not set 612# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -696,10 +680,6 @@ CONFIG_PATA_PDC2027X=m
696# CONFIG_PATA_VIA is not set 680# CONFIG_PATA_VIA is not set
697# CONFIG_PATA_WINBOND is not set 681# CONFIG_PATA_WINBOND is not set
698# CONFIG_PATA_SCC is not set 682# CONFIG_PATA_SCC is not set
699
700#
701# Multi-device support (RAID and LVM)
702#
703CONFIG_MD=y 683CONFIG_MD=y
704CONFIG_BLK_DEV_MD=m 684CONFIG_BLK_DEV_MD=m
705CONFIG_MD_LINEAR=m 685CONFIG_MD_LINEAR=m
@@ -717,6 +697,7 @@ CONFIG_DM_MIRROR=m
717CONFIG_DM_ZERO=m 697CONFIG_DM_ZERO=m
718CONFIG_DM_MULTIPATH=m 698CONFIG_DM_MULTIPATH=m
719# CONFIG_DM_MULTIPATH_EMC is not set 699# CONFIG_DM_MULTIPATH_EMC is not set
700# CONFIG_DM_MULTIPATH_RDAC is not set
720# CONFIG_DM_DELAY is not set 701# CONFIG_DM_DELAY is not set
721 702
722# 703#
@@ -728,43 +709,30 @@ CONFIG_FUSION=y
728CONFIG_FUSION_SAS=y 709CONFIG_FUSION_SAS=y
729CONFIG_FUSION_MAX_SGE=128 710CONFIG_FUSION_MAX_SGE=128
730# CONFIG_FUSION_CTL is not set 711# CONFIG_FUSION_CTL is not set
712# CONFIG_FUSION_LOGGING is not set
731 713
732# 714#
733# IEEE 1394 (FireWire) support 715# IEEE 1394 (FireWire) support
734# 716#
735# CONFIG_FIREWIRE is not set 717# CONFIG_FIREWIRE is not set
736# CONFIG_IEEE1394 is not set 718# CONFIG_IEEE1394 is not set
737
738#
739# I2O device support
740#
741# CONFIG_I2O is not set 719# CONFIG_I2O is not set
742# CONFIG_MACINTOSH_DRIVERS is not set 720# CONFIG_MACINTOSH_DRIVERS is not set
743
744#
745# Network device support
746#
747CONFIG_NETDEVICES=y 721CONFIG_NETDEVICES=y
722# CONFIG_NETDEVICES_MULTIQUEUE is not set
748# CONFIG_DUMMY is not set 723# CONFIG_DUMMY is not set
749CONFIG_BONDING=m 724CONFIG_BONDING=m
725CONFIG_MACVLAN=m
750# CONFIG_EQUALIZER is not set 726# CONFIG_EQUALIZER is not set
751CONFIG_TUN=y 727CONFIG_TUN=y
752# CONFIG_ARCNET is not set 728# CONFIG_ARCNET is not set
753# CONFIG_PHYLIB is not set 729# CONFIG_PHYLIB is not set
754
755#
756# Ethernet (10 or 100Mbit)
757#
758CONFIG_NET_ETHERNET=y 730CONFIG_NET_ETHERNET=y
759CONFIG_MII=y 731CONFIG_MII=y
760# CONFIG_HAPPYMEAL is not set 732# CONFIG_HAPPYMEAL is not set
761# CONFIG_SUNGEM is not set 733# CONFIG_SUNGEM is not set
762# CONFIG_CASSINI is not set 734# CONFIG_CASSINI is not set
763# CONFIG_NET_VENDOR_3COM is not set 735# CONFIG_NET_VENDOR_3COM is not set
764
765#
766# Tulip family network device support
767#
768# CONFIG_NET_TULIP is not set 736# CONFIG_NET_TULIP is not set
769# CONFIG_HP100 is not set 737# CONFIG_HP100 is not set
770# CONFIG_NET_PCI is not set 738# CONFIG_NET_PCI is not set
@@ -781,11 +749,12 @@ CONFIG_E1000_NAPI=y
781# CONFIG_SIS190 is not set 749# CONFIG_SIS190 is not set
782CONFIG_SKGE=m 750CONFIG_SKGE=m
783CONFIG_SKY2=m 751CONFIG_SKY2=m
784# CONFIG_SK98LIN is not set 752# CONFIG_SKY2_DEBUG is not set
785# CONFIG_VIA_VELOCITY is not set 753# CONFIG_VIA_VELOCITY is not set
786CONFIG_TIGON3=y 754CONFIG_TIGON3=y
787# CONFIG_BNX2 is not set 755# CONFIG_BNX2 is not set
788CONFIG_SPIDER_NET=y 756CONFIG_SPIDER_NET=y
757CONFIG_GELIC_NET=m
789# CONFIG_QLA3XXX is not set 758# CONFIG_QLA3XXX is not set
790# CONFIG_ATL1 is not set 759# CONFIG_ATL1 is not set
791CONFIG_NETDEV_10000=y 760CONFIG_NETDEV_10000=y
@@ -824,15 +793,7 @@ CONFIG_NETDEV_10000=y
824# CONFIG_NETCONSOLE is not set 793# CONFIG_NETCONSOLE is not set
825# CONFIG_NETPOLL is not set 794# CONFIG_NETPOLL is not set
826# CONFIG_NET_POLL_CONTROLLER is not set 795# CONFIG_NET_POLL_CONTROLLER is not set
827
828#
829# ISDN subsystem
830#
831# CONFIG_ISDN is not set 796# CONFIG_ISDN is not set
832
833#
834# Telephony Support
835#
836# CONFIG_PHONE is not set 797# CONFIG_PHONE is not set
837 798
838# 799#
@@ -925,10 +886,6 @@ CONFIG_UNIX98_PTYS=y
925CONFIG_HVC_DRIVER=y 886CONFIG_HVC_DRIVER=y
926CONFIG_HVC_RTAS=y 887CONFIG_HVC_RTAS=y
927CONFIG_HVC_BEAT=y 888CONFIG_HVC_BEAT=y
928
929#
930# IPMI
931#
932CONFIG_IPMI_HANDLER=m 889CONFIG_IPMI_HANDLER=m
933# CONFIG_IPMI_PANIC_EVENT is not set 890# CONFIG_IPMI_PANIC_EVENT is not set
934CONFIG_IPMI_DEVICE_INTERFACE=m 891CONFIG_IPMI_DEVICE_INTERFACE=m
@@ -963,10 +920,6 @@ CONFIG_GEN_RTC=y
963# CONFIG_DRM is not set 920# CONFIG_DRM is not set
964# CONFIG_RAW_DRIVER is not set 921# CONFIG_RAW_DRIVER is not set
965# CONFIG_HANGCHECK_TIMER is not set 922# CONFIG_HANGCHECK_TIMER is not set
966
967#
968# TPM devices
969#
970# CONFIG_TCG_TPM is not set 923# CONFIG_TCG_TPM is not set
971CONFIG_DEVPORT=y 924CONFIG_DEVPORT=y
972CONFIG_I2C=y 925CONFIG_I2C=y
@@ -1000,6 +953,7 @@ CONFIG_I2C_ALGOBIT=y
1000# CONFIG_I2C_SIS5595 is not set 953# CONFIG_I2C_SIS5595 is not set
1001# CONFIG_I2C_SIS630 is not set 954# CONFIG_I2C_SIS630 is not set
1002# CONFIG_I2C_SIS96X is not set 955# CONFIG_I2C_SIS96X is not set
956# CONFIG_I2C_TAOS_EVM is not set
1003# CONFIG_I2C_STUB is not set 957# CONFIG_I2C_STUB is not set
1004# CONFIG_I2C_TINY_USB is not set 958# CONFIG_I2C_TINY_USB is not set
1005# CONFIG_I2C_VIA is not set 959# CONFIG_I2C_VIA is not set
@@ -1011,11 +965,13 @@ CONFIG_I2C_ALGOBIT=y
1011# 965#
1012# CONFIG_SENSORS_DS1337 is not set 966# CONFIG_SENSORS_DS1337 is not set
1013# CONFIG_SENSORS_DS1374 is not set 967# CONFIG_SENSORS_DS1374 is not set
968# CONFIG_DS1682 is not set
1014# CONFIG_SENSORS_EEPROM is not set 969# CONFIG_SENSORS_EEPROM is not set
1015# CONFIG_SENSORS_PCF8574 is not set 970# CONFIG_SENSORS_PCF8574 is not set
1016# CONFIG_SENSORS_PCA9539 is not set 971# CONFIG_SENSORS_PCA9539 is not set
1017# CONFIG_SENSORS_PCF8591 is not set 972# CONFIG_SENSORS_PCF8591 is not set
1018# CONFIG_SENSORS_MAX6875 is not set 973# CONFIG_SENSORS_MAX6875 is not set
974# CONFIG_SENSORS_TSL2550 is not set
1019# CONFIG_I2C_DEBUG_CORE is not set 975# CONFIG_I2C_DEBUG_CORE is not set
1020# CONFIG_I2C_DEBUG_ALGO is not set 976# CONFIG_I2C_DEBUG_ALGO is not set
1021# CONFIG_I2C_DEBUG_BUS is not set 977# CONFIG_I2C_DEBUG_BUS is not set
@@ -1026,11 +982,8 @@ CONFIG_I2C_ALGOBIT=y
1026# 982#
1027# CONFIG_SPI is not set 983# CONFIG_SPI is not set
1028# CONFIG_SPI_MASTER is not set 984# CONFIG_SPI_MASTER is not set
1029
1030#
1031# Dallas's 1-wire bus
1032#
1033# CONFIG_W1 is not set 985# CONFIG_W1 is not set
986# CONFIG_POWER_SUPPLY is not set
1034# CONFIG_HWMON is not set 987# CONFIG_HWMON is not set
1035 988
1036# 989#
@@ -1055,6 +1008,7 @@ CONFIG_I2C_ALGOBIT=y
1055# 1008#
1056# CONFIG_DISPLAY_SUPPORT is not set 1009# CONFIG_DISPLAY_SUPPORT is not set
1057# CONFIG_VGASTATE is not set 1010# CONFIG_VGASTATE is not set
1011CONFIG_VIDEO_OUTPUT_CONTROL=m
1058# CONFIG_FB is not set 1012# CONFIG_FB is not set
1059# CONFIG_FB_IBM_GXT4500 is not set 1013# CONFIG_FB_IBM_GXT4500 is not set
1060 1014
@@ -1068,10 +1022,7 @@ CONFIG_DUMMY_CONSOLE=y
1068# Sound 1022# Sound
1069# 1023#
1070# CONFIG_SOUND is not set 1024# CONFIG_SOUND is not set
1071 1025CONFIG_HID_SUPPORT=y
1072#
1073# HID Devices
1074#
1075CONFIG_HID=m 1026CONFIG_HID=m
1076# CONFIG_HID_DEBUG is not set 1027# CONFIG_HID_DEBUG is not set
1077 1028
@@ -1085,10 +1036,7 @@ CONFIG_HID=m
1085# 1036#
1086# CONFIG_USB_KBD is not set 1037# CONFIG_USB_KBD is not set
1087# CONFIG_USB_MOUSE is not set 1038# CONFIG_USB_MOUSE is not set
1088 1039CONFIG_USB_SUPPORT=y
1089#
1090# USB support
1091#
1092CONFIG_USB_ARCH_HAS_HCD=y 1040CONFIG_USB_ARCH_HAS_HCD=y
1093CONFIG_USB_ARCH_HAS_OHCI=y 1041CONFIG_USB_ARCH_HAS_OHCI=y
1094CONFIG_USB_ARCH_HAS_EHCI=y 1042CONFIG_USB_ARCH_HAS_EHCI=y
@@ -1122,6 +1070,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1122CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1070CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1123# CONFIG_USB_UHCI_HCD is not set 1071# CONFIG_USB_UHCI_HCD is not set
1124# CONFIG_USB_SL811_HCD is not set 1072# CONFIG_USB_SL811_HCD is not set
1073# CONFIG_USB_R8A66597_HCD is not set
1125 1074
1126# 1075#
1127# USB Device Class drivers 1076# USB Device Class drivers
@@ -1199,23 +1148,7 @@ CONFIG_USB_MON=y
1199# 1148#
1200# CONFIG_USB_GADGET is not set 1149# CONFIG_USB_GADGET is not set
1201# CONFIG_MMC is not set 1150# CONFIG_MMC is not set
1202
1203#
1204# LED devices
1205#
1206# CONFIG_NEW_LEDS is not set 1151# CONFIG_NEW_LEDS is not set
1207
1208#
1209# LED drivers
1210#
1211
1212#
1213# LED Triggers
1214#
1215
1216#
1217# InfiniBand support
1218#
1219CONFIG_INFINIBAND=m 1152CONFIG_INFINIBAND=m
1220CONFIG_INFINIBAND_USER_MAD=m 1153CONFIG_INFINIBAND_USER_MAD=m
1221CONFIG_INFINIBAND_USER_ACCESS=m 1154CONFIG_INFINIBAND_USER_ACCESS=m
@@ -1231,14 +1164,13 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
1231CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y 1164CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
1232# CONFIG_INFINIBAND_SRP is not set 1165# CONFIG_INFINIBAND_SRP is not set
1233# CONFIG_INFINIBAND_ISER is not set 1166# CONFIG_INFINIBAND_ISER is not set
1167CONFIG_EDAC=y
1234 1168
1235# 1169#
1236# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1170# Reporting subsystems
1237#
1238
1239#
1240# Real Time Clock
1241# 1171#
1172# CONFIG_EDAC_DEBUG is not set
1173CONFIG_EDAC_MM_EDAC=y
1242# CONFIG_RTC_CLASS is not set 1174# CONFIG_RTC_CLASS is not set
1243 1175
1244# 1176#
@@ -1255,6 +1187,12 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
1255# 1187#
1256 1188
1257# 1189#
1190# Userspace I/O
1191#
1192CONFIG_UIO=m
1193# CONFIG_UIO_CIF is not set
1194
1195#
1258# File systems 1196# File systems
1259# 1197#
1260CONFIG_EXT2_FS=y 1198CONFIG_EXT2_FS=y
@@ -1357,7 +1295,6 @@ CONFIG_SUNRPC=y
1357# CONFIG_NCP_FS is not set 1295# CONFIG_NCP_FS is not set
1358# CONFIG_CODA_FS is not set 1296# CONFIG_CODA_FS is not set
1359# CONFIG_AFS_FS is not set 1297# CONFIG_AFS_FS is not set
1360# CONFIG_9P_FS is not set
1361 1298
1362# 1299#
1363# Partition Types 1300# Partition Types
@@ -1439,6 +1376,7 @@ CONFIG_BITREVERSE=y
1439# CONFIG_CRC16 is not set 1376# CONFIG_CRC16 is not set
1440# CONFIG_CRC_ITU_T is not set 1377# CONFIG_CRC_ITU_T is not set
1441CONFIG_CRC32=y 1378CONFIG_CRC32=y
1379# CONFIG_CRC7 is not set
1442# CONFIG_LIBCRC32C is not set 1380# CONFIG_LIBCRC32C is not set
1443CONFIG_ZLIB_INFLATE=m 1381CONFIG_ZLIB_INFLATE=m
1444CONFIG_ZLIB_DEFLATE=m 1382CONFIG_ZLIB_DEFLATE=m
@@ -1471,9 +1409,10 @@ CONFIG_DEBUG_FS=y
1471CONFIG_DEBUG_KERNEL=y 1409CONFIG_DEBUG_KERNEL=y
1472# CONFIG_DEBUG_SHIRQ is not set 1410# CONFIG_DEBUG_SHIRQ is not set
1473# CONFIG_DETECT_SOFTLOCKUP is not set 1411# CONFIG_DETECT_SOFTLOCKUP is not set
1412CONFIG_SCHED_DEBUG=y
1474# CONFIG_SCHEDSTATS is not set 1413# CONFIG_SCHEDSTATS is not set
1475# CONFIG_TIMER_STATS is not set 1414# CONFIG_TIMER_STATS is not set
1476# CONFIG_DEBUG_SLAB is not set 1415# CONFIG_SLUB_DEBUG_ON is not set
1477# CONFIG_DEBUG_RT_MUTEXES is not set 1416# CONFIG_DEBUG_RT_MUTEXES is not set
1478# CONFIG_RT_MUTEX_TESTER is not set 1417# CONFIG_RT_MUTEX_TESTER is not set
1479# CONFIG_DEBUG_SPINLOCK is not set 1418# CONFIG_DEBUG_SPINLOCK is not set
@@ -1504,10 +1443,6 @@ CONFIG_IRQSTACKS=y
1504# 1443#
1505# CONFIG_KEYS is not set 1444# CONFIG_KEYS is not set
1506# CONFIG_SECURITY is not set 1445# CONFIG_SECURITY is not set
1507
1508#
1509# Cryptographic options
1510#
1511CONFIG_CRYPTO=y 1446CONFIG_CRYPTO=y
1512CONFIG_CRYPTO_ALGAPI=y 1447CONFIG_CRYPTO_ALGAPI=y
1513CONFIG_CRYPTO_BLKCIPHER=m 1448CONFIG_CRYPTO_BLKCIPHER=m
@@ -1546,7 +1481,4 @@ CONFIG_CRYPTO_DEFLATE=m
1546# CONFIG_CRYPTO_CRC32C is not set 1481# CONFIG_CRYPTO_CRC32C is not set
1547# CONFIG_CRYPTO_CAMELLIA is not set 1482# CONFIG_CRYPTO_CAMELLIA is not set
1548# CONFIG_CRYPTO_TEST is not set 1483# CONFIG_CRYPTO_TEST is not set
1549 1484CONFIG_CRYPTO_HW=y
1550#
1551# Hardware crypto devices
1552#
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index a73d2d700973..ff1811ac6c81 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -74,6 +74,22 @@ static inline void slb_shadow_clear(unsigned long entry)
74 get_slb_shadow()->save_area[entry].esid = 0; 74 get_slb_shadow()->save_area[entry].esid = 0;
75} 75}
76 76
77static inline void create_shadowed_slbe(unsigned long ea, unsigned long flags,
78 unsigned long entry)
79{
80 /*
81 * Updating the shadow buffer before writing the SLB ensures
82 * we don't get a stale entry here if we get preempted by PHYP
83 * between these two statements.
84 */
85 slb_shadow_update(ea, flags, entry);
86
87 asm volatile("slbmte %0,%1" :
88 : "r" (mk_vsid_data(ea, flags)),
89 "r" (mk_esid_data(ea, entry))
90 : "memory" );
91}
92
77void slb_flush_and_rebolt(void) 93void slb_flush_and_rebolt(void)
78{ 94{
79 /* If you change this make sure you change SLB_NUM_BOLTED 95 /* If you change this make sure you change SLB_NUM_BOLTED
@@ -226,12 +242,16 @@ void slb_initialize(void)
226 vflags = SLB_VSID_KERNEL | vmalloc_llp; 242 vflags = SLB_VSID_KERNEL | vmalloc_llp;
227 243
228 /* Invalidate the entire SLB (even slot 0) & all the ERATS */ 244 /* Invalidate the entire SLB (even slot 0) & all the ERATS */
229 slb_shadow_update(PAGE_OFFSET, lflags, 0); 245 asm volatile("isync":::"memory");
230 asm volatile("isync; slbia; sync; slbmte %0,%1; isync" :: 246 asm volatile("slbmte %0,%0"::"r" (0) : "memory");
231 "r" (get_slb_shadow()->save_area[0].vsid), 247 asm volatile("isync; slbia; isync":::"memory");
232 "r" (get_slb_shadow()->save_area[0].esid) : "memory"); 248 create_shadowed_slbe(PAGE_OFFSET, lflags, 0);
233 249
234 slb_shadow_update(VMALLOC_START, vflags, 1); 250 create_shadowed_slbe(VMALLOC_START, vflags, 1);
235 251
236 slb_flush_and_rebolt(); 252 /* We don't bolt the stack for the time being - we're in boot,
253 * so the stack is in the bolted segment. By the time it goes
254 * elsewhere, we'll call _switch() which will bolt in the new
255 * one. */
256 asm volatile("isync":::"memory");
237} 257}
diff --git a/arch/powerpc/platforms/cell/cbe_regs.h b/arch/powerpc/platforms/cell/cbe_regs.h
index 17d597144877..b24025f2ac7a 100644
--- a/arch/powerpc/platforms/cell/cbe_regs.h
+++ b/arch/powerpc/platforms/cell/cbe_regs.h
@@ -113,10 +113,14 @@ struct cbe_pmd_regs {
113 u64 checkstop_fir; /* 0x0c00 */ 113 u64 checkstop_fir; /* 0x0c00 */
114 u64 recoverable_fir; /* 0x0c08 */ 114 u64 recoverable_fir; /* 0x0c08 */
115 u64 spec_att_mchk_fir; /* 0x0c10 */ 115 u64 spec_att_mchk_fir; /* 0x0c10 */
116 u64 fir_mode_reg; /* 0x0c18 */ 116 u32 fir_mode_reg; /* 0x0c18 */
117 u8 pad_0x0c1c_0x0c20 [4]; /* 0x0c1c */
118#define CBE_PMD_FIR_MODE_M8 0x00800
117 u64 fir_enable_mask; /* 0x0c20 */ 119 u64 fir_enable_mask; /* 0x0c20 */
118 120
119 u8 pad_0x0c28_0x1000 [0x1000 - 0x0c28]; /* 0x0c28 */ 121 u8 pad_0x0c28_0x0ca8 [0x0ca8 - 0x0c28]; /* 0x0c28 */
122 u64 ras_esc_0; /* 0x0ca8 */
123 u8 pad_0x0cb0_0x1000 [0x1000 - 0x0cb0]; /* 0x0cb0 */
120}; 124};
121 125
122extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np); 126extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np);
diff --git a/arch/powerpc/platforms/cell/cbe_thermal.c b/arch/powerpc/platforms/cell/cbe_thermal.c
index e4132f8f51b3..fb5eda48467d 100644
--- a/arch/powerpc/platforms/cell/cbe_thermal.c
+++ b/arch/powerpc/platforms/cell/cbe_thermal.c
@@ -88,17 +88,13 @@ static struct cbe_pmd_regs __iomem *get_pmd_regs(struct sys_device *sysdev)
88/* returns the value for a given spu in a given register */ 88/* returns the value for a given spu in a given register */
89static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg) 89static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg)
90{ 90{
91 const unsigned int *id;
92 union spe_reg value; 91 union spe_reg value;
93 struct spu *spu; 92 struct spu *spu;
94 93
95 /* getting the id from the reg attribute will not work on future device-tree layouts
96 * in future we should store the id to the spu struct and use it here */
97 spu = container_of(sysdev, struct spu, sysdev); 94 spu = container_of(sysdev, struct spu, sysdev);
98 id = of_get_property(spu_devnode(spu), "reg", NULL);
99 value.val = in_be64(&reg->val); 95 value.val = in_be64(&reg->val);
100 96
101 return value.spe[*id]; 97 return value.spe[spu->spe_id];
102} 98}
103 99
104static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf) 100static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf)
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c
index 812bf563ed65..4ede22d363fa 100644
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
@@ -38,6 +38,8 @@
38#include "pervasive.h" 38#include "pervasive.h"
39#include "cbe_regs.h" 39#include "cbe_regs.h"
40 40
41static int sysreset_hack;
42
41static void cbe_power_save(void) 43static void cbe_power_save(void)
42{ 44{
43 unsigned long ctrl, thread_switch_control; 45 unsigned long ctrl, thread_switch_control;
@@ -85,6 +87,9 @@ static void cbe_power_save(void)
85 87
86static int cbe_system_reset_exception(struct pt_regs *regs) 88static int cbe_system_reset_exception(struct pt_regs *regs)
87{ 89{
90 int cpu;
91 struct cbe_pmd_regs __iomem *pmd;
92
88 switch (regs->msr & SRR1_WAKEMASK) { 93 switch (regs->msr & SRR1_WAKEMASK) {
89 case SRR1_WAKEEE: 94 case SRR1_WAKEEE:
90 do_IRQ(regs); 95 do_IRQ(regs);
@@ -93,6 +98,18 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
93 timer_interrupt(regs); 98 timer_interrupt(regs);
94 break; 99 break;
95 case SRR1_WAKEMT: 100 case SRR1_WAKEMT:
101 /*
102 * The BMC can inject user triggered system reset exceptions,
103 * but cannot set the system reset reason in srr1,
104 * so check an extra register here.
105 */
106 if (sysreset_hack && (cpu = smp_processor_id()) == 0) {
107 pmd = cbe_get_cpu_pmd_regs(cpu);
108 if (in_be64(&pmd->ras_esc_0) & 0xffff) {
109 out_be64(&pmd->ras_esc_0, 0);
110 return 0;
111 }
112 }
96 break; 113 break;
97#ifdef CONFIG_CBE_RAS 114#ifdef CONFIG_CBE_RAS
98 case SRR1_WAKESYSERR: 115 case SRR1_WAKESYSERR:
@@ -113,9 +130,12 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
113void __init cbe_pervasive_init(void) 130void __init cbe_pervasive_init(void)
114{ 131{
115 int cpu; 132 int cpu;
133
116 if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO)) 134 if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO))
117 return; 135 return;
118 136
137 sysreset_hack = machine_is_compatible("IBM,CBPLUS-1.0");
138
119 for_each_possible_cpu(cpu) { 139 for_each_possible_cpu(cpu) {
120 struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu); 140 struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu);
121 if (!regs) 141 if (!regs)
@@ -124,6 +144,12 @@ void __init cbe_pervasive_init(void)
124 /* Enable Pause(0) control bit */ 144 /* Enable Pause(0) control bit */
125 out_be64(&regs->pmcr, in_be64(&regs->pmcr) | 145 out_be64(&regs->pmcr, in_be64(&regs->pmcr) |
126 CBE_PMD_PAUSE_ZERO_CONTROL); 146 CBE_PMD_PAUSE_ZERO_CONTROL);
147
148 /* Enable JTAG system-reset hack */
149 if (sysreset_hack)
150 out_be32(&regs->fir_mode_reg,
151 in_be32(&regs->fir_mode_reg) |
152 CBE_PMD_FIR_MODE_M8);
127 } 153 }
128 154
129 ppc_md.power_save = cbe_power_save; 155 ppc_md.power_save = cbe_power_save;
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c
index 5eb88346181a..7c0668a9dcc7 100644
--- a/arch/powerpc/platforms/cell/spu_manage.c
+++ b/arch/powerpc/platforms/cell/spu_manage.c
@@ -48,7 +48,7 @@ static u64 __init find_spu_unit_number(struct device_node *spe)
48{ 48{
49 const unsigned int *prop; 49 const unsigned int *prop;
50 int proplen; 50 int proplen;
51 prop = of_get_property(spe, "unit-id", &proplen); 51 prop = of_get_property(spe, "physical-id", &proplen);
52 if (proplen == 4) 52 if (proplen == 4)
53 return (u64)*prop; 53 return (u64)*prop;
54 54
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
index f33b21b9f5d4..9014d55c717b 100644
--- a/arch/powerpc/platforms/pasemi/iommu.c
+++ b/arch/powerpc/platforms/pasemi/iommu.c
@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index,
93 93
94 pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr); 94 pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr);
95 95
96 bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; 96 bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
97 97
98 ip = ((u32 *)tbl->it_base) + index; 98 ip = ((u32 *)tbl->it_base) + index;
99 99
@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index,
118 118
119 pr_debug("iobmap: free at: %lx, %lx\n", index, npages); 119 pr_debug("iobmap: free at: %lx, %lx\n", index, npages);
120 120
121 bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; 121 bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
122 122
123 ip = ((u32 *)tbl->it_base) + index; 123 ip = ((u32 *)tbl->it_base) + index;
124 124
@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void)
137 iommu_table_iobmap.it_busno = 0; 137 iommu_table_iobmap.it_busno = 0;
138 iommu_table_iobmap.it_offset = 0; 138 iommu_table_iobmap.it_offset = 0;
139 /* it_size is in number of entries */ 139 /* it_size is in number of entries */
140 iommu_table_iobmap.it_size = 0x80000000 >> PAGE_SHIFT; 140 iommu_table_iobmap.it_size = 0x80000000 >> IOBMAP_PAGE_SHIFT;
141 141
142 /* Initialize the common IOMMU code */ 142 /* Initialize the common IOMMU code */
143 iommu_table_iobmap.it_base = (unsigned long)iob_l2_base; 143 iommu_table_iobmap.it_base = (unsigned long)iob_l2_base;
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c
index 2326d5dc5752..ab037a3a40db 100644
--- a/arch/powerpc/sysdev/axonram.c
+++ b/arch/powerpc/sysdev/axonram.c
@@ -59,8 +59,7 @@
59struct axon_ram_bank { 59struct axon_ram_bank {
60 struct of_device *device; 60 struct of_device *device;
61 struct gendisk *disk; 61 struct gendisk *disk;
62 unsigned int irq_correctable; 62 unsigned int irq_id;
63 unsigned int irq_uncorrectable;
64 unsigned long ph_addr; 63 unsigned long ph_addr;
65 unsigned long io_addr; 64 unsigned long io_addr;
66 unsigned long size; 65 unsigned long size;
@@ -93,16 +92,9 @@ axon_ram_irq_handler(int irq, void *dev)
93 92
94 BUG_ON(!bank); 93 BUG_ON(!bank);
95 94
96 if (irq == bank->irq_correctable) { 95 dev_err(&device->dev, "Correctable memory error occured\n");
97 dev_err(&device->dev, "Correctable memory error occured\n"); 96 bank->ecc_counter++;
98 bank->ecc_counter++; 97 return IRQ_HANDLED;
99 return IRQ_HANDLED;
100 } else if (irq == bank->irq_uncorrectable) {
101 dev_err(&device->dev, "Uncorrectable memory error occured\n");
102 panic("Critical ECC error on %s", device->node->full_name);
103 }
104
105 return IRQ_NONE;
106} 98}
107 99
108/** 100/**
@@ -259,28 +251,18 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
259 blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); 251 blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE);
260 add_disk(bank->disk); 252 add_disk(bank->disk);
261 253
262 bank->irq_correctable = irq_of_parse_and_map(device->node, 0); 254 bank->irq_id = irq_of_parse_and_map(device->node, 0);
263 bank->irq_uncorrectable = irq_of_parse_and_map(device->node, 1); 255 if (bank->irq_id == NO_IRQ) {
264 if ((bank->irq_correctable <= 0) || (bank->irq_uncorrectable <= 0)) {
265 dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); 256 dev_err(&device->dev, "Cannot access ECC interrupt ID\n");
266 rc = -EFAULT; 257 rc = -EFAULT;
267 goto failed; 258 goto failed;
268 } 259 }
269 260
270 rc = request_irq(bank->irq_correctable, axon_ram_irq_handler, 261 rc = request_irq(bank->irq_id, axon_ram_irq_handler,
271 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device);
272 if (rc != 0) {
273 dev_err(&device->dev, "Cannot register ECC interrupt handler\n");
274 bank->irq_correctable = bank->irq_uncorrectable = 0;
275 rc = -EFAULT;
276 goto failed;
277 }
278
279 rc = request_irq(bank->irq_uncorrectable, axon_ram_irq_handler,
280 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); 262 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device);
281 if (rc != 0) { 263 if (rc != 0) {
282 dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); 264 dev_err(&device->dev, "Cannot register ECC interrupt handler\n");
283 bank->irq_uncorrectable = 0; 265 bank->irq_id = NO_IRQ;
284 rc = -EFAULT; 266 rc = -EFAULT;
285 goto failed; 267 goto failed;
286 } 268 }
@@ -296,13 +278,9 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
296 278
297failed: 279failed:
298 if (bank != NULL) { 280 if (bank != NULL) {
299 if (bank->irq_uncorrectable > 0) 281 if (bank->irq_id != NO_IRQ)
300 free_irq(bank->irq_uncorrectable, device); 282 free_irq(bank->irq_id, device);
301 if (bank->irq_correctable > 0)
302 free_irq(bank->irq_correctable, device);
303 if (bank->disk != NULL) { 283 if (bank->disk != NULL) {
304 if (bank->disk->queue != NULL)
305 blk_cleanup_queue(bank->disk->queue);
306 if (bank->disk->major > 0) 284 if (bank->disk->major > 0)
307 unregister_blkdev(bank->disk->major, 285 unregister_blkdev(bank->disk->major,
308 bank->disk->disk_name); 286 bank->disk->disk_name);
@@ -329,9 +307,7 @@ axon_ram_remove(struct of_device *device)
329 BUG_ON(!bank || !bank->disk); 307 BUG_ON(!bank || !bank->disk);
330 308
331 device_remove_file(&device->dev, &dev_attr_ecc); 309 device_remove_file(&device->dev, &dev_attr_ecc);
332 free_irq(bank->irq_uncorrectable, device); 310 free_irq(bank->irq_id, device);
333 free_irq(bank->irq_correctable, device);
334 blk_cleanup_queue(bank->disk->queue);
335 unregister_blkdev(bank->disk->major, bank->disk->disk_name); 311 unregister_blkdev(bank->disk->major, bank->disk->disk_name);
336 del_gendisk(bank->disk); 312 del_gendisk(bank->disk);
337 iounmap((void __iomem *) bank->io_addr); 313 iounmap((void __iomem *) bank->io_addr);
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
index bc77c5e2ca9f..5c742a526082 100644
--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -89,7 +89,7 @@ static int sleepy_trackpad;
89static int autopoll_devs; 89static int autopoll_devs;
90int __adb_probe_sync; 90int __adb_probe_sync;
91 91
92#ifdef CONFIG_PM 92#ifdef CONFIG_PM_SLEEP
93static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when); 93static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when);
94static struct pmu_sleep_notifier adb_sleep_notifier = { 94static struct pmu_sleep_notifier adb_sleep_notifier = {
95 adb_notify_sleep, 95 adb_notify_sleep,
@@ -313,7 +313,7 @@ int __init adb_init(void)
313 printk(KERN_WARNING "Warning: no ADB interface detected\n"); 313 printk(KERN_WARNING "Warning: no ADB interface detected\n");
314 adb_controller = NULL; 314 adb_controller = NULL;
315 } else { 315 } else {
316#ifdef CONFIG_PM 316#ifdef CONFIG_PM_SLEEP
317 pmu_register_sleep_notifier(&adb_sleep_notifier); 317 pmu_register_sleep_notifier(&adb_sleep_notifier);
318#endif /* CONFIG_PM */ 318#endif /* CONFIG_PM */
319#ifdef CONFIG_PPC 319#ifdef CONFIG_PPC
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 157080b3b468..04f3973e3874 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -152,10 +152,10 @@ static spinlock_t pmu_lock;
152static u8 pmu_intr_mask; 152static u8 pmu_intr_mask;
153static int pmu_version; 153static int pmu_version;
154static int drop_interrupts; 154static int drop_interrupts;
155#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 155#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
156static int option_lid_wakeup = 1; 156static int option_lid_wakeup = 1;
157#endif /* CONFIG_PM && CONFIG_PPC32 */ 157#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
158#if (defined(CONFIG_PM)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY) 158#if (defined(CONFIG_PM_SLEEP)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY)
159static int sleep_in_progress; 159static int sleep_in_progress;
160#endif 160#endif
161static unsigned long async_req_locks; 161static unsigned long async_req_locks;
@@ -875,7 +875,7 @@ proc_read_options(char *page, char **start, off_t off,
875{ 875{
876 char *p = page; 876 char *p = page;
877 877
878#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 878#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
879 if (pmu_kind == PMU_KEYLARGO_BASED && 879 if (pmu_kind == PMU_KEYLARGO_BASED &&
880 pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) 880 pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
881 p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup); 881 p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup);
@@ -916,7 +916,7 @@ proc_write_options(struct file *file, const char __user *buffer,
916 *(val++) = 0; 916 *(val++) = 0;
917 while(*val == ' ') 917 while(*val == ' ')
918 val++; 918 val++;
919#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 919#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
920 if (pmu_kind == PMU_KEYLARGO_BASED && 920 if (pmu_kind == PMU_KEYLARGO_BASED &&
921 pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) 921 pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
922 if (!strcmp(label, "lid_wakeup")) 922 if (!strcmp(label, "lid_wakeup"))
@@ -1738,7 +1738,7 @@ pmu_present(void)
1738 return via != 0; 1738 return via != 0;
1739} 1739}
1740 1740
1741#ifdef CONFIG_PM 1741#ifdef CONFIG_PM_SLEEP
1742 1742
1743static LIST_HEAD(sleep_notifiers); 1743static LIST_HEAD(sleep_notifiers);
1744 1744
@@ -1769,9 +1769,9 @@ pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n)
1769 return 0; 1769 return 0;
1770} 1770}
1771EXPORT_SYMBOL(pmu_unregister_sleep_notifier); 1771EXPORT_SYMBOL(pmu_unregister_sleep_notifier);
1772#endif /* CONFIG_PM */ 1772#endif /* CONFIG_PM_SLEEP */
1773 1773
1774#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 1774#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
1775 1775
1776/* Sleep is broadcast last-to-first */ 1776/* Sleep is broadcast last-to-first */
1777static void broadcast_sleep(int when) 1777static void broadcast_sleep(int when)
@@ -2390,7 +2390,7 @@ powerbook_sleep_3400(void)
2390 return 0; 2390 return 0;
2391} 2391}
2392 2392
2393#endif /* CONFIG_PM && CONFIG_PPC32 */ 2393#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
2394 2394
2395/* 2395/*
2396 * Support for /dev/pmu device 2396 * Support for /dev/pmu device
@@ -2573,7 +2573,7 @@ pmu_ioctl(struct inode * inode, struct file *filp,
2573 int error = -EINVAL; 2573 int error = -EINVAL;
2574 2574
2575 switch (cmd) { 2575 switch (cmd) {
2576#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 2576#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
2577 case PMU_IOC_SLEEP: 2577 case PMU_IOC_SLEEP:
2578 if (!capable(CAP_SYS_ADMIN)) 2578 if (!capable(CAP_SYS_ADMIN))
2579 return -EACCES; 2579 return -EACCES;
@@ -2601,7 +2601,7 @@ pmu_ioctl(struct inode * inode, struct file *filp,
2601 return put_user(0, argp); 2601 return put_user(0, argp);
2602 else 2602 else
2603 return put_user(1, argp); 2603 return put_user(1, argp);
2604#endif /* CONFIG_PM && CONFIG_PPC32 */ 2604#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
2605 2605
2606#ifdef CONFIG_PMAC_BACKLIGHT_LEGACY 2606#ifdef CONFIG_PMAC_BACKLIGHT_LEGACY
2607 /* Compatibility ioctl's for backlight */ 2607 /* Compatibility ioctl's for backlight */
@@ -2757,7 +2757,7 @@ pmu_polled_request(struct adb_request *req)
2757 * to do suspend-to-disk. 2757 * to do suspend-to-disk.
2758 */ 2758 */
2759 2759
2760#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 2760#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
2761 2761
2762int pmu_sys_suspended; 2762int pmu_sys_suspended;
2763 2763
@@ -2792,7 +2792,7 @@ static int pmu_sys_resume(struct sys_device *sysdev)
2792 return 0; 2792 return 0;
2793} 2793}
2794 2794
2795#endif /* CONFIG_PM && CONFIG_PPC32 */ 2795#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
2796 2796
2797static struct sysdev_class pmu_sysclass = { 2797static struct sysdev_class pmu_sysclass = {
2798 set_kset_name("pmu"), 2798 set_kset_name("pmu"),
@@ -2803,10 +2803,10 @@ static struct sys_device device_pmu = {
2803}; 2803};
2804 2804
2805static struct sysdev_driver driver_pmu = { 2805static struct sysdev_driver driver_pmu = {
2806#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 2806#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
2807 .suspend = &pmu_sys_suspend, 2807 .suspend = &pmu_sys_suspend,
2808 .resume = &pmu_sys_resume, 2808 .resume = &pmu_sys_resume,
2809#endif /* CONFIG_PM && CONFIG_PPC32 */ 2809#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
2810}; 2810};
2811 2811
2812static int __init init_pmu_sysfs(void) 2812static int __init init_pmu_sysfs(void)
@@ -2841,10 +2841,10 @@ EXPORT_SYMBOL(pmu_wait_complete);
2841EXPORT_SYMBOL(pmu_suspend); 2841EXPORT_SYMBOL(pmu_suspend);
2842EXPORT_SYMBOL(pmu_resume); 2842EXPORT_SYMBOL(pmu_resume);
2843EXPORT_SYMBOL(pmu_unlock); 2843EXPORT_SYMBOL(pmu_unlock);
2844#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 2844#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
2845EXPORT_SYMBOL(pmu_enable_irled); 2845EXPORT_SYMBOL(pmu_enable_irled);
2846EXPORT_SYMBOL(pmu_battery_count); 2846EXPORT_SYMBOL(pmu_battery_count);
2847EXPORT_SYMBOL(pmu_batteries); 2847EXPORT_SYMBOL(pmu_batteries);
2848EXPORT_SYMBOL(pmu_power_flags); 2848EXPORT_SYMBOL(pmu_power_flags);
2849#endif /* CONFIG_PM && CONFIG_PPC32 */ 2849#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
2850 2850
diff --git a/include/linux/pmu.h b/include/linux/pmu.h
index 5ad913ff02b2..b7824c215354 100644
--- a/include/linux/pmu.h
+++ b/include/linux/pmu.h
@@ -226,7 +226,7 @@ extern unsigned int pmu_power_flags;
226extern void pmu_backlight_init(void); 226extern void pmu_backlight_init(void);
227 227
228/* some code needs to know if the PMU was suspended for hibernation */ 228/* some code needs to know if the PMU was suspended for hibernation */
229#if defined(CONFIG_PM) && defined(CONFIG_PPC32) 229#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
230extern int pmu_sys_suspended; 230extern int pmu_sys_suspended;
231#else 231#else
232/* if power management is not configured it can't be suspended */ 232/* if power management is not configured it can't be suspended */