Commit 96665822 authored by Linus Torvalds's avatar Linus Torvalds

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
parents d96a2a5c 175587cc
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc6 # Linux kernel version: 2.6.23-rc3
# Tue Jun 26 12:32:34 2007 # Wed Aug 22 15:19:19 2007
# #
CONFIG_PPC64=y CONFIG_PPC64=y
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_MM_SLICES=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
CONFIG_64BIT=y CONFIG_64BIT=y
CONFIG_PPC_MERGE=y CONFIG_PPC_MERGE=y
CONFIG_MMU=y CONFIG_MMU=y
...@@ -15,6 +29,7 @@ CONFIG_ARCH_HAS_ILOG2_U64=y ...@@ -15,6 +29,7 @@ CONFIG_ARCH_HAS_ILOG2_U64=y
CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_PPC=y CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
...@@ -22,51 +37,33 @@ CONFIG_SYSVIPC_COMPAT=y ...@@ -22,51 +37,33 @@ CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y CONFIG_PPC_OF=y
CONFIG_OF=y
CONFIG_PPC_UDBG_16550=y CONFIG_PPC_UDBG_16550=y
# CONFIG_GENERIC_TBSYNC is not set # CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG=y
# CONFIG_DEFAULT_UIMAGE is not set # CONFIG_DEFAULT_UIMAGE is not set
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
# CONFIG_PPC_DCR_NATIVE is not set # CONFIG_PPC_DCR_NATIVE is not set
CONFIG_PPC_DCR_MMIO=y CONFIG_PPC_DCR_MMIO=y
CONFIG_PPC_DCR=y CONFIG_PPC_DCR=y
CONFIG_PPC_OF_PLATFORM_PCI=y CONFIG_PPC_OF_PLATFORM_PCI=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_MM_SLICES=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# #
# Code maturity level options # General setup
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y CONFIG_SWAP=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set # CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set # CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set # CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
...@@ -96,16 +93,13 @@ CONFIG_TIMERFD=y ...@@ -96,16 +93,13 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y CONFIG_EVENTFD=y
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB is not set # CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set # CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0 CONFIG_BASE_SMALL=0
#
# Loadable module support
#
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODULE_FORCE_UNLOAD is not set
...@@ -113,12 +107,9 @@ CONFIG_MODULE_UNLOAD=y ...@@ -113,12 +107,9 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
#
# Block layer
#
CONFIG_BLOCK=y CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_BLK_DEV_BSG is not set
# #
# IO Schedulers # IO Schedulers
...@@ -138,7 +129,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" ...@@ -138,7 +129,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
CONFIG_PPC_MULTIPLATFORM=y CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_EMBEDDED6xx is not set # CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set # CONFIG_PPC_82xx is not set
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_PSERIES is not set # CONFIG_PPC_PSERIES is not set
# CONFIG_PPC_ISERIES is not set # CONFIG_PPC_ISERIES is not set
# CONFIG_PPC_MPC52xx is not set # CONFIG_PPC_MPC52xx is not set
...@@ -158,7 +151,11 @@ CONFIG_PS3_HTAB_SIZE=20 ...@@ -158,7 +151,11 @@ CONFIG_PS3_HTAB_SIZE=20
CONFIG_PS3_USE_LPAR_ADDR=y CONFIG_PS3_USE_LPAR_ADDR=y
CONFIG_PS3_VUART=y CONFIG_PS3_VUART=y
CONFIG_PS3_PS3AV=y CONFIG_PS3_PS3AV=y
CONFIG_PS3_SYS_MANAGER=y CONFIG_PS3_SYS_MANAGER=m
CONFIG_PS3_STORAGE=y
CONFIG_PS3_DISK=y
CONFIG_PS3_ROM=m
CONFIG_PS3_FLASH=m
CONFIG_PPC_CELL=y CONFIG_PPC_CELL=y
CONFIG_PPC_CELL_NATIVE=y CONFIG_PPC_CELL_NATIVE=y
CONFIG_PPC_IBM_CELL_BLADE=y CONFIG_PPC_IBM_CELL_BLADE=y
...@@ -171,6 +168,7 @@ CONFIG_SPU_BASE=y ...@@ -171,6 +168,7 @@ CONFIG_SPU_BASE=y
CONFIG_CBE_RAS=y CONFIG_CBE_RAS=y
CONFIG_CBE_THERM=m CONFIG_CBE_THERM=m
CONFIG_CBE_CPUFREQ=m CONFIG_CBE_CPUFREQ=m
CONFIG_CBE_CPUFREQ_PMI=m
# CONFIG_PQ2ADS is not set # CONFIG_PQ2ADS is not set
CONFIG_PPC_NATIVE=y CONFIG_PPC_NATIVE=y
CONFIG_UDBG_RTAS_CONSOLE=y CONFIG_UDBG_RTAS_CONSOLE=y
...@@ -183,7 +181,7 @@ CONFIG_PPC_RTAS=y ...@@ -183,7 +181,7 @@ CONFIG_PPC_RTAS=y
# CONFIG_RTAS_ERROR_LOGGING is not set # CONFIG_RTAS_ERROR_LOGGING is not set
CONFIG_RTAS_PROC=y CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y CONFIG_RTAS_FLASH=y
# CONFIG_PPC_PMI is not set CONFIG_PPC_PMI=m
CONFIG_MMIO_NVRAM=y CONFIG_MMIO_NVRAM=y
# CONFIG_PPC_MPC106 is not set # CONFIG_PPC_MPC106 is not set
# CONFIG_PPC_970_NAP is not set # CONFIG_PPC_970_NAP is not set
...@@ -206,6 +204,8 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y ...@@ -206,6 +204,8 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
# CPU Frequency drivers # CPU Frequency drivers
# #
# CONFIG_CPM2 is not set # CONFIG_CPM2 is not set
CONFIG_AXON_RAM=m
# CONFIG_FSL_ULI1575 is not set
# #
# Kernel options # Kernel options
...@@ -248,6 +248,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 ...@@ -248,6 +248,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y CONFIG_MIGRATION=y
CONFIG_RESOURCES_64BIT=y CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1 CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_MEMORY_PROBE=y
CONFIG_NODES_SPAN_OTHER_NODES=y CONFIG_NODES_SPAN_OTHER_NODES=y
CONFIG_PPC_HAS_HASH_64K=y CONFIG_PPC_HAS_HASH_64K=y
...@@ -268,7 +269,9 @@ CONFIG_GENERIC_ISA_DMA=y ...@@ -268,7 +269,9 @@ CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_INDIRECT_PCI is not set # CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_PCIEPORTBUS=y CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set # CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_DEBUG is not set
...@@ -359,6 +362,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m ...@@ -359,6 +362,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DCCP=m
...@@ -377,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_SCTP=m ...@@ -377,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
# #
...@@ -448,6 +453,7 @@ CONFIG_NET_CLS_ROUTE=y ...@@ -448,6 +453,7 @@ CONFIG_NET_CLS_ROUTE=y
# CONFIG_MAC80211 is not set # CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set # CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set # CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# #
# Device Drivers # Device Drivers
...@@ -462,28 +468,12 @@ CONFIG_FW_LOADER=y ...@@ -462,28 +468,12 @@ CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set # CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set # CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set # CONFIG_MTD is not set
CONFIG_OF_DEVICE=y
#
# Parallel port support
#
# CONFIG_PARPORT is not set # CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
#
# Plug and Play support
#
# CONFIG_PNPACPI is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_UMEM is not set
...@@ -499,14 +489,11 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 ...@@ -499,14 +489,11 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
#
# Misc devices
#
# CONFIG_PHANTOM is not set # CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set # CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set # CONFIG_TIFM_CORE is not set
# CONFIG_BLINK is not set
CONFIG_IDE=y CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y CONFIG_BLK_DEV_IDE=y
...@@ -572,6 +559,7 @@ CONFIG_BLK_DEV_IDEDMA=y ...@@ -572,6 +559,7 @@ CONFIG_BLK_DEV_IDEDMA=y
# #
# CONFIG_RAID_ATTRS is not set # CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set # CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set # CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y CONFIG_SCSI_PROC_FS=y
...@@ -604,10 +592,7 @@ CONFIG_SCSI_WAIT_SCAN=m ...@@ -604,10 +592,7 @@ CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set
CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SAS_LIBSAS is not set
CONFIG_SCSI_LOWLEVEL=y
#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set # CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_9XXX is not set
...@@ -622,7 +607,6 @@ CONFIG_SCSI_SAS_ATTRS=y ...@@ -622,7 +607,6 @@ CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set # CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set
...@@ -696,10 +680,6 @@ CONFIG_PATA_PDC2027X=m ...@@ -696,10 +680,6 @@ CONFIG_PATA_PDC2027X=m
# CONFIG_PATA_VIA is not set # CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set # CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_SCC is not set # CONFIG_PATA_SCC is not set
#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y CONFIG_MD=y
CONFIG_BLK_DEV_MD=m CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m CONFIG_MD_LINEAR=m
...@@ -717,6 +697,7 @@ CONFIG_DM_MIRROR=m ...@@ -717,6 +697,7 @@ CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH=m
# CONFIG_DM_MULTIPATH_EMC is not set # CONFIG_DM_MULTIPATH_EMC is not set
# CONFIG_DM_MULTIPATH_RDAC is not set
# CONFIG_DM_DELAY is not set # CONFIG_DM_DELAY is not set
# #
...@@ -728,43 +709,30 @@ CONFIG_FUSION=y ...@@ -728,43 +709,30 @@ CONFIG_FUSION=y
CONFIG_FUSION_SAS=y CONFIG_FUSION_SAS=y
CONFIG_FUSION_MAX_SGE=128 CONFIG_FUSION_MAX_SGE=128
# CONFIG_FUSION_CTL is not set # CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_LOGGING is not set
# #
# IEEE 1394 (FireWire) support # IEEE 1394 (FireWire) support
# #
# CONFIG_FIREWIRE is not set # CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set # CONFIG_IEEE1394 is not set
#
# I2O device support
#
# CONFIG_I2O is not set # CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set # CONFIG_MACINTOSH_DRIVERS is not set
#
# Network device support
#
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set # CONFIG_DUMMY is not set
CONFIG_BONDING=m CONFIG_BONDING=m
CONFIG_MACVLAN=m
# CONFIG_EQUALIZER is not set # CONFIG_EQUALIZER is not set
CONFIG_TUN=y CONFIG_TUN=y
# CONFIG_ARCNET is not set # CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set # CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y CONFIG_NET_ETHERNET=y
CONFIG_MII=y CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set # CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set # CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_3COM is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set # CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set # CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set # CONFIG_NET_PCI is not set
...@@ -781,11 +749,12 @@ CONFIG_E1000_NAPI=y ...@@ -781,11 +749,12 @@ CONFIG_E1000_NAPI=y
# CONFIG_SIS190 is not set # CONFIG_SIS190 is not set
CONFIG_SKGE=m CONFIG_SKGE=m
CONFIG_SKY2=m CONFIG_SKY2=m
# CONFIG_SK98LIN is not set # CONFIG_SKY2_DEBUG is not set
# CONFIG_VIA_VELOCITY is not set # CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y CONFIG_TIGON3=y
# CONFIG_BNX2 is not set # CONFIG_BNX2 is not set
CONFIG_SPIDER_NET=y CONFIG_SPIDER_NET=y
CONFIG_GELIC_NET=m
# CONFIG_QLA3XXX is not set # CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set # CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y CONFIG_NETDEV_10000=y
...@@ -824,15 +793,7 @@ CONFIG_NETDEV_10000=y ...@@ -824,15 +793,7 @@ CONFIG_NETDEV_10000=y
# CONFIG_NETCONSOLE is not set # CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set # CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set # CONFIG_ISDN is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set # CONFIG_PHONE is not set
# #
...@@ -925,10 +886,6 @@ CONFIG_UNIX98_PTYS=y ...@@ -925,10 +886,6 @@ CONFIG_UNIX98_PTYS=y
CONFIG_HVC_DRIVER=y CONFIG_HVC_DRIVER=y
CONFIG_HVC_RTAS=y CONFIG_HVC_RTAS=y
CONFIG_HVC_BEAT=y CONFIG_HVC_BEAT=y
#
# IPMI
#
CONFIG_IPMI_HANDLER=m CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set # CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_DEVICE_INTERFACE=m
...@@ -963,10 +920,6 @@ CONFIG_GEN_RTC=y ...@@ -963,10 +920,6 @@ CONFIG_GEN_RTC=y
# CONFIG_DRM is not set # CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set # CONFIG_HANGCHECK_TIMER is not set
#
# TPM devices
#
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y CONFIG_DEVPORT=y
CONFIG_I2C=y CONFIG_I2C=y
...@@ -1000,6 +953,7 @@ CONFIG_I2C_ALGOBIT=y ...@@ -1000,6 +953,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set # CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set # CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set # CONFIG_I2C_TINY_USB is not set
# CONFIG_I2C_VIA is not set # CONFIG_I2C_VIA is not set
...@@ -1011,11 +965,13 @@ CONFIG_I2C_ALGOBIT=y ...@@ -1011,11 +965,13 @@ CONFIG_I2C_ALGOBIT=y
# #
# CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_DS1374 is not set
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_BUS is not set
...@@ -1026,11 +982,8 @@ CONFIG_I2C_ALGOBIT=y ...@@ -1026,11 +982,8 @@ CONFIG_I2C_ALGOBIT=y
# #
# CONFIG_SPI is not set # CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set # CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set # CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
# #
...@@ -1055,6 +1008,7 @@ CONFIG_I2C_ALGOBIT=y ...@@ -1055,6 +1008,7 @@ CONFIG_I2C_ALGOBIT=y
# #
# CONFIG_DISPLAY_SUPPORT is not set # CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set # CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set # CONFIG_FB is not set
# CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_IBM_GXT4500 is not set
...@@ -1068,10 +1022,7 @@ CONFIG_DUMMY_CONSOLE=y ...@@ -1068,10 +1022,7 @@ CONFIG_DUMMY_CONSOLE=y
# Sound # Sound
# #
# CONFIG_SOUND is not set # CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
#
# HID Devices
#
CONFIG_HID=m CONFIG_HID=m
# CONFIG_HID_DEBUG is not set # CONFIG_HID_DEBUG is not set
...@@ -1085,10 +1036,7 @@ CONFIG_HID=m ...@@ -1085,10 +1036,7 @@ CONFIG_HID=m
# #
# CONFIG_USB_KBD is not set # CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set # CONFIG_USB_MOUSE is not set
CONFIG_USB_SUPPORT=y
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_EHCI=y
...@@ -1122,6 +1070,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y ...@@ -1122,6 +1070,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_UHCI_HCD is not set # CONFIG_USB_UHCI_HCD is not set
# CONFIG_USB_SL811_HCD is not set # CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# #
# USB Device Class drivers # USB Device Class drivers
...@@ -1199,23 +1148,7 @@ CONFIG_USB_MON=y ...@@ -1199,23 +1148,7 @@ CONFIG_USB_MON=y
# #
# CONFIG_USB_GADGET is not set # CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set # CONFIG_MMC is not set
#
# LED devices
#
# CONFIG_NEW_LEDS is not set # CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# InfiniBand support
#
CONFIG_INFINIBAND=m CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m CONFIG_INFINIBAND_USER_ACCESS=m
...@@ -1231,14 +1164,13 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y ...@@ -1231,14 +1164,13 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
# CONFIG_INFINIBAND_SRP is not set # CONFIG_INFINIBAND_SRP is not set
# CONFIG_INFINIBAND_ISER is not set # CONFIG_INFINIBAND_ISER is not set
CONFIG_EDAC=y
# #
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) # Reporting subsystems
#
#
# Real Time Clock
# #
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=y
# CONFIG_RTC_CLASS is not set # CONFIG_RTC_CLASS is not set
# #
...@@ -1254,6 +1186,12 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y ...@@ -1254,6 +1186,12 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
# DMA Devices # DMA Devices
# #
#
# Userspace I/O
#
CONFIG_UIO=m
# CONFIG_UIO_CIF is not set
# #
# File systems # File systems
# #
...@@ -1357,7 +1295,6 @@ CONFIG_SUNRPC=y ...@@ -1357,7 +1295,6 @@ CONFIG_SUNRPC=y
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set # CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set # CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
# #
# Partition Types # Partition Types
...@@ -1439,6 +1376,7 @@ CONFIG_BITREVERSE=y ...@@ -1439,6 +1376,7 @@ CONFIG_BITREVERSE=y
# CONFIG_CRC16 is not set # CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set # CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set # CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m CONFIG_ZLIB_DEFLATE=m
...@@ -1471,9 +1409,10 @@ CONFIG_DEBUG_FS=y ...@@ -1471,9 +1409,10 @@ CONFIG_DEBUG_FS=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set # CONFIG_DEBUG_SHIRQ is not set
# CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_DETECT_SOFTLOCKUP is not set
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set # CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set # CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set # CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK is not set
...@@ -1504,10 +1443,6 @@ CONFIG_IRQSTACKS=y ...@@ -1504,10 +1443,6 @@ CONFIG_IRQSTACKS=y
# #
# CONFIG_KEYS is not set # CONFIG_KEYS is not set
# CONFIG_SECURITY is not set # CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_BLKCIPHER=m
...@@ -1546,7 +1481,4 @@ CONFIG_CRYPTO_DEFLATE=m ...@@ -1546,7 +1481,4 @@ CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set # CONFIG_CRYPTO_TEST is not set
CONFIG_CRYPTO_HW=y
#
# Hardware crypto devices
#
...@@ -74,6 +74,22 @@ static inline void slb_shadow_clear(unsigned long entry) ...@@ -74,6 +74,22 @@ static inline void slb_shadow_clear(unsigned long entry)
get_slb_shadow()->save_area[entry].esid = 0; get_slb_shadow()->save_area[entry].esid = 0;
} }
static inline void create_shadowed_slbe(unsigned long ea, unsigned long flags,
unsigned long entry)
{
/*
* Updating the shadow buffer before writing the SLB ensures
* we don't get a stale entry here if we get preempted by PHYP
* between these two statements.
*/
slb_shadow_update(ea, flags, entry);
asm volatile("slbmte %0,%1" :
: "r" (mk_vsid_data(ea, flags)),
"r" (mk_esid_data(ea, entry))
: "memory" );
}
void slb_flush_and_rebolt(void) void slb_flush_and_rebolt(void)
{ {
/* If you change this make sure you change SLB_NUM_BOLTED /* If you change this make sure you change SLB_NUM_BOLTED
...@@ -226,12 +242,16 @@ void slb_initialize(void) ...@@ -226,12 +242,16 @@ void slb_initialize(void)
vflags = SLB_VSID_KERNEL | vmalloc_llp; vflags = SLB_VSID_KERNEL | vmalloc_llp;
/* Invalidate the entire SLB (even slot 0) & all the ERATS */ /* Invalidate the entire SLB (even slot 0) & all the ERATS */
slb_shadow_update(PAGE_OFFSET, lflags, 0); asm volatile("isync":::"memory");
asm volatile("isync; slbia; sync; slbmte %0,%1; isync" :: asm volatile("slbmte %0,%0"::"r" (0) : "memory");
"r" (get_slb_shadow()->save_area[0].vsid), asm volatile("isync; slbia; isync":::"memory");
"r" (get_slb_shadow()->save_area[0].esid) : "memory"); create_shadowed_slbe(PAGE_OFFSET, lflags, 0);
slb_shadow_update(VMALLOC_START, vflags, 1); create_shadowed_slbe(VMALLOC_START, vflags, 1);
slb_flush_and_rebolt(); /* We don't bolt the stack for the time being - we're in boot,
* so the stack is in the bolted segment. By the time it goes
* elsewhere, we'll call _switch() which will bolt in the new
* one. */
asm volatile("isync":::"memory");
} }
...@@ -113,10 +113,14 @@ struct cbe_pmd_regs { ...@@ -113,10 +113,14 @@ struct cbe_pmd_regs {
u64 checkstop_fir; /* 0x0c00 */ u64 checkstop_fir; /* 0x0c00 */
u64 recoverable_fir; /* 0x0c08 */ u64 recoverable_fir; /* 0x0c08 */
u64 spec_att_mchk_fir; /* 0x0c10 */ u64 spec_att_mchk_fir; /* 0x0c10 */
u64 fir_mode_reg; /* 0x0c18 */ u32 fir_mode_reg; /* 0x0c18 */
u8 pad_0x0c1c_0x0c20 [4]; /* 0x0c1c */
#define CBE_PMD_FIR_MODE_M8 0x00800
u64 fir_enable_mask; /* 0x0c20 */ u64 fir_enable_mask; /* 0x0c20 */
u8 pad_0x0c28_0x1000 [0x1000 - 0x0c28]; /* 0x0c28 */ u8 pad_0x0c28_0x0ca8 [0x0ca8 - 0x0c28]; /* 0x0c28 */
u64 ras_esc_0; /* 0x0ca8 */
u8 pad_0x0cb0_0x1000 [0x1000 - 0x0cb0]; /* 0x0cb0 */
}; };
extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np); extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np);
......
...@@ -88,17 +88,13 @@ static struct cbe_pmd_regs __iomem *get_pmd_regs(struct sys_device *sysdev) ...@@ -88,17 +88,13 @@ static struct cbe_pmd_regs __iomem *get_pmd_regs(struct sys_device *sysdev)
/* returns the value for a given spu in a given register */ /* returns the value for a given spu in a given register */
static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg) static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg)
{ {
const unsigned int *id;
union spe_reg value; union spe_reg value;
struct spu *spu; struct spu *spu;
/* getting the id from the reg attribute will not work on future device-tree layouts
* in future we should store the id to the spu struct and use it here */
spu = container_of(sysdev, struct spu, sysdev); spu = container_of(sysdev, struct spu, sysdev);
id = of_get_property(spu_devnode(spu), "reg", NULL);
value.val = in_be64(&reg->val); value.val = in_be64(&reg->val);
return value.spe[*id]; return value.spe[spu->spe_id];
} }
static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf) static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf)
......
...@@ -38,6 +38,8 @@ ...@@ -38,6 +38,8 @@
#include "pervasive.h" #include "pervasive.h"
#include "cbe_regs.h" #include "cbe_regs.h"
static int sysreset_hack;
static void cbe_power_save(void) static void cbe_power_save(void)
{ {
unsigned long ctrl, thread_switch_control; unsigned long ctrl, thread_switch_control;
...@@ -85,6 +87,9 @@ static void cbe_power_save(void) ...@@ -85,6 +87,9 @@ static void cbe_power_save(void)
static int cbe_system_reset_exception(struct pt_regs *regs) static int cbe_system_reset_exception(struct pt_regs *regs)
{ {
int cpu;
struct cbe_pmd_regs __iomem *pmd;
switch (regs->msr & SRR1_WAKEMASK) { switch (regs->msr & SRR1_WAKEMASK) {
case SRR1_WAKEEE: case SRR1_WAKEEE:
do_IRQ(regs); do_IRQ(regs);
...@@ -93,6 +98,18 @@ static int cbe_system_reset_exception(struct pt_regs *regs) ...@@ -93,6 +98,18 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
timer_interrupt(regs); timer_interrupt(regs);
break; break;
case SRR1_WAKEMT: case SRR1_WAKEMT:
/*
* The BMC can inject user triggered system reset exceptions,
* but cannot set the system reset reason in srr1,
* so check an extra register here.
*/
if (sysreset_hack && (cpu = smp_processor_id()) == 0) {
pmd = cbe_get_cpu_pmd_regs(cpu);
if (in_be64(&pmd->ras_esc_0) & 0xffff) {
out_be64(&pmd->ras_esc_0, 0);
return 0;
}
}
break; break;
#ifdef CONFIG_CBE_RAS #ifdef CONFIG_CBE_RAS
case SRR1_WAKESYSERR: case SRR1_WAKESYSERR:
...@@ -113,9 +130,12 @@ static int cbe_system_reset_exception(struct pt_regs *regs) ...@@ -113,9 +130,12 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
void __init cbe_pervasive_init(void) void __init cbe_pervasive_init(void)
{ {
int cpu; int cpu;
if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO)) if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO))
return; return;
sysreset_hack = machine_is_compatible("IBM,CBPLUS-1.0");
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu); struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu);
if (!regs) if (!regs)
...@@ -124,6 +144,12 @@ void __init cbe_pervasive_init(void) ...@@ -124,6 +144,12 @@ void __init cbe_pervasive_init(void)
/* Enable Pause(0) control bit */ /* Enable Pause(0) control bit */
out_be64(&regs->pmcr, in_be64(&regs->pmcr) | out_be64(&regs->pmcr, in_be64(&regs->pmcr) |
CBE_PMD_PAUSE_ZERO_CONTROL); CBE_PMD_PAUSE_ZERO_CONTROL);
/* Enable JTAG system-reset hack */
if (sysreset_hack)
out_be32(&regs->fir_mode_reg,
in_be32(&regs->fir_mode_reg) |
CBE_PMD_FIR_MODE_M8);
} }
ppc_md.power_save = cbe_power_save; ppc_md.power_save = cbe_power_save;
......
...@@ -48,7 +48,7 @@ static u64 __init find_spu_unit_number(struct device_node *spe) ...@@ -48,7 +48,7 @@ static u64 __init find_spu_unit_number(struct device_node *spe)
{ {
const unsigned int *prop; const unsigned int *prop;
int proplen; int proplen;
prop = of_get_property(spe, "unit-id", &proplen); prop = of_get_property(spe, "physical-id", &proplen);
if (proplen == 4) if (proplen == 4)
return (u64)*prop; return (u64)*prop;
......
...@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index, ...@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index,
pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr); pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr);
bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
ip = ((u32 *)tbl->it_base) + index; ip = ((u32 *)tbl->it_base) + index;
...@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index, ...@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index,
pr_debug("iobmap: free at: %lx, %lx\n", index, npages); pr_debug("iobmap: free at: %lx, %lx\n", index, npages);
bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
ip = ((u32 *)tbl->it_base) + index; ip = ((u32 *)tbl->it_base) + index;
...@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void) ...@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void)
iommu_table_iobmap.it_busno = 0; iommu_table_iobmap.it_busno = 0;
iommu_table_iobmap.it_offset = 0; iommu_table_iobmap.it_offset = 0;
/* it_size is in number of entries */ /* it_size is in number of entries */
iommu_table_iobmap.it_size = 0x80000000 >> PAGE_SHIFT; iommu_table_iobmap.it_size = 0x80000000 >> IOBMAP_PAGE_SHIFT;
/* Initialize the common IOMMU code */ /* Initialize the common IOMMU code */
iommu_table_iobmap.it_base = (unsigned long)iob_l2_base; iommu_table_iobmap.it_base = (unsigned long)iob_l2_base;
......
...@@ -59,8 +59,7 @@ ...@@ -59,8 +59,7 @@
struct axon_ram_bank { struct axon_ram_bank {
struct of_device *device; struct of_device *device;
struct gendisk *disk; struct gendisk *disk;
unsigned int irq_correctable; unsigned int irq_id;
unsigned int irq_uncorrectable;
unsigned long ph_addr; unsigned long ph_addr;
unsigned long io_addr; unsigned long io_addr;
unsigned long size; unsigned long size;
...@@ -93,16 +92,9 @@ axon_ram_irq_handler(int irq, void *dev) ...@@ -93,16 +92,9 @@ axon_ram_irq_handler(int irq, void *dev)
BUG_ON(!bank); BUG_ON(!bank);
if (irq == bank->irq_correctable) { dev_err(&device->dev, "Correctable memory error occured\n");
dev_err(&device->dev, "Correctable memory error occured\n"); bank->ecc_counter++;
bank->ecc_counter++; return IRQ_HANDLED;
return IRQ_HANDLED;
} else if (irq == bank->irq_uncorrectable) {
dev_err(&device->dev, "Uncorrectable memory error occured\n");
panic("Critical ECC error on %s", device->node->full_name);
}
return IRQ_NONE;
} }
/** /**
...@@ -259,28 +251,18 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id) ...@@ -259,28 +251,18 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE);
add_disk(bank->disk); add_disk(bank->disk);
bank->irq_correctable = irq_of_parse_and_map(device->node, 0); bank->irq_id = irq_of_parse_and_map(device->node, 0);
bank->irq_uncorrectable = irq_of_parse_and_map(device->node, 1); if (bank->irq_id == NO_IRQ) {
if ((bank->irq_correctable <= 0) || (bank->irq_uncorrectable <= 0)) {
dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); dev_err(&device->dev, "Cannot access ECC interrupt ID\n");
rc = -EFAULT; rc = -EFAULT;
goto failed; goto failed;
} }
rc = request_irq(bank->irq_correctable, axon_ram_irq_handler, rc = request_irq(bank->irq_id, axon_ram_irq_handler,
AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device);
if (rc != 0) {
dev_err(&device->dev, "Cannot register ECC interrupt handler\n");
bank->irq_correctable = bank->irq_uncorrectable = 0;
rc = -EFAULT;
goto failed;
}
rc = request_irq(bank->irq_uncorrectable, axon_ram_irq_handler,
AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device);
if (rc != 0) { if (rc != 0) {
dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); dev_err(&device->dev, "Cannot register ECC interrupt handler\n");
bank->irq_uncorrectable = 0; bank->irq_id = NO_IRQ;
rc = -EFAULT; rc = -EFAULT;
goto failed; goto failed;
} }
...@@ -296,13 +278,9 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id) ...@@ -296,13 +278,9 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
failed: failed:
if (bank != NULL) { if (bank != NULL) {
if (bank->irq_uncorrectable > 0) if (bank->irq_id != NO_IRQ)
free_irq(bank->irq_uncorrectable, device); free_irq(bank->irq_id, device);
if (bank->irq_correctable > 0)
free_irq(bank->irq_correctable, device);
if (bank->disk != NULL) { if (bank->disk != NULL) {
if (bank->disk->queue != NULL)
blk_cleanup_queue(bank->disk->queue);
if (bank->disk->major > 0) if (bank->disk->major > 0)
unregister_blkdev(bank->disk->major, unregister_blkdev(bank->disk->major,
bank->disk->disk_name); bank->disk->disk_name);
...@@ -329,9 +307,7 @@ axon_ram_remove(struct of_device *device) ...@@ -329,9 +307,7 @@ axon_ram_remove(struct of_device *device)
BUG_ON(!bank || !bank->disk); BUG_ON(!bank || !bank->disk);
device_remove_file(&device->dev, &dev_attr_ecc); device_remove_file(&device->dev, &dev_attr_ecc);
free_irq(bank->irq_uncorrectable, device); free_irq(bank->irq_id, device);
free_irq(bank->irq_correctable, device);
blk_cleanup_queue(bank->disk->queue);
unregister_blkdev(bank->disk->major, bank->disk->disk_name); unregister_blkdev(bank->disk->major, bank->disk->disk_name);
del_gendisk(bank->disk); del_gendisk(bank->disk);
iounmap((void __iomem *) bank->io_addr); iounmap((void __iomem *) bank->io_addr);
......
...@@ -89,7 +89,7 @@ static int sleepy_trackpad; ...@@ -89,7 +89,7 @@ static int sleepy_trackpad;
static int autopoll_devs; static int autopoll_devs;
int __adb_probe_sync; int __adb_probe_sync;
#ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP
static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when); static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when);
static struct pmu_sleep_notifier adb_sleep_notifier = { static struct pmu_sleep_notifier adb_sleep_notifier = {
adb_notify_sleep, adb_notify_sleep,
...@@ -313,7 +313,7 @@ int __init adb_init(void) ...@@ -313,7 +313,7 @@ int __init adb_init(void)
printk(KERN_WARNING "Warning: no ADB interface detected\n"); printk(KERN_WARNING "Warning: no ADB interface detected\n");
adb_controller = NULL; adb_controller = NULL;
} else { } else {
#ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP
pmu_register_sleep_notifier(&adb_sleep_notifier); pmu_register_sleep_notifier(&adb_sleep_notifier);
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
#ifdef CONFIG_PPC #ifdef CONFIG_PPC
......
...@@ -152,10 +152,10 @@ static spinlock_t pmu_lock; ...@@ -152,10 +152,10 @@ static spinlock_t pmu_lock;
static u8 pmu_intr_mask; static u8 pmu_intr_mask;
static int pmu_version; static int pmu_version;
static int drop_interrupts; static int drop_interrupts;
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
static int option_lid_wakeup = 1; static int option_lid_wakeup = 1;
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
#if (defined(CONFIG_PM)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY) #if (defined(CONFIG_PM_SLEEP)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY)
static int sleep_in_progress; static int sleep_in_progress;
#endif #endif
static unsigned long async_req_locks; static unsigned long async_req_locks;
...@@ -875,7 +875,7 @@ proc_read_options(char *page, char **start, off_t off, ...@@ -875,7 +875,7 @@ proc_read_options(char *page, char **start, off_t off,
{ {
char *p = page; char *p = page;
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
if (pmu_kind == PMU_KEYLARGO_BASED && if (pmu_kind == PMU_KEYLARGO_BASED &&
pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup); 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,7 +916,7 @@ proc_write_options(struct file *file, const char __user *buffer,
*(val++) = 0; *(val++) = 0;
while(*val == ' ') while(*val == ' ')
val++; val++;
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
if (pmu_kind == PMU_KEYLARGO_BASED && if (pmu_kind == PMU_KEYLARGO_BASED &&
pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
if (!strcmp(label, "lid_wakeup")) if (!strcmp(label, "lid_wakeup"))
...@@ -1738,7 +1738,7 @@ pmu_present(void) ...@@ -1738,7 +1738,7 @@ pmu_present(void)
return via != 0; return via != 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP
static LIST_HEAD(sleep_notifiers); static LIST_HEAD(sleep_notifiers);
...@@ -1769,9 +1769,9 @@ pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n) ...@@ -1769,9 +1769,9 @@ pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n)
return 0; return 0;
} }
EXPORT_SYMBOL(pmu_unregister_sleep_notifier); EXPORT_SYMBOL(pmu_unregister_sleep_notifier);
#endif /* CONFIG_PM */ #endif /* CONFIG_PM_SLEEP */
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
/* Sleep is broadcast last-to-first */ /* Sleep is broadcast last-to-first */
static void broadcast_sleep(int when) static void broadcast_sleep(int when)
...@@ -2390,7 +2390,7 @@ powerbook_sleep_3400(void) ...@@ -2390,7 +2390,7 @@ powerbook_sleep_3400(void)
return 0; return 0;
} }
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
/* /*
* Support for /dev/pmu device * Support for /dev/pmu device
...@@ -2573,7 +2573,7 @@ pmu_ioctl(struct inode * inode, struct file *filp, ...@@ -2573,7 +2573,7 @@ pmu_ioctl(struct inode * inode, struct file *filp,
int error = -EINVAL; int error = -EINVAL;
switch (cmd) { switch (cmd) {
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
case PMU_IOC_SLEEP: case PMU_IOC_SLEEP:
if (!capable(CAP_SYS_ADMIN)) if (!capable(CAP_SYS_ADMIN))
return -EACCES; return -EACCES;
...@@ -2601,7 +2601,7 @@ pmu_ioctl(struct inode * inode, struct file *filp, ...@@ -2601,7 +2601,7 @@ pmu_ioctl(struct inode * inode, struct file *filp,
return put_user(0, argp); return put_user(0, argp);
else else
return put_user(1, argp); return put_user(1, argp);
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
#ifdef CONFIG_PMAC_BACKLIGHT_LEGACY #ifdef CONFIG_PMAC_BACKLIGHT_LEGACY
/* Compatibility ioctl's for backlight */ /* Compatibility ioctl's for backlight */
...@@ -2757,7 +2757,7 @@ pmu_polled_request(struct adb_request *req) ...@@ -2757,7 +2757,7 @@ pmu_polled_request(struct adb_request *req)
* to do suspend-to-disk. * to do suspend-to-disk.
*/ */
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
int pmu_sys_suspended; int pmu_sys_suspended;
...@@ -2792,7 +2792,7 @@ static int pmu_sys_resume(struct sys_device *sysdev) ...@@ -2792,7 +2792,7 @@ static int pmu_sys_resume(struct sys_device *sysdev)
return 0; return 0;
} }
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
static struct sysdev_class pmu_sysclass = { static struct sysdev_class pmu_sysclass = {
set_kset_name("pmu"), set_kset_name("pmu"),
...@@ -2803,10 +2803,10 @@ static struct sys_device device_pmu = { ...@@ -2803,10 +2803,10 @@ static struct sys_device device_pmu = {
}; };
static struct sysdev_driver driver_pmu = { static struct sysdev_driver driver_pmu = {
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
.suspend = &pmu_sys_suspend, .suspend = &pmu_sys_suspend,
.resume = &pmu_sys_resume, .resume = &pmu_sys_resume,
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
}; };
static int __init init_pmu_sysfs(void) static int __init init_pmu_sysfs(void)
...@@ -2841,10 +2841,10 @@ EXPORT_SYMBOL(pmu_wait_complete); ...@@ -2841,10 +2841,10 @@ EXPORT_SYMBOL(pmu_wait_complete);
EXPORT_SYMBOL(pmu_suspend); EXPORT_SYMBOL(pmu_suspend);
EXPORT_SYMBOL(pmu_resume); EXPORT_SYMBOL(pmu_resume);
EXPORT_SYMBOL(pmu_unlock); EXPORT_SYMBOL(pmu_unlock);
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
EXPORT_SYMBOL(pmu_enable_irled); EXPORT_SYMBOL(pmu_enable_irled);
EXPORT_SYMBOL(pmu_battery_count); EXPORT_SYMBOL(pmu_battery_count);
EXPORT_SYMBOL(pmu_batteries); EXPORT_SYMBOL(pmu_batteries);
EXPORT_SYMBOL(pmu_power_flags); EXPORT_SYMBOL(pmu_power_flags);
#endif /* CONFIG_PM && CONFIG_PPC32 */ #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
...@@ -226,7 +226,7 @@ extern unsigned int pmu_power_flags; ...@@ -226,7 +226,7 @@ extern unsigned int pmu_power_flags;
extern void pmu_backlight_init(void); extern void pmu_backlight_init(void);
/* some code needs to know if the PMU was suspended for hibernation */ /* some code needs to know if the PMU was suspended for hibernation */
#if defined(CONFIG_PM) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
extern int pmu_sys_suspended; extern int pmu_sys_suspended;
#else #else
/* if power management is not configured it can't be suspended */ /* if power management is not configured it can't be suspended */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment