aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/n8x0_defconfig2
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig1
-rw-r--r--arch/arm/configs/u300_defconfig94
-rw-r--r--arch/arm/include/asm/bitops.h6
-rw-r--r--arch/arm/include/asm/cacheflush.h5
-rw-r--r--arch/arm/include/asm/elf.h3
-rw-r--r--arch/arm/include/asm/tlbflush.h3
-rw-r--r--arch/arm/kernel/entry-armv.S28
-rw-r--r--arch/arm/kernel/entry-header.S15
-rw-r--r--arch/arm/kernel/process.c9
-rw-r--r--arch/arm/kernel/signal.c41
-rw-r--r--arch/arm/kernel/signal.h4
-rw-r--r--arch/arm/kernel/traps.c80
-rw-r--r--arch/arm/kernel/unwind.c9
-rw-r--r--arch/arm/mach-at91/at91sam9g45_devices.c2
-rw-r--r--arch/arm/mach-at91/include/mach/cpu.h9
-rw-r--r--arch/arm/mach-bcmring/core.c4
-rw-r--r--arch/arm/mach-bcmring/include/mach/system.h2
-rw-r--r--arch/arm/mach-ep93xx/Kconfig44
-rw-r--r--arch/arm/mach-ep93xx/Makefile.boot9
-rw-r--r--arch/arm/mach-ep93xx/clock.c166
-rw-r--r--arch/arm/mach-ep93xx/core.c32
-rw-r--r--arch/arm/mach-ep93xx/edb93xx.c31
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h42
-rw-r--r--arch/arm/mach-ep93xx/include/mach/gpio.h16
-rw-r--r--arch/arm/mach-ep93xx/include/mach/memory.h6
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h5
-rw-r--r--arch/arm/mach-ep93xx/micro9.c132
-rw-r--r--arch/arm/mach-integrator/include/mach/memory.h1
-rw-r--r--arch/arm/mach-mx2/clock_imx27.c8
-rw-r--r--arch/arm/mach-mx2/pcm038.c96
-rw-r--r--arch/arm/mach-mx2/pcm970-baseboard.c2
-rw-r--r--arch/arm/mach-mx25/devices.c19
-rw-r--r--arch/arm/mach-mx25/mx25pdk.c25
-rw-r--r--arch/arm/mach-mx3/clock-imx35.c2
-rw-r--r--arch/arm/mach-mx3/clock.c2
-rw-r--r--arch/arm/mach-mx3/devices.c24
-rw-r--r--arch/arm/mach-mx3/devices.h6
-rw-r--r--arch/arm/mach-mx3/mm.c2
-rw-r--r--arch/arm/mach-omap1/board-ams-delta.c6
-rw-r--r--arch/arm/mach-omap1/board-generic.c8
-rw-r--r--arch/arm/mach-omap1/board-innovator.c20
-rw-r--r--arch/arm/mach-omap1/board-palmte.c8
-rw-r--r--arch/arm/mach-omap1/board-palmtt.c8
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c8
-rw-r--r--arch/arm/mach-omap1/board-sx1.c8
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c8
-rw-r--r--arch/arm/mach-omap1/serial.c26
-rw-r--r--arch/arm/mach-omap2/Kconfig12
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c2
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c4
-rw-r--r--arch/arm/mach-omap2/board-ldp.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c2
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c4
-rw-r--r--arch/arm/mach-omap2/board-rx51.c1
-rw-r--r--arch/arm/mach-omap2/board-zoom2.c6
-rw-r--r--arch/arm/mach-omap2/clock24xx.c1
-rw-r--r--arch/arm/mach-omap2/clockdomain.c74
-rw-r--r--arch/arm/mach-omap2/io.c2
-rw-r--r--arch/arm/mach-omap2/pm34xx.c7
-rw-r--r--arch/arm/mach-omap2/serial.c10
-rw-r--r--arch/arm/mach-pxa/cm-x300.c38
-rw-r--r--arch/arm/mach-pxa/cpufreq-pxa2xx.c2
-rw-r--r--arch/arm/mach-pxa/csb726.c2
-rw-r--r--arch/arm/mach-pxa/spitz.c39
-rw-r--r--arch/arm/mach-realview/core.h2
-rw-r--r--arch/arm/mach-realview/include/mach/board-pb1176.h5
-rw-r--r--arch/arm/mach-realview/include/mach/board-pb11mp.h12
-rw-r--r--arch/arm/mach-realview/include/mach/platform.h15
-rw-r--r--arch/arm/mach-realview/include/mach/system.h10
-rw-r--r--arch/arm/mach-realview/realview_pb1176.c11
-rw-r--r--arch/arm/mach-realview/realview_pb11mp.c16
-rw-r--r--arch/arm/mach-s3c2410/gpio.c1
-rw-r--r--arch/arm/mach-s3c2410/include/mach/dma.h7
-rw-r--r--arch/arm/mach-s3c2440/Kconfig1
-rw-r--r--arch/arm/mach-s3c2440/mach-mini2440.c4
-rw-r--r--arch/arm/mach-s3c6400/include/mach/dma.h5
-rw-r--r--arch/arm/mach-sa1100/Makefile1
-rw-r--r--arch/arm/mm/Kconfig5
-rw-r--r--arch/arm/mm/cache-v6.S20
-rw-r--r--arch/arm/mm/cache-v7.S19
-rw-r--r--arch/arm/mm/context.c5
-rw-r--r--arch/arm/mm/dma-mapping.c4
-rw-r--r--arch/arm/mm/fault-armv.c9
-rw-r--r--arch/arm/mm/fault.c5
-rw-r--r--arch/arm/mm/flush.c31
-rw-r--r--arch/arm/mm/highmem.c2
-rw-r--r--arch/arm/mm/init.c22
-rw-r--r--arch/arm/mm/mmu.c7
-rw-r--r--arch/arm/mm/proc-v6.S7
-rw-r--r--arch/arm/mm/proc-v7.S7
-rw-r--r--arch/arm/oprofile/op_model_v6.c3
-rw-r--r--arch/arm/plat-omap/dma.c33
-rw-r--r--arch/arm/plat-omap/include/mach/keypad.h5
-rw-r--r--arch/arm/plat-omap/iommu.c2
-rw-r--r--arch/arm/plat-omap/mcbsp.c2
-rw-r--r--arch/arm/plat-s3c24xx/adc.c2
-rw-r--r--arch/arm/plat-s3c24xx/cpu.c10
-rw-r--r--arch/arm/plat-s3c24xx/dma.c6
-rw-r--r--arch/arm/plat-s3c24xx/gpio.c1
-rw-r--r--arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h9
-rw-r--r--arch/arm/plat-s3c24xx/include/plat/s3c2410.h1
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/regs-clock.h4
-rw-r--r--arch/arm/plat-s3c64xx/s3c6400-clock.c3
-rw-r--r--arch/avr32/mach-at32ap/include/mach/cpu.h3
-rw-r--r--arch/frv/kernel/signal.c2
-rw-r--r--arch/ia64/include/asm/spinlock.h62
-rw-r--r--arch/ia64/include/asm/spinlock_types.h2
-rw-r--r--arch/ia64/kernel/mca.c104
-rw-r--r--arch/ia64/kernel/unaligned.c6
-rw-r--r--arch/ia64/mm/tlb.c24
-rw-r--r--arch/ia64/pci/pci.c9
-rw-r--r--arch/ia64/sn/kernel/io_common.c8
-rw-r--r--arch/ia64/sn/kernel/sn2/sn_hwperf.c7
-rw-r--r--arch/m68k/Kconfig6
-rw-r--r--arch/mips/Kconfig4
-rw-r--r--arch/mips/alchemy/common/irq.c34
-rw-r--r--arch/mips/alchemy/mtx-1/board_setup.c3
-rw-r--r--arch/mips/ar7/platform.c9
-rw-r--r--arch/mips/bcm63xx/Makefile2
-rw-r--r--arch/mips/bcm63xx/boards/board_bcm963xx.c3
-rw-r--r--arch/mips/bcm63xx/cpu.c3
-rw-r--r--arch/mips/bcm63xx/dev-uart.c2
-rw-r--r--arch/mips/bcm63xx/dev-wdt.c37
-rw-r--r--arch/mips/bcm63xx/setup.c4
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c224
-rw-r--r--arch/mips/cavium-octeon/smp.c5
-rw-r--r--arch/mips/include/asm/fixmap.h4
-rw-r--r--arch/mips/include/asm/gcmpregs.h18
-rw-r--r--arch/mips/include/asm/gic.h188
-rw-r--r--arch/mips/include/asm/mach-ar7/ar7.h3
-rw-r--r--arch/mips/include/asm/mach-au1x00/gpio-au1000.h2
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h6
-rw-r--r--arch/mips/include/asm/mach-ip27/topology.h4
-rw-r--r--arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h3
-rw-r--r--arch/mips/include/asm/mmu_context.h13
-rw-r--r--arch/mips/include/asm/setup.h2
-rw-r--r--arch/mips/include/asm/smtc_ipi.h1
-rw-r--r--arch/mips/include/asm/spram.h10
-rw-r--r--arch/mips/include/asm/thread_info.h9
-rw-r--r--arch/mips/jazz/irq.c2
-rw-r--r--arch/mips/kernel/cevt-bcm1480.c2
-rw-r--r--arch/mips/kernel/cevt-ds1287.c2
-rw-r--r--arch/mips/kernel/cevt-gt641xx.c2
-rw-r--r--arch/mips/kernel/cevt-r4k.c2
-rw-r--r--arch/mips/kernel/cevt-sb1250.c2
-rw-r--r--arch/mips/kernel/cevt-txx9.c2
-rw-r--r--arch/mips/kernel/cpu-probe.c8
-rw-r--r--arch/mips/kernel/head.S1
-rw-r--r--arch/mips/kernel/i8253.c2
-rw-r--r--arch/mips/kernel/irq-gic.c114
-rw-r--r--arch/mips/kernel/linux32.c6
-rw-r--r--arch/mips/kernel/scall64-o32.S4
-rw-r--r--arch/mips/kernel/smtc.c34
-rw-r--r--arch/mips/kernel/spram.c5
-rw-r--r--arch/mips/kernel/vpe.c2
-rw-r--r--arch/mips/loongson/common/irq.c1
-rw-r--r--arch/mips/math-emu/dp_simple.c13
-rw-r--r--arch/mips/math-emu/sp_simple.c11
-rw-r--r--arch/mips/mm/init.c6
-rw-r--r--arch/mips/mti-malta/malta-amon.c7
-rw-r--r--arch/mips/mti-malta/malta-int.c119
-rw-r--r--arch/mips/mti-malta/malta-pci.c27
-rw-r--r--arch/mips/nxp/pnx8550/common/int.c2
-rw-r--r--arch/mips/nxp/pnx8550/common/time.c4
-rw-r--r--arch/mips/oprofile/op_model_loongson2.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c2
-rw-r--r--arch/mips/sni/time.c2
-rw-r--r--arch/mips/txx9/generic/setup.c5
-rw-r--r--arch/powerpc/boot/dts/cm5200.dts1
-rw-r--r--arch/powerpc/boot/dts/digsy_mtc.dts1
-rw-r--r--arch/powerpc/boot/dts/lite5200.dts2
-rw-r--r--arch/powerpc/boot/dts/lite5200b.dts2
-rw-r--r--arch/powerpc/boot/dts/media5200.dts2
-rw-r--r--arch/powerpc/boot/dts/motionpro.dts1
-rw-r--r--arch/powerpc/boot/dts/mpc5121ads.dts3
-rw-r--r--arch/powerpc/boot/dts/mucmc52.dts332
-rw-r--r--arch/powerpc/boot/dts/pcm030.dts2
-rw-r--r--arch/powerpc/boot/dts/pcm032.dts2
-rw-r--r--arch/powerpc/boot/dts/tqm5200.dts1
-rw-r--r--arch/powerpc/boot/dts/uc101.dts284
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig136
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig153
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig146
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig142
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig148
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig192
-rw-r--r--arch/powerpc/configs/ppc64e_defconfig2199
-rw-r--r--arch/powerpc/include/asm/firmware.h10
-rw-r--r--arch/powerpc/kernel/cputable.c2
-rw-r--r--arch/powerpc/kernel/entry_64.S44
-rw-r--r--arch/powerpc/kernel/kgdb.c6
-rw-r--r--arch/powerpc/kernel/pci-common.c2
-rw-r--r--arch/powerpc/kernel/pci_64.c2
-rw-r--r--arch/powerpc/kernel/perf_event.c17
-rw-r--r--arch/powerpc/kernel/process.c12
-rw-r--r--arch/powerpc/kernel/setup_64.c1
-rw-r--r--arch/powerpc/kernel/vdso.c11
-rw-r--r--arch/powerpc/kernel/vdso32/vdso32.lds.S4
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S1
-rw-r--r--arch/powerpc/mm/slb_low.S10
-rw-r--r--arch/powerpc/platforms/52xx/mpc5200_simple.c2
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c2
-rw-r--r--arch/powerpc/platforms/iseries/Makefile11
-rw-r--r--arch/powerpc/platforms/iseries/dt.c56
-rw-r--r--arch/powerpc/platforms/powermac/low_i2c.c7
-rw-r--r--arch/powerpc/platforms/pseries/firmware.c3
-rw-r--r--arch/powerpc/xmon/xmon.c20
-rw-r--r--arch/s390/hypfs/hypfs_diag.c2
-rw-r--r--arch/s390/include/asm/cputime.h6
-rw-r--r--arch/s390/kernel/ipl.c7
-rw-r--r--arch/s390/kernel/processor.c6
-rw-r--r--arch/s390/kernel/smp.c7
-rw-r--r--arch/s390/kernel/swsusp_asm64.S2
-rw-r--r--arch/sh/Kconfig6
-rw-r--r--arch/sh/Makefile3
-rw-r--r--arch/sh/boards/mach-landisk/gio.c10
-rw-r--r--arch/sh/boards/mach-rsk/devices-rsk7203.c4
-rw-r--r--arch/sh/boards/mach-rsk/setup.c23
-rw-r--r--arch/sh/boot/Makefile6
-rw-r--r--arch/sh/kernel/dwarf.c22
-rw-r--r--arch/sh/kernel/entry-common.S2
-rw-r--r--arch/sh/kernel/ftrace.c37
-rw-r--r--arch/sh/kernel/irq.c3
-rw-r--r--arch/sh/kernel/setup.c2
-rw-r--r--arch/sh/kernel/sh_ksyms_32.c14
-rw-r--r--arch/sh/kernel/signal_32.c9
-rw-r--r--arch/sh/kernel/smp.c2
-rw-r--r--arch/sh/kernel/traps_32.c7
-rw-r--r--arch/sh/mm/Kconfig2
-rw-r--r--arch/sh/mm/cache-sh4.c22
-rw-r--r--arch/sh/mm/cache.c12
-rw-r--r--arch/sparc/kernel/ldc.c4
-rw-r--r--arch/sparc/kernel/perf_event.c2
-rw-r--r--arch/sparc/mm/init_64.c2
-rw-r--r--arch/x86/Kconfig15
-rw-r--r--arch/x86/Kconfig.cpu2
-rw-r--r--arch/x86/Makefile1
-rw-r--r--arch/x86/boot/setup.ld3
-rw-r--r--arch/x86/crypto/aesni-intel_glue.c10
-rw-r--r--arch/x86/ia32/ia32entry.S5
-rw-r--r--arch/x86/include/asm/paravirt.h28
-rw-r--r--arch/x86/include/asm/paravirt_types.h10
-rw-r--r--arch/x86/include/asm/topology.h1
-rw-r--r--arch/x86/include/asm/uv/uv_hub.h23
-rw-r--r--arch/x86/kernel/acpi/realmode/wakeup.lds.S3
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c8
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c3
-rw-r--r--arch/x86/kernel/crash_dump_32.c19
-rw-r--r--arch/x86/kernel/efi.c2
-rw-r--r--arch/x86/kernel/irq.c6
-rw-r--r--arch/x86/kernel/pci-dma.c2
-rw-r--r--arch/x86/kernel/smp.c1
-rw-r--r--arch/x86/kernel/time.c3
-rw-r--r--arch/x86/kernel/tlb_uv.c9
-rw-r--r--arch/x86/kernel/trampoline.c12
-rw-r--r--arch/x86/kernel/trampoline_64.S4
-rw-r--r--arch/x86/kernel/vmi_32.c2
-rw-r--r--arch/x86/kernel/vmlinux.lds.S3
-rw-r--r--arch/x86/kvm/i8254.c2
-rw-r--r--arch/x86/kvm/lapic.c2
-rw-r--r--arch/x86/kvm/mmu.c16
-rw-r--r--arch/x86/xen/enlighten.c3
264 files changed, 5564 insertions, 1658 deletions
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 8da75dede52e..264f52b5c52d 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -304,7 +304,7 @@ CONFIG_ALIGNMENT_TRAP=y
304CONFIG_ZBOOT_ROM_TEXT=0x10C08000 304CONFIG_ZBOOT_ROM_TEXT=0x10C08000
305CONFIG_ZBOOT_ROM_BSS=0x10200000 305CONFIG_ZBOOT_ROM_BSS=0x10200000
306# CONFIG_ZBOOT_ROM is not set 306# CONFIG_ZBOOT_ROM is not set
307CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS0,115200n8" 307CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS2,115200n8"
308# CONFIG_XIP_KERNEL is not set 308# CONFIG_XIP_KERNEL is not set
309# CONFIG_KEXEC is not set 309# CONFIG_KEXEC is not set
310 310
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index 357d4021e2d0..b3c8cce0f8fb 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -969,7 +969,6 @@ CONFIG_USB_ETH_RNDIS=y
969# 969#
970CONFIG_USB_OTG_UTILS=y 970CONFIG_USB_OTG_UTILS=y
971# CONFIG_USB_GPIO_VBUS is not set 971# CONFIG_USB_GPIO_VBUS is not set
972# CONFIG_ISP1301_OMAP is not set
973CONFIG_TWL4030_USB=y 972CONFIG_TWL4030_USB=y
974# CONFIG_NOP_USB_XCEIV is not set 973# CONFIG_NOP_USB_XCEIV is not set
975CONFIG_MMC=y 974CONFIG_MMC=y
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig
index 7d61ae6e75da..953ba0297fc4 100644
--- a/arch/arm/configs/u300_defconfig
+++ b/arch/arm/configs/u300_defconfig
@@ -1,14 +1,14 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc3 3# Linux kernel version: 2.6.32-rc5
4# Thu Jul 16 23:36:10 2009 4# Sat Oct 17 23:32:24 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y 9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y 11CONFIG_HAVE_TCM=y
12CONFIG_GENERIC_HARDIRQS=y 12CONFIG_GENERIC_HARDIRQS=y
13CONFIG_STACKTRACE_SUPPORT=y 13CONFIG_STACKTRACE_SUPPORT=y
14CONFIG_HAVE_LATENCYTOP_SUPPORT=y 14CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -44,11 +44,12 @@ CONFIG_SYSVIPC_SYSCTL=y
44# 44#
45# RCU Subsystem 45# RCU Subsystem
46# 46#
47CONFIG_CLASSIC_RCU=y 47CONFIG_TREE_RCU=y
48# CONFIG_TREE_RCU is not set 48# CONFIG_TREE_PREEMPT_RCU is not set
49# CONFIG_PREEMPT_RCU is not set 49# CONFIG_RCU_TRACE is not set
50CONFIG_RCU_FANOUT=32
51# CONFIG_RCU_FANOUT_EXACT is not set
50# CONFIG_TREE_RCU_TRACE is not set 52# CONFIG_TREE_RCU_TRACE is not set
51# CONFIG_PREEMPT_RCU_TRACE is not set
52# CONFIG_IKCONFIG is not set 53# CONFIG_IKCONFIG is not set
53CONFIG_LOG_BUF_SHIFT=14 54CONFIG_LOG_BUF_SHIFT=14
54# CONFIG_GROUP_SCHED is not set 55# CONFIG_GROUP_SCHED is not set
@@ -80,17 +81,15 @@ CONFIG_SHMEM=y
80# CONFIG_AIO is not set 81# CONFIG_AIO is not set
81 82
82# 83#
83# Performance Counters 84# Kernel Performance Events And Counters
84# 85#
85# CONFIG_VM_EVENT_COUNTERS is not set 86# CONFIG_VM_EVENT_COUNTERS is not set
86CONFIG_SLUB_DEBUG=y 87CONFIG_SLUB_DEBUG=y
87# CONFIG_STRIP_ASM_SYMS is not set
88CONFIG_COMPAT_BRK=y 88CONFIG_COMPAT_BRK=y
89# CONFIG_SLAB is not set 89# CONFIG_SLAB is not set
90CONFIG_SLUB=y 90CONFIG_SLUB=y
91# CONFIG_SLOB is not set 91# CONFIG_SLOB is not set
92# CONFIG_PROFILING is not set 92# CONFIG_PROFILING is not set
93# CONFIG_MARKERS is not set
94CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
95# CONFIG_KPROBES is not set 94# CONFIG_KPROBES is not set
96CONFIG_HAVE_KPROBES=y 95CONFIG_HAVE_KPROBES=y
@@ -133,6 +132,7 @@ CONFIG_DEFAULT_IOSCHED="deadline"
133# 132#
134# System Type 133# System Type
135# 134#
135CONFIG_MMU=y
136# CONFIG_ARCH_AAEC2000 is not set 136# CONFIG_ARCH_AAEC2000 is not set
137# CONFIG_ARCH_INTEGRATOR is not set 137# CONFIG_ARCH_INTEGRATOR is not set
138# CONFIG_ARCH_REALVIEW is not set 138# CONFIG_ARCH_REALVIEW is not set
@@ -147,6 +147,7 @@ CONFIG_DEFAULT_IOSCHED="deadline"
147# CONFIG_ARCH_STMP3XXX is not set 147# CONFIG_ARCH_STMP3XXX is not set
148# CONFIG_ARCH_NETX is not set 148# CONFIG_ARCH_NETX is not set
149# CONFIG_ARCH_H720X is not set 149# CONFIG_ARCH_H720X is not set
150# CONFIG_ARCH_NOMADIK is not set
150# CONFIG_ARCH_IOP13XX is not set 151# CONFIG_ARCH_IOP13XX is not set
151# CONFIG_ARCH_IOP32X is not set 152# CONFIG_ARCH_IOP32X is not set
152# CONFIG_ARCH_IOP33X is not set 153# CONFIG_ARCH_IOP33X is not set
@@ -169,11 +170,13 @@ CONFIG_DEFAULT_IOSCHED="deadline"
169# CONFIG_ARCH_SA1100 is not set 170# CONFIG_ARCH_SA1100 is not set
170# CONFIG_ARCH_S3C2410 is not set 171# CONFIG_ARCH_S3C2410 is not set
171# CONFIG_ARCH_S3C64XX is not set 172# CONFIG_ARCH_S3C64XX is not set
173# CONFIG_ARCH_S5PC1XX is not set
172# CONFIG_ARCH_SHARK is not set 174# CONFIG_ARCH_SHARK is not set
173# CONFIG_ARCH_LH7A40X is not set 175# CONFIG_ARCH_LH7A40X is not set
174CONFIG_ARCH_U300=y 176CONFIG_ARCH_U300=y
175# CONFIG_ARCH_DAVINCI is not set 177# CONFIG_ARCH_DAVINCI is not set
176# CONFIG_ARCH_OMAP is not set 178# CONFIG_ARCH_OMAP is not set
179# CONFIG_ARCH_BCMRING is not set
177 180
178# 181#
179# ST-Ericsson AB U300/U330/U335/U365 Platform 182# ST-Ericsson AB U300/U330/U335/U365 Platform
@@ -195,6 +198,7 @@ CONFIG_MACH_U300_BS335=y
195CONFIG_MACH_U300_DUAL_RAM=y 198CONFIG_MACH_U300_DUAL_RAM=y
196CONFIG_U300_DEBUG=y 199CONFIG_U300_DEBUG=y
197# CONFIG_MACH_U300_SEMI_IS_SHARED is not set 200# CONFIG_MACH_U300_SEMI_IS_SHARED is not set
201CONFIG_MACH_U300_SPIDUMMY=y
198 202
199# 203#
200# All the settings below must match the bootloader's settings 204# All the settings below must match the bootloader's settings
@@ -207,7 +211,7 @@ CONFIG_CPU_32=y
207CONFIG_CPU_ARM926T=y 211CONFIG_CPU_ARM926T=y
208CONFIG_CPU_32v5=y 212CONFIG_CPU_32v5=y
209CONFIG_CPU_ABRT_EV5TJ=y 213CONFIG_CPU_ABRT_EV5TJ=y
210CONFIG_CPU_PABRT_NOIFAR=y 214CONFIG_CPU_PABRT_LEGACY=y
211CONFIG_CPU_CACHE_VIVT=y 215CONFIG_CPU_CACHE_VIVT=y
212CONFIG_CPU_COPY_V4WB=y 216CONFIG_CPU_COPY_V4WB=y
213CONFIG_CPU_TLB_V4WBI=y 217CONFIG_CPU_TLB_V4WBI=y
@@ -222,6 +226,7 @@ CONFIG_ARM_THUMB=y
222# CONFIG_CPU_DCACHE_DISABLE is not set 226# CONFIG_CPU_DCACHE_DISABLE is not set
223# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 227# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
224# CONFIG_CPU_CACHE_ROUND_ROBIN is not set 228# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
229CONFIG_ARM_L1_CACHE_SHIFT=5
225CONFIG_ARM_VIC=y 230CONFIG_ARM_VIC=y
226CONFIG_ARM_VIC_NR=2 231CONFIG_ARM_VIC_NR=2
227CONFIG_COMMON_CLKDEV=y 232CONFIG_COMMON_CLKDEV=y
@@ -245,6 +250,8 @@ CONFIG_VMSPLIT_3G=y
245# CONFIG_VMSPLIT_2G is not set 250# CONFIG_VMSPLIT_2G is not set
246# CONFIG_VMSPLIT_1G is not set 251# CONFIG_VMSPLIT_1G is not set
247CONFIG_PAGE_OFFSET=0xC0000000 252CONFIG_PAGE_OFFSET=0xC0000000
253# CONFIG_PREEMPT_NONE is not set
254# CONFIG_PREEMPT_VOLUNTARY is not set
248CONFIG_PREEMPT=y 255CONFIG_PREEMPT=y
249CONFIG_HZ=100 256CONFIG_HZ=100
250CONFIG_AEABI=y 257CONFIG_AEABI=y
@@ -265,6 +272,7 @@ CONFIG_ZONE_DMA_FLAG=0
265CONFIG_VIRT_TO_BUS=y 272CONFIG_VIRT_TO_BUS=y
266CONFIG_HAVE_MLOCK=y 273CONFIG_HAVE_MLOCK=y
267CONFIG_HAVE_MLOCKED_PAGE_BIT=y 274CONFIG_HAVE_MLOCKED_PAGE_BIT=y
275# CONFIG_KSM is not set
268CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 276CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
269CONFIG_ALIGNMENT_TRAP=y 277CONFIG_ALIGNMENT_TRAP=y
270# CONFIG_UACCESS_WITH_MEMCPY is not set 278# CONFIG_UACCESS_WITH_MEMCPY is not set
@@ -313,6 +321,7 @@ CONFIG_PM=y
313# CONFIG_PM_DEBUG is not set 321# CONFIG_PM_DEBUG is not set
314# CONFIG_SUSPEND is not set 322# CONFIG_SUSPEND is not set
315# CONFIG_APM_EMULATION is not set 323# CONFIG_APM_EMULATION is not set
324# CONFIG_PM_RUNTIME is not set
316CONFIG_ARCH_SUSPEND_POSSIBLE=y 325CONFIG_ARCH_SUSPEND_POSSIBLE=y
317CONFIG_NET=y 326CONFIG_NET=y
318 327
@@ -351,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_NETFILTER is not set 360# CONFIG_NETFILTER is not set
352# CONFIG_IP_DCCP is not set 361# CONFIG_IP_DCCP is not set
353# CONFIG_IP_SCTP is not set 362# CONFIG_IP_SCTP is not set
363# CONFIG_RDS is not set
354# CONFIG_TIPC is not set 364# CONFIG_TIPC is not set
355# CONFIG_ATM is not set 365# CONFIG_ATM is not set
356# CONFIG_BRIDGE is not set 366# CONFIG_BRIDGE is not set
@@ -391,6 +401,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
391# Generic Driver Options 401# Generic Driver Options
392# 402#
393CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 403CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
404# CONFIG_DEVTMPFS is not set
394CONFIG_STANDALONE=y 405CONFIG_STANDALONE=y
395# CONFIG_PREVENT_FIRMWARE_BUILD is not set 406# CONFIG_PREVENT_FIRMWARE_BUILD is not set
396CONFIG_FW_LOADER=y 407CONFIG_FW_LOADER=y
@@ -402,9 +413,9 @@ CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_CONNECTOR is not set 413# CONFIG_CONNECTOR is not set
403CONFIG_MTD=y 414CONFIG_MTD=y
404# CONFIG_MTD_DEBUG is not set 415# CONFIG_MTD_DEBUG is not set
416# CONFIG_MTD_TESTS is not set
405# CONFIG_MTD_CONCAT is not set 417# CONFIG_MTD_CONCAT is not set
406CONFIG_MTD_PARTITIONS=y 418CONFIG_MTD_PARTITIONS=y
407# CONFIG_MTD_TESTS is not set
408# CONFIG_MTD_REDBOOT_PARTS is not set 419# CONFIG_MTD_REDBOOT_PARTS is not set
409CONFIG_MTD_CMDLINE_PARTS=y 420CONFIG_MTD_CMDLINE_PARTS=y
410# CONFIG_MTD_AFS_PARTS is not set 421# CONFIG_MTD_AFS_PARTS is not set
@@ -453,6 +464,7 @@ CONFIG_MTD_CFI_I2=y
453# 464#
454# CONFIG_MTD_DATAFLASH is not set 465# CONFIG_MTD_DATAFLASH is not set
455# CONFIG_MTD_M25P80 is not set 466# CONFIG_MTD_M25P80 is not set
467# CONFIG_MTD_SST25L is not set
456# CONFIG_MTD_SLRAM is not set 468# CONFIG_MTD_SLRAM is not set
457# CONFIG_MTD_PHRAM is not set 469# CONFIG_MTD_PHRAM is not set
458# CONFIG_MTD_MTDRAM is not set 470# CONFIG_MTD_MTDRAM is not set
@@ -520,6 +532,7 @@ CONFIG_HAVE_IDE=y
520# CONFIG_MD is not set 532# CONFIG_MD is not set
521# CONFIG_NETDEVICES is not set 533# CONFIG_NETDEVICES is not set
522# CONFIG_ISDN is not set 534# CONFIG_ISDN is not set
535# CONFIG_PHONE is not set
523 536
524# 537#
525# Input device support 538# Input device support
@@ -540,12 +553,16 @@ CONFIG_INPUT_EVDEV=y
540# Input Device Drivers 553# Input Device Drivers
541# 554#
542CONFIG_INPUT_KEYBOARD=y 555CONFIG_INPUT_KEYBOARD=y
556# CONFIG_KEYBOARD_ADP5588 is not set
543# CONFIG_KEYBOARD_ATKBD is not set 557# CONFIG_KEYBOARD_ATKBD is not set
558# CONFIG_QT2160 is not set
544# CONFIG_KEYBOARD_LKKBD is not set 559# CONFIG_KEYBOARD_LKKBD is not set
545# CONFIG_KEYBOARD_GPIO is not set 560# CONFIG_KEYBOARD_GPIO is not set
546# CONFIG_KEYBOARD_MATRIX is not set 561# CONFIG_KEYBOARD_MATRIX is not set
547# CONFIG_KEYBOARD_LM8323 is not set 562# CONFIG_KEYBOARD_LM8323 is not set
563# CONFIG_KEYBOARD_MAX7359 is not set
548# CONFIG_KEYBOARD_NEWTON is not set 564# CONFIG_KEYBOARD_NEWTON is not set
565# CONFIG_KEYBOARD_OPENCORES is not set
549# CONFIG_KEYBOARD_STOWAWAY is not set 566# CONFIG_KEYBOARD_STOWAWAY is not set
550# CONFIG_KEYBOARD_SUNKBD is not set 567# CONFIG_KEYBOARD_SUNKBD is not set
551# CONFIG_KEYBOARD_XTKBD is not set 568# CONFIG_KEYBOARD_XTKBD is not set
@@ -597,6 +614,7 @@ CONFIG_LEGACY_PTY_COUNT=16
597# CONFIG_TCG_TPM is not set 614# CONFIG_TCG_TPM is not set
598CONFIG_I2C=y 615CONFIG_I2C=y
599CONFIG_I2C_BOARDINFO=y 616CONFIG_I2C_BOARDINFO=y
617CONFIG_I2C_COMPAT=y
600# CONFIG_I2C_CHARDEV is not set 618# CONFIG_I2C_CHARDEV is not set
601CONFIG_I2C_HELPER_AUTO=y 619CONFIG_I2C_HELPER_AUTO=y
602 620
@@ -629,9 +647,6 @@ CONFIG_I2C_STU300=y
629# Miscellaneous I2C Chip support 647# Miscellaneous I2C Chip support
630# 648#
631# CONFIG_DS1682 is not set 649# CONFIG_DS1682 is not set
632# CONFIG_SENSORS_PCF8574 is not set
633# CONFIG_PCF8575 is not set
634# CONFIG_SENSORS_PCA9539 is not set
635# CONFIG_SENSORS_TSL2550 is not set 650# CONFIG_SENSORS_TSL2550 is not set
636# CONFIG_I2C_DEBUG_CORE is not set 651# CONFIG_I2C_DEBUG_CORE is not set
637# CONFIG_I2C_DEBUG_ALGO is not set 652# CONFIG_I2C_DEBUG_ALGO is not set
@@ -653,16 +668,21 @@ CONFIG_SPI_PL022=y
653# 668#
654# CONFIG_SPI_SPIDEV is not set 669# CONFIG_SPI_SPIDEV is not set
655# CONFIG_SPI_TLE62X0 is not set 670# CONFIG_SPI_TLE62X0 is not set
671
672#
673# PPS support
674#
675# CONFIG_PPS is not set
656# CONFIG_W1 is not set 676# CONFIG_W1 is not set
657CONFIG_POWER_SUPPLY=y 677CONFIG_POWER_SUPPLY=y
658# CONFIG_POWER_SUPPLY_DEBUG is not set 678# CONFIG_POWER_SUPPLY_DEBUG is not set
659# CONFIG_PDA_POWER is not set 679# CONFIG_PDA_POWER is not set
660# CONFIG_BATTERY_DS2760 is not set 680# CONFIG_BATTERY_DS2760 is not set
681# CONFIG_BATTERY_DS2782 is not set
661# CONFIG_BATTERY_BQ27x00 is not set 682# CONFIG_BATTERY_BQ27x00 is not set
662# CONFIG_BATTERY_MAX17040 is not set 683# CONFIG_BATTERY_MAX17040 is not set
663# CONFIG_HWMON is not set 684# CONFIG_HWMON is not set
664# CONFIG_THERMAL is not set 685# CONFIG_THERMAL is not set
665# CONFIG_THERMAL_HWMON is not set
666CONFIG_WATCHDOG=y 686CONFIG_WATCHDOG=y
667# CONFIG_WATCHDOG_NOWAYOUT is not set 687# CONFIG_WATCHDOG_NOWAYOUT is not set
668 688
@@ -690,10 +710,24 @@ CONFIG_SSB_POSSIBLE=y
690# CONFIG_MFD_TC6387XB is not set 710# CONFIG_MFD_TC6387XB is not set
691# CONFIG_PMIC_DA903X is not set 711# CONFIG_PMIC_DA903X is not set
692# CONFIG_MFD_WM8400 is not set 712# CONFIG_MFD_WM8400 is not set
713# CONFIG_MFD_WM831X is not set
693# CONFIG_MFD_WM8350_I2C is not set 714# CONFIG_MFD_WM8350_I2C is not set
694# CONFIG_MFD_PCF50633 is not set 715# CONFIG_MFD_PCF50633 is not set
716# CONFIG_MFD_MC13783 is not set
695CONFIG_AB3100_CORE=y 717CONFIG_AB3100_CORE=y
718CONFIG_AB3100_OTP=y
696# CONFIG_EZX_PCAP is not set 719# CONFIG_EZX_PCAP is not set
720CONFIG_REGULATOR=y
721# CONFIG_REGULATOR_DEBUG is not set
722# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
723# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
724# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
725# CONFIG_REGULATOR_BQ24022 is not set
726# CONFIG_REGULATOR_MAX1586 is not set
727# CONFIG_REGULATOR_LP3971 is not set
728CONFIG_REGULATOR_AB3100=y
729# CONFIG_REGULATOR_TPS65023 is not set
730# CONFIG_REGULATOR_TPS6507X is not set
697# CONFIG_MEDIA_SUPPORT is not set 731# CONFIG_MEDIA_SUPPORT is not set
698 732
699# 733#
@@ -792,9 +826,10 @@ CONFIG_MMC_BLOCK_BOUNCE=y
792# 826#
793CONFIG_MMC_ARMMMCI=y 827CONFIG_MMC_ARMMMCI=y
794# CONFIG_MMC_SDHCI is not set 828# CONFIG_MMC_SDHCI is not set
829# CONFIG_MMC_AT91 is not set
830# CONFIG_MMC_ATMELMCI is not set
795# CONFIG_MMC_SPI is not set 831# CONFIG_MMC_SPI is not set
796# CONFIG_MEMSTICK is not set 832# CONFIG_MEMSTICK is not set
797# CONFIG_ACCESSIBILITY is not set
798CONFIG_NEW_LEDS=y 833CONFIG_NEW_LEDS=y
799CONFIG_LEDS_CLASS=y 834CONFIG_LEDS_CLASS=y
800 835
@@ -820,10 +855,10 @@ CONFIG_LEDS_TRIGGER_BACKLIGHT=y
820# 855#
821# iptables trigger is under Netfilter config (LED target) 856# iptables trigger is under Netfilter config (LED target)
822# 857#
858# CONFIG_ACCESSIBILITY is not set
823CONFIG_RTC_LIB=y 859CONFIG_RTC_LIB=y
824CONFIG_RTC_CLASS=y 860CONFIG_RTC_CLASS=y
825CONFIG_RTC_HCTOSYS=y 861# CONFIG_RTC_HCTOSYS is not set
826CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
827# CONFIG_RTC_DEBUG is not set 862# CONFIG_RTC_DEBUG is not set
828 863
829# 864#
@@ -863,6 +898,7 @@ CONFIG_RTC_INTF_DEV=y
863# CONFIG_RTC_DRV_R9701 is not set 898# CONFIG_RTC_DRV_R9701 is not set
864# CONFIG_RTC_DRV_RS5C348 is not set 899# CONFIG_RTC_DRV_RS5C348 is not set
865# CONFIG_RTC_DRV_DS3234 is not set 900# CONFIG_RTC_DRV_DS3234 is not set
901# CONFIG_RTC_DRV_PCF2123 is not set
866 902
867# 903#
868# Platform RTC drivers 904# Platform RTC drivers
@@ -878,27 +914,25 @@ CONFIG_RTC_INTF_DEV=y
878# CONFIG_RTC_DRV_M48T59 is not set 914# CONFIG_RTC_DRV_M48T59 is not set
879# CONFIG_RTC_DRV_BQ4802 is not set 915# CONFIG_RTC_DRV_BQ4802 is not set
880# CONFIG_RTC_DRV_V3020 is not set 916# CONFIG_RTC_DRV_V3020 is not set
917CONFIG_RTC_DRV_AB3100=y
881 918
882# 919#
883# on-CPU RTC drivers 920# on-CPU RTC drivers
884# 921#
885# CONFIG_RTC_DRV_PL030 is not set 922# CONFIG_RTC_DRV_PL030 is not set
886# CONFIG_RTC_DRV_PL031 is not set 923# CONFIG_RTC_DRV_PL031 is not set
924CONFIG_RTC_DRV_COH901331=y
887CONFIG_DMADEVICES=y 925CONFIG_DMADEVICES=y
888 926
889# 927#
890# DMA Devices 928# DMA Devices
891# 929#
892# CONFIG_AUXDISPLAY is not set 930# CONFIG_AUXDISPLAY is not set
893CONFIG_REGULATOR=y
894# CONFIG_REGULATOR_DEBUG is not set
895# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
896# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
897# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
898# CONFIG_REGULATOR_BQ24022 is not set
899# CONFIG_REGULATOR_MAX1586 is not set
900# CONFIG_REGULATOR_LP3971 is not set
901# CONFIG_UIO is not set 931# CONFIG_UIO is not set
932
933#
934# TI VLYNQ
935#
902# CONFIG_STAGING is not set 936# CONFIG_STAGING is not set
903 937
904# 938#
@@ -913,6 +947,7 @@ CONFIG_REGULATOR=y
913# CONFIG_XFS_FS is not set 947# CONFIG_XFS_FS is not set
914# CONFIG_OCFS2_FS is not set 948# CONFIG_OCFS2_FS is not set
915# CONFIG_BTRFS_FS is not set 949# CONFIG_BTRFS_FS is not set
950# CONFIG_NILFS2_FS is not set
916CONFIG_FILE_LOCKING=y 951CONFIG_FILE_LOCKING=y
917CONFIG_FSNOTIFY=y 952CONFIG_FSNOTIFY=y
918# CONFIG_DNOTIFY is not set 953# CONFIG_DNOTIFY is not set
@@ -975,7 +1010,6 @@ CONFIG_MISC_FILESYSTEMS=y
975# CONFIG_ROMFS_FS is not set 1010# CONFIG_ROMFS_FS is not set
976# CONFIG_SYSV_FS is not set 1011# CONFIG_SYSV_FS is not set
977# CONFIG_UFS_FS is not set 1012# CONFIG_UFS_FS is not set
978# CONFIG_NILFS2_FS is not set
979# CONFIG_NETWORK_FILESYSTEMS is not set 1013# CONFIG_NETWORK_FILESYSTEMS is not set
980 1014
981# 1015#
@@ -1033,6 +1067,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1033CONFIG_ENABLE_MUST_CHECK=y 1067CONFIG_ENABLE_MUST_CHECK=y
1034CONFIG_FRAME_WARN=1024 1068CONFIG_FRAME_WARN=1024
1035# CONFIG_MAGIC_SYSRQ is not set 1069# CONFIG_MAGIC_SYSRQ is not set
1070# CONFIG_STRIP_ASM_SYMS is not set
1036# CONFIG_UNUSED_SYMBOLS is not set 1071# CONFIG_UNUSED_SYMBOLS is not set
1037# CONFIG_DEBUG_FS is not set 1072# CONFIG_DEBUG_FS is not set
1038# CONFIG_HEADERS_CHECK is not set 1073# CONFIG_HEADERS_CHECK is not set
@@ -1066,11 +1101,13 @@ CONFIG_DEBUG_INFO=y
1066# CONFIG_DEBUG_LIST is not set 1101# CONFIG_DEBUG_LIST is not set
1067# CONFIG_DEBUG_SG is not set 1102# CONFIG_DEBUG_SG is not set
1068# CONFIG_DEBUG_NOTIFIERS is not set 1103# CONFIG_DEBUG_NOTIFIERS is not set
1104# CONFIG_DEBUG_CREDENTIALS is not set
1069# CONFIG_BOOT_PRINTK_DELAY is not set 1105# CONFIG_BOOT_PRINTK_DELAY is not set
1070# CONFIG_RCU_TORTURE_TEST is not set 1106# CONFIG_RCU_TORTURE_TEST is not set
1071# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1107# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1072# CONFIG_BACKTRACE_SELF_TEST is not set 1108# CONFIG_BACKTRACE_SELF_TEST is not set
1073# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1109# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1110# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1074# CONFIG_FAULT_INJECTION is not set 1111# CONFIG_FAULT_INJECTION is not set
1075# CONFIG_LATENCYTOP is not set 1112# CONFIG_LATENCYTOP is not set
1076# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1113# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1121,6 +1158,7 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1121# CONFIG_CRC32 is not set 1158# CONFIG_CRC32 is not set
1122# CONFIG_CRC7 is not set 1159# CONFIG_CRC7 is not set
1123# CONFIG_LIBCRC32C is not set 1160# CONFIG_LIBCRC32C is not set
1161CONFIG_GENERIC_ALLOCATOR=y
1124CONFIG_HAS_IOMEM=y 1162CONFIG_HAS_IOMEM=y
1125CONFIG_HAS_IOPORT=y 1163CONFIG_HAS_IOPORT=y
1126CONFIG_HAS_DMA=y 1164CONFIG_HAS_DMA=y
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h
index 63a481fbbed4..338ff19ae447 100644
--- a/arch/arm/include/asm/bitops.h
+++ b/arch/arm/include/asm/bitops.h
@@ -84,7 +84,7 @@ ____atomic_test_and_set_bit(unsigned int bit, volatile unsigned long *p)
84 *p = res | mask; 84 *p = res | mask;
85 raw_local_irq_restore(flags); 85 raw_local_irq_restore(flags);
86 86
87 return res & mask; 87 return (res & mask) != 0;
88} 88}
89 89
90static inline int 90static inline int
@@ -101,7 +101,7 @@ ____atomic_test_and_clear_bit(unsigned int bit, volatile unsigned long *p)
101 *p = res & ~mask; 101 *p = res & ~mask;
102 raw_local_irq_restore(flags); 102 raw_local_irq_restore(flags);
103 103
104 return res & mask; 104 return (res & mask) != 0;
105} 105}
106 106
107static inline int 107static inline int
@@ -118,7 +118,7 @@ ____atomic_test_and_change_bit(unsigned int bit, volatile unsigned long *p)
118 *p = res ^ mask; 118 *p = res ^ mask;
119 raw_local_irq_restore(flags); 119 raw_local_irq_restore(flags);
120 120
121 return res & mask; 121 return (res & mask) != 0;
122} 122}
123 123
124#include <asm-generic/bitops/non-atomic.h> 124#include <asm-generic/bitops/non-atomic.h>
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
index fd03fb63a332..3d0cdd21b882 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -414,9 +414,14 @@ extern void __flush_dcache_page(struct address_space *mapping, struct page *page
414 414
415static inline void __flush_icache_all(void) 415static inline void __flush_icache_all(void)
416{ 416{
417#ifdef CONFIG_ARM_ERRATA_411920
418 extern void v6_icache_inval_all(void);
419 v6_icache_inval_all();
420#else
417 asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" 421 asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n"
418 : 422 :
419 : "r" (0)); 423 : "r" (0));
424#endif
420} 425}
421 426
422#define ARCH_HAS_FLUSH_ANON_PAGE 427#define ARCH_HAS_FLUSH_ANON_PAGE
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index c3b911ee9151..6aac3f5bb2f3 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -98,6 +98,9 @@ extern int elf_check_arch(const struct elf32_hdr *);
98extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); 98extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
99#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk) 99#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
100 100
101int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
102#define ELF_CORE_COPY_TASK_REGS dump_task_regs
103
101#define USE_ELF_CORE_DUMP 104#define USE_ELF_CORE_DUMP
102#define ELF_EXEC_PAGESIZE 4096 105#define ELF_EXEC_PAGESIZE 4096
103 106
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
index a45ab5dd8255..c2f1605de359 100644
--- a/arch/arm/include/asm/tlbflush.h
+++ b/arch/arm/include/asm/tlbflush.h
@@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
350 if (tlb_flag(TLB_WB)) 350 if (tlb_flag(TLB_WB))
351 dsb(); 351 dsb();
352 352
353 if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) { 353 if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {
354 if (tlb_flag(TLB_V3_FULL)) 354 if (tlb_flag(TLB_V3_FULL))
355 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc"); 355 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");
356 if (tlb_flag(TLB_V4_U_FULL)) 356 if (tlb_flag(TLB_V4_U_FULL))
@@ -360,6 +360,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
360 if (tlb_flag(TLB_V4_I_FULL)) 360 if (tlb_flag(TLB_V4_I_FULL))
361 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc"); 361 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
362 } 362 }
363 put_cpu();
363 364
364 if (tlb_flag(TLB_V6_U_ASID)) 365 if (tlb_flag(TLB_V6_U_ASID))
365 asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc"); 366 asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc");
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 322410be573c..0022b4d57f8b 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -608,33 +608,33 @@ call_fpe:
608 THUMB( add pc, r8 ) 608 THUMB( add pc, r8 )
609 nop 609 nop
610 610
611 W(mov) pc, lr @ CP#0 611 movw_pc lr @ CP#0
612 W(b) do_fpe @ CP#1 (FPE) 612 W(b) do_fpe @ CP#1 (FPE)
613 W(b) do_fpe @ CP#2 (FPE) 613 W(b) do_fpe @ CP#2 (FPE)
614 W(mov) pc, lr @ CP#3 614 movw_pc lr @ CP#3
615#ifdef CONFIG_CRUNCH 615#ifdef CONFIG_CRUNCH
616 b crunch_task_enable @ CP#4 (MaverickCrunch) 616 b crunch_task_enable @ CP#4 (MaverickCrunch)
617 b crunch_task_enable @ CP#5 (MaverickCrunch) 617 b crunch_task_enable @ CP#5 (MaverickCrunch)
618 b crunch_task_enable @ CP#6 (MaverickCrunch) 618 b crunch_task_enable @ CP#6 (MaverickCrunch)
619#else 619#else
620 W(mov) pc, lr @ CP#4 620 movw_pc lr @ CP#4
621 W(mov) pc, lr @ CP#5 621 movw_pc lr @ CP#5
622 W(mov) pc, lr @ CP#6 622 movw_pc lr @ CP#6
623#endif 623#endif
624 W(mov) pc, lr @ CP#7 624 movw_pc lr @ CP#7
625 W(mov) pc, lr @ CP#8 625 movw_pc lr @ CP#8
626 W(mov) pc, lr @ CP#9 626 movw_pc lr @ CP#9
627#ifdef CONFIG_VFP 627#ifdef CONFIG_VFP
628 W(b) do_vfp @ CP#10 (VFP) 628 W(b) do_vfp @ CP#10 (VFP)
629 W(b) do_vfp @ CP#11 (VFP) 629 W(b) do_vfp @ CP#11 (VFP)
630#else 630#else
631 W(mov) pc, lr @ CP#10 (VFP) 631 movw_pc lr @ CP#10 (VFP)
632 W(mov) pc, lr @ CP#11 (VFP) 632 movw_pc lr @ CP#11 (VFP)
633#endif 633#endif
634 W(mov) pc, lr @ CP#12 634 movw_pc lr @ CP#12
635 W(mov) pc, lr @ CP#13 635 movw_pc lr @ CP#13
636 W(mov) pc, lr @ CP#14 (Debug) 636 movw_pc lr @ CP#14 (Debug)
637 W(mov) pc, lr @ CP#15 (Control) 637 movw_pc lr @ CP#15 (Control)
638 638
639#ifdef CONFIG_NEON 639#ifdef CONFIG_NEON
640 .align 6 640 .align 6
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index ac34c0d9384b..7e9ed1eea40a 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -110,6 +110,13 @@
110 mov \rd, sp, lsr #13 110 mov \rd, sp, lsr #13
111 mov \rd, \rd, lsl #13 111 mov \rd, \rd, lsl #13
112 .endm 112 .endm
113
114 @
115 @ 32-bit wide "mov pc, reg"
116 @
117 .macro movw_pc, reg
118 mov pc, \reg
119 .endm
113#else /* CONFIG_THUMB2_KERNEL */ 120#else /* CONFIG_THUMB2_KERNEL */
114 .macro svc_exit, rpsr 121 .macro svc_exit, rpsr
115 clrex @ clear the exclusive monitor 122 clrex @ clear the exclusive monitor
@@ -146,6 +153,14 @@
146 lsr \rd, \rd, #13 153 lsr \rd, \rd, #13
147 mov \rd, \rd, lsl #13 154 mov \rd, \rd, lsl #13
148 .endm 155 .endm
156
157 @
158 @ 32-bit wide "mov pc, reg"
159 @
160 .macro movw_pc, reg
161 mov pc, \reg
162 nop
163 .endm
149#endif /* !CONFIG_THUMB2_KERNEL */ 164#endif /* !CONFIG_THUMB2_KERNEL */
150 165
151/* 166/*
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 790fbee92ec5..0d96d0171c05 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -328,6 +328,15 @@ copy_thread(unsigned long clone_flags, unsigned long stack_start,
328} 328}
329 329
330/* 330/*
331 * Fill in the task's elfregs structure for a core dump.
332 */
333int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs)
334{
335 elf_core_copy_regs(elfregs, task_pt_regs(t));
336 return 1;
337}
338
339/*
331 * fill in the fpe structure for a core dump... 340 * fill in the fpe structure for a core dump...
332 */ 341 */
333int dump_fpu (struct pt_regs *regs, struct user_fp *fp) 342int dump_fpu (struct pt_regs *regs, struct user_fp *fp)
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 1423a3419789..2a573d4fea24 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/kernel/signal.c 2 * linux/arch/arm/kernel/signal.c
3 * 3 *
4 * Copyright (C) 1995-2002 Russell King 4 * Copyright (C) 1995-2009 Russell King
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
@@ -29,6 +29,7 @@
29 */ 29 */
30#define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)) 30#define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE))
31#define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)) 31#define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE))
32#define SWI_SYS_RESTART (0xef000000|__NR_restart_syscall|__NR_OABI_SYSCALL_BASE)
32 33
33/* 34/*
34 * With EABI, the syscall number has to be loaded into r7. 35 * With EABI, the syscall number has to be loaded into r7.
@@ -49,6 +50,18 @@ const unsigned long sigreturn_codes[7] = {
49}; 50};
50 51
51/* 52/*
53 * Either we support OABI only, or we have EABI with the OABI
54 * compat layer enabled. In the later case we don't know if
55 * user space is EABI or not, and if not we must not clobber r7.
56 * Always using the OABI syscall solves that issue and works for
57 * all those cases.
58 */
59const unsigned long syscall_restart_code[2] = {
60 SWI_SYS_RESTART, /* swi __NR_restart_syscall */
61 0xe49df004, /* ldr pc, [sp], #4 */
62};
63
64/*
52 * atomically swap in the new signal mask, and wait for a signal. 65 * atomically swap in the new signal mask, and wait for a signal.
53 */ 66 */
54asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask) 67asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask)
@@ -645,32 +658,12 @@ static void do_signal(struct pt_regs *regs, int syscall)
645 regs->ARM_pc -= 4; 658 regs->ARM_pc -= 4;
646#else 659#else
647 u32 __user *usp; 660 u32 __user *usp;
648 u32 swival = __NR_restart_syscall;
649 661
650 regs->ARM_sp -= 12; 662 regs->ARM_sp -= 4;
651 usp = (u32 __user *)regs->ARM_sp; 663 usp = (u32 __user *)regs->ARM_sp;
652 664
653 /* 665 put_user(regs->ARM_pc, usp);
654 * Either we supports OABI only, or we have 666 regs->ARM_pc = KERN_RESTART_CODE;
655 * EABI with the OABI compat layer enabled.
656 * In the later case we don't know if user
657 * space is EABI or not, and if not we must
658 * not clobber r7. Always using the OABI
659 * syscall solves that issue and works for
660 * all those cases.
661 */
662 swival = swival - __NR_SYSCALL_BASE + __NR_OABI_SYSCALL_BASE;
663
664 put_user(regs->ARM_pc, &usp[0]);
665 /* swi __NR_restart_syscall */
666 put_user(0xef000000 | swival, &usp[1]);
667 /* ldr pc, [sp], #12 */
668 put_user(0xe49df00c, &usp[2]);
669
670 flush_icache_range((unsigned long)usp,
671 (unsigned long)(usp + 3));
672
673 regs->ARM_pc = regs->ARM_sp + 4;
674#endif 667#endif
675 } 668 }
676 } 669 }
diff --git a/arch/arm/kernel/signal.h b/arch/arm/kernel/signal.h
index 27beece15502..6fcfe8398aa4 100644
--- a/arch/arm/kernel/signal.h
+++ b/arch/arm/kernel/signal.h
@@ -1,12 +1,14 @@
1/* 1/*
2 * linux/arch/arm/kernel/signal.h 2 * linux/arch/arm/kernel/signal.h
3 * 3 *
4 * Copyright (C) 2005 Russell King. 4 * Copyright (C) 2005-2009 Russell King.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#define KERN_SIGRETURN_CODE (CONFIG_VECTORS_BASE + 0x00000500) 10#define KERN_SIGRETURN_CODE (CONFIG_VECTORS_BASE + 0x00000500)
11#define KERN_RESTART_CODE (KERN_SIGRETURN_CODE + sizeof(sigreturn_codes))
11 12
12extern const unsigned long sigreturn_codes[7]; 13extern const unsigned long sigreturn_codes[7];
14extern const unsigned long syscall_restart_code[2];
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 467b69ed1021..95718a6b50a6 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/kernel/traps.c 2 * linux/arch/arm/kernel/traps.c
3 * 3 *
4 * Copyright (C) 1995-2002 Russell King 4 * Copyright (C) 1995-2009 Russell King
5 * Fragments that appear the same as linux/arch/i386/kernel/traps.c (C) Linus Torvalds 5 * Fragments that appear the same as linux/arch/i386/kernel/traps.c (C) Linus Torvalds
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -45,21 +45,21 @@ static int __init user_debug_setup(char *str)
45__setup("user_debug=", user_debug_setup); 45__setup("user_debug=", user_debug_setup);
46#endif 46#endif
47 47
48static void dump_mem(const char *str, unsigned long bottom, unsigned long top); 48static void dump_mem(const char *, const char *, unsigned long, unsigned long);
49 49
50void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame) 50void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
51{ 51{
52#ifdef CONFIG_KALLSYMS 52#ifdef CONFIG_KALLSYMS
53 printk("[<%08lx>] ", where); 53 char sym1[KSYM_SYMBOL_LEN], sym2[KSYM_SYMBOL_LEN];
54 print_symbol("(%s) ", where); 54 sprint_symbol(sym1, where);
55 printk("from [<%08lx>] ", from); 55 sprint_symbol(sym2, from);
56 print_symbol("(%s)\n", from); 56 printk("[<%08lx>] (%s) from [<%08lx>] (%s)\n", where, sym1, from, sym2);
57#else 57#else
58 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from); 58 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
59#endif 59#endif
60 60
61 if (in_exception_text(where)) 61 if (in_exception_text(where))
62 dump_mem("Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs)); 62 dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
63} 63}
64 64
65#ifndef CONFIG_ARM_UNWIND 65#ifndef CONFIG_ARM_UNWIND
@@ -81,9 +81,10 @@ static int verify_stack(unsigned long sp)
81/* 81/*
82 * Dump out the contents of some memory nicely... 82 * Dump out the contents of some memory nicely...
83 */ 83 */
84static void dump_mem(const char *str, unsigned long bottom, unsigned long top) 84static void dump_mem(const char *lvl, const char *str, unsigned long bottom,
85 unsigned long top)
85{ 86{
86 unsigned long p = bottom & ~31; 87 unsigned long first;
87 mm_segment_t fs; 88 mm_segment_t fs;
88 int i; 89 int i;
89 90
@@ -95,33 +96,37 @@ static void dump_mem(const char *str, unsigned long bottom, unsigned long top)
95 fs = get_fs(); 96 fs = get_fs();
96 set_fs(KERNEL_DS); 97 set_fs(KERNEL_DS);
97 98
98 printk("%s(0x%08lx to 0x%08lx)\n", str, bottom, top); 99 printk("%s%s(0x%08lx to 0x%08lx)\n", lvl, str, bottom, top);
99 100
100 for (p = bottom & ~31; p < top;) { 101 for (first = bottom & ~31; first < top; first += 32) {
101 printk("%04lx: ", p & 0xffff); 102 unsigned long p;
103 char str[sizeof(" 12345678") * 8 + 1];
102 104
103 for (i = 0; i < 8; i++, p += 4) { 105 memset(str, ' ', sizeof(str));
104 unsigned int val; 106 str[sizeof(str) - 1] = '\0';
105 107
106 if (p < bottom || p >= top) 108 for (p = first, i = 0; i < 8 && p < top; i++, p += 4) {
107 printk(" "); 109 if (p >= bottom && p < top) {
108 else { 110 unsigned long val;
109 __get_user(val, (unsigned long *)p); 111 if (__get_user(val, (unsigned long *)p) == 0)
110 printk("%08x ", val); 112 sprintf(str + i * 9, " %08lx", val);
113 else
114 sprintf(str + i * 9, " ????????");
111 } 115 }
112 } 116 }
113 printk ("\n"); 117 printk("%s%04lx:%s\n", lvl, first & 0xffff, str);
114 } 118 }
115 119
116 set_fs(fs); 120 set_fs(fs);
117} 121}
118 122
119static void dump_instr(struct pt_regs *regs) 123static void dump_instr(const char *lvl, struct pt_regs *regs)
120{ 124{
121 unsigned long addr = instruction_pointer(regs); 125 unsigned long addr = instruction_pointer(regs);
122 const int thumb = thumb_mode(regs); 126 const int thumb = thumb_mode(regs);
123 const int width = thumb ? 4 : 8; 127 const int width = thumb ? 4 : 8;
124 mm_segment_t fs; 128 mm_segment_t fs;
129 char str[sizeof("00000000 ") * 5 + 2 + 1], *p = str;
125 int i; 130 int i;
126 131
127 /* 132 /*
@@ -132,7 +137,6 @@ static void dump_instr(struct pt_regs *regs)
132 fs = get_fs(); 137 fs = get_fs();
133 set_fs(KERNEL_DS); 138 set_fs(KERNEL_DS);
134 139
135 printk("Code: ");
136 for (i = -4; i < 1; i++) { 140 for (i = -4; i < 1; i++) {
137 unsigned int val, bad; 141 unsigned int val, bad;
138 142
@@ -142,13 +146,14 @@ static void dump_instr(struct pt_regs *regs)
142 bad = __get_user(val, &((u32 *)addr)[i]); 146 bad = __get_user(val, &((u32 *)addr)[i]);
143 147
144 if (!bad) 148 if (!bad)
145 printk(i == 0 ? "(%0*x) " : "%0*x ", width, val); 149 p += sprintf(p, i == 0 ? "(%0*x) " : "%0*x ",
150 width, val);
146 else { 151 else {
147 printk("bad PC value."); 152 p += sprintf(p, "bad PC value");
148 break; 153 break;
149 } 154 }
150 } 155 }
151 printk("\n"); 156 printk("%sCode: %s\n", lvl, str);
152 157
153 set_fs(fs); 158 set_fs(fs);
154} 159}
@@ -224,18 +229,19 @@ static void __die(const char *str, int err, struct thread_info *thread, struct p
224 struct task_struct *tsk = thread->task; 229 struct task_struct *tsk = thread->task;
225 static int die_counter; 230 static int die_counter;
226 231
227 printk("Internal error: %s: %x [#%d]" S_PREEMPT S_SMP "\n", 232 printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP "\n",
228 str, err, ++die_counter); 233 str, err, ++die_counter);
234 sysfs_printk_last_file();
229 print_modules(); 235 print_modules();
230 __show_regs(regs); 236 __show_regs(regs);
231 printk("Process %s (pid: %d, stack limit = 0x%p)\n", 237 printk(KERN_EMERG "Process %.*s (pid: %d, stack limit = 0x%p)\n",
232 tsk->comm, task_pid_nr(tsk), thread + 1); 238 TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), thread + 1);
233 239
234 if (!user_mode(regs) || in_interrupt()) { 240 if (!user_mode(regs) || in_interrupt()) {
235 dump_mem("Stack: ", regs->ARM_sp, 241 dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
236 THREAD_SIZE + (unsigned long)task_stack_page(tsk)); 242 THREAD_SIZE + (unsigned long)task_stack_page(tsk));
237 dump_backtrace(regs, tsk); 243 dump_backtrace(regs, tsk);
238 dump_instr(regs); 244 dump_instr(KERN_EMERG, regs);
239 } 245 }
240} 246}
241 247
@@ -250,13 +256,14 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
250 256
251 oops_enter(); 257 oops_enter();
252 258
253 console_verbose();
254 spin_lock_irq(&die_lock); 259 spin_lock_irq(&die_lock);
260 console_verbose();
255 bust_spinlocks(1); 261 bust_spinlocks(1);
256 __die(str, err, thread, regs); 262 __die(str, err, thread, regs);
257 bust_spinlocks(0); 263 bust_spinlocks(0);
258 add_taint(TAINT_DIE); 264 add_taint(TAINT_DIE);
259 spin_unlock_irq(&die_lock); 265 spin_unlock_irq(&die_lock);
266 oops_exit();
260 267
261 if (in_interrupt()) 268 if (in_interrupt())
262 panic("Fatal exception in interrupt"); 269 panic("Fatal exception in interrupt");
@@ -264,7 +271,6 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
264 if (panic_on_oops) 271 if (panic_on_oops)
265 panic("Fatal exception"); 272 panic("Fatal exception");
266 273
267 oops_exit();
268 do_exit(SIGSEGV); 274 do_exit(SIGSEGV);
269} 275}
270 276
@@ -349,7 +355,7 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
349 if (user_debug & UDBG_UNDEFINED) { 355 if (user_debug & UDBG_UNDEFINED) {
350 printk(KERN_INFO "%s (%d): undefined instruction: pc=%p\n", 356 printk(KERN_INFO "%s (%d): undefined instruction: pc=%p\n",
351 current->comm, task_pid_nr(current), pc); 357 current->comm, task_pid_nr(current), pc);
352 dump_instr(regs); 358 dump_instr(KERN_INFO, regs);
353 } 359 }
354#endif 360#endif
355 361
@@ -400,7 +406,7 @@ static int bad_syscall(int n, struct pt_regs *regs)
400 if (user_debug & UDBG_SYSCALL) { 406 if (user_debug & UDBG_SYSCALL) {
401 printk(KERN_ERR "[%d] %s: obsolete system call %08x.\n", 407 printk(KERN_ERR "[%d] %s: obsolete system call %08x.\n",
402 task_pid_nr(current), current->comm, n); 408 task_pid_nr(current), current->comm, n);
403 dump_instr(regs); 409 dump_instr(KERN_ERR, regs);
404 } 410 }
405#endif 411#endif
406 412
@@ -579,7 +585,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
579 if (user_debug & UDBG_SYSCALL) { 585 if (user_debug & UDBG_SYSCALL) {
580 printk("[%d] %s: arm syscall %d\n", 586 printk("[%d] %s: arm syscall %d\n",
581 task_pid_nr(current), current->comm, no); 587 task_pid_nr(current), current->comm, no);
582 dump_instr(regs); 588 dump_instr("", regs);
583 if (user_mode(regs)) { 589 if (user_mode(regs)) {
584 __show_regs(regs); 590 __show_regs(regs);
585 c_backtrace(regs->ARM_fp, processor_mode(regs)); 591 c_backtrace(regs->ARM_fp, processor_mode(regs));
@@ -656,7 +662,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs)
656 if (user_debug & UDBG_BADABORT) { 662 if (user_debug & UDBG_BADABORT) {
657 printk(KERN_ERR "[%d] %s: bad data abort: code %d instr 0x%08lx\n", 663 printk(KERN_ERR "[%d] %s: bad data abort: code %d instr 0x%08lx\n",
658 task_pid_nr(current), current->comm, code, instr); 664 task_pid_nr(current), current->comm, code, instr);
659 dump_instr(regs); 665 dump_instr(KERN_ERR, regs);
660 show_pte(current->mm, addr); 666 show_pte(current->mm, addr);
661 } 667 }
662#endif 668#endif
@@ -745,6 +751,8 @@ void __init early_trap_init(void)
745 */ 751 */
746 memcpy((void *)KERN_SIGRETURN_CODE, sigreturn_codes, 752 memcpy((void *)KERN_SIGRETURN_CODE, sigreturn_codes,
747 sizeof(sigreturn_codes)); 753 sizeof(sigreturn_codes));
754 memcpy((void *)KERN_RESTART_CODE, syscall_restart_code,
755 sizeof(syscall_restart_code));
748 756
749 flush_icache_range(vectors, vectors + PAGE_SIZE); 757 flush_icache_range(vectors, vectors + PAGE_SIZE);
750 modify_domain(DOMAIN_USER, DOMAIN_CLIENT); 758 modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c
index 39baf1128bfa..786ac2b6914a 100644
--- a/arch/arm/kernel/unwind.c
+++ b/arch/arm/kernel/unwind.c
@@ -26,6 +26,15 @@
26 * http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.abi/index.html 26 * http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.abi/index.html
27 */ 27 */
28 28
29#if !defined (__ARM_EABI__)
30#warning Your compiler does not have EABI support.
31#warning ARM unwind is known to compile only with EABI compilers.
32#warning Change compiler or disable ARM_UNWIND option.
33#elif (__GNUC__ == 4 && __GNUC_MINOR__ <= 2)
34#warning Your compiler is too buggy; it is known to not compile ARM unwind support.
35#warning Change compiler or disable ARM_UNWIND option.
36#endif
37
29#include <linux/kernel.h> 38#include <linux/kernel.h>
30#include <linux/init.h> 39#include <linux/init.h>
31#include <linux/module.h> 40#include <linux/module.h>
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
index d581cff80c4c..332b784050b2 100644
--- a/arch/arm/mach-at91/at91sam9g45_devices.c
+++ b/arch/arm/mach-at91/at91sam9g45_devices.c
@@ -838,7 +838,7 @@ static void __init at91_add_device_rtt(void)
838 * Watchdog 838 * Watchdog
839 * -------------------------------------------------------------------- */ 839 * -------------------------------------------------------------------- */
840 840
841#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 841#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
842static struct platform_device at91sam9g45_wdt_device = { 842static struct platform_device at91sam9g45_wdt_device = {
843 .name = "at91_wdt", 843 .name = "at91_wdt",
844 .id = -1, 844 .id = -1,
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h
index 34a9502c48bc..c22df30ed5e5 100644
--- a/arch/arm/mach-at91/include/mach/cpu.h
+++ b/arch/arm/mach-at91/include/mach/cpu.h
@@ -25,6 +25,8 @@
25#define ARCH_ID_AT91SAM9G20 0x019905a0 25#define ARCH_ID_AT91SAM9G20 0x019905a0
26#define ARCH_ID_AT91SAM9RL64 0x019b03a0 26#define ARCH_ID_AT91SAM9RL64 0x019b03a0
27#define ARCH_ID_AT91SAM9G45 0x819b05a0 27#define ARCH_ID_AT91SAM9G45 0x819b05a0
28#define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */
29#define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */
28#define ARCH_ID_AT91CAP9 0x039A03A0 30#define ARCH_ID_AT91CAP9 0x039A03A0
29 31
30#define ARCH_ID_AT91SAM9XE128 0x329973a0 32#define ARCH_ID_AT91SAM9XE128 0x329973a0
@@ -41,6 +43,11 @@ static inline unsigned long at91_cpu_identify(void)
41 return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION); 43 return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION);
42} 44}
43 45
46static inline unsigned long at91_cpu_fully_identify(void)
47{
48 return at91_sys_read(AT91_DBGU_CIDR);
49}
50
44#define ARCH_EXID_AT91SAM9M11 0x00000001 51#define ARCH_EXID_AT91SAM9M11 0x00000001
45#define ARCH_EXID_AT91SAM9M10 0x00000002 52#define ARCH_EXID_AT91SAM9M10 0x00000002
46#define ARCH_EXID_AT91SAM9G45 0x00000004 53#define ARCH_EXID_AT91SAM9G45 0x00000004
@@ -118,8 +125,10 @@ static inline unsigned long at91cap9_rev_identify(void)
118 125
119#ifdef CONFIG_ARCH_AT91SAM9G45 126#ifdef CONFIG_ARCH_AT91SAM9G45
120#define cpu_is_at91sam9g45() (at91_cpu_identify() == ARCH_ID_AT91SAM9G45) 127#define cpu_is_at91sam9g45() (at91_cpu_identify() == ARCH_ID_AT91SAM9G45)
128#define cpu_is_at91sam9g45es() (at91_cpu_fully_identify() == ARCH_ID_AT91SAM9G45ES)
121#else 129#else
122#define cpu_is_at91sam9g45() (0) 130#define cpu_is_at91sam9g45() (0)
131#define cpu_is_at91sam9g45es() (0)
123#endif 132#endif
124 133
125#ifdef CONFIG_ARCH_AT91CAP9 134#ifdef CONFIG_ARCH_AT91CAP9
diff --git a/arch/arm/mach-bcmring/core.c b/arch/arm/mach-bcmring/core.c
index 4b4f69251b31..e590bbe0a7b4 100644
--- a/arch/arm/mach-bcmring/core.c
+++ b/arch/arm/mach-bcmring/core.c
@@ -271,12 +271,12 @@ static struct irqaction bcmring_timer_irq = {
271 .handler = bcmring_timer_interrupt, 271 .handler = bcmring_timer_interrupt,
272}; 272};
273 273
274static cycle_t bcmring_get_cycles_timer1(void) 274static cycle_t bcmring_get_cycles_timer1(struct clocksource *cs)
275{ 275{
276 return ~readl(TIMER1_VA_BASE + TIMER_VALUE); 276 return ~readl(TIMER1_VA_BASE + TIMER_VALUE);
277} 277}
278 278
279static cycle_t bcmring_get_cycles_timer3(void) 279static cycle_t bcmring_get_cycles_timer3(struct clocksource *cs)
280{ 280{
281 return ~readl(TIMER3_VA_BASE + TIMER_VALUE); 281 return ~readl(TIMER3_VA_BASE + TIMER_VALUE);
282} 282}
diff --git a/arch/arm/mach-bcmring/include/mach/system.h b/arch/arm/mach-bcmring/include/mach/system.h
index cdbf93c694a6..38b37060d426 100644
--- a/arch/arm/mach-bcmring/include/mach/system.h
+++ b/arch/arm/mach-bcmring/include/mach/system.h
@@ -29,7 +29,7 @@ static inline void arch_idle(void)
29 cpu_do_idle(); 29 cpu_do_idle();
30} 30}
31 31
32static inline void arch_reset(char mode, char *cmd) 32static inline void arch_reset(char mode, const char *cmd)
33{ 33{
34 printk("arch_reset:%c %x\n", mode, bcmring_arch_warm_reboot); 34 printk("arch_reset:%c %x\n", mode, bcmring_arch_warm_reboot);
35 35
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
index d7291c682a64..9167c3d2a5ed 100644
--- a/arch/arm/mach-ep93xx/Kconfig
+++ b/arch/arm/mach-ep93xx/Kconfig
@@ -17,13 +17,31 @@ config EP93XX_SDCE3_SYNC_PHYS_OFFSET
17 bool "0x00000000 - SDCE3/SyncBoot" 17 bool "0x00000000 - SDCE3/SyncBoot"
18 help 18 help
19 Select this option if you want support for EP93xx boards with the 19 Select this option if you want support for EP93xx boards with the
20 first SDRAM bank at 0x00000000 20 first SDRAM bank at 0x00000000.
21 21
22config EP93XX_SDCE0_PHYS_OFFSET 22config EP93XX_SDCE0_PHYS_OFFSET
23 bool "0xc0000000 - SDCEO" 23 bool "0xc0000000 - SDCEO"
24 help 24 help
25 Select this option if you want support for EP93xx boards with the 25 Select this option if you want support for EP93xx boards with the
26 first SDRAM bank at 0xc0000000 26 first SDRAM bank at 0xc0000000.
27
28config EP93XX_SDCE1_PHYS_OFFSET
29 bool "0xd0000000 - SDCE1"
30 help
31 Select this option if you want support for EP93xx boards with the
32 first SDRAM bank at 0xd0000000.
33
34config EP93XX_SDCE2_PHYS_OFFSET
35 bool "0xe0000000 - SDCE2"
36 help
37 Select this option if you want support for EP93xx boards with the
38 first SDRAM bank at 0xe0000000.
39
40config EP93XX_SDCE3_ASYNC_PHYS_OFFSET
41 bool "0xf0000000 - SDCE3/AsyncBoot"
42 help
43 Select this option if you want support for EP93xx boards with the
44 first SDRAM bank at 0xf0000000.
27 45
28endchoice 46endchoice
29 47
@@ -112,28 +130,36 @@ config MACH_MICRO9
112 bool 130 bool
113 131
114config MACH_MICRO9H 132config MACH_MICRO9H
115 bool "Support Contec Hypercontrol Micro9-H" 133 bool "Support Contec Micro9-High"
116 depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET 134 depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
117 select MACH_MICRO9 135 select MACH_MICRO9
118 help 136 help
119 Say 'Y' here if you want your kernel to support the 137 Say 'Y' here if you want your kernel to support the
120 Contec Hypercontrol Micro9-H board. 138 Contec Micro9-High board.
121 139
122config MACH_MICRO9M 140config MACH_MICRO9M
123 bool "Support Contec Hypercontrol Micro9-M" 141 bool "Support Contec Micro9-Mid"
124 depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET 142 depends on EP93XX_SDCE3_ASYNC_PHYS_OFFSET
125 select MACH_MICRO9 143 select MACH_MICRO9
126 help 144 help
127 Say 'Y' here if you want your kernel to support the 145 Say 'Y' here if you want your kernel to support the
128 Contec Hypercontrol Micro9-M board. 146 Contec Micro9-Mid board.
129 147
130config MACH_MICRO9L 148config MACH_MICRO9L
131 bool "Support Contec Hypercontrol Micro9-L" 149 bool "Support Contec Micro9-Lite"
132 depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET 150 depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
133 select MACH_MICRO9 151 select MACH_MICRO9
134 help 152 help
135 Say 'Y' here if you want your kernel to support the 153 Say 'Y' here if you want your kernel to support the
136 Contec Hypercontrol Micro9-L board. 154 Contec Micro9-Lite board.
155
156config MACH_MICRO9S
157 bool "Support Contec Micro9-Slim"
158 depends on EP93XX_SDCE3_ASYNC_PHYS_OFFSET
159 select MACH_MICRO9
160 help
161 Say 'Y' here if you want your kernel to support the
162 Contec Micro9-Slim board.
137 163
138config MACH_TS72XX 164config MACH_TS72XX
139 bool "Support Technologic Systems TS-72xx SBC" 165 bool "Support Technologic Systems TS-72xx SBC"
diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
index 27a085a8f12a..0ad33f15c622 100644
--- a/arch/arm/mach-ep93xx/Makefile.boot
+++ b/arch/arm/mach-ep93xx/Makefile.boot
@@ -3,3 +3,12 @@ params_phys-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) := 0x00000100
3 3
4 zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0008000 4 zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0008000
5params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0000100 5params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0000100
6
7 zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) := 0xd0008000
8params_phys-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) := 0xd0000100
9
10 zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET) := 0xe0008000
11params_phys-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET) := 0xe0000100
12
13 zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET) := 0xf0008000
14params_phys-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET) := 0xf0000100
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c
index dda19cd76194..1d0f9d8aff2e 100644
--- a/arch/arm/mach-ep93xx/clock.c
+++ b/arch/arm/mach-ep93xx/clock.c
@@ -16,13 +16,16 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/string.h> 17#include <linux/string.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/spinlock.h>
20
21#include <mach/hardware.h>
19 22
20#include <asm/clkdev.h> 23#include <asm/clkdev.h>
21#include <asm/div64.h> 24#include <asm/div64.h>
22#include <mach/hardware.h>
23 25
24 26
25struct clk { 27struct clk {
28 struct clk *parent;
26 unsigned long rate; 29 unsigned long rate;
27 int users; 30 int users;
28 int sw_locked; 31 int sw_locked;
@@ -39,40 +42,60 @@ static unsigned long get_uart_rate(struct clk *clk);
39static int set_keytchclk_rate(struct clk *clk, unsigned long rate); 42static int set_keytchclk_rate(struct clk *clk, unsigned long rate);
40static int set_div_rate(struct clk *clk, unsigned long rate); 43static int set_div_rate(struct clk *clk, unsigned long rate);
41 44
45
46static struct clk clk_xtali = {
47 .rate = EP93XX_EXT_CLK_RATE,
48};
42static struct clk clk_uart1 = { 49static struct clk clk_uart1 = {
50 .parent = &clk_xtali,
43 .sw_locked = 1, 51 .sw_locked = 1,
44 .enable_reg = EP93XX_SYSCON_DEVCFG, 52 .enable_reg = EP93XX_SYSCON_DEVCFG,
45 .enable_mask = EP93XX_SYSCON_DEVCFG_U1EN, 53 .enable_mask = EP93XX_SYSCON_DEVCFG_U1EN,
46 .get_rate = get_uart_rate, 54 .get_rate = get_uart_rate,
47}; 55};
48static struct clk clk_uart2 = { 56static struct clk clk_uart2 = {
57 .parent = &clk_xtali,
49 .sw_locked = 1, 58 .sw_locked = 1,
50 .enable_reg = EP93XX_SYSCON_DEVCFG, 59 .enable_reg = EP93XX_SYSCON_DEVCFG,
51 .enable_mask = EP93XX_SYSCON_DEVCFG_U2EN, 60 .enable_mask = EP93XX_SYSCON_DEVCFG_U2EN,
52 .get_rate = get_uart_rate, 61 .get_rate = get_uart_rate,
53}; 62};
54static struct clk clk_uart3 = { 63static struct clk clk_uart3 = {
64 .parent = &clk_xtali,
55 .sw_locked = 1, 65 .sw_locked = 1,
56 .enable_reg = EP93XX_SYSCON_DEVCFG, 66 .enable_reg = EP93XX_SYSCON_DEVCFG,
57 .enable_mask = EP93XX_SYSCON_DEVCFG_U3EN, 67 .enable_mask = EP93XX_SYSCON_DEVCFG_U3EN,
58 .get_rate = get_uart_rate, 68 .get_rate = get_uart_rate,
59}; 69};
60static struct clk clk_pll1; 70static struct clk clk_pll1 = {
61static struct clk clk_f; 71 .parent = &clk_xtali,
62static struct clk clk_h; 72};
63static struct clk clk_p; 73static struct clk clk_f = {
64static struct clk clk_pll2; 74 .parent = &clk_pll1,
75};
76static struct clk clk_h = {
77 .parent = &clk_pll1,
78};
79static struct clk clk_p = {
80 .parent = &clk_pll1,
81};
82static struct clk clk_pll2 = {
83 .parent = &clk_xtali,
84};
65static struct clk clk_usb_host = { 85static struct clk clk_usb_host = {
86 .parent = &clk_pll2,
66 .enable_reg = EP93XX_SYSCON_PWRCNT, 87 .enable_reg = EP93XX_SYSCON_PWRCNT,
67 .enable_mask = EP93XX_SYSCON_PWRCNT_USH_EN, 88 .enable_mask = EP93XX_SYSCON_PWRCNT_USH_EN,
68}; 89};
69static struct clk clk_keypad = { 90static struct clk clk_keypad = {
91 .parent = &clk_xtali,
70 .sw_locked = 1, 92 .sw_locked = 1,
71 .enable_reg = EP93XX_SYSCON_KEYTCHCLKDIV, 93 .enable_reg = EP93XX_SYSCON_KEYTCHCLKDIV,
72 .enable_mask = EP93XX_SYSCON_KEYTCHCLKDIV_KEN, 94 .enable_mask = EP93XX_SYSCON_KEYTCHCLKDIV_KEN,
73 .set_rate = set_keytchclk_rate, 95 .set_rate = set_keytchclk_rate,
74}; 96};
75static struct clk clk_pwm = { 97static struct clk clk_pwm = {
98 .parent = &clk_xtali,
76 .rate = EP93XX_EXT_CLK_RATE, 99 .rate = EP93XX_EXT_CLK_RATE,
77}; 100};
78 101
@@ -85,50 +108,62 @@ static struct clk clk_video = {
85 108
86/* DMA Clocks */ 109/* DMA Clocks */
87static struct clk clk_m2p0 = { 110static struct clk clk_m2p0 = {
111 .parent = &clk_h,
88 .enable_reg = EP93XX_SYSCON_PWRCNT, 112 .enable_reg = EP93XX_SYSCON_PWRCNT,
89 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P0, 113 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P0,
90}; 114};
91static struct clk clk_m2p1 = { 115static struct clk clk_m2p1 = {
116 .parent = &clk_h,
92 .enable_reg = EP93XX_SYSCON_PWRCNT, 117 .enable_reg = EP93XX_SYSCON_PWRCNT,
93 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P1, 118 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P1,
94}; 119};
95static struct clk clk_m2p2 = { 120static struct clk clk_m2p2 = {
121 .parent = &clk_h,
96 .enable_reg = EP93XX_SYSCON_PWRCNT, 122 .enable_reg = EP93XX_SYSCON_PWRCNT,
97 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P2, 123 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P2,
98}; 124};
99static struct clk clk_m2p3 = { 125static struct clk clk_m2p3 = {
126 .parent = &clk_h,
100 .enable_reg = EP93XX_SYSCON_PWRCNT, 127 .enable_reg = EP93XX_SYSCON_PWRCNT,
101 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P3, 128 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P3,
102}; 129};
103static struct clk clk_m2p4 = { 130static struct clk clk_m2p4 = {
131 .parent = &clk_h,
104 .enable_reg = EP93XX_SYSCON_PWRCNT, 132 .enable_reg = EP93XX_SYSCON_PWRCNT,
105 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P4, 133 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P4,
106}; 134};
107static struct clk clk_m2p5 = { 135static struct clk clk_m2p5 = {
136 .parent = &clk_h,
108 .enable_reg = EP93XX_SYSCON_PWRCNT, 137 .enable_reg = EP93XX_SYSCON_PWRCNT,
109 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P5, 138 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P5,
110}; 139};
111static struct clk clk_m2p6 = { 140static struct clk clk_m2p6 = {
141 .parent = &clk_h,
112 .enable_reg = EP93XX_SYSCON_PWRCNT, 142 .enable_reg = EP93XX_SYSCON_PWRCNT,
113 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P6, 143 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P6,
114}; 144};
115static struct clk clk_m2p7 = { 145static struct clk clk_m2p7 = {
146 .parent = &clk_h,
116 .enable_reg = EP93XX_SYSCON_PWRCNT, 147 .enable_reg = EP93XX_SYSCON_PWRCNT,
117 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P7, 148 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P7,
118}; 149};
119static struct clk clk_m2p8 = { 150static struct clk clk_m2p8 = {
151 .parent = &clk_h,
120 .enable_reg = EP93XX_SYSCON_PWRCNT, 152 .enable_reg = EP93XX_SYSCON_PWRCNT,
121 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P8, 153 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P8,
122}; 154};
123static struct clk clk_m2p9 = { 155static struct clk clk_m2p9 = {
156 .parent = &clk_h,
124 .enable_reg = EP93XX_SYSCON_PWRCNT, 157 .enable_reg = EP93XX_SYSCON_PWRCNT,
125 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P9, 158 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2P9,
126}; 159};
127static struct clk clk_m2m0 = { 160static struct clk clk_m2m0 = {
161 .parent = &clk_h,
128 .enable_reg = EP93XX_SYSCON_PWRCNT, 162 .enable_reg = EP93XX_SYSCON_PWRCNT,
129 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2M0, 163 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2M0,
130}; 164};
131static struct clk clk_m2m1 = { 165static struct clk clk_m2m1 = {
166 .parent = &clk_h,
132 .enable_reg = EP93XX_SYSCON_PWRCNT, 167 .enable_reg = EP93XX_SYSCON_PWRCNT,
133 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2M1, 168 .enable_mask = EP93XX_SYSCON_PWRCNT_DMA_M2M1,
134}; 169};
@@ -137,6 +172,7 @@ static struct clk clk_m2m1 = {
137 { .dev_id = dev, .con_id = con, .clk = ck } 172 { .dev_id = dev, .con_id = con, .clk = ck }
138 173
139static struct clk_lookup clocks[] = { 174static struct clk_lookup clocks[] = {
175 INIT_CK(NULL, "xtali", &clk_xtali),
140 INIT_CK("apb:uart1", NULL, &clk_uart1), 176 INIT_CK("apb:uart1", NULL, &clk_uart1),
141 INIT_CK("apb:uart2", NULL, &clk_uart2), 177 INIT_CK("apb:uart2", NULL, &clk_uart2),
142 INIT_CK("apb:uart3", NULL, &clk_uart3), 178 INIT_CK("apb:uart3", NULL, &clk_uart3),
@@ -163,48 +199,84 @@ static struct clk_lookup clocks[] = {
163 INIT_CK(NULL, "m2m1", &clk_m2m1), 199 INIT_CK(NULL, "m2m1", &clk_m2m1),
164}; 200};
165 201
202static DEFINE_SPINLOCK(clk_lock);
203
204static void __clk_enable(struct clk *clk)
205{
206 if (!clk->users++) {
207 if (clk->parent)
208 __clk_enable(clk->parent);
209
210 if (clk->enable_reg) {
211 u32 v;
212
213 v = __raw_readl(clk->enable_reg);
214 v |= clk->enable_mask;
215 if (clk->sw_locked)
216 ep93xx_syscon_swlocked_write(v, clk->enable_reg);
217 else
218 __raw_writel(v, clk->enable_reg);
219 }
220 }
221}
166 222
167int clk_enable(struct clk *clk) 223int clk_enable(struct clk *clk)
168{ 224{
169 if (!clk->users++ && clk->enable_reg) { 225 unsigned long flags;
170 u32 value;
171 226
172 value = __raw_readl(clk->enable_reg); 227 if (!clk)
173 value |= clk->enable_mask; 228 return -EINVAL;
174 if (clk->sw_locked) 229
175 ep93xx_syscon_swlocked_write(value, clk->enable_reg); 230 spin_lock_irqsave(&clk_lock, flags);
176 else 231 __clk_enable(clk);
177 __raw_writel(value, clk->enable_reg); 232 spin_unlock_irqrestore(&clk_lock, flags);
178 }
179 233
180 return 0; 234 return 0;
181} 235}
182EXPORT_SYMBOL(clk_enable); 236EXPORT_SYMBOL(clk_enable);
183 237
184void clk_disable(struct clk *clk) 238static void __clk_disable(struct clk *clk)
185{ 239{
186 if (!--clk->users && clk->enable_reg) { 240 if (!--clk->users) {
187 u32 value; 241 if (clk->enable_reg) {
242 u32 v;
243
244 v = __raw_readl(clk->enable_reg);
245 v &= ~clk->enable_mask;
246 if (clk->sw_locked)
247 ep93xx_syscon_swlocked_write(v, clk->enable_reg);
248 else
249 __raw_writel(v, clk->enable_reg);
250 }
188 251
189 value = __raw_readl(clk->enable_reg); 252 if (clk->parent)
190 value &= ~clk->enable_mask; 253 __clk_disable(clk->parent);
191 if (clk->sw_locked)
192 ep93xx_syscon_swlocked_write(value, clk->enable_reg);
193 else
194 __raw_writel(value, clk->enable_reg);
195 } 254 }
196} 255}
256
257void clk_disable(struct clk *clk)
258{
259 unsigned long flags;
260
261 if (!clk)
262 return;
263
264 spin_lock_irqsave(&clk_lock, flags);
265 __clk_disable(clk);
266 spin_unlock_irqrestore(&clk_lock, flags);
267}
197EXPORT_SYMBOL(clk_disable); 268EXPORT_SYMBOL(clk_disable);
198 269
199static unsigned long get_uart_rate(struct clk *clk) 270static unsigned long get_uart_rate(struct clk *clk)
200{ 271{
272 unsigned long rate = clk_get_rate(clk->parent);
201 u32 value; 273 u32 value;
202 274
203 value = __raw_readl(EP93XX_SYSCON_PWRCNT); 275 value = __raw_readl(EP93XX_SYSCON_PWRCNT);
204 if (value & EP93XX_SYSCON_PWRCNT_UARTBAUD) 276 if (value & EP93XX_SYSCON_PWRCNT_UARTBAUD)
205 return EP93XX_EXT_CLK_RATE; 277 return rate;
206 else 278 else
207 return EP93XX_EXT_CLK_RATE / 2; 279 return rate / 2;
208} 280}
209 281
210unsigned long clk_get_rate(struct clk *clk) 282unsigned long clk_get_rate(struct clk *clk)
@@ -244,16 +316,16 @@ static int set_keytchclk_rate(struct clk *clk, unsigned long rate)
244 return 0; 316 return 0;
245} 317}
246 318
247static unsigned long calc_clk_div(unsigned long rate, int *psel, int *esel, 319static int calc_clk_div(struct clk *clk, unsigned long rate,
248 int *pdiv, int *div) 320 int *psel, int *esel, int *pdiv, int *div)
249{ 321{
250 unsigned long max_rate, best_rate = 0, 322 struct clk *mclk;
251 actual_rate = 0, mclk_rate = 0, rate_err = -1; 323 unsigned long max_rate, actual_rate, mclk_rate, rate_err = -1;
252 int i, found = 0, __div = 0, __pdiv = 0; 324 int i, found = 0, __div = 0, __pdiv = 0;
253 325
254 /* Don't exceed the maximum rate */ 326 /* Don't exceed the maximum rate */
255 max_rate = max(max(clk_pll1.rate / 4, clk_pll2.rate / 4), 327 max_rate = max(max(clk_pll1.rate / 4, clk_pll2.rate / 4),
256 (unsigned long)EP93XX_EXT_CLK_RATE / 4); 328 clk_xtali.rate / 4);
257 rate = min(rate, max_rate); 329 rate = min(rate, max_rate);
258 330
259 /* 331 /*
@@ -267,11 +339,12 @@ static unsigned long calc_clk_div(unsigned long rate, int *psel, int *esel,
267 */ 339 */
268 for (i = 0; i < 3; i++) { 340 for (i = 0; i < 3; i++) {
269 if (i == 0) 341 if (i == 0)
270 mclk_rate = EP93XX_EXT_CLK_RATE * 2; 342 mclk = &clk_xtali;
271 else if (i == 1) 343 else if (i == 1)
272 mclk_rate = clk_pll1.rate * 2; 344 mclk = &clk_pll1;
273 else if (i == 2) 345 else
274 mclk_rate = clk_pll2.rate * 2; 346 mclk = &clk_pll2;
347 mclk_rate = mclk->rate * 2;
275 348
276 /* Try each predivider value */ 349 /* Try each predivider value */
277 for (__pdiv = 4; __pdiv <= 6; __pdiv++) { 350 for (__pdiv = 4; __pdiv <= 6; __pdiv++) {
@@ -286,7 +359,8 @@ static unsigned long calc_clk_div(unsigned long rate, int *psel, int *esel,
286 *div = __div; 359 *div = __div;
287 *psel = (i == 2); 360 *psel = (i == 2);
288 *esel = (i != 0); 361 *esel = (i != 0);
289 best_rate = actual_rate; 362 clk->parent = mclk;
363 clk->rate = actual_rate;
290 rate_err = abs(actual_rate - rate); 364 rate_err = abs(actual_rate - rate);
291 found = 1; 365 found = 1;
292 } 366 }
@@ -294,21 +368,19 @@ static unsigned long calc_clk_div(unsigned long rate, int *psel, int *esel,
294 } 368 }
295 369
296 if (!found) 370 if (!found)
297 return 0; 371 return -EINVAL;
298 372
299 return best_rate; 373 return 0;
300} 374}
301 375
302static int set_div_rate(struct clk *clk, unsigned long rate) 376static int set_div_rate(struct clk *clk, unsigned long rate)
303{ 377{
304 unsigned long actual_rate; 378 int err, psel = 0, esel = 0, pdiv = 0, div = 0;
305 int psel = 0, esel = 0, pdiv = 0, div = 0;
306 u32 val; 379 u32 val;
307 380
308 actual_rate = calc_clk_div(rate, &psel, &esel, &pdiv, &div); 381 err = calc_clk_div(clk, rate, &psel, &esel, &pdiv, &div);
309 if (actual_rate == 0) 382 if (err)
310 return -EINVAL; 383 return err;
311 clk->rate = actual_rate;
312 384
313 /* Clear the esel, psel, pdiv and div bits */ 385 /* Clear the esel, psel, pdiv and div bits */
314 val = __raw_readl(clk->enable_reg); 386 val = __raw_readl(clk->enable_reg);
@@ -344,7 +416,7 @@ static unsigned long calc_pll_rate(u32 config_word)
344 unsigned long long rate; 416 unsigned long long rate;
345 int i; 417 int i;
346 418
347 rate = EP93XX_EXT_CLK_RATE; 419 rate = clk_xtali.rate;
348 rate *= ((config_word >> 11) & 0x1f) + 1; /* X1FBD */ 420 rate *= ((config_word >> 11) & 0x1f) + 1; /* X1FBD */
349 rate *= ((config_word >> 5) & 0x3f) + 1; /* X2FBD */ 421 rate *= ((config_word >> 5) & 0x3f) + 1; /* X2FBD */
350 do_div(rate, (config_word & 0x1f) + 1); /* X2IPD */ 422 do_div(rate, (config_word & 0x1f) + 1); /* X2IPD */
@@ -377,7 +449,7 @@ static int __init ep93xx_clock_init(void)
377 449
378 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1); 450 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1);
379 if (!(value & 0x00800000)) { /* PLL1 bypassed? */ 451 if (!(value & 0x00800000)) { /* PLL1 bypassed? */
380 clk_pll1.rate = EP93XX_EXT_CLK_RATE; 452 clk_pll1.rate = clk_xtali.rate;
381 } else { 453 } else {
382 clk_pll1.rate = calc_pll_rate(value); 454 clk_pll1.rate = calc_pll_rate(value);
383 } 455 }
@@ -388,7 +460,7 @@ static int __init ep93xx_clock_init(void)
388 460
389 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET2); 461 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET2);
390 if (!(value & 0x00080000)) { /* PLL2 bypassed? */ 462 if (!(value & 0x00080000)) { /* PLL2 bypassed? */
391 clk_pll2.rate = EP93XX_EXT_CLK_RATE; 463 clk_pll2.rate = clk_xtali.rate;
392 } else if (value & 0x00040000) { /* PLL2 enabled? */ 464 } else if (value & 0x00040000) { /* PLL2 enabled? */
393 clk_pll2.rate = calc_pll_rate(value); 465 clk_pll2.rate = calc_pll_rate(value);
394 } else { 466 } else {
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index f7ebed942f66..b4357c388d2e 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -206,7 +206,6 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
206 for (i = 0; i < 8; i++) { 206 for (i = 0; i < 8; i++) {
207 if (status & (1 << i)) { 207 if (status & (1 << i)) {
208 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i; 208 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
209 desc = irq_desc + gpio_irq;
210 generic_handle_irq(gpio_irq); 209 generic_handle_irq(gpio_irq);
211 } 210 }
212 } 211 }
@@ -550,13 +549,11 @@ void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr)
550 platform_device_register(&ep93xx_eth_device); 549 platform_device_register(&ep93xx_eth_device);
551} 550}
552 551
553static struct i2c_gpio_platform_data ep93xx_i2c_data = { 552
554 .sda_pin = EP93XX_GPIO_LINE_EEDAT, 553/*************************************************************************
555 .sda_is_open_drain = 0, 554 * EP93xx i2c peripheral handling
556 .scl_pin = EP93XX_GPIO_LINE_EECLK, 555 *************************************************************************/
557 .scl_is_open_drain = 0, 556static struct i2c_gpio_platform_data ep93xx_i2c_data;
558 .udelay = 2,
559};
560 557
561static struct platform_device ep93xx_i2c_device = { 558static struct platform_device ep93xx_i2c_device = {
562 .name = "i2c-gpio", 559 .name = "i2c-gpio",
@@ -564,8 +561,25 @@ static struct platform_device ep93xx_i2c_device = {
564 .dev.platform_data = &ep93xx_i2c_data, 561 .dev.platform_data = &ep93xx_i2c_data,
565}; 562};
566 563
567void __init ep93xx_register_i2c(struct i2c_board_info *devices, int num) 564void __init ep93xx_register_i2c(struct i2c_gpio_platform_data *data,
565 struct i2c_board_info *devices, int num)
568{ 566{
567 /*
568 * Set the EEPROM interface pin drive type control.
569 * Defines the driver type for the EECLK and EEDAT pins as either
570 * open drain, which will require an external pull-up, or a normal
571 * CMOS driver.
572 */
573 if (data->sda_is_open_drain && data->sda_pin != EP93XX_GPIO_LINE_EEDAT)
574 pr_warning("ep93xx: sda != EEDAT, open drain has no effect\n");
575 if (data->scl_is_open_drain && data->scl_pin != EP93XX_GPIO_LINE_EECLK)
576 pr_warning("ep93xx: scl != EECLK, open drain has no effect\n");
577
578 __raw_writel((data->sda_is_open_drain << 1) |
579 (data->scl_is_open_drain << 0),
580 EP93XX_GPIO_EEDRIVE);
581
582 ep93xx_i2c_data = *data;
569 i2c_register_board_info(0, devices, num); 583 i2c_register_board_info(0, devices, num);
570 platform_device_register(&ep93xx_i2c_device); 584 platform_device_register(&ep93xx_i2c_device);
571} 585}
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c
index 73145ae5d3fa..a4a7be308000 100644
--- a/arch/arm/mach-ep93xx/edb93xx.c
+++ b/arch/arm/mach-ep93xx/edb93xx.c
@@ -27,8 +27,10 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/platform_device.h> 29#include <linux/platform_device.h>
30#include <linux/i2c.h>
31#include <linux/mtd/physmap.h> 30#include <linux/mtd/physmap.h>
31#include <linux/gpio.h>
32#include <linux/i2c.h>
33#include <linux/i2c-gpio.h>
32 34
33#include <mach/hardware.h> 35#include <mach/hardware.h>
34 36
@@ -76,13 +78,26 @@ static struct ep93xx_eth_data edb93xx_eth_data = {
76 .phy_id = 1, 78 .phy_id = 1,
77}; 79};
78 80
79static struct i2c_board_info __initdata edb93xxa_i2c_data[] = { 81
82/*************************************************************************
83 * EDB93xx i2c peripheral handling
84 *************************************************************************/
85static struct i2c_gpio_platform_data edb93xx_i2c_gpio_data = {
86 .sda_pin = EP93XX_GPIO_LINE_EEDAT,
87 .sda_is_open_drain = 0,
88 .scl_pin = EP93XX_GPIO_LINE_EECLK,
89 .scl_is_open_drain = 0,
90 .udelay = 0, /* default to 100 kHz */
91 .timeout = 0, /* default to 100 ms */
92};
93
94static struct i2c_board_info __initdata edb93xxa_i2c_board_info[] = {
80 { 95 {
81 I2C_BOARD_INFO("isl1208", 0x6f), 96 I2C_BOARD_INFO("isl1208", 0x6f),
82 }, 97 },
83}; 98};
84 99
85static struct i2c_board_info __initdata edb93xx_i2c_data[] = { 100static struct i2c_board_info __initdata edb93xx_i2c_board_info[] = {
86 { 101 {
87 I2C_BOARD_INFO("ds1337", 0x68), 102 I2C_BOARD_INFO("ds1337", 0x68),
88 }, 103 },
@@ -92,12 +107,14 @@ static void __init edb93xx_register_i2c(void)
92{ 107{
93 if (machine_is_edb9302a() || machine_is_edb9307a() || 108 if (machine_is_edb9302a() || machine_is_edb9307a() ||
94 machine_is_edb9315a()) { 109 machine_is_edb9315a()) {
95 ep93xx_register_i2c(edb93xxa_i2c_data, 110 ep93xx_register_i2c(&edb93xx_i2c_gpio_data,
96 ARRAY_SIZE(edb93xxa_i2c_data)); 111 edb93xxa_i2c_board_info,
112 ARRAY_SIZE(edb93xxa_i2c_board_info));
97 } else if (machine_is_edb9307() || machine_is_edb9312() || 113 } else if (machine_is_edb9307() || machine_is_edb9312() ||
98 machine_is_edb9315()) { 114 machine_is_edb9315()) {
99 ep93xx_register_i2c(edb93xx_i2c_data, 115 ep93xx_register_i2c(&edb93xx_i2c_gpio_data,
100 ARRAY_SIZE(edb93xx_i2c_data)); 116 edb93xx_i2c_board_info,
117 ARRAY_SIZE(edb93xx_i2c_board_info));
101 } 118 }
102} 119}
103 120
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
index 0fbf87b16338..b1f937eda29c 100644
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
@@ -52,25 +52,27 @@
52#define EP93XX_AHB_VIRT_BASE 0xfef00000 52#define EP93XX_AHB_VIRT_BASE 0xfef00000
53#define EP93XX_AHB_SIZE 0x00100000 53#define EP93XX_AHB_SIZE 0x00100000
54 54
55#define EP93XX_AHB_PHYS(x) (EP93XX_AHB_PHYS_BASE + (x))
55#define EP93XX_AHB_IOMEM(x) IOMEM(EP93XX_AHB_VIRT_BASE + (x)) 56#define EP93XX_AHB_IOMEM(x) IOMEM(EP93XX_AHB_VIRT_BASE + (x))
56 57
57#define EP93XX_APB_PHYS_BASE 0x80800000 58#define EP93XX_APB_PHYS_BASE 0x80800000
58#define EP93XX_APB_VIRT_BASE 0xfed00000 59#define EP93XX_APB_VIRT_BASE 0xfed00000
59#define EP93XX_APB_SIZE 0x00200000 60#define EP93XX_APB_SIZE 0x00200000
60 61
62#define EP93XX_APB_PHYS(x) (EP93XX_APB_PHYS_BASE + (x))
61#define EP93XX_APB_IOMEM(x) IOMEM(EP93XX_APB_VIRT_BASE + (x)) 63#define EP93XX_APB_IOMEM(x) IOMEM(EP93XX_APB_VIRT_BASE + (x))
62 64
63 65
64/* AHB peripherals */ 66/* AHB peripherals */
65#define EP93XX_DMA_BASE EP93XX_AHB_IOMEM(0x00000000) 67#define EP93XX_DMA_BASE EP93XX_AHB_IOMEM(0x00000000)
66 68
67#define EP93XX_ETHERNET_PHYS_BASE (EP93XX_AHB_PHYS_BASE + 0x00010000) 69#define EP93XX_ETHERNET_PHYS_BASE EP93XX_AHB_PHYS(0x00010000)
68#define EP93XX_ETHERNET_BASE EP93XX_AHB_IOMEM(0x00010000) 70#define EP93XX_ETHERNET_BASE EP93XX_AHB_IOMEM(0x00010000)
69 71
70#define EP93XX_USB_PHYS_BASE (EP93XX_AHB_PHYS_BASE + 0x00020000) 72#define EP93XX_USB_PHYS_BASE EP93XX_AHB_PHYS(0x00020000)
71#define EP93XX_USB_BASE EP93XX_AHB_IOMEM(0x00020000) 73#define EP93XX_USB_BASE EP93XX_AHB_IOMEM(0x00020000)
72 74
73#define EP93XX_RASTER_PHYS_BASE (EP93XX_AHB_PHYS_BASE + 0x00030000) 75#define EP93XX_RASTER_PHYS_BASE EP93XX_AHB_PHYS(0x00030000)
74#define EP93XX_RASTER_BASE EP93XX_AHB_IOMEM(0x00030000) 76#define EP93XX_RASTER_BASE EP93XX_AHB_IOMEM(0x00030000)
75 77
76#define EP93XX_GRAPHICS_ACCEL_BASE EP93XX_AHB_IOMEM(0x00040000) 78#define EP93XX_GRAPHICS_ACCEL_BASE EP93XX_AHB_IOMEM(0x00040000)
@@ -112,21 +114,10 @@
112 114
113#define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000) 115#define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000)
114#define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x)) 116#define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x))
115#define EP93XX_GPIO_F_INT_TYPE1 EP93XX_GPIO_REG(0x4c)
116#define EP93XX_GPIO_F_INT_TYPE2 EP93XX_GPIO_REG(0x50)
117#define EP93XX_GPIO_F_INT_ACK EP93XX_GPIO_REG(0x54)
118#define EP93XX_GPIO_F_INT_ENABLE EP93XX_GPIO_REG(0x58)
119#define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c) 117#define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c)
120#define EP93XX_GPIO_A_INT_TYPE1 EP93XX_GPIO_REG(0x90)
121#define EP93XX_GPIO_A_INT_TYPE2 EP93XX_GPIO_REG(0x94)
122#define EP93XX_GPIO_A_INT_ACK EP93XX_GPIO_REG(0x98)
123#define EP93XX_GPIO_A_INT_ENABLE EP93XX_GPIO_REG(0x9c)
124#define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0) 118#define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0)
125#define EP93XX_GPIO_B_INT_TYPE1 EP93XX_GPIO_REG(0xac)
126#define EP93XX_GPIO_B_INT_TYPE2 EP93XX_GPIO_REG(0xb0)
127#define EP93XX_GPIO_B_INT_ACK EP93XX_GPIO_REG(0xb4)
128#define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
129#define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc) 119#define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
120#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
130 121
131#define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000) 122#define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000)
132 123
@@ -134,13 +125,13 @@
134 125
135#define EP93XX_IRDA_BASE EP93XX_APB_IOMEM(0x000b0000) 126#define EP93XX_IRDA_BASE EP93XX_APB_IOMEM(0x000b0000)
136 127
137#define EP93XX_UART1_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000c0000) 128#define EP93XX_UART1_PHYS_BASE EP93XX_APB_PHYS(0x000c0000)
138#define EP93XX_UART1_BASE EP93XX_APB_IOMEM(0x000c0000) 129#define EP93XX_UART1_BASE EP93XX_APB_IOMEM(0x000c0000)
139 130
140#define EP93XX_UART2_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000d0000) 131#define EP93XX_UART2_PHYS_BASE EP93XX_APB_PHYS(0x000d0000)
141#define EP93XX_UART2_BASE EP93XX_APB_IOMEM(0x000d0000) 132#define EP93XX_UART2_BASE EP93XX_APB_IOMEM(0x000d0000)
142 133
143#define EP93XX_UART3_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000e0000) 134#define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000)
144#define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) 135#define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000)
145 136
146#define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000) 137#define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000)
@@ -148,10 +139,10 @@
148#define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000) 139#define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000)
149#define EP93XX_TOUCHSCREEN_BASE EP93XX_APB_IOMEM(0x00100000) 140#define EP93XX_TOUCHSCREEN_BASE EP93XX_APB_IOMEM(0x00100000)
150 141
151#define EP93XX_PWM_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x00110000) 142#define EP93XX_PWM_PHYS_BASE EP93XX_APB_PHYS(0x00110000)
152#define EP93XX_PWM_BASE EP93XX_APB_IOMEM(0x00110000) 143#define EP93XX_PWM_BASE EP93XX_APB_IOMEM(0x00110000)
153 144
154#define EP93XX_RTC_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x00120000) 145#define EP93XX_RTC_PHYS_BASE EP93XX_APB_PHYS(0x00120000)
155#define EP93XX_RTC_BASE EP93XX_APB_IOMEM(0x00120000) 146#define EP93XX_RTC_BASE EP93XX_APB_IOMEM(0x00120000)
156 147
157#define EP93XX_SYSCON_BASE EP93XX_APB_IOMEM(0x00130000) 148#define EP93XX_SYSCON_BASE EP93XX_APB_IOMEM(0x00130000)
@@ -218,6 +209,17 @@
218#define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV (1<<16) 209#define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV (1<<16)
219#define EP93XX_SYSCON_KEYTCHCLKDIV_KEN (1<<15) 210#define EP93XX_SYSCON_KEYTCHCLKDIV_KEN (1<<15)
220#define EP93XX_SYSCON_KEYTCHCLKDIV_KDIV (1<<0) 211#define EP93XX_SYSCON_KEYTCHCLKDIV_KDIV (1<<0)
212#define EP93XX_SYSCON_SYSCFG EP93XX_SYSCON_REG(0x9c)
213#define EP93XX_SYSCON_SYSCFG_REV_MASK (0xf0000000)
214#define EP93XX_SYSCON_SYSCFG_REV_SHIFT (28)
215#define EP93XX_SYSCON_SYSCFG_SBOOT (1<<8)
216#define EP93XX_SYSCON_SYSCFG_LCSN7 (1<<7)
217#define EP93XX_SYSCON_SYSCFG_LCSN6 (1<<6)
218#define EP93XX_SYSCON_SYSCFG_LASDO (1<<5)
219#define EP93XX_SYSCON_SYSCFG_LEEDA (1<<4)
220#define EP93XX_SYSCON_SYSCFG_LEECLK (1<<3)
221#define EP93XX_SYSCON_SYSCFG_LCSN2 (1<<1)
222#define EP93XX_SYSCON_SYSCFG_LCSN1 (1<<0)
221#define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0) 223#define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0)
222 224
223#define EP93XX_WATCHDOG_BASE EP93XX_APB_IOMEM(0x00140000) 225#define EP93XX_WATCHDOG_BASE EP93XX_APB_IOMEM(0x00140000)
diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h
index 0a1498ae899a..c991b149bdf2 100644
--- a/arch/arm/mach-ep93xx/include/mach/gpio.h
+++ b/arch/arm/mach-ep93xx/include/mach/gpio.h
@@ -114,17 +114,9 @@ extern void ep93xx_gpio_int_debounce(unsigned int irq, int enable);
114 * B0..B7 (7..15) to irq 72..79, and 114 * B0..B7 (7..15) to irq 72..79, and
115 * F0..F7 (16..24) to irq 80..87. 115 * F0..F7 (16..24) to irq 80..87.
116 */ 116 */
117static inline int gpio_to_irq(unsigned gpio) 117#define gpio_to_irq(gpio) \
118{ 118 (((gpio) <= EP93XX_GPIO_LINE_MAX_IRQ) ? (64 + (gpio)) : -EINVAL)
119 if (gpio <= EP93XX_GPIO_LINE_MAX_IRQ) 119
120 return 64 + gpio; 120#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0))
121
122 return -EINVAL;
123}
124
125static inline int irq_to_gpio(unsigned irq)
126{
127 return irq - gpio_to_irq(0);
128}
129 121
130#endif 122#endif
diff --git a/arch/arm/mach-ep93xx/include/mach/memory.h b/arch/arm/mach-ep93xx/include/mach/memory.h
index 925b12ea0990..554064e90307 100644
--- a/arch/arm/mach-ep93xx/include/mach/memory.h
+++ b/arch/arm/mach-ep93xx/include/mach/memory.h
@@ -9,6 +9,12 @@
9#define PHYS_OFFSET UL(0x00000000) 9#define PHYS_OFFSET UL(0x00000000)
10#elif defined(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) 10#elif defined(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)
11#define PHYS_OFFSET UL(0xc0000000) 11#define PHYS_OFFSET UL(0xc0000000)
12#elif defined(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)
13#define PHYS_OFFSET UL(0xd0000000)
14#elif defined(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)
15#define PHYS_OFFSET UL(0xe0000000)
16#elif defined(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)
17#define PHYS_OFFSET UL(0xf0000000)
12#else 18#else
13#error "Kconfig bug: No EP93xx PHYS_OFFSET set" 19#error "Kconfig bug: No EP93xx PHYS_OFFSET set"
14#endif 20#endif
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index 01a0f0838e5b..469fd968d517 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -4,6 +4,7 @@
4 4
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
6 6
7struct i2c_gpio_platform_data;
7struct i2c_board_info; 8struct i2c_board_info;
8struct platform_device; 9struct platform_device;
9struct ep93xxfb_mach_info; 10struct ep93xxfb_mach_info;
@@ -16,7 +17,6 @@ struct ep93xx_eth_data
16 17
17void ep93xx_map_io(void); 18void ep93xx_map_io(void);
18void ep93xx_init_irq(void); 19void ep93xx_init_irq(void);
19void ep93xx_init_time(unsigned long);
20 20
21/* EP93xx System Controller software locked register write */ 21/* EP93xx System Controller software locked register write */
22void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg); 22void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg);
@@ -33,7 +33,8 @@ static inline void ep93xx_devcfg_clear_bits(unsigned int bits)
33} 33}
34 34
35void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr); 35void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr);
36void ep93xx_register_i2c(struct i2c_board_info *devices, int num); 36void ep93xx_register_i2c(struct i2c_gpio_platform_data *data,
37 struct i2c_board_info *devices, int num);
37void ep93xx_register_fb(struct ep93xxfb_mach_info *data); 38void ep93xx_register_fb(struct ep93xxfb_mach_info *data);
38void ep93xx_register_pwm(int pwm0, int pwm1); 39void ep93xx_register_pwm(int pwm0, int pwm1);
39int ep93xx_pwm_acquire_gpio(struct platform_device *pdev); 40int ep93xx_pwm_acquire_gpio(struct platform_device *pdev);
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c
index 0a313e82fb74..d83b80478b09 100644
--- a/arch/arm/mach-ep93xx/micro9.c
+++ b/arch/arm/mach-ep93xx/micro9.c
@@ -2,7 +2,9 @@
2 * linux/arch/arm/mach-ep93xx/micro9.c 2 * linux/arch/arm/mach-ep93xx/micro9.c
3 * 3 *
4 * Copyright (C) 2006 Contec Steuerungstechnik & Automation GmbH 4 * Copyright (C) 2006 Contec Steuerungstechnik & Automation GmbH
5 * Manfred Gruber <manfred.gruber@contec.at> 5 * Manfred Gruber <m.gruber@tirol.com>
6 * Copyright (C) 2009 Contec Steuerungstechnik & Automation GmbH
7 * Hubert Feurstein <hubert.feurstein@contec.at>
6 * 8 *
7 * This program is free software; you can redistribute it and/or modify 9 * 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 10 * it under the terms of the GNU General Public License version 2 as
@@ -20,104 +22,124 @@
20#include <asm/mach/arch.h> 22#include <asm/mach/arch.h>
21 23
22 24
23static struct ep93xx_eth_data micro9_eth_data = { 25/*************************************************************************
24 .phy_id = 0x1f, 26 * Micro9 NOR Flash
25}; 27 *
26 28 * Micro9-High has up to 64MB of 32-bit flash on CS1
27static void __init micro9_init(void) 29 * Micro9-Mid has up to 64MB of either 32-bit or 16-bit flash on CS1
28{ 30 * Micro9-Lite uses a seperate MTD map driver for flash support
29 ep93xx_register_eth(&micro9_eth_data, 1); 31 * Micro9-Slim has up to 64MB of either 32-bit or 16-bit flash on CS1
30} 32 *************************************************************************/
31 33static struct physmap_flash_data micro9_flash_data;
32/* 34
33 * Micro9-H 35static struct resource micro9_flash_resource = {
34 */
35#ifdef CONFIG_MACH_MICRO9H
36static struct physmap_flash_data micro9h_flash_data = {
37 .width = 4,
38};
39
40static struct resource micro9h_flash_resource = {
41 .start = EP93XX_CS1_PHYS_BASE, 36 .start = EP93XX_CS1_PHYS_BASE,
42 .end = EP93XX_CS1_PHYS_BASE + SZ_64M - 1, 37 .end = EP93XX_CS1_PHYS_BASE + SZ_64M - 1,
43 .flags = IORESOURCE_MEM, 38 .flags = IORESOURCE_MEM,
44}; 39};
45 40
46static struct platform_device micro9h_flash = { 41static struct platform_device micro9_flash = {
47 .name = "physmap-flash", 42 .name = "physmap-flash",
48 .id = 0, 43 .id = 0,
49 .dev = { 44 .dev = {
50 .platform_data = &micro9h_flash_data, 45 .platform_data = &micro9_flash_data,
51 }, 46 },
52 .num_resources = 1, 47 .num_resources = 1,
53 .resource = &micro9h_flash_resource, 48 .resource = &micro9_flash_resource,
54}; 49};
55 50
56static void __init micro9h_init(void) 51static void __init __micro9_register_flash(unsigned int width)
52{
53 micro9_flash_data.width = width;
54
55 platform_device_register(&micro9_flash);
56}
57
58static unsigned int __init micro9_detect_bootwidth(void)
59{
60 u32 v;
61
62 /* Detect the bus width of the external flash memory */
63 v = __raw_readl(EP93XX_SYSCON_SYSCFG);
64 if (v & EP93XX_SYSCON_SYSCFG_LCSN7)
65 return 4; /* 32-bit */
66 else
67 return 2; /* 16-bit */
68}
69
70static void __init micro9_register_flash(void)
57{ 71{
58 platform_device_register(&micro9h_flash); 72 if (machine_is_micro9())
73 __micro9_register_flash(4);
74 else if (machine_is_micro9m() || machine_is_micro9s())
75 __micro9_register_flash(micro9_detect_bootwidth());
59} 76}
60 77
61static void __init micro9h_init_machine(void) 78
79/*************************************************************************
80 * Micro9 Ethernet
81 *************************************************************************/
82static struct ep93xx_eth_data micro9_eth_data = {
83 .phy_id = 0x1f,
84};
85
86
87static void __init micro9_init_machine(void)
62{ 88{
63 ep93xx_init_devices(); 89 ep93xx_init_devices();
64 micro9_init(); 90 ep93xx_register_eth(&micro9_eth_data, 1);
65 micro9h_init(); 91 micro9_register_flash();
66} 92}
67 93
68MACHINE_START(MICRO9, "Contec Hypercontrol Micro9-H") 94
69 /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ 95#ifdef CONFIG_MACH_MICRO9H
96MACHINE_START(MICRO9, "Contec Micro9-High")
97 /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
70 .phys_io = EP93XX_APB_PHYS_BASE, 98 .phys_io = EP93XX_APB_PHYS_BASE,
71 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, 99 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
72 .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, 100 .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100,
73 .map_io = ep93xx_map_io, 101 .map_io = ep93xx_map_io,
74 .init_irq = ep93xx_init_irq, 102 .init_irq = ep93xx_init_irq,
75 .timer = &ep93xx_timer, 103 .timer = &ep93xx_timer,
76 .init_machine = micro9h_init_machine, 104 .init_machine = micro9_init_machine,
77MACHINE_END 105MACHINE_END
78#endif 106#endif
79 107
80/*
81 * Micro9-M
82 */
83#ifdef CONFIG_MACH_MICRO9M 108#ifdef CONFIG_MACH_MICRO9M
84static void __init micro9m_init_machine(void) 109MACHINE_START(MICRO9M, "Contec Micro9-Mid")
85{ 110 /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
86 ep93xx_init_devices();
87 micro9_init();
88}
89
90MACHINE_START(MICRO9M, "Contec Hypercontrol Micro9-M")
91 /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */
92 .phys_io = EP93XX_APB_PHYS_BASE, 111 .phys_io = EP93XX_APB_PHYS_BASE,
93 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, 112 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
94 .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, 113 .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100,
95 .map_io = ep93xx_map_io, 114 .map_io = ep93xx_map_io,
96 .init_irq = ep93xx_init_irq, 115 .init_irq = ep93xx_init_irq,
97 .timer = &ep93xx_timer, 116 .timer = &ep93xx_timer,
98 .init_machine = micro9m_init_machine, 117 .init_machine = micro9_init_machine,
99MACHINE_END 118MACHINE_END
100#endif 119#endif
101 120
102/*
103 * Micro9-L
104 */
105#ifdef CONFIG_MACH_MICRO9L 121#ifdef CONFIG_MACH_MICRO9L
106static void __init micro9l_init_machine(void) 122MACHINE_START(MICRO9L, "Contec Micro9-Lite")
107{ 123 /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
108 ep93xx_init_devices();
109 micro9_init();
110}
111
112MACHINE_START(MICRO9L, "Contec Hypercontrol Micro9-L")
113 /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */
114 .phys_io = EP93XX_APB_PHYS_BASE, 124 .phys_io = EP93XX_APB_PHYS_BASE,
115 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, 125 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
116 .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, 126 .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100,
117 .map_io = ep93xx_map_io, 127 .map_io = ep93xx_map_io,
118 .init_irq = ep93xx_init_irq, 128 .init_irq = ep93xx_init_irq,
119 .timer = &ep93xx_timer, 129 .timer = &ep93xx_timer,
120 .init_machine = micro9l_init_machine, 130 .init_machine = micro9_init_machine,
121MACHINE_END 131MACHINE_END
122#endif 132#endif
123 133
134#ifdef CONFIG_MACH_MICRO9S
135MACHINE_START(MICRO9S, "Contec Micro9-Slim")
136 /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
137 .phys_io = EP93XX_APB_PHYS_BASE,
138 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
139 .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100,
140 .map_io = ep93xx_map_io,
141 .init_irq = ep93xx_init_irq,
142 .timer = &ep93xx_timer,
143 .init_machine = micro9_init_machine,
144MACHINE_END
145#endif
diff --git a/arch/arm/mach-integrator/include/mach/memory.h b/arch/arm/mach-integrator/include/mach/memory.h
index 2b2e7a110724..4891828454f5 100644
--- a/arch/arm/mach-integrator/include/mach/memory.h
+++ b/arch/arm/mach-integrator/include/mach/memory.h
@@ -28,5 +28,6 @@
28#define BUS_OFFSET UL(0x80000000) 28#define BUS_OFFSET UL(0x80000000)
29#define __virt_to_bus(x) ((x) - PAGE_OFFSET + BUS_OFFSET) 29#define __virt_to_bus(x) ((x) - PAGE_OFFSET + BUS_OFFSET)
30#define __bus_to_virt(x) ((x) - BUS_OFFSET + PAGE_OFFSET) 30#define __bus_to_virt(x) ((x) - BUS_OFFSET + PAGE_OFFSET)
31#define __pfn_to_bus(x) (((x) << PAGE_SHIFT) + BUS_OFFSET)
31 32
32#endif 33#endif
diff --git a/arch/arm/mach-mx2/clock_imx27.c b/arch/arm/mach-mx2/clock_imx27.c
index 4089951acb47..ff5e33298914 100644
--- a/arch/arm/mach-mx2/clock_imx27.c
+++ b/arch/arm/mach-mx2/clock_imx27.c
@@ -638,9 +638,9 @@ static struct clk_lookup lookups[] = {
638 _REGISTER_CLOCK("mxc-mmc.0", NULL, sdhc1_clk) 638 _REGISTER_CLOCK("mxc-mmc.0", NULL, sdhc1_clk)
639 _REGISTER_CLOCK("mxc-mmc.1", NULL, sdhc2_clk) 639 _REGISTER_CLOCK("mxc-mmc.1", NULL, sdhc2_clk)
640 _REGISTER_CLOCK("mxc-mmc.2", NULL, sdhc3_clk) 640 _REGISTER_CLOCK("mxc-mmc.2", NULL, sdhc3_clk)
641 _REGISTER_CLOCK(NULL, "cspi1", cspi1_clk) 641 _REGISTER_CLOCK("spi_imx.0", NULL, cspi1_clk)
642 _REGISTER_CLOCK(NULL, "cspi2", cspi2_clk) 642 _REGISTER_CLOCK("spi_imx.1", NULL, cspi2_clk)
643 _REGISTER_CLOCK(NULL, "cspi3", cspi3_clk) 643 _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk)
644 _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk) 644 _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
645 _REGISTER_CLOCK(NULL, "csi", csi_clk) 645 _REGISTER_CLOCK(NULL, "csi", csi_clk)
646 _REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk) 646 _REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk)
@@ -665,7 +665,7 @@ static struct clk_lookup lookups[] = {
665 _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk) 665 _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk)
666 _REGISTER_CLOCK(NULL, "ata", ata_clk) 666 _REGISTER_CLOCK(NULL, "ata", ata_clk)
667 _REGISTER_CLOCK(NULL, "mstick", mstick_clk) 667 _REGISTER_CLOCK(NULL, "mstick", mstick_clk)
668 _REGISTER_CLOCK(NULL, "wdog", wdog_clk) 668 _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk)
669 _REGISTER_CLOCK(NULL, "gpio", gpio_clk) 669 _REGISTER_CLOCK(NULL, "gpio", gpio_clk)
670 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk) 670 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk)
671 _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) 671 _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk)
diff --git a/arch/arm/mach-mx2/pcm038.c b/arch/arm/mach-mx2/pcm038.c
index ee65dda584cf..906d59b0a7aa 100644
--- a/arch/arm/mach-mx2/pcm038.c
+++ b/arch/arm/mach-mx2/pcm038.c
@@ -23,6 +23,10 @@
23#include <linux/mtd/plat-ram.h> 23#include <linux/mtd/plat-ram.h>
24#include <linux/mtd/physmap.h> 24#include <linux/mtd/physmap.h>
25#include <linux/platform_device.h> 25#include <linux/platform_device.h>
26#include <linux/regulator/machine.h>
27#include <linux/mfd/mc13783.h>
28#include <linux/spi/spi.h>
29#include <linux/irq.h>
26 30
27#include <asm/mach-types.h> 31#include <asm/mach-types.h>
28#include <asm/mach/arch.h> 32#include <asm/mach/arch.h>
@@ -35,6 +39,7 @@
35#include <mach/iomux.h> 39#include <mach/iomux.h>
36#include <mach/imx-uart.h> 40#include <mach/imx-uart.h>
37#include <mach/mxc_nand.h> 41#include <mach/mxc_nand.h>
42#include <mach/spi.h>
38 43
39#include "devices.h" 44#include "devices.h"
40 45
@@ -78,8 +83,6 @@ static int pcm038_pins[] = {
78 PC6_PF_I2C2_SCL, 83 PC6_PF_I2C2_SCL,
79 /* SPI1 */ 84 /* SPI1 */
80 PD25_PF_CSPI1_RDY, 85 PD25_PF_CSPI1_RDY,
81 PD27_PF_CSPI1_SS1,
82 PD28_PF_CSPI1_SS0,
83 PD29_PF_CSPI1_SCLK, 86 PD29_PF_CSPI1_SCLK,
84 PD30_PF_CSPI1_MISO, 87 PD30_PF_CSPI1_MISO,
85 PD31_PF_CSPI1_MOSI, 88 PD31_PF_CSPI1_MOSI,
@@ -196,6 +199,86 @@ static struct i2c_board_info pcm038_i2c_devices[] = {
196 } 199 }
197}; 200};
198 201
202static int pcm038_spi_cs[] = {GPIO_PORTD + 28};
203
204static struct spi_imx_master pcm038_spi_0_data = {
205 .chipselect = pcm038_spi_cs,
206 .num_chipselect = ARRAY_SIZE(pcm038_spi_cs),
207};
208
209static struct regulator_consumer_supply sdhc1_consumers[] = {
210 {
211 .dev = &mxc_sdhc_device1.dev,
212 .supply = "sdhc_vcc",
213 },
214};
215
216static struct regulator_init_data sdhc1_data = {
217 .constraints = {
218 .min_uV = 3000000,
219 .max_uV = 3400000,
220 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
221 REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
222 .valid_modes_mask = REGULATOR_MODE_NORMAL |
223 REGULATOR_MODE_FAST,
224 .always_on = 0,
225 .boot_on = 0,
226 },
227 .num_consumer_supplies = ARRAY_SIZE(sdhc1_consumers),
228 .consumer_supplies = sdhc1_consumers,
229};
230
231static struct regulator_consumer_supply cam_consumers[] = {
232 {
233 .dev = NULL,
234 .supply = "imx_cam_vcc",
235 },
236};
237
238static struct regulator_init_data cam_data = {
239 .constraints = {
240 .min_uV = 3000000,
241 .max_uV = 3400000,
242 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
243 REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
244 .valid_modes_mask = REGULATOR_MODE_NORMAL |
245 REGULATOR_MODE_FAST,
246 .always_on = 0,
247 .boot_on = 0,
248 },
249 .num_consumer_supplies = ARRAY_SIZE(cam_consumers),
250 .consumer_supplies = cam_consumers,
251};
252
253struct mc13783_regulator_init_data pcm038_regulators[] = {
254 {
255 .id = MC13783_REGU_VCAM,
256 .init_data = &cam_data,
257 }, {
258 .id = MC13783_REGU_VMMC1,
259 .init_data = &sdhc1_data,
260 },
261};
262
263static struct mc13783_platform_data pcm038_pmic = {
264 .regulators = pcm038_regulators,
265 .num_regulators = ARRAY_SIZE(pcm038_regulators),
266 .flags = MC13783_USE_ADC | MC13783_USE_REGULATOR |
267 MC13783_USE_TOUCHSCREEN,
268};
269
270static struct spi_board_info pcm038_spi_board_info[] __initdata = {
271 {
272 .modalias = "mc13783",
273 .irq = IRQ_GPIOB(23),
274 .max_speed_hz = 300000,
275 .bus_num = 0,
276 .chip_select = 0,
277 .platform_data = &pcm038_pmic,
278 .mode = SPI_CS_HIGH,
279 }
280};
281
199static void __init pcm038_init(void) 282static void __init pcm038_init(void)
200{ 283{
201 mxc_gpio_setup_multiple_pins(pcm038_pins, ARRAY_SIZE(pcm038_pins), 284 mxc_gpio_setup_multiple_pins(pcm038_pins, ARRAY_SIZE(pcm038_pins),
@@ -219,6 +302,15 @@ static void __init pcm038_init(void)
219 /* PE18 for user-LED D40 */ 302 /* PE18 for user-LED D40 */
220 mxc_gpio_mode(GPIO_PORTE | 18 | GPIO_GPIO | GPIO_OUT); 303 mxc_gpio_mode(GPIO_PORTE | 18 | GPIO_GPIO | GPIO_OUT);
221 304
305 mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT);
306
307 /* MC13783 IRQ */
308 mxc_gpio_mode(GPIO_PORTB | 23 | GPIO_GPIO | GPIO_IN);
309
310 mxc_register_device(&mxc_spi_device0, &pcm038_spi_0_data);
311 spi_register_board_info(pcm038_spi_board_info,
312 ARRAY_SIZE(pcm038_spi_board_info));
313
222 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 314 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
223 315
224#ifdef CONFIG_MACH_PCM970_BASEBOARD 316#ifdef CONFIG_MACH_PCM970_BASEBOARD
diff --git a/arch/arm/mach-mx2/pcm970-baseboard.c b/arch/arm/mach-mx2/pcm970-baseboard.c
index c261f59b0b4c..3cb7f457e5d0 100644
--- a/arch/arm/mach-mx2/pcm970-baseboard.c
+++ b/arch/arm/mach-mx2/pcm970-baseboard.c
@@ -39,7 +39,6 @@ static int pcm970_pins[] = {
39 PB7_PF_SD2_D3, 39 PB7_PF_SD2_D3,
40 PB8_PF_SD2_CMD, 40 PB8_PF_SD2_CMD,
41 PB9_PF_SD2_CLK, 41 PB9_PF_SD2_CLK,
42 GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN, /* card detect */
43 /* display */ 42 /* display */
44 PA5_PF_LSCLK, 43 PA5_PF_LSCLK,
45 PA6_PF_LD0, 44 PA6_PF_LD0,
@@ -228,6 +227,7 @@ void __init pcm970_baseboard_init(void)
228 "PCM970"); 227 "PCM970");
229 228
230 mxc_register_device(&mxc_fb_device, &pcm038_fb_data); 229 mxc_register_device(&mxc_fb_device, &pcm038_fb_data);
230 mxc_gpio_mode(GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN);
231 mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata); 231 mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata);
232 platform_device_register(&pcm970_sja1000); 232 platform_device_register(&pcm970_sja1000);
233} 233}
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index eb12de1da42d..63511de3a559 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -1,4 +1,23 @@
1/*
2 * Copyright 2009 Sascha Hauer, <kernel@pengutronix.de>
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
1#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/dma-mapping.h>
2#include <linux/gpio.h> 21#include <linux/gpio.h>
3#include <mach/mx25.h> 22#include <mach/mx25.h>
4#include <mach/irqs.h> 23#include <mach/irqs.h>
diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index 92aa4fd19d99..d23ae571c03f 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -1,3 +1,21 @@
1/*
2 * Copyright 2009 Sascha Hauer, <kernel@pengutronix.de>
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
1#include <linux/types.h> 19#include <linux/types.h>
2#include <linux/init.h> 20#include <linux/init.h>
3#include <linux/clk.h> 21#include <linux/clk.h>
@@ -23,19 +41,12 @@ static struct imxuart_platform_data uart_pdata = {
23 .flags = IMXUART_HAVE_RTSCTS, 41 .flags = IMXUART_HAVE_RTSCTS,
24}; 42};
25 43
26static struct mxc_nand_platform_data nand_board_info = {
27 .width = 1,
28 .hw_ecc = 1,
29};
30
31static void __init mx25pdk_init(void) 44static void __init mx25pdk_init(void)
32{ 45{
33 mxc_register_device(&mxc_uart_device0, &uart_pdata); 46 mxc_register_device(&mxc_uart_device0, &uart_pdata);
34 mxc_register_device(&mxc_usbh2, NULL); 47 mxc_register_device(&mxc_usbh2, NULL);
35 mxc_register_device(&mxc_nand_device, &nand_board_info);
36} 48}
37 49
38
39static void __init mx25pdk_timer_init(void) 50static void __init mx25pdk_timer_init(void)
40{ 51{
41 mx25_clocks_init(26000000); 52 mx25_clocks_init(26000000);
diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c
index fe5c4217322e..c595260ec1f9 100644
--- a/arch/arm/mach-mx3/clock-imx35.c
+++ b/arch/arm/mach-mx3/clock-imx35.c
@@ -443,7 +443,7 @@ static struct clk_lookup lookups[] = {
443 _REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk) 443 _REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk)
444 _REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk) 444 _REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk)
445 _REGISTER_CLOCK("fsl-usb2-udc", "usb", usbotg_clk) 445 _REGISTER_CLOCK("fsl-usb2-udc", "usb", usbotg_clk)
446 _REGISTER_CLOCK("mxc_wdt.0", NULL, wdog_clk) 446 _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk)
447 _REGISTER_CLOCK(NULL, "max", max_clk) 447 _REGISTER_CLOCK(NULL, "max", max_clk)
448 _REGISTER_CLOCK(NULL, "admux", admux_clk) 448 _REGISTER_CLOCK(NULL, "admux", admux_clk)
449 _REGISTER_CLOCK(NULL, "csi", csi_clk) 449 _REGISTER_CLOCK(NULL, "csi", csi_clk)
diff --git a/arch/arm/mach-mx3/clock.c b/arch/arm/mach-mx3/clock.c
index 06bd6180bfc3..b2a3bcf8266e 100644
--- a/arch/arm/mach-mx3/clock.c
+++ b/arch/arm/mach-mx3/clock.c
@@ -530,7 +530,7 @@ static struct clk_lookup lookups[] = {
530 _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk) 530 _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk)
531 _REGISTER_CLOCK(NULL, "gpt", gpt_clk) 531 _REGISTER_CLOCK(NULL, "gpt", gpt_clk)
532 _REGISTER_CLOCK(NULL, "pwm", pwm_clk) 532 _REGISTER_CLOCK(NULL, "pwm", pwm_clk)
533 _REGISTER_CLOCK(NULL, "wdog", wdog_clk) 533 _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk)
534 _REGISTER_CLOCK(NULL, "rtc", rtc_clk) 534 _REGISTER_CLOCK(NULL, "rtc", rtc_clk)
535 _REGISTER_CLOCK(NULL, "epit", epit1_clk) 535 _REGISTER_CLOCK(NULL, "epit", epit1_clk)
536 _REGISTER_CLOCK(NULL, "epit", epit2_clk) 536 _REGISTER_CLOCK(NULL, "epit", epit2_clk)
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index 8a577f367250..e6abe181b967 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -459,7 +459,7 @@ struct platform_device mxc_usbh2 = {
459 * SPI master controller 459 * SPI master controller
460 * 3 channels 460 * 3 channels
461 */ 461 */
462static struct resource imx_spi_0_resources[] = { 462static struct resource mxc_spi_0_resources[] = {
463 { 463 {
464 .start = CSPI1_BASE_ADDR, 464 .start = CSPI1_BASE_ADDR,
465 .end = CSPI1_BASE_ADDR + SZ_4K - 1, 465 .end = CSPI1_BASE_ADDR + SZ_4K - 1,
@@ -471,7 +471,7 @@ static struct resource imx_spi_0_resources[] = {
471 }, 471 },
472}; 472};
473 473
474static struct resource imx_spi_1_resources[] = { 474static struct resource mxc_spi_1_resources[] = {
475 { 475 {
476 .start = CSPI2_BASE_ADDR, 476 .start = CSPI2_BASE_ADDR,
477 .end = CSPI2_BASE_ADDR + SZ_4K - 1, 477 .end = CSPI2_BASE_ADDR + SZ_4K - 1,
@@ -483,7 +483,7 @@ static struct resource imx_spi_1_resources[] = {
483 }, 483 },
484}; 484};
485 485
486static struct resource imx_spi_2_resources[] = { 486static struct resource mxc_spi_2_resources[] = {
487 { 487 {
488 .start = CSPI3_BASE_ADDR, 488 .start = CSPI3_BASE_ADDR,
489 .end = CSPI3_BASE_ADDR + SZ_4K - 1, 489 .end = CSPI3_BASE_ADDR + SZ_4K - 1,
@@ -495,25 +495,25 @@ static struct resource imx_spi_2_resources[] = {
495 }, 495 },
496}; 496};
497 497
498struct platform_device imx_spi_device0 = { 498struct platform_device mxc_spi_device0 = {
499 .name = "spi_imx", 499 .name = "spi_imx",
500 .id = 0, 500 .id = 0,
501 .num_resources = ARRAY_SIZE(imx_spi_0_resources), 501 .num_resources = ARRAY_SIZE(mxc_spi_0_resources),
502 .resource = imx_spi_0_resources, 502 .resource = mxc_spi_0_resources,
503}; 503};
504 504
505struct platform_device imx_spi_device1 = { 505struct platform_device mxc_spi_device1 = {
506 .name = "spi_imx", 506 .name = "spi_imx",
507 .id = 1, 507 .id = 1,
508 .num_resources = ARRAY_SIZE(imx_spi_1_resources), 508 .num_resources = ARRAY_SIZE(mxc_spi_1_resources),
509 .resource = imx_spi_1_resources, 509 .resource = mxc_spi_1_resources,
510}; 510};
511 511
512struct platform_device imx_spi_device2 = { 512struct platform_device mxc_spi_device2 = {
513 .name = "spi_imx", 513 .name = "spi_imx",
514 .id = 2, 514 .id = 2,
515 .num_resources = ARRAY_SIZE(imx_spi_2_resources), 515 .num_resources = ARRAY_SIZE(mxc_spi_2_resources),
516 .resource = imx_spi_2_resources, 516 .resource = mxc_spi_2_resources,
517}; 517};
518 518
519#ifdef CONFIG_ARCH_MX35 519#ifdef CONFIG_ARCH_MX35
diff --git a/arch/arm/mach-mx3/devices.h b/arch/arm/mach-mx3/devices.h
index 79f2be45d139..ab87419dc9a0 100644
--- a/arch/arm/mach-mx3/devices.h
+++ b/arch/arm/mach-mx3/devices.h
@@ -20,7 +20,7 @@ extern struct platform_device mxc_otg_host;
20extern struct platform_device mxc_usbh1; 20extern struct platform_device mxc_usbh1;
21extern struct platform_device mxc_usbh2; 21extern struct platform_device mxc_usbh2;
22extern struct platform_device mxc_rnga_device; 22extern struct platform_device mxc_rnga_device;
23extern struct platform_device imx_spi_device0; 23extern struct platform_device mxc_spi_device0;
24extern struct platform_device imx_spi_device1; 24extern struct platform_device mxc_spi_device1;
25extern struct platform_device imx_spi_device2; 25extern struct platform_device mxc_spi_device2;
26 26
diff --git a/arch/arm/mach-mx3/mm.c b/arch/arm/mach-mx3/mm.c
index ad5a1122d765..bedf5b8d976a 100644
--- a/arch/arm/mach-mx3/mm.c
+++ b/arch/arm/mach-mx3/mm.c
@@ -81,6 +81,7 @@ void __init mx31_map_io(void)
81 iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); 81 iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc));
82} 82}
83 83
84#ifdef CONFIG_ARCH_MX35
84void __init mx35_map_io(void) 85void __init mx35_map_io(void)
85{ 86{
86 mxc_set_cpu_type(MXC_CPU_MX35); 87 mxc_set_cpu_type(MXC_CPU_MX35);
@@ -89,6 +90,7 @@ void __init mx35_map_io(void)
89 90
90 iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); 91 iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc));
91} 92}
93#endif
92 94
93void __init mx31_init_irq(void) 95void __init mx31_init_irq(void)
94{ 96{
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c
index 42920f9c1a11..8ad5cc3e83e3 100644
--- a/arch/arm/mach-omap1/board-ams-delta.c
+++ b/arch/arm/mach-omap1/board-ams-delta.c
@@ -219,6 +219,10 @@ static struct platform_device *ams_delta_devices[] __initdata = {
219 219
220static void __init ams_delta_init(void) 220static void __init ams_delta_init(void)
221{ 221{
222 /* mux pins for uarts */
223 omap_cfg_reg(UART1_TX);
224 omap_cfg_reg(UART1_RTS);
225
222 iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); 226 iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc));
223 227
224 omap_board_config = ams_delta_config; 228 omap_board_config = ams_delta_config;
@@ -231,6 +235,8 @@ static void __init ams_delta_init(void)
231 235
232 omap_usb_init(&ams_delta_usb_config); 236 omap_usb_init(&ams_delta_usb_config);
233 platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); 237 platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
238
239 omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);
234} 240}
235 241
236static struct plat_serial8250_port ams_delta_modem_ports[] = { 242static struct plat_serial8250_port ams_delta_modem_ports[] = {
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c
index fb47239da72f..6c8a41f20e51 100644
--- a/arch/arm/mach-omap1/board-generic.c
+++ b/arch/arm/mach-omap1/board-generic.c
@@ -64,6 +64,14 @@ static void __init omap_generic_init(void)
64{ 64{
65#ifdef CONFIG_ARCH_OMAP15XX 65#ifdef CONFIG_ARCH_OMAP15XX
66 if (cpu_is_omap15xx()) { 66 if (cpu_is_omap15xx()) {
67 /* mux pins for uarts */
68 omap_cfg_reg(UART1_TX);
69 omap_cfg_reg(UART1_RTS);
70 omap_cfg_reg(UART2_TX);
71 omap_cfg_reg(UART2_RTS);
72 omap_cfg_reg(UART3_TX);
73 omap_cfg_reg(UART3_RX);
74
67 omap_usb_init(&generic1510_usb_config); 75 omap_usb_init(&generic1510_usb_config);
68 } 76 }
69#endif 77#endif
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index cc2abbb2d0f4..cd6c39514826 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -376,6 +376,26 @@ static void __init innovator_init(void)
376{ 376{
377#ifdef CONFIG_ARCH_OMAP15XX 377#ifdef CONFIG_ARCH_OMAP15XX
378 if (cpu_is_omap1510()) { 378 if (cpu_is_omap1510()) {
379 unsigned char reg;
380
381 /* mux pins for uarts */
382 omap_cfg_reg(UART1_TX);
383 omap_cfg_reg(UART1_RTS);
384 omap_cfg_reg(UART2_TX);
385 omap_cfg_reg(UART2_RTS);
386 omap_cfg_reg(UART3_TX);
387 omap_cfg_reg(UART3_RX);
388
389 reg = fpga_read(OMAP1510_FPGA_POWER);
390 reg |= OMAP1510_FPGA_PCR_COM1_EN;
391 fpga_write(reg, OMAP1510_FPGA_POWER);
392 udelay(10);
393
394 reg = fpga_read(OMAP1510_FPGA_POWER);
395 reg |= OMAP1510_FPGA_PCR_COM2_EN;
396 fpga_write(reg, OMAP1510_FPGA_POWER);
397 udelay(10);
398
379 platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); 399 platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices));
380 spi_register_board_info(innovator1510_boardinfo, 400 spi_register_board_info(innovator1510_boardinfo,
381 ARRAY_SIZE(innovator1510_boardinfo)); 401 ARRAY_SIZE(innovator1510_boardinfo));
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 90dd0431b0dc..4de258420f39 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -342,6 +342,14 @@ static void __init palmte_misc_gpio_setup(void)
342 342
343static void __init omap_palmte_init(void) 343static void __init omap_palmte_init(void)
344{ 344{
345 /* mux pins for uarts */
346 omap_cfg_reg(UART1_TX);
347 omap_cfg_reg(UART1_RTS);
348 omap_cfg_reg(UART2_TX);
349 omap_cfg_reg(UART2_RTS);
350 omap_cfg_reg(UART3_TX);
351 omap_cfg_reg(UART3_RX);
352
345 omap_board_config = palmte_config; 353 omap_board_config = palmte_config;
346 omap_board_config_size = ARRAY_SIZE(palmte_config); 354 omap_board_config_size = ARRAY_SIZE(palmte_config);
347 355
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c
index 8256139891ff..d972cf941b76 100644
--- a/arch/arm/mach-omap1/board-palmtt.c
+++ b/arch/arm/mach-omap1/board-palmtt.c
@@ -289,6 +289,14 @@ static void __init omap_mpu_wdt_mode(int mode) {
289 289
290static void __init omap_palmtt_init(void) 290static void __init omap_palmtt_init(void)
291{ 291{
292 /* mux pins for uarts */
293 omap_cfg_reg(UART1_TX);
294 omap_cfg_reg(UART1_RTS);
295 omap_cfg_reg(UART2_TX);
296 omap_cfg_reg(UART2_RTS);
297 omap_cfg_reg(UART3_TX);
298 omap_cfg_reg(UART3_RX);
299
292 omap_mpu_wdt_mode(0); 300 omap_mpu_wdt_mode(0);
293 301
294 omap_board_config = palmtt_config; 302 omap_board_config = palmtt_config;
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index 81b6bde1c5a3..986bd4df0e97 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -307,6 +307,14 @@ palmz71_gpio_setup(int early)
307static void __init 307static void __init
308omap_palmz71_init(void) 308omap_palmz71_init(void)
309{ 309{
310 /* mux pins for uarts */
311 omap_cfg_reg(UART1_TX);
312 omap_cfg_reg(UART1_RTS);
313 omap_cfg_reg(UART2_TX);
314 omap_cfg_reg(UART2_RTS);
315 omap_cfg_reg(UART3_TX);
316 omap_cfg_reg(UART3_RX);
317
310 palmz71_gpio_setup(1); 318 palmz71_gpio_setup(1);
311 omap_mpu_wdt_mode(0); 319 omap_mpu_wdt_mode(0);
312 320
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 02c85ca2e1df..056ae64e0f55 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -377,6 +377,14 @@ static struct omap_board_config_kernel sx1_config[] __initdata = {
377 377
378static void __init omap_sx1_init(void) 378static void __init omap_sx1_init(void)
379{ 379{
380 /* mux pins for uarts */
381 omap_cfg_reg(UART1_TX);
382 omap_cfg_reg(UART1_RTS);
383 omap_cfg_reg(UART2_TX);
384 omap_cfg_reg(UART2_RTS);
385 omap_cfg_reg(UART3_TX);
386 omap_cfg_reg(UART3_RX);
387
380 platform_add_devices(sx1_devices, ARRAY_SIZE(sx1_devices)); 388 platform_add_devices(sx1_devices, ARRAY_SIZE(sx1_devices));
381 389
382 omap_board_config = sx1_config; 390 omap_board_config = sx1_config;
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index c06e7a553472..07b07522d5bf 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -152,6 +152,14 @@ static void __init voiceblue_init_irq(void)
152 152
153static void __init voiceblue_init(void) 153static void __init voiceblue_init(void)
154{ 154{
155 /* mux pins for uarts */
156 omap_cfg_reg(UART1_TX);
157 omap_cfg_reg(UART1_RTS);
158 omap_cfg_reg(UART2_TX);
159 omap_cfg_reg(UART2_RTS);
160 omap_cfg_reg(UART3_TX);
161 omap_cfg_reg(UART3_RX);
162
155 /* Watchdog */ 163 /* Watchdog */
156 gpio_request(0, "Watchdog"); 164 gpio_request(0, "Watchdog");
157 /* smc91x reset */ 165 /* smc91x reset */
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c
index d496e50fec40..d23979bc0fd5 100644
--- a/arch/arm/mach-omap1/serial.c
+++ b/arch/arm/mach-omap1/serial.c
@@ -131,8 +131,6 @@ void __init omap_serial_init(void)
131 } 131 }
132 132
133 for (i = 0; i < OMAP_MAX_NR_PORTS; i++) { 133 for (i = 0; i < OMAP_MAX_NR_PORTS; i++) {
134 unsigned char reg;
135
136 switch (i) { 134 switch (i) {
137 case 0: 135 case 0:
138 uart1_ck = clk_get(NULL, "uart1_ck"); 136 uart1_ck = clk_get(NULL, "uart1_ck");
@@ -143,16 +141,6 @@ void __init omap_serial_init(void)
143 if (cpu_is_omap15xx()) 141 if (cpu_is_omap15xx())
144 clk_set_rate(uart1_ck, 12000000); 142 clk_set_rate(uart1_ck, 12000000);
145 } 143 }
146 if (cpu_is_omap15xx()) {
147 omap_cfg_reg(UART1_TX);
148 omap_cfg_reg(UART1_RTS);
149 if (machine_is_omap_innovator()) {
150 reg = fpga_read(OMAP1510_FPGA_POWER);
151 reg |= OMAP1510_FPGA_PCR_COM1_EN;
152 fpga_write(reg, OMAP1510_FPGA_POWER);
153 udelay(10);
154 }
155 }
156 break; 144 break;
157 case 1: 145 case 1:
158 uart2_ck = clk_get(NULL, "uart2_ck"); 146 uart2_ck = clk_get(NULL, "uart2_ck");
@@ -165,16 +153,6 @@ void __init omap_serial_init(void)
165 else 153 else
166 clk_set_rate(uart2_ck, 48000000); 154 clk_set_rate(uart2_ck, 48000000);
167 } 155 }
168 if (cpu_is_omap15xx()) {
169 omap_cfg_reg(UART2_TX);
170 omap_cfg_reg(UART2_RTS);
171 if (machine_is_omap_innovator()) {
172 reg = fpga_read(OMAP1510_FPGA_POWER);
173 reg |= OMAP1510_FPGA_PCR_COM2_EN;
174 fpga_write(reg, OMAP1510_FPGA_POWER);
175 udelay(10);
176 }
177 }
178 break; 156 break;
179 case 2: 157 case 2:
180 uart3_ck = clk_get(NULL, "uart3_ck"); 158 uart3_ck = clk_get(NULL, "uart3_ck");
@@ -185,10 +163,6 @@ void __init omap_serial_init(void)
185 if (cpu_is_omap15xx()) 163 if (cpu_is_omap15xx())
186 clk_set_rate(uart3_ck, 12000000); 164 clk_set_rate(uart3_ck, 12000000);
187 } 165 }
188 if (cpu_is_omap15xx()) {
189 omap_cfg_reg(UART3_TX);
190 omap_cfg_reg(UART3_RX);
191 }
192 break; 166 break;
193 } 167 }
194 omap_serial_reset(&serial_platform_data[i]); 168 omap_serial_reset(&serial_platform_data[i]);
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 75b1c7efae7e..aad194f61a33 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -73,9 +73,21 @@ config MACH_OMAP_3430SDP
73 bool "OMAP 3430 SDP board" 73 bool "OMAP 3430 SDP board"
74 depends on ARCH_OMAP3 && ARCH_OMAP34XX 74 depends on ARCH_OMAP3 && ARCH_OMAP34XX
75 75
76config MACH_NOKIA_N800
77 bool
78
79config MACH_NOKIA_N810
80 bool
81
82config MACH_NOKIA_N810_WIMAX
83 bool
84
76config MACH_NOKIA_N8X0 85config MACH_NOKIA_N8X0
77 bool "Nokia N800/N810" 86 bool "Nokia N800/N810"
78 depends on ARCH_OMAP2420 87 depends on ARCH_OMAP2420
88 select MACH_NOKIA_N800
89 select MACH_NOKIA_N810
90 select MACH_NOKIA_N810_WIMAX
79 91
80config MACH_NOKIA_RX51 92config MACH_NOKIA_RX51
81 bool "Nokia RX-51 board" 93 bool "Nokia RX-51 board"
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index efaf053eba85..0acb5560229c 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -17,6 +17,7 @@
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/delay.h> 18#include <linux/delay.h>
19#include <linux/input.h> 19#include <linux/input.h>
20#include <linux/input/matrix_keypad.h>
20#include <linux/spi/spi.h> 21#include <linux/spi/spi.h>
21#include <linux/spi/ads7846.h> 22#include <linux/spi/ads7846.h>
22#include <linux/i2c/twl4030.h> 23#include <linux/i2c/twl4030.h>
@@ -38,7 +39,6 @@
38#include <mach/gpmc.h> 39#include <mach/gpmc.h>
39 40
40#include <mach/control.h> 41#include <mach/control.h>
41#include <mach/keypad.h>
42#include <mach/gpmc-smc91x.h> 42#include <mach/gpmc-smc91x.h>
43 43
44#include "sdram-qimonda-hyb18m512160af-6.h" 44#include "sdram-qimonda-hyb18m512160af-6.h"
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index eb37c40ea83a..609a5a4a7e29 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -58,6 +58,8 @@ static void __init gic_init_irq(void)
58 58
59static void __init omap_4430sdp_init_irq(void) 59static void __init omap_4430sdp_init_irq(void)
60{ 60{
61 omap_board_config = sdp4430_config;
62 omap_board_config_size = ARRAY_SIZE(sdp4430_config);
61 omap2_init_common_hw(NULL, NULL); 63 omap2_init_common_hw(NULL, NULL);
62#ifdef CONFIG_OMAP_32K_TIMER 64#ifdef CONFIG_OMAP_32K_TIMER
63 omap2_gp_clockevent_set_gptimer(1); 65 omap2_gp_clockevent_set_gptimer(1);
@@ -70,8 +72,6 @@ static void __init omap_4430sdp_init_irq(void)
70static void __init omap_4430sdp_init(void) 72static void __init omap_4430sdp_init(void)
71{ 73{
72 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); 74 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
73 omap_board_config = sdp4430_config;
74 omap_board_config_size = ARRAY_SIZE(sdp4430_config);
75 omap_serial_init(); 75 omap_serial_init();
76} 76}
77 77
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index d110a7fdfbd8..d57ec2f4d0a9 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -16,6 +16,7 @@
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/input.h> 18#include <linux/input.h>
19#include <linux/input/matrix_keypad.h>
19#include <linux/gpio_keys.h> 20#include <linux/gpio_keys.h>
20#include <linux/workqueue.h> 21#include <linux/workqueue.h>
21#include <linux/err.h> 22#include <linux/err.h>
@@ -41,7 +42,6 @@
41#include <asm/delay.h> 42#include <asm/delay.h>
42#include <mach/control.h> 43#include <mach/control.h>
43#include <mach/usb.h> 44#include <mach/usb.h>
44#include <mach/keypad.h>
45 45
46#include "mmc-twl4030.h" 46#include "mmc-twl4030.h"
47 47
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index e4ec0c591216..4c4d7f8dbd72 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -20,6 +20,7 @@
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/gpio.h> 21#include <linux/gpio.h>
22#include <linux/input.h> 22#include <linux/input.h>
23#include <linux/input/matrix_keypad.h>
23#include <linux/leds.h> 24#include <linux/leds.h>
24 25
25#include <linux/spi/spi.h> 26#include <linux/spi/spi.h>
@@ -37,7 +38,6 @@
37#include <mach/usb.h> 38#include <mach/usb.h>
38#include <mach/common.h> 39#include <mach/common.h>
39#include <mach/mcspi.h> 40#include <mach/mcspi.h>
40#include <mach/keypad.h>
41 41
42#include "sdram-micron-mt46h32m32lf-6.h" 42#include "sdram-micron-mt46h32m32lf-6.h"
43#include "mmc-twl4030.h" 43#include "mmc-twl4030.h"
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 7f6bf8772af7..5326e0d61597 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -27,6 +27,7 @@
27#include <linux/i2c/twl4030.h> 27#include <linux/i2c/twl4030.h>
28#include <linux/leds.h> 28#include <linux/leds.h>
29#include <linux/input.h> 29#include <linux/input.h>
30#include <linux/input/matrix_keypad.h>
30#include <linux/gpio_keys.h> 31#include <linux/gpio_keys.h>
31 32
32#include <asm/mach-types.h> 33#include <asm/mach-types.h>
@@ -39,7 +40,6 @@
39#include <mach/hardware.h> 40#include <mach/hardware.h>
40#include <mach/mcspi.h> 41#include <mach/mcspi.h>
41#include <mach/usb.h> 42#include <mach/usb.h>
42#include <mach/keypad.h>
43#include <mach/mux.h> 43#include <mach/mux.h>
44 44
45#include "sdram-micron-mt46h32m32lf-6.h" 45#include "sdram-micron-mt46h32m32lf-6.h"
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index c1af5326e92f..e34d96a825e3 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/platform_device.h> 13#include <linux/platform_device.h>
14#include <linux/input.h> 14#include <linux/input.h>
15#include <linux/input/matrix_keypad.h>
15#include <linux/spi/spi.h> 16#include <linux/spi/spi.h>
16#include <linux/i2c.h> 17#include <linux/i2c.h>
17#include <linux/i2c/twl4030.h> 18#include <linux/i2c/twl4030.h>
@@ -27,7 +28,6 @@
27#include <mach/common.h> 28#include <mach/common.h>
28#include <mach/dma.h> 29#include <mach/dma.h>
29#include <mach/gpmc.h> 30#include <mach/gpmc.h>
30#include <mach/keypad.h>
31#include <mach/onenand.h> 31#include <mach/onenand.h>
32#include <mach/gpmc-smc91x.h> 32#include <mach/gpmc-smc91x.h>
33 33
@@ -444,7 +444,7 @@ static int __init rx51_i2c_init(void)
444 rx51_twldata.vaux3 = &rx51_vaux3_cam; 444 rx51_twldata.vaux3 = &rx51_vaux3_cam;
445 rx51_twldata.vmmc2 = &rx51_vmmc2; 445 rx51_twldata.vmmc2 = &rx51_vmmc2;
446 } 446 }
447 omap_register_i2c_bus(1, 2600, rx51_peripherals_i2c_board_info_1, 447 omap_register_i2c_bus(1, 2200, rx51_peripherals_i2c_board_info_1,
448 ARRAY_SIZE(rx51_peripherals_i2c_board_info_1)); 448 ARRAY_SIZE(rx51_peripherals_i2c_board_info_1));
449 omap_register_i2c_bus(2, 100, NULL, 0); 449 omap_register_i2c_bus(2, 100, NULL, 0);
450 omap_register_i2c_bus(3, 400, NULL, 0); 450 omap_register_i2c_bus(3, 400, NULL, 0);
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index f9196c3b1a7b..78869a9a1cc2 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -26,7 +26,6 @@
26#include <mach/mux.h> 26#include <mach/mux.h>
27#include <mach/board.h> 27#include <mach/board.h>
28#include <mach/common.h> 28#include <mach/common.h>
29#include <mach/keypad.h>
30#include <mach/dma.h> 29#include <mach/dma.h>
31#include <mach/gpmc.h> 30#include <mach/gpmc.h>
32#include <mach/usb.h> 31#include <mach/usb.h>
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
index b7b32208ced7..ea00486a5e53 100644
--- a/arch/arm/mach-omap2/board-zoom2.c
+++ b/arch/arm/mach-omap2/board-zoom2.c
@@ -13,6 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/input.h> 15#include <linux/input.h>
16#include <linux/input/matrix_keypad.h>
16#include <linux/gpio.h> 17#include <linux/gpio.h>
17#include <linux/i2c/twl4030.h> 18#include <linux/i2c/twl4030.h>
18#include <linux/regulator/machine.h> 19#include <linux/regulator/machine.h>
@@ -22,9 +23,9 @@
22 23
23#include <mach/common.h> 24#include <mach/common.h>
24#include <mach/usb.h> 25#include <mach/usb.h>
25#include <mach/keypad.h>
26 26
27#include "mmc-twl4030.h" 27#include "mmc-twl4030.h"
28#include "sdram-micron-mt46h32m32lf-6.h"
28 29
29/* Zoom2 has Qwerty keyboard*/ 30/* Zoom2 has Qwerty keyboard*/
30static int board_keymap[] = { 31static int board_keymap[] = {
@@ -213,7 +214,8 @@ static void __init omap_zoom2_init_irq(void)
213{ 214{
214 omap_board_config = zoom2_config; 215 omap_board_config = zoom2_config;
215 omap_board_config_size = ARRAY_SIZE(zoom2_config); 216 omap_board_config_size = ARRAY_SIZE(zoom2_config);
216 omap2_init_common_hw(NULL, NULL); 217 omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
218 mt46h32m32lf6_sdrc_params);
217 omap_init_irq(); 219 omap_init_irq();
218 omap_gpio_init(); 220 omap_gpio_init();
219} 221}
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
index bc5d3ac66611..e2dbedd581e8 100644
--- a/arch/arm/mach-omap2/clock24xx.c
+++ b/arch/arm/mach-omap2/clock24xx.c
@@ -769,6 +769,7 @@ int __init omap2_clk_init(void)
769 if (c->cpu & cpu_mask) { 769 if (c->cpu & cpu_mask) {
770 clkdev_add(&c->lk); 770 clkdev_add(&c->lk);
771 clk_register(c->lk.clk); 771 clk_register(c->lk.clk);
772 omap2_init_clk_clkdm(c->lk.clk);
772 } 773 }
773 774
774 /* Check the MPU rate set by bootloader */ 775 /* Check the MPU rate set by bootloader */
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index 4ef7b4f5474e..58aff8485df9 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -137,6 +137,36 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm)
137 } 137 }
138} 138}
139 139
140/*
141 * _omap2_clkdm_set_hwsup - set the hwsup idle transition bit
142 * @clkdm: struct clockdomain *
143 * @enable: int 0 to disable, 1 to enable
144 *
145 * Internal helper for actually switching the bit that controls hwsup
146 * idle transitions for clkdm.
147 */
148static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable)
149{
150 u32 v;
151
152 if (cpu_is_omap24xx()) {
153 if (enable)
154 v = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
155 else
156 v = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
157 } else if (cpu_is_omap34xx()) {
158 if (enable)
159 v = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
160 else
161 v = OMAP34XX_CLKSTCTRL_DISABLE_AUTO;
162 } else {
163 BUG();
164 }
165
166 cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
167 v << __ffs(clkdm->clktrctrl_mask),
168 clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
169}
140 170
141static struct clockdomain *_clkdm_lookup(const char *name) 171static struct clockdomain *_clkdm_lookup(const char *name)
142{ 172{
@@ -456,8 +486,6 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
456 */ 486 */
457void omap2_clkdm_allow_idle(struct clockdomain *clkdm) 487void omap2_clkdm_allow_idle(struct clockdomain *clkdm)
458{ 488{
459 u32 v;
460
461 if (!clkdm) 489 if (!clkdm)
462 return; 490 return;
463 491
@@ -473,18 +501,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm)
473 if (atomic_read(&clkdm->usecount) > 0) 501 if (atomic_read(&clkdm->usecount) > 0)
474 _clkdm_add_autodeps(clkdm); 502 _clkdm_add_autodeps(clkdm);
475 503
476 if (cpu_is_omap24xx()) 504 _omap2_clkdm_set_hwsup(clkdm, 1);
477 v = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
478 else if (cpu_is_omap34xx())
479 v = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
480 else
481 BUG();
482
483
484 cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
485 v << __ffs(clkdm->clktrctrl_mask),
486 clkdm->pwrdm.ptr->prcm_offs,
487 CM_CLKSTCTRL);
488 505
489 pwrdm_clkdm_state_switch(clkdm); 506 pwrdm_clkdm_state_switch(clkdm);
490} 507}
@@ -500,8 +517,6 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm)
500 */ 517 */
501void omap2_clkdm_deny_idle(struct clockdomain *clkdm) 518void omap2_clkdm_deny_idle(struct clockdomain *clkdm)
502{ 519{
503 u32 v;
504
505 if (!clkdm) 520 if (!clkdm)
506 return; 521 return;
507 522
@@ -514,16 +529,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm)
514 pr_debug("clockdomain: disabling automatic idle transitions for %s\n", 529 pr_debug("clockdomain: disabling automatic idle transitions for %s\n",
515 clkdm->name); 530 clkdm->name);
516 531
517 if (cpu_is_omap24xx()) 532 _omap2_clkdm_set_hwsup(clkdm, 0);
518 v = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
519 else if (cpu_is_omap34xx())
520 v = OMAP34XX_CLKSTCTRL_DISABLE_AUTO;
521 else
522 BUG();
523
524 cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
525 v << __ffs(clkdm->clktrctrl_mask),
526 clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
527 533
528 if (atomic_read(&clkdm->usecount) > 0) 534 if (atomic_read(&clkdm->usecount) > 0)
529 _clkdm_del_autodeps(clkdm); 535 _clkdm_del_autodeps(clkdm);
@@ -569,10 +575,14 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk)
569 v = omap2_clkdm_clktrctrl_read(clkdm); 575 v = omap2_clkdm_clktrctrl_read(clkdm);
570 576
571 if ((cpu_is_omap34xx() && v == OMAP34XX_CLKSTCTRL_ENABLE_AUTO) || 577 if ((cpu_is_omap34xx() && v == OMAP34XX_CLKSTCTRL_ENABLE_AUTO) ||
572 (cpu_is_omap24xx() && v == OMAP24XX_CLKSTCTRL_ENABLE_AUTO)) 578 (cpu_is_omap24xx() && v == OMAP24XX_CLKSTCTRL_ENABLE_AUTO)) {
579 /* Disable HW transitions when we are changing deps */
580 _omap2_clkdm_set_hwsup(clkdm, 0);
573 _clkdm_add_autodeps(clkdm); 581 _clkdm_add_autodeps(clkdm);
574 else 582 _omap2_clkdm_set_hwsup(clkdm, 1);
583 } else {
575 omap2_clkdm_wakeup(clkdm); 584 omap2_clkdm_wakeup(clkdm);
585 }
576 586
577 pwrdm_wait_transition(clkdm->pwrdm.ptr); 587 pwrdm_wait_transition(clkdm->pwrdm.ptr);
578 pwrdm_clkdm_state_switch(clkdm); 588 pwrdm_clkdm_state_switch(clkdm);
@@ -623,10 +633,14 @@ int omap2_clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk)
623 v = omap2_clkdm_clktrctrl_read(clkdm); 633 v = omap2_clkdm_clktrctrl_read(clkdm);
624 634
625 if ((cpu_is_omap34xx() && v == OMAP34XX_CLKSTCTRL_ENABLE_AUTO) || 635 if ((cpu_is_omap34xx() && v == OMAP34XX_CLKSTCTRL_ENABLE_AUTO) ||
626 (cpu_is_omap24xx() && v == OMAP24XX_CLKSTCTRL_ENABLE_AUTO)) 636 (cpu_is_omap24xx() && v == OMAP24XX_CLKSTCTRL_ENABLE_AUTO)) {
637 /* Disable HW transitions when we are changing deps */
638 _omap2_clkdm_set_hwsup(clkdm, 0);
627 _clkdm_del_autodeps(clkdm); 639 _clkdm_del_autodeps(clkdm);
628 else 640 _omap2_clkdm_set_hwsup(clkdm, 1);
641 } else {
629 omap2_clkdm_sleep(clkdm); 642 omap2_clkdm_sleep(clkdm);
643 }
630 644
631 pwrdm_clkdm_state_switch(clkdm); 645 pwrdm_clkdm_state_switch(clkdm);
632 646
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index e3a3bad1d84f..56be87d13edb 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -302,7 +302,9 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
302 pwrdm_init(powerdomains_omap); 302 pwrdm_init(powerdomains_omap);
303 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); 303 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);
304 omap2_clk_init(); 304 omap2_clk_init();
305#endif
305 omap_serial_early_init(); 306 omap_serial_early_init();
307#ifndef CONFIG_ARCH_OMAP4
306 omap_hwmod_late_init(); 308 omap_hwmod_late_init();
307 omap_pm_if_init(); 309 omap_pm_if_init();
308 omap2_sdrc_init(sdrc_cs0, sdrc_cs1); 310 omap2_sdrc_init(sdrc_cs0, sdrc_cs1);
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 378c2f618358..89463190923a 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -639,14 +639,15 @@ static void __init prcm_setup_regs(void)
639 prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, 639 prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
640 OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); 640 OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET);
641 641
642 /* Enable GPIO wakeups in PER */ 642 /* Enable wakeups in PER */
643 prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 | 643 prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 |
644 OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | 644 OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 |
645 OMAP3430_EN_GPIO6, OMAP3430_PER_MOD, PM_WKEN); 645 OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3,
646 OMAP3430_PER_MOD, PM_WKEN);
646 /* and allow them to wake up MPU */ 647 /* and allow them to wake up MPU */
647 prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | 648 prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 |
648 OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | 649 OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 |
649 OMAP3430_GRPSEL_GPIO6, 650 OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3,
650 OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); 651 OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL);
651 652
652 /* Don't attach IVA interrupts */ 653 /* Don't attach IVA interrupts */
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index ae2186892c85..54dfeb5d5667 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -109,16 +109,6 @@ static struct plat_serial8250_port serial_platform_data2[] = {
109 .regshift = 2, 109 .regshift = 2,
110 .uartclk = OMAP24XX_BASE_BAUD * 16, 110 .uartclk = OMAP24XX_BASE_BAUD * 16,
111 }, { 111 }, {
112#ifdef CONFIG_ARCH_OMAP4
113 .membase = OMAP2_IO_ADDRESS(OMAP_UART4_BASE),
114 .mapbase = OMAP_UART4_BASE,
115 .irq = 70,
116 .flags = UPF_BOOT_AUTOCONF,
117 .iotype = UPIO_MEM,
118 .regshift = 2,
119 .uartclk = OMAP24XX_BASE_BAUD * 16,
120 }, {
121#endif
122 .flags = 0 112 .flags = 0
123 } 113 }
124}; 114};
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index aac2cda60e09..102916f1e465 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -43,10 +43,10 @@
43 43
44#define CM_X300_ETH_PHYS 0x08000010 44#define CM_X300_ETH_PHYS 0x08000010
45 45
46#define GPIO82_MMC2_IRQ (82) 46#define GPIO82_MMC_IRQ (82)
47#define GPIO85_MMC2_WP (85) 47#define GPIO85_MMC_WP (85)
48 48
49#define CM_X300_MMC2_IRQ IRQ_GPIO(GPIO82_MMC2_IRQ) 49#define CM_X300_MMC_IRQ IRQ_GPIO(GPIO82_MMC_IRQ)
50 50
51#define GPIO95_RTC_CS (95) 51#define GPIO95_RTC_CS (95)
52#define GPIO96_RTC_WR (96) 52#define GPIO96_RTC_WR (96)
@@ -292,37 +292,37 @@ static inline void cm_x300_init_nand(void) {}
292#endif 292#endif
293 293
294#if defined(CONFIG_MMC) || defined(CONFIG_MMC_MODULE) 294#if defined(CONFIG_MMC) || defined(CONFIG_MMC_MODULE)
295/* The first MMC slot of CM-X300 is hardwired to Libertas card and has 295static struct pxamci_platform_data cm_x300_mci_platform_data = {
296 .detect_delay = 20,
297 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
298 .gpio_card_detect = GPIO82_MMC_IRQ,
299 .gpio_card_ro = GPIO85_MMC_WP,
300 .gpio_power = -1,
301};
302
303/* The second MMC slot of CM-X300 is hardwired to Libertas card and has
296 no detection/ro pins */ 304 no detection/ro pins */
297static int cm_x300_mci_init(struct device *dev, 305static int cm_x300_mci2_init(struct device *dev,
298 irq_handler_t cm_x300_detect_int, 306 irq_handler_t cm_x300_detect_int,
299 void *data) 307 void *data)
300{ 308{
301 return 0; 309 return 0;
302} 310}
303 311
304static void cm_x300_mci_exit(struct device *dev, void *data) 312static void cm_x300_mci2_exit(struct device *dev, void *data)
305{ 313{
306} 314}
307 315
308static struct pxamci_platform_data cm_x300_mci_platform_data = { 316static struct pxamci_platform_data cm_x300_mci2_platform_data = {
309 .detect_delay = 20, 317 .detect_delay = 20,
310 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 318 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
311 .init = cm_x300_mci_init, 319 .init = cm_x300_mci2_init,
312 .exit = cm_x300_mci_exit, 320 .exit = cm_x300_mci2_exit,
313 .gpio_card_detect = -1, 321 .gpio_card_detect = -1,
314 .gpio_card_ro = -1, 322 .gpio_card_ro = -1,
315 .gpio_power = -1, 323 .gpio_power = -1,
316}; 324};
317 325
318static struct pxamci_platform_data cm_x300_mci2_platform_data = {
319 .detect_delay = 20,
320 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
321 .gpio_card_detect = GPIO82_MMC2_IRQ,
322 .gpio_card_ro = GPIO85_MMC2_WP,
323 .gpio_power = -1,
324};
325
326static void __init cm_x300_init_mmc(void) 326static void __init cm_x300_init_mmc(void)
327{ 327{
328 pxa_set_mci_info(&cm_x300_mci_platform_data); 328 pxa_set_mci_info(&cm_x300_mci_platform_data);
diff --git a/arch/arm/mach-pxa/cpufreq-pxa2xx.c b/arch/arm/mach-pxa/cpufreq-pxa2xx.c
index 3a8ee2272add..983cc8c20081 100644
--- a/arch/arm/mach-pxa/cpufreq-pxa2xx.c
+++ b/arch/arm/mach-pxa/cpufreq-pxa2xx.c
@@ -155,7 +155,7 @@ MODULE_PARM_DESC(pxa255_turbo_table, "Selects the frequency table (0 = run table
155 155
156static pxa_freqs_t pxa27x_freqs[] = { 156static pxa_freqs_t pxa27x_freqs[] = {
157 {104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 }, 157 {104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 },
158 {156000, 104000, PXA27x_CCCR(1, 8, 6), 0, CCLKCFG2(1, 1, 1), 1000000, 1705000 }, 158 {156000, 104000, PXA27x_CCCR(1, 8, 3), 0, CCLKCFG2(1, 0, 1), 1000000, 1705000 },
159 {208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 }, 159 {208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 },
160 {312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 }, 160 {312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 },
161 {416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 }, 161 {416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 },
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c
index 79141f862728..965480eb4fe6 100644
--- a/arch/arm/mach-pxa/csb726.c
+++ b/arch/arm/mach-pxa/csb726.c
@@ -238,7 +238,7 @@ static struct resource csb726_lan_resources[] = {
238}; 238};
239 239
240struct smsc911x_platform_config csb726_lan_config = { 240struct smsc911x_platform_config csb726_lan_config = {
241 .irq_type = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 241 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
242 .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, 242 .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
243 .flags = SMSC911X_USE_32BIT, 243 .flags = SMSC911X_USE_32BIT,
244 .phy_interface = PHY_INTERFACE_MODE_MII, 244 .phy_interface = PHY_INTERFACE_MODE_MII,
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index ee8d6038ce82..82ff5733e4dc 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -15,6 +15,7 @@
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/gpio_keys.h>
18#include <linux/gpio.h> 19#include <linux/gpio.h>
19#include <linux/leds.h> 20#include <linux/leds.h>
20#include <linux/mtd/physmap.h> 21#include <linux/mtd/physmap.h>
@@ -375,6 +376,43 @@ static struct platform_device spitzkbd_device = {
375}; 376};
376 377
377 378
379static struct gpio_keys_button spitz_gpio_keys[] = {
380 {
381 .type = EV_PWR,
382 .code = KEY_SUSPEND,
383 .gpio = SPITZ_GPIO_ON_KEY,
384 .desc = "On/Off",
385 .wakeup = 1,
386 },
387 /* Two buttons detecting the lid state */
388 {
389 .type = EV_SW,
390 .code = 0,
391 .gpio = SPITZ_GPIO_SWA,
392 .desc = "Display Down",
393 },
394 {
395 .type = EV_SW,
396 .code = 1,
397 .gpio = SPITZ_GPIO_SWB,
398 .desc = "Lid Closed",
399 },
400};
401
402static struct gpio_keys_platform_data spitz_gpio_keys_platform_data = {
403 .buttons = spitz_gpio_keys,
404 .nbuttons = ARRAY_SIZE(spitz_gpio_keys),
405};
406
407static struct platform_device spitz_gpio_keys_device = {
408 .name = "gpio-keys",
409 .id = -1,
410 .dev = {
411 .platform_data = &spitz_gpio_keys_platform_data,
412 },
413};
414
415
378/* 416/*
379 * Spitz LEDs 417 * Spitz LEDs
380 */ 418 */
@@ -689,6 +727,7 @@ static struct platform_device sharpsl_rom_device = {
689static struct platform_device *devices[] __initdata = { 727static struct platform_device *devices[] __initdata = {
690 &spitzscoop_device, 728 &spitzscoop_device,
691 &spitzkbd_device, 729 &spitzkbd_device,
730 &spitz_gpio_keys_device,
692 &spitzled_device, 731 &spitzled_device,
693 &sharpsl_nand_device, 732 &sharpsl_nand_device,
694 &sharpsl_rom_device, 733 &sharpsl_rom_device,
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h
index 46cd6acb4d40..699671fa6e0b 100644
--- a/arch/arm/mach-realview/core.h
+++ b/arch/arm/mach-realview/core.h
@@ -61,5 +61,5 @@ extern void realview_timer_init(unsigned int timer_irq);
61extern int realview_flash_register(struct resource *res, u32 num); 61extern int realview_flash_register(struct resource *res, u32 num);
62extern int realview_eth_register(const char *name, struct resource *res); 62extern int realview_eth_register(const char *name, struct resource *res);
63extern int realview_usb_register(struct resource *res); 63extern int realview_usb_register(struct resource *res);
64 64extern void (*realview_reset)(char);
65#endif 65#endif
diff --git a/arch/arm/mach-realview/include/mach/board-pb1176.h b/arch/arm/mach-realview/include/mach/board-pb1176.h
index 98f8e7eeacc2..34b80b7d40b8 100644
--- a/arch/arm/mach-realview/include/mach/board-pb1176.h
+++ b/arch/arm/mach-realview/include/mach/board-pb1176.h
@@ -73,4 +73,9 @@
73#define REALVIEW_PB1176_GIC_DIST_BASE 0x10041000 /* GIC distributor, on FPGA */ 73#define REALVIEW_PB1176_GIC_DIST_BASE 0x10041000 /* GIC distributor, on FPGA */
74#define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ 74#define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */
75 75
76/*
77 * Control register SYS_RESETCTL is set to 1 to force a soft reset
78 */
79#define REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL 0x0100
80
76#endif /* __ASM_ARCH_BOARD_PB1176_H */ 81#endif /* __ASM_ARCH_BOARD_PB1176_H */
diff --git a/arch/arm/mach-realview/include/mach/board-pb11mp.h b/arch/arm/mach-realview/include/mach/board-pb11mp.h
index f0d68e0fea01..7abf918b77e9 100644
--- a/arch/arm/mach-realview/include/mach/board-pb11mp.h
+++ b/arch/arm/mach-realview/include/mach/board-pb11mp.h
@@ -81,4 +81,16 @@
81#define REALVIEW_TC11MP_GIC_DIST_BASE 0x1F001000 /* Test chip interrupt controller distributor */ 81#define REALVIEW_TC11MP_GIC_DIST_BASE 0x1F001000 /* Test chip interrupt controller distributor */
82#define REALVIEW_TC11MP_L220_BASE 0x1F002000 /* L220 registers */ 82#define REALVIEW_TC11MP_L220_BASE 0x1F002000 /* L220 registers */
83 83
84 /*
85 * Values for REALVIEW_SYS_RESET_CTRL
86 */
87#define REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR 0x01
88#define REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGINIT 0x02
89#define REALVIEW_PB11MP_SYS_CTRL_RESET_DLLRESET 0x03
90#define REALVIEW_PB11MP_SYS_CTRL_RESET_PLLRESET 0x04
91#define REALVIEW_PB11MP_SYS_CTRL_RESET_POR 0x05
92#define REALVIEW_PB11MP_SYS_CTRL_RESET_DoC 0x06
93
94#define REALVIEW_PB11MP_SYS_CTRL_LED (1 << 0)
95
84#endif /* __ASM_ARCH_BOARD_PB11MP_H */ 96#endif /* __ASM_ARCH_BOARD_PB11MP_H */
diff --git a/arch/arm/mach-realview/include/mach/platform.h b/arch/arm/mach-realview/include/mach/platform.h
index c8f50835fed2..4f46bf71e752 100644
--- a/arch/arm/mach-realview/include/mach/platform.h
+++ b/arch/arm/mach-realview/include/mach/platform.h
@@ -119,19 +119,6 @@
119#define REALVIEW_SYS_TEST_OSC3 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC3_OFFSET) 119#define REALVIEW_SYS_TEST_OSC3 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC3_OFFSET)
120#define REALVIEW_SYS_TEST_OSC4 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC4_OFFSET) 120#define REALVIEW_SYS_TEST_OSC4 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC4_OFFSET)
121 121
122/*
123 * Values for REALVIEW_SYS_RESET_CTRL
124 */
125#define REALVIEW_SYS_CTRL_RESET_CONFIGCLR 0x01
126#define REALVIEW_SYS_CTRL_RESET_CONFIGINIT 0x02
127#define REALVIEW_SYS_CTRL_RESET_DLLRESET 0x03
128#define REALVIEW_SYS_CTRL_RESET_PLLRESET 0x04
129#define REALVIEW_SYS_CTRL_RESET_POR 0x05
130#define REALVIEW_SYS_CTRL_RESET_DoC 0x06
131
132#define REALVIEW_SYS_CTRL_LED (1 << 0)
133
134
135/* ------------------------------------------------------------------------ 122/* ------------------------------------------------------------------------
136 * RealView control registers 123 * RealView control registers
137 * ------------------------------------------------------------------------ 124 * ------------------------------------------------------------------------
@@ -153,7 +140,7 @@
153 * SYS_CLD, SYS_BOOTCS 140 * SYS_CLD, SYS_BOOTCS
154 */ 141 */
155#define REALVIEW_SYS_LOCK_LOCKED (1 << 16) 142#define REALVIEW_SYS_LOCK_LOCKED (1 << 16)
156#define REALVIEW_SYS_LOCKVAL_MASK 0xFFFF /* write 0xA05F to enable write access */ 143#define REALVIEW_SYS_LOCKVAL_MASK 0xA05F /* Enable write access */
157 144
158/* 145/*
159 * REALVIEW_SYS_FLASH 146 * REALVIEW_SYS_FLASH
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h
index 1a15a441e027..a30f2e3ec178 100644
--- a/arch/arm/mach-realview/include/mach/system.h
+++ b/arch/arm/mach-realview/include/mach/system.h
@@ -25,6 +25,8 @@
25#include <mach/hardware.h> 25#include <mach/hardware.h>
26#include <mach/platform.h> 26#include <mach/platform.h>
27 27
28void (*realview_reset)(char mode);
29
28static inline void arch_idle(void) 30static inline void arch_idle(void)
29{ 31{
30 /* 32 /*
@@ -36,16 +38,12 @@ static inline void arch_idle(void)
36 38
37static inline void arch_reset(char mode, const char *cmd) 39static inline void arch_reset(char mode, const char *cmd)
38{ 40{
39 void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET;
40 unsigned int val;
41
42 /* 41 /*
43 * To reset, we hit the on-board reset register 42 * To reset, we hit the on-board reset register
44 * in the system FPGA 43 * in the system FPGA
45 */ 44 */
46 val = __raw_readl(hdr_ctrl); 45 if (realview_reset)
47 val |= REALVIEW_SYS_CTRL_RESET_CONFIGCLR; 46 realview_reset(mode);
48 __raw_writel(val, hdr_ctrl);
49} 47}
50 48
51#endif 49#endif
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c
index 2817fe099319..a6ba147692c1 100644
--- a/arch/arm/mach-realview/realview_pb1176.c
+++ b/arch/arm/mach-realview/realview_pb1176.c
@@ -290,6 +290,16 @@ static struct sys_timer realview_pb1176_timer = {
290 .init = realview_pb1176_timer_init, 290 .init = realview_pb1176_timer_init,
291}; 291};
292 292
293static void realview_pb1176_reset(char mode)
294{
295 void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) +
296 REALVIEW_SYS_RESETCTL_OFFSET;
297 void __iomem *rst_hdr_ctrl = __io_address(REALVIEW_SYS_BASE) +
298 REALVIEW_SYS_LOCK_OFFSET;
299 __raw_writel(REALVIEW_SYS_LOCKVAL_MASK, rst_hdr_ctrl);
300 __raw_writel(REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL, hdr_ctrl);
301}
302
293static void __init realview_pb1176_init(void) 303static void __init realview_pb1176_init(void)
294{ 304{
295 int i; 305 int i;
@@ -313,6 +323,7 @@ static void __init realview_pb1176_init(void)
313#ifdef CONFIG_LEDS 323#ifdef CONFIG_LEDS
314 leds_event = realview_leds_event; 324 leds_event = realview_leds_event;
315#endif 325#endif
326 realview_reset = realview_pb1176_reset;
316} 327}
317 328
318MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") 329MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176")
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c
index 94680fcf726d..070d284ce96e 100644
--- a/arch/arm/mach-realview/realview_pb11mp.c
+++ b/arch/arm/mach-realview/realview_pb11mp.c
@@ -299,6 +299,21 @@ static struct sys_timer realview_pb11mp_timer = {
299 .init = realview_pb11mp_timer_init, 299 .init = realview_pb11mp_timer_init,
300}; 300};
301 301
302static void realview_pb11mp_reset(char mode)
303{
304 void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) +
305 REALVIEW_SYS_RESETCTL_OFFSET;
306 unsigned int val;
307
308 /*
309 * To reset, we hit the on-board reset register
310 * in the system FPGA
311 */
312 val = __raw_readl(hdr_ctrl);
313 val |= REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR;
314 __raw_writel(val, hdr_ctrl);
315}
316
302static void __init realview_pb11mp_init(void) 317static void __init realview_pb11mp_init(void)
303{ 318{
304 int i; 319 int i;
@@ -324,6 +339,7 @@ static void __init realview_pb11mp_init(void)
324#ifdef CONFIG_LEDS 339#ifdef CONFIG_LEDS
325 leds_event = realview_leds_event; 340 leds_event = realview_leds_event;
326#endif 341#endif
342 realview_reset = realview_pb11mp_reset;
327} 343}
328 344
329MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") 345MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore")
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c
index 7974afca297c..9664e011dae2 100644
--- a/arch/arm/mach-s3c2410/gpio.c
+++ b/arch/arm/mach-s3c2410/gpio.c
@@ -28,6 +28,7 @@
28#include <linux/io.h> 28#include <linux/io.h>
29 29
30#include <mach/hardware.h> 30#include <mach/hardware.h>
31#include <mach/gpio-fns.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32 33
33#include <mach/regs-gpio.h> 34#include <mach/regs-gpio.h>
diff --git a/arch/arm/mach-s3c2410/include/mach/dma.h b/arch/arm/mach-s3c2410/include/mach/dma.h
index c3a2629e0ded..92e2687009ea 100644
--- a/arch/arm/mach-s3c2410/include/mach/dma.h
+++ b/arch/arm/mach-s3c2410/include/mach/dma.h
@@ -110,6 +110,8 @@ enum s3c2410_dma_loadst {
110 * waiting for reloads */ 110 * waiting for reloads */
111#define S3C2410_DMAF_AUTOSTART (1<<1) /* auto-start if buffer queued */ 111#define S3C2410_DMAF_AUTOSTART (1<<1) /* auto-start if buffer queued */
112 112
113#define S3C2410_DMAF_CIRCULAR (1 << 2) /* no circular dma support */
114
113/* dma buffer */ 115/* dma buffer */
114 116
115struct s3c2410_dma_buf; 117struct s3c2410_dma_buf;
@@ -194,4 +196,9 @@ struct s3c2410_dma_chan {
194 196
195typedef unsigned long dma_device_t; 197typedef unsigned long dma_device_t;
196 198
199static inline bool s3c_dma_has_circular(void)
200{
201 return false;
202}
203
197#endif /* __ASM_ARCH_DMA_H */ 204#endif /* __ASM_ARCH_DMA_H */
diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig
index d7bba919a77e..a8b69d77571b 100644
--- a/arch/arm/mach-s3c2440/Kconfig
+++ b/arch/arm/mach-s3c2440/Kconfig
@@ -103,6 +103,7 @@ config MACH_MINI2440
103 select LEDS_TRIGGER_BACKLIGHT 103 select LEDS_TRIGGER_BACKLIGHT
104 select SND_S3C24XX_SOC_S3C24XX_UDA134X 104 select SND_S3C24XX_SOC_S3C24XX_UDA134X
105 select S3C_DEV_NAND 105 select S3C_DEV_NAND
106 select S3C_DEV_USB_HOST
106 help 107 help
107 Say Y here to select support for the MINI2440. Is a 10cm x 10cm board 108 Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
108 available via various sources. It can come with a 3.5" or 7" touch LCD. 109 available via various sources. It can come with a 3.5" or 7" touch LCD.
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c
index ec71a6965786..1c3382fefdd2 100644
--- a/arch/arm/mach-s3c2440/mach-mini2440.c
+++ b/arch/arm/mach-s3c2440/mach-mini2440.c
@@ -144,7 +144,7 @@ static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = {
144 .type = (S3C2410_LCDCON1_TFT16BPP |\ 144 .type = (S3C2410_LCDCON1_TFT16BPP |\
145 S3C2410_LCDCON1_TFT) 145 S3C2410_LCDCON1_TFT)
146 146
147struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = { 147static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
148 [0] = { /* mini2440 + 3.5" TFT + touchscreen */ 148 [0] = { /* mini2440 + 3.5" TFT + touchscreen */
149 _LCD_DECLARE( 149 _LCD_DECLARE(
150 7, /* The 3.5 is quite fast */ 150 7, /* The 3.5 is quite fast */
@@ -191,7 +191,7 @@ struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
191#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2)) 191#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
192#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2)) 192#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
193 193
194struct s3c2410fb_mach_info mini2440_fb_info __initdata = { 194static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
195 .displays = &mini2440_lcd_cfg[0], /* not constant! see init */ 195 .displays = &mini2440_lcd_cfg[0], /* not constant! see init */
196 .num_displays = 1, 196 .num_displays = 1,
197 .default_display = 0, 197 .default_display = 0,
diff --git a/arch/arm/mach-s3c6400/include/mach/dma.h b/arch/arm/mach-s3c6400/include/mach/dma.h
index 1067619f0ba0..004edab23954 100644
--- a/arch/arm/mach-s3c6400/include/mach/dma.h
+++ b/arch/arm/mach-s3c6400/include/mach/dma.h
@@ -68,6 +68,11 @@ static __inline__ int s3c_dma_has_circular(void)
68 68
69#define S3C2410_DMAF_CIRCULAR (1 << 0) 69#define S3C2410_DMAF_CIRCULAR (1 << 0)
70 70
71static inline bool s3c_dma_has_circular(void)
72{
73 return false;
74}
75
71#include <plat/dma.h> 76#include <plat/dma.h>
72 77
73#endif /* __ASM_ARCH_IRQ_H */ 78#endif /* __ASM_ARCH_IRQ_H */
diff --git a/arch/arm/mach-sa1100/Makefile b/arch/arm/mach-sa1100/Makefile
index 8a5546e6d547..bb7b8198d0c4 100644
--- a/arch/arm/mach-sa1100/Makefile
+++ b/arch/arm/mach-sa1100/Makefile
@@ -25,6 +25,7 @@ led-$(CONFIG_SA1100_CERF) += leds-cerf.o
25 25
26obj-$(CONFIG_SA1100_COLLIE) += collie.o 26obj-$(CONFIG_SA1100_COLLIE) += collie.o
27 27
28obj-$(CONFIG_SA1100_H3100) += h3600.o
28obj-$(CONFIG_SA1100_H3600) += h3600.o 29obj-$(CONFIG_SA1100_H3600) += h3600.o
29 30
30obj-$(CONFIG_SA1100_HACKKIT) += hackkit.o 31obj-$(CONFIG_SA1100_HACKKIT) += hackkit.o
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index e993140edd88..9264d814cd7a 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -122,10 +122,7 @@ config CPU_ARM920T
122 select CPU_TLB_V4WBI if MMU 122 select CPU_TLB_V4WBI if MMU
123 help 123 help
124 The ARM920T is licensed to be produced by numerous vendors, 124 The ARM920T is licensed to be produced by numerous vendors,
125 and is used in the Maverick EP9312 and the Samsung S3C2410. 125 and is used in the Cirrus EP93xx and the Samsung S3C2410.
126
127 More information on the Maverick EP9312 at
128 <http://linuxdevices.com/products/PD2382866068.html>.
129 126
130 Say Y if you want support for the ARM920T processor. 127 Say Y if you want support for the ARM920T processor.
131 Otherwise, say N. 128 Otherwise, say N.
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S
index 8f5c13f4c936..295e25dd6381 100644
--- a/arch/arm/mm/cache-v6.S
+++ b/arch/arm/mm/cache-v6.S
@@ -12,6 +12,7 @@
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <asm/assembler.h> 14#include <asm/assembler.h>
15#include <asm/unwind.h>
15 16
16#include "proc-macros.S" 17#include "proc-macros.S"
17 18
@@ -121,11 +122,13 @@ ENTRY(v6_coherent_kern_range)
121 * - the Icache does not read data from the write buffer 122 * - the Icache does not read data from the write buffer
122 */ 123 */
123ENTRY(v6_coherent_user_range) 124ENTRY(v6_coherent_user_range)
124 125 UNWIND(.fnstart )
125#ifdef HARVARD_CACHE 126#ifdef HARVARD_CACHE
126 bic r0, r0, #CACHE_LINE_SIZE - 1 127 bic r0, r0, #CACHE_LINE_SIZE - 1
1271: mcr p15, 0, r0, c7, c10, 1 @ clean D line 1281:
129 USER( mcr p15, 0, r0, c7, c10, 1 ) @ clean D line
128 add r0, r0, #CACHE_LINE_SIZE 130 add r0, r0, #CACHE_LINE_SIZE
1312:
129 cmp r0, r1 132 cmp r0, r1
130 blo 1b 133 blo 1b
131#endif 134#endif
@@ -143,6 +146,19 @@ ENTRY(v6_coherent_user_range)
143 mov pc, lr 146 mov pc, lr
144 147
145/* 148/*
149 * Fault handling for the cache operation above. If the virtual address in r0
150 * isn't mapped, just try the next page.
151 */
1529001:
153 mov r0, r0, lsr #12
154 mov r0, r0, lsl #12
155 add r0, r0, #4096
156 b 2b
157 UNWIND(.fnend )
158ENDPROC(v6_coherent_user_range)
159ENDPROC(v6_coherent_kern_range)
160
161/*
146 * v6_flush_kern_dcache_page(kaddr) 162 * v6_flush_kern_dcache_page(kaddr)
147 * 163 *
148 * Ensure that the data held in the page kaddr is written back 164 * Ensure that the data held in the page kaddr is written back
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
index bda0ec31a4e2..e1bd9759617f 100644
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -13,6 +13,7 @@
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <asm/assembler.h> 15#include <asm/assembler.h>
16#include <asm/unwind.h>
16 17
17#include "proc-macros.S" 18#include "proc-macros.S"
18 19
@@ -153,13 +154,16 @@ ENTRY(v7_coherent_kern_range)
153 * - the Icache does not read data from the write buffer 154 * - the Icache does not read data from the write buffer
154 */ 155 */
155ENTRY(v7_coherent_user_range) 156ENTRY(v7_coherent_user_range)
157 UNWIND(.fnstart )
156 dcache_line_size r2, r3 158 dcache_line_size r2, r3
157 sub r3, r2, #1 159 sub r3, r2, #1
158 bic r0, r0, r3 160 bic r0, r0, r3
1591: mcr p15, 0, r0, c7, c11, 1 @ clean D line to the point of unification 1611:
162 USER( mcr p15, 0, r0, c7, c11, 1 ) @ clean D line to the point of unification
160 dsb 163 dsb
161 mcr p15, 0, r0, c7, c5, 1 @ invalidate I line 164 USER( mcr p15, 0, r0, c7, c5, 1 ) @ invalidate I line
162 add r0, r0, r2 165 add r0, r0, r2
1662:
163 cmp r0, r1 167 cmp r0, r1
164 blo 1b 168 blo 1b
165 mov r0, #0 169 mov r0, #0
@@ -167,6 +171,17 @@ ENTRY(v7_coherent_user_range)
167 dsb 171 dsb
168 isb 172 isb
169 mov pc, lr 173 mov pc, lr
174
175/*
176 * Fault handling for the cache operation above. If the virtual address in r0
177 * isn't mapped, just try the next page.
178 */
1799001:
180 mov r0, r0, lsr #12
181 mov r0, r0, lsl #12
182 add r0, r0, #4096
183 b 2b
184 UNWIND(.fnend )
170ENDPROC(v7_coherent_kern_range) 185ENDPROC(v7_coherent_kern_range)
171ENDPROC(v7_coherent_user_range) 186ENDPROC(v7_coherent_user_range)
172 187
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
index 6bda76a43199..a9e22e31eaa1 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -50,10 +50,7 @@ void __new_context(struct mm_struct *mm)
50 isb(); 50 isb();
51 flush_tlb_all(); 51 flush_tlb_all();
52 if (icache_is_vivt_asid_tagged()) { 52 if (icache_is_vivt_asid_tagged()) {
53 asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" 53 __flush_icache_all();
54 "mcr p15, 0, %0, c7, c5, 6 @ flush BTAC/BTB\n"
55 :
56 : "r" (0));
57 dsb(); 54 dsb();
58 } 55 }
59 } 56 }
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index b30925fcbcdc..b9590a7085ca 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -205,7 +205,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
205 205
206 order = get_order(size); 206 order = get_order(size);
207 207
208 if (mask != 0xffffffff) 208 if (mask < 0xffffffffULL)
209 gfp |= GFP_DMA; 209 gfp |= GFP_DMA;
210 210
211 page = alloc_pages(gfp, order); 211 page = alloc_pages(gfp, order);
@@ -289,7 +289,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
289 if (!mask) 289 if (!mask)
290 goto error; 290 goto error;
291 291
292 if (mask != 0xffffffff) 292 if (mask < 0xffffffffULL)
293 gfp |= GFP_DMA; 293 gfp |= GFP_DMA;
294 virt = kmalloc(size, gfp); 294 virt = kmalloc(size, gfp);
295 if (!virt) 295 if (!virt)
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index bc0099d5ae85..d0d17b6a3703 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -153,14 +153,11 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte)
153 153
154 page = pfn_to_page(pfn); 154 page = pfn_to_page(pfn);
155 mapping = page_mapping(page); 155 mapping = page_mapping(page);
156 if (mapping) {
157#ifndef CONFIG_SMP 156#ifndef CONFIG_SMP
158 int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags); 157 if (test_and_clear_bit(PG_dcache_dirty, &page->flags))
159 158 __flush_dcache_page(mapping, page);
160 if (dirty)
161 __flush_dcache_page(mapping, page);
162#endif 159#endif
163 160 if (mapping) {
164 if (cache_is_vivt()) 161 if (cache_is_vivt())
165 make_coherent(mapping, vma, addr, pfn); 162 make_coherent(mapping, vma, addr, pfn);
166 else if (vma->vm_flags & VM_EXEC) 163 else if (vma->vm_flags & VM_EXEC)
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index ae0e25f5a70e..10e06801afb3 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -292,6 +292,11 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
292 * down_read() 292 * down_read()
293 */ 293 */
294 might_sleep(); 294 might_sleep();
295#ifdef CONFIG_DEBUG_VM
296 if (!user_mode(regs) &&
297 !search_exception_tables(regs->ARM_pc))
298 goto no_context;
299#endif
295 } 300 }
296 301
297 fault = __do_page_fault(mm, addr, fsr, tsk); 302 fault = __do_page_fault(mm, addr, fsr, tsk);
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index b27942909b23..7f294f307c83 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -18,10 +18,6 @@
18 18
19#include "mm.h" 19#include "mm.h"
20 20
21#ifdef CONFIG_ARM_ERRATA_411920
22extern void v6_icache_inval_all(void);
23#endif
24
25#ifdef CONFIG_CPU_CACHE_VIPT 21#ifdef CONFIG_CPU_CACHE_VIPT
26 22
27#define ALIAS_FLUSH_START 0xffff4000 23#define ALIAS_FLUSH_START 0xffff4000
@@ -35,16 +31,11 @@ static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
35 flush_tlb_kernel_page(to); 31 flush_tlb_kernel_page(to);
36 32
37 asm( "mcrr p15, 0, %1, %0, c14\n" 33 asm( "mcrr p15, 0, %1, %0, c14\n"
38 " mcr p15, 0, %2, c7, c10, 4\n" 34 " mcr p15, 0, %2, c7, c10, 4"
39#ifndef CONFIG_ARM_ERRATA_411920
40 " mcr p15, 0, %2, c7, c5, 0\n"
41#endif
42 : 35 :
43 : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) 36 : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero)
44 : "cc"); 37 : "cc");
45#ifdef CONFIG_ARM_ERRATA_411920 38 __flush_icache_all();
46 v6_icache_inval_all();
47#endif
48} 39}
49 40
50void flush_cache_mm(struct mm_struct *mm) 41void flush_cache_mm(struct mm_struct *mm)
@@ -57,16 +48,11 @@ void flush_cache_mm(struct mm_struct *mm)
57 48
58 if (cache_is_vipt_aliasing()) { 49 if (cache_is_vipt_aliasing()) {
59 asm( "mcr p15, 0, %0, c7, c14, 0\n" 50 asm( "mcr p15, 0, %0, c7, c14, 0\n"
60 " mcr p15, 0, %0, c7, c10, 4\n" 51 " mcr p15, 0, %0, c7, c10, 4"
61#ifndef CONFIG_ARM_ERRATA_411920
62 " mcr p15, 0, %0, c7, c5, 0\n"
63#endif
64 : 52 :
65 : "r" (0) 53 : "r" (0)
66 : "cc"); 54 : "cc");
67#ifdef CONFIG_ARM_ERRATA_411920 55 __flush_icache_all();
68 v6_icache_inval_all();
69#endif
70 } 56 }
71} 57}
72 58
@@ -81,16 +67,11 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned
81 67
82 if (cache_is_vipt_aliasing()) { 68 if (cache_is_vipt_aliasing()) {
83 asm( "mcr p15, 0, %0, c7, c14, 0\n" 69 asm( "mcr p15, 0, %0, c7, c14, 0\n"
84 " mcr p15, 0, %0, c7, c10, 4\n" 70 " mcr p15, 0, %0, c7, c10, 4"
85#ifndef CONFIG_ARM_ERRATA_411920
86 " mcr p15, 0, %0, c7, c5, 0\n"
87#endif
88 : 71 :
89 : "r" (0) 72 : "r" (0)
90 : "cc"); 73 : "cc");
91#ifdef CONFIG_ARM_ERRATA_411920 74 __flush_icache_all();
92 v6_icache_inval_all();
93#endif
94 } 75 }
95} 76}
96 77
diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
index 73cae57fa707..30f82fb5918c 100644
--- a/arch/arm/mm/highmem.c
+++ b/arch/arm/mm/highmem.c
@@ -46,6 +46,8 @@ void *kmap_atomic(struct page *page, enum km_type type)
46 if (!PageHighMem(page)) 46 if (!PageHighMem(page))
47 return page_address(page); 47 return page_address(page);
48 48
49 debug_kmap_atomic(type);
50
49 kmap = kmap_high_get(page); 51 kmap = kmap_high_get(page);
50 if (kmap) 52 if (kmap)
51 return kmap; 53 return kmap;
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 877c492f8e10..52c40d155672 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -273,7 +273,6 @@ static void __init bootmem_init_node(int node, struct meminfo *mi,
273 struct membank *bank = &mi->bank[i]; 273 struct membank *bank = &mi->bank[i];
274 if (!bank->highmem) 274 if (!bank->highmem)
275 free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank)); 275 free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank));
276 memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank));
277 } 276 }
278 277
279 /* 278 /*
@@ -370,6 +369,19 @@ int pfn_valid(unsigned long pfn)
370 return 0; 369 return 0;
371} 370}
372EXPORT_SYMBOL(pfn_valid); 371EXPORT_SYMBOL(pfn_valid);
372
373static void arm_memory_present(struct meminfo *mi, int node)
374{
375}
376#else
377static void arm_memory_present(struct meminfo *mi, int node)
378{
379 int i;
380 for_each_nodebank(i, mi, node) {
381 struct membank *bank = &mi->bank[i];
382 memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank));
383 }
384}
373#endif 385#endif
374 386
375static int __init meminfo_cmp(const void *_a, const void *_b) 387static int __init meminfo_cmp(const void *_a, const void *_b)
@@ -427,6 +439,12 @@ void __init bootmem_init(void)
427 */ 439 */
428 if (node == initrd_node) 440 if (node == initrd_node)
429 bootmem_reserve_initrd(node); 441 bootmem_reserve_initrd(node);
442
443 /*
444 * Sparsemem tries to allocate bootmem in memory_present(),
445 * so must be done after the fixed reservations
446 */
447 arm_memory_present(mi, node);
430 } 448 }
431 449
432 /* 450 /*
@@ -483,7 +501,7 @@ free_memmap(int node, unsigned long start_pfn, unsigned long end_pfn)
483 /* 501 /*
484 * Convert start_pfn/end_pfn to a struct page pointer. 502 * Convert start_pfn/end_pfn to a struct page pointer.
485 */ 503 */
486 start_pg = pfn_to_page(start_pfn); 504 start_pg = pfn_to_page(start_pfn - 1) + 1;
487 end_pg = pfn_to_page(end_pfn); 505 end_pg = pfn_to_page(end_pfn);
488 506
489 /* 507 /*
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 02243eeccf50..ea67be0223ac 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -117,6 +117,13 @@ static void __init early_cachepolicy(char **p)
117 } 117 }
118 if (i == ARRAY_SIZE(cache_policies)) 118 if (i == ARRAY_SIZE(cache_policies))
119 printk(KERN_ERR "ERROR: unknown or unsupported cache policy\n"); 119 printk(KERN_ERR "ERROR: unknown or unsupported cache policy\n");
120 /*
121 * This restriction is partly to do with the way we boot; it is
122 * unpredictable to have memory mapped using two different sets of
123 * memory attributes (shared, type, and cache attribs). We can not
124 * change these attributes once the initial assembly has setup the
125 * page tables.
126 */
120 if (cpu_architecture() >= CPU_ARCH_ARMv6) { 127 if (cpu_architecture() >= CPU_ARCH_ARMv6) {
121 printk(KERN_WARNING "Only cachepolicy=writeback supported on ARMv6 and later\n"); 128 printk(KERN_WARNING "Only cachepolicy=writeback supported on ARMv6 and later\n");
122 cachepolicy = CPOLICY_WRITEBACK; 129 cachepolicy = CPOLICY_WRITEBACK;
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 194737d60a22..70f75d2e3ead 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -32,8 +32,10 @@
32 32
33#ifndef CONFIG_SMP 33#ifndef CONFIG_SMP
34#define TTB_FLAGS TTB_RGN_WBWA 34#define TTB_FLAGS TTB_RGN_WBWA
35#define PMD_FLAGS PMD_SECT_WB
35#else 36#else
36#define TTB_FLAGS TTB_RGN_WBWA|TTB_S 37#define TTB_FLAGS TTB_RGN_WBWA|TTB_S
38#define PMD_FLAGS PMD_SECT_WBWA|PMD_SECT_S
37#endif 39#endif
38 40
39ENTRY(cpu_v6_proc_init) 41ENTRY(cpu_v6_proc_init)
@@ -222,10 +224,9 @@ __v6_proc_info:
222 .long 0x0007b000 224 .long 0x0007b000
223 .long 0x0007f000 225 .long 0x0007f000
224 .long PMD_TYPE_SECT | \ 226 .long PMD_TYPE_SECT | \
225 PMD_SECT_BUFFERABLE | \
226 PMD_SECT_CACHEABLE | \
227 PMD_SECT_AP_WRITE | \ 227 PMD_SECT_AP_WRITE | \
228 PMD_SECT_AP_READ 228 PMD_SECT_AP_READ | \
229 PMD_FLAGS
229 .long PMD_TYPE_SECT | \ 230 .long PMD_TYPE_SECT | \
230 PMD_SECT_XN | \ 231 PMD_SECT_XN | \
231 PMD_SECT_AP_WRITE | \ 232 PMD_SECT_AP_WRITE | \
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 23ebcf6eab9f..eeeed01ee44a 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -33,9 +33,11 @@
33#ifndef CONFIG_SMP 33#ifndef CONFIG_SMP
34/* PTWs cacheable, inner WB not shareable, outer WB not shareable */ 34/* PTWs cacheable, inner WB not shareable, outer WB not shareable */
35#define TTB_FLAGS TTB_IRGN_WB|TTB_RGN_OC_WB 35#define TTB_FLAGS TTB_IRGN_WB|TTB_RGN_OC_WB
36#define PMD_FLAGS PMD_SECT_WB
36#else 37#else
37/* PTWs cacheable, inner WBWA shareable, outer WBWA not shareable */ 38/* PTWs cacheable, inner WBWA shareable, outer WBWA not shareable */
38#define TTB_FLAGS TTB_IRGN_WBWA|TTB_S|TTB_NOS|TTB_RGN_OC_WBWA 39#define TTB_FLAGS TTB_IRGN_WBWA|TTB_S|TTB_NOS|TTB_RGN_OC_WBWA
40#define PMD_FLAGS PMD_SECT_WBWA|PMD_SECT_S
39#endif 41#endif
40 42
41ENTRY(cpu_v7_proc_init) 43ENTRY(cpu_v7_proc_init)
@@ -326,10 +328,9 @@ __v7_proc_info:
326 .long 0x000f0000 @ Required ID value 328 .long 0x000f0000 @ Required ID value
327 .long 0x000f0000 @ Mask for ID 329 .long 0x000f0000 @ Mask for ID
328 .long PMD_TYPE_SECT | \ 330 .long PMD_TYPE_SECT | \
329 PMD_SECT_BUFFERABLE | \
330 PMD_SECT_CACHEABLE | \
331 PMD_SECT_AP_WRITE | \ 331 PMD_SECT_AP_WRITE | \
332 PMD_SECT_AP_READ 332 PMD_SECT_AP_READ | \
333 PMD_FLAGS
333 .long PMD_TYPE_SECT | \ 334 .long PMD_TYPE_SECT | \
334 PMD_SECT_XN | \ 335 PMD_SECT_XN | \
335 PMD_SECT_AP_WRITE | \ 336 PMD_SECT_AP_WRITE | \
diff --git a/arch/arm/oprofile/op_model_v6.c b/arch/arm/oprofile/op_model_v6.c
index fe581383d3e2..f7d2ec5ee9a1 100644
--- a/arch/arm/oprofile/op_model_v6.c
+++ b/arch/arm/oprofile/op_model_v6.c
@@ -33,6 +33,9 @@ static int irqs[] = {
33#ifdef CONFIG_ARCH_OMAP2 33#ifdef CONFIG_ARCH_OMAP2
34 3, 34 3,
35#endif 35#endif
36#ifdef CONFIG_ARCH_BCMRING
37 IRQ_PMUIRQ, /* for BCMRING, ARM PMU interrupt is 43 */
38#endif
36}; 39};
37 40
38static void armv6_pmu_stop(void) 41static void armv6_pmu_stop(void)
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index fd3154ae69b1..b53125f41293 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -829,10 +829,10 @@ EXPORT_SYMBOL(omap_free_dma);
829 * 829 *
830 * @param arb_rate 830 * @param arb_rate
831 * @param max_fifo_depth 831 * @param max_fifo_depth
832 * @param tparams - Number of thereads to reserve : DMA_THREAD_RESERVE_NORM 832 * @param tparams - Number of threads to reserve : DMA_THREAD_RESERVE_NORM
833 * DMA_THREAD_RESERVE_ONET 833 * DMA_THREAD_RESERVE_ONET
834 * DMA_THREAD_RESERVE_TWOT 834 * DMA_THREAD_RESERVE_TWOT
835 * DMA_THREAD_RESERVE_THREET 835 * DMA_THREAD_RESERVE_THREET
836 */ 836 */
837void 837void
838omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams) 838omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams)
@@ -844,11 +844,14 @@ omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams)
844 return; 844 return;
845 } 845 }
846 846
847 if (max_fifo_depth == 0)
848 max_fifo_depth = 1;
847 if (arb_rate == 0) 849 if (arb_rate == 0)
848 arb_rate = 1; 850 arb_rate = 1;
849 851
850 reg = (arb_rate & 0xff) << 16; 852 reg = 0xff & max_fifo_depth;
851 reg |= (0xff & max_fifo_depth); 853 reg |= (0x3 & tparams) << 12;
854 reg |= (arb_rate & 0xff) << 16;
852 855
853 dma_write(reg, GCR); 856 dma_write(reg, GCR);
854} 857}
@@ -975,6 +978,14 @@ void omap_stop_dma(int lch)
975{ 978{
976 u32 l; 979 u32 l;
977 980
981 /* Disable all interrupts on the channel */
982 if (cpu_class_is_omap1())
983 dma_write(0, CICR(lch));
984
985 l = dma_read(CCR(lch));
986 l &= ~OMAP_DMA_CCR_EN;
987 dma_write(l, CCR(lch));
988
978 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { 989 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
979 int next_lch, cur_lch = lch; 990 int next_lch, cur_lch = lch;
980 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; 991 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];
@@ -992,18 +1003,8 @@ void omap_stop_dma(int lch)
992 next_lch = dma_chan[cur_lch].next_lch; 1003 next_lch = dma_chan[cur_lch].next_lch;
993 cur_lch = next_lch; 1004 cur_lch = next_lch;
994 } while (next_lch != -1); 1005 } while (next_lch != -1);
995
996 return;
997 } 1006 }
998 1007
999 /* Disable all interrupts on the channel */
1000 if (cpu_class_is_omap1())
1001 dma_write(0, CICR(lch));
1002
1003 l = dma_read(CCR(lch));
1004 l &= ~OMAP_DMA_CCR_EN;
1005 dma_write(l, CCR(lch));
1006
1007 dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE; 1008 dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE;
1008} 1009}
1009EXPORT_SYMBOL(omap_stop_dma); 1010EXPORT_SYMBOL(omap_stop_dma);
diff --git a/arch/arm/plat-omap/include/mach/keypad.h b/arch/arm/plat-omap/include/mach/keypad.h
index d91b9be334ff..3ae52ccc793c 100644
--- a/arch/arm/plat-omap/include/mach/keypad.h
+++ b/arch/arm/plat-omap/include/mach/keypad.h
@@ -10,7 +10,7 @@
10#ifndef ASMARM_ARCH_KEYPAD_H 10#ifndef ASMARM_ARCH_KEYPAD_H
11#define ASMARM_ARCH_KEYPAD_H 11#define ASMARM_ARCH_KEYPAD_H
12 12
13#include <linux/input/matrix_keypad.h> 13#warning: Please update the board to use matrix_keypad.h instead
14 14
15struct omap_kp_platform_data { 15struct omap_kp_platform_data {
16 int rows; 16 int rows;
@@ -37,6 +37,9 @@ struct omap_kp_platform_data {
37 37
38#define KEY_PERSISTENT 0x00800000 38#define KEY_PERSISTENT 0x00800000
39#define KEYNUM_MASK 0x00EFFFFF 39#define KEYNUM_MASK 0x00EFFFFF
40#define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
41#define PERSISTENT_KEY(col, row) (((col) << 28) | ((row) << 24) | \
42 KEY_PERSISTENT)
40 43
41#endif 44#endif
42 45
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 4b6012707307..94584f167a82 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -664,7 +664,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da)
664 nent = 1; /* for the next L1 entry */ 664 nent = 1; /* for the next L1 entry */
665 } else { 665 } else {
666 bytes = IOPGD_SIZE; 666 bytes = IOPGD_SIZE;
667 if (*iopgd & IOPGD_SUPER) { 667 if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) {
668 nent *= 16; 668 nent *= 16;
669 /* rewind to the 1st entry */ 669 /* rewind to the 1st entry */
670 iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK); 670 iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK);
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 88ac9768f1c1..e664b912d7bb 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -595,7 +595,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx)
595 rx &= 1; 595 rx &= 1;
596 if (cpu_is_omap2430() || cpu_is_omap34xx()) { 596 if (cpu_is_omap2430() || cpu_is_omap34xx()) {
597 w = OMAP_MCBSP_READ(io_base, RCCR); 597 w = OMAP_MCBSP_READ(io_base, RCCR);
598 w |= (tx ? RDISABLE : 0); 598 w |= (rx ? RDISABLE : 0);
599 OMAP_MCBSP_WRITE(io_base, RCCR, w); 599 OMAP_MCBSP_WRITE(io_base, RCCR, w);
600 } 600 }
601 w = OMAP_MCBSP_READ(io_base, SPCR1); 601 w = OMAP_MCBSP_READ(io_base, SPCR1);
diff --git a/arch/arm/plat-s3c24xx/adc.c b/arch/arm/plat-s3c24xx/adc.c
index 4d36b784fb8b..df47322492d5 100644
--- a/arch/arm/plat-s3c24xx/adc.c
+++ b/arch/arm/plat-s3c24xx/adc.c
@@ -189,7 +189,7 @@ int s3c_adc_read(struct s3c_adc_client *client, unsigned int ch)
189err: 189err:
190 return ret; 190 return ret;
191} 191}
192EXPORT_SYMBOL_GPL(s3c_adc_convert); 192EXPORT_SYMBOL_GPL(s3c_adc_read);
193 193
194static void s3c_adc_default_select(struct s3c_adc_client *client, 194static void s3c_adc_default_select(struct s3c_adc_client *client,
195 unsigned select) 195 unsigned select)
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c
index 5447e60f3936..4af9dd948793 100644
--- a/arch/arm/plat-s3c24xx/cpu.c
+++ b/arch/arm/plat-s3c24xx/cpu.c
@@ -61,6 +61,7 @@ static const char name_s3c2410[] = "S3C2410";
61static const char name_s3c2412[] = "S3C2412"; 61static const char name_s3c2412[] = "S3C2412";
62static const char name_s3c2440[] = "S3C2440"; 62static const char name_s3c2440[] = "S3C2440";
63static const char name_s3c2442[] = "S3C2442"; 63static const char name_s3c2442[] = "S3C2442";
64static const char name_s3c2442b[] = "S3C2442B";
64static const char name_s3c2443[] = "S3C2443"; 65static const char name_s3c2443[] = "S3C2443";
65static const char name_s3c2410a[] = "S3C2410A"; 66static const char name_s3c2410a[] = "S3C2410A";
66static const char name_s3c2440a[] = "S3C2440A"; 67static const char name_s3c2440a[] = "S3C2440A";
@@ -112,6 +113,15 @@ static struct cpu_table cpu_ids[] __initdata = {
112 .name = name_s3c2442 113 .name = name_s3c2442
113 }, 114 },
114 { 115 {
116 .idcode = 0x32440aab,
117 .idmask = 0xffffffff,
118 .map_io = s3c244x_map_io,
119 .init_clocks = s3c244x_init_clocks,
120 .init_uarts = s3c244x_init_uarts,
121 .init = s3c2442_init,
122 .name = name_s3c2442b
123 },
124 {
115 .idcode = 0x32412001, 125 .idcode = 0x32412001,
116 .idmask = 0xffffffff, 126 .idmask = 0xffffffff,
117 .map_io = s3c2412_map_io, 127 .map_io = s3c2412_map_io,
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index 196b19123653..f046f8c51084 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -208,14 +208,14 @@ s3c2410_dma_loadbuffer(struct s3c2410_dma_chan *chan,
208{ 208{
209 unsigned long reload; 209 unsigned long reload;
210 210
211 pr_debug("s3c2410_chan_loadbuffer: loading buff %p (0x%08lx,0x%06x)\n",
212 buf, (unsigned long)buf->data, buf->size);
213
214 if (buf == NULL) { 211 if (buf == NULL) {
215 dmawarn("buffer is NULL\n"); 212 dmawarn("buffer is NULL\n");
216 return -EINVAL; 213 return -EINVAL;
217 } 214 }
218 215
216 pr_debug("s3c2410_chan_loadbuffer: loading buff %p (0x%08lx,0x%06x)\n",
217 buf, (unsigned long)buf->data, buf->size);
218
219 /* check the state of the channel before we do anything */ 219 /* check the state of the channel before we do anything */
220 220
221 if (chan->load_state == S3C2410_DMALOAD_1LOADED) { 221 if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c
index 95df059b5a1d..5467470badfd 100644
--- a/arch/arm/plat-s3c24xx/gpio.c
+++ b/arch/arm/plat-s3c24xx/gpio.c
@@ -29,6 +29,7 @@
29#include <linux/io.h> 29#include <linux/io.h>
30 30
31#include <mach/hardware.h> 31#include <mach/hardware.h>
32#include <mach/gpio-fns.h>
32#include <asm/irq.h> 33#include <asm/irq.h>
33 34
34#include <mach/regs-gpio.h> 35#include <mach/regs-gpio.h>
diff --git a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
index efeb025affc7..c776120b99e6 100644
--- a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
+++ b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
@@ -222,7 +222,9 @@ extern struct clk *s3c_cpufreq_clk_get(struct device *, const char *);
222/* S3C2410 and compatible exported functions */ 222/* S3C2410 and compatible exported functions */
223 223
224extern void s3c2410_cpufreq_setrefresh(struct s3c_cpufreq_config *cfg); 224extern void s3c2410_cpufreq_setrefresh(struct s3c_cpufreq_config *cfg);
225extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg);
225 226
227#ifdef CONFIG_S3C2410_IOTIMING
226extern int s3c2410_iotiming_calc(struct s3c_cpufreq_config *cfg, 228extern int s3c2410_iotiming_calc(struct s3c_cpufreq_config *cfg,
227 struct s3c_iotimings *iot); 229 struct s3c_iotimings *iot);
228 230
@@ -231,8 +233,11 @@ extern int s3c2410_iotiming_get(struct s3c_cpufreq_config *cfg,
231 233
232extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg, 234extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg,
233 struct s3c_iotimings *iot); 235 struct s3c_iotimings *iot);
234 236#else
235extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); 237#define s3c2410_iotiming_calc NULL
238#define s3c2410_iotiming_get NULL
239#define s3c2410_iotiming_set NULL
240#endif /* CONFIG_S3C2410_IOTIMING */
236 241
237/* S3C2412 compatible routines */ 242/* S3C2412 compatible routines */
238 243
diff --git a/arch/arm/plat-s3c24xx/include/plat/s3c2410.h b/arch/arm/plat-s3c24xx/include/plat/s3c2410.h
index b6deeef8f663..82ab4aad1bbe 100644
--- a/arch/arm/plat-s3c24xx/include/plat/s3c2410.h
+++ b/arch/arm/plat-s3c24xx/include/plat/s3c2410.h
@@ -27,6 +27,7 @@ extern void s3c2410_init_clocks(int xtal);
27#define s3c2410_init_uarts NULL 27#define s3c2410_init_uarts NULL
28#define s3c2410_map_io NULL 28#define s3c2410_map_io NULL
29#define s3c2410_init NULL 29#define s3c2410_init NULL
30#define s3c2410a_init NULL
30#endif 31#endif
31 32
32extern int s3c2410_baseclk_add(void); 33extern int s3c2410_baseclk_add(void);
diff --git a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
index a8777a755dfa..ff46e7fa957a 100644
--- a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
+++ b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
@@ -51,8 +51,8 @@
51#define S3C6400_CLKDIV0_HCLK_SHIFT (8) 51#define S3C6400_CLKDIV0_HCLK_SHIFT (8)
52#define S3C6400_CLKDIV0_MPLL_MASK (0x1 << 4) 52#define S3C6400_CLKDIV0_MPLL_MASK (0x1 << 4)
53#define S3C6400_CLKDIV0_MPLL_SHIFT (4) 53#define S3C6400_CLKDIV0_MPLL_SHIFT (4)
54#define S3C6400_CLKDIV0_ARM_MASK (0x3 << 0) 54#define S3C6400_CLKDIV0_ARM_MASK (0x7 << 0)
55#define S3C6410_CLKDIV0_ARM_MASK (0x7 << 0) 55#define S3C6410_CLKDIV0_ARM_MASK (0xf << 0)
56#define S3C6400_CLKDIV0_ARM_SHIFT (0) 56#define S3C6400_CLKDIV0_ARM_SHIFT (0)
57 57
58/* CLKDIV1 */ 58/* CLKDIV1 */
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c
index 9745852261e0..6ffa21eb1b91 100644
--- a/arch/arm/plat-s3c64xx/s3c6400-clock.c
+++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c
@@ -677,6 +677,9 @@ void __init_or_cpufreq s3c6400_setup_clocks(void)
677 677
678 printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal); 678 printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal);
679 679
680 /* For now assume the mux always selects the crystal */
681 clk_ext_xtal_mux.parent = xtal_clk;
682
680 epll = s3c6400_get_epll(xtal); 683 epll = s3c6400_get_epll(xtal);
681 mpll = s3c6400_get_pll(xtal, __raw_readl(S3C_MPLL_CON)); 684 mpll = s3c6400_get_pll(xtal, __raw_readl(S3C_MPLL_CON));
682 apll = s3c6400_get_pll(xtal, __raw_readl(S3C_APLL_CON)); 685 apll = s3c6400_get_pll(xtal, __raw_readl(S3C_APLL_CON));
diff --git a/arch/avr32/mach-at32ap/include/mach/cpu.h b/arch/avr32/mach-at32ap/include/mach/cpu.h
index 44d0bfa1f409..9c96a130f3a8 100644
--- a/arch/avr32/mach-at32ap/include/mach/cpu.h
+++ b/arch/avr32/mach-at32ap/include/mach/cpu.h
@@ -31,5 +31,8 @@
31#define cpu_is_at91sam9263() (0) 31#define cpu_is_at91sam9263() (0)
32#define cpu_is_at91sam9rl() (0) 32#define cpu_is_at91sam9rl() (0)
33#define cpu_is_at91cap9() (0) 33#define cpu_is_at91cap9() (0)
34#define cpu_is_at91sam9g10() (0)
35#define cpu_is_at91sam9g45() (0)
36#define cpu_is_at91sam9g45es() (0)
34 37
35#endif /* __ASM_ARCH_CPU_H */ 38#endif /* __ASM_ARCH_CPU_H */
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c
index 6b0a2b6fed6a..0974c0ecc594 100644
--- a/arch/frv/kernel/signal.c
+++ b/arch/frv/kernel/signal.c
@@ -527,7 +527,7 @@ static void do_signal(void)
527 527
528no_signal: 528no_signal:
529 /* Did we come from a system call? */ 529 /* Did we come from a system call? */
530 if (__frame->syscallno >= 0) { 530 if (__frame->syscallno != -1) {
531 /* Restart the system call - no handlers present */ 531 /* Restart the system call - no handlers present */
532 switch (__frame->gr8) { 532 switch (__frame->gr8) {
533 case -ERESTARTNOHAND: 533 case -ERESTARTNOHAND:
diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
index 30bb930e1111..239ecdc9516d 100644
--- a/arch/ia64/include/asm/spinlock.h
+++ b/arch/ia64/include/asm/spinlock.h
@@ -25,61 +25,82 @@
25 * by atomically noting the tail and incrementing it by one (thus adding 25 * by atomically noting the tail and incrementing it by one (thus adding
26 * ourself to the queue and noting our position), then waiting until the head 26 * ourself to the queue and noting our position), then waiting until the head
27 * becomes equal to the the initial value of the tail. 27 * becomes equal to the the initial value of the tail.
28 * The pad bits in the middle are used to prevent the next_ticket number
29 * overflowing into the now_serving number.
28 * 30 *
29 * 63 32 31 0 31 * 31 17 16 15 14 0
30 * +----------------------------------------------------+ 32 * +----------------------------------------------------+
31 * | next_ticket_number | now_serving | 33 * | now_serving | padding | next_ticket |
32 * +----------------------------------------------------+ 34 * +----------------------------------------------------+
33 */ 35 */
34 36
35#define TICKET_SHIFT 32 37#define TICKET_SHIFT 17
38#define TICKET_BITS 15
39#define TICKET_MASK ((1 << TICKET_BITS) - 1)
36 40
37static __always_inline void __ticket_spin_lock(raw_spinlock_t *lock) 41static __always_inline void __ticket_spin_lock(raw_spinlock_t *lock)
38{ 42{
39 int *p = (int *)&lock->lock, turn, now_serving; 43 int *p = (int *)&lock->lock, ticket, serve;
40 44
41 now_serving = *p; 45 ticket = ia64_fetchadd(1, p, acq);
42 turn = ia64_fetchadd(1, p+1, acq);
43 46
44 if (turn == now_serving) 47 if (!(((ticket >> TICKET_SHIFT) ^ ticket) & TICKET_MASK))
45 return; 48 return;
46 49
47 do { 50 ia64_invala();
51
52 for (;;) {
53 asm volatile ("ld4.c.nc %0=[%1]" : "=r"(serve) : "r"(p) : "memory");
54
55 if (!(((serve >> TICKET_SHIFT) ^ ticket) & TICKET_MASK))
56 return;
48 cpu_relax(); 57 cpu_relax();
49 } while (ACCESS_ONCE(*p) != turn); 58 }
50} 59}
51 60
52static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock) 61static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock)
53{ 62{
54 long tmp = ACCESS_ONCE(lock->lock), try; 63 int tmp = ACCESS_ONCE(lock->lock);
55
56 if (!(((tmp >> TICKET_SHIFT) ^ tmp) & ((1L << TICKET_SHIFT) - 1))) {
57 try = tmp + (1L << TICKET_SHIFT);
58 64
59 return ia64_cmpxchg(acq, &lock->lock, tmp, try, sizeof (tmp)) == tmp; 65 if (!(((tmp >> TICKET_SHIFT) ^ tmp) & TICKET_MASK))
60 } 66 return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) == tmp;
61 return 0; 67 return 0;
62} 68}
63 69
64static __always_inline void __ticket_spin_unlock(raw_spinlock_t *lock) 70static __always_inline void __ticket_spin_unlock(raw_spinlock_t *lock)
65{ 71{
66 int *p = (int *)&lock->lock; 72 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
67 73
68 (void)ia64_fetchadd(1, p, rel); 74 asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
75 ACCESS_ONCE(*p) = (tmp + 2) & ~1;
76}
77
78static __always_inline void __ticket_spin_unlock_wait(raw_spinlock_t *lock)
79{
80 int *p = (int *)&lock->lock, ticket;
81
82 ia64_invala();
83
84 for (;;) {
85 asm volatile ("ld4.c.nc %0=[%1]" : "=r"(ticket) : "r"(p) : "memory");
86 if (!(((ticket >> TICKET_SHIFT) ^ ticket) & TICKET_MASK))
87 return;
88 cpu_relax();
89 }
69} 90}
70 91
71static inline int __ticket_spin_is_locked(raw_spinlock_t *lock) 92static inline int __ticket_spin_is_locked(raw_spinlock_t *lock)
72{ 93{
73 long tmp = ACCESS_ONCE(lock->lock); 94 long tmp = ACCESS_ONCE(lock->lock);
74 95
75 return !!(((tmp >> TICKET_SHIFT) ^ tmp) & ((1L << TICKET_SHIFT) - 1)); 96 return !!(((tmp >> TICKET_SHIFT) ^ tmp) & TICKET_MASK);
76} 97}
77 98
78static inline int __ticket_spin_is_contended(raw_spinlock_t *lock) 99static inline int __ticket_spin_is_contended(raw_spinlock_t *lock)
79{ 100{
80 long tmp = ACCESS_ONCE(lock->lock); 101 long tmp = ACCESS_ONCE(lock->lock);
81 102
82 return (((tmp >> TICKET_SHIFT) - tmp) & ((1L << TICKET_SHIFT) - 1)) > 1; 103 return ((tmp - (tmp >> TICKET_SHIFT)) & TICKET_MASK) > 1;
83} 104}
84 105
85static inline int __raw_spin_is_locked(raw_spinlock_t *lock) 106static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
@@ -116,8 +137,7 @@ static __always_inline void __raw_spin_lock_flags(raw_spinlock_t *lock,
116 137
117static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock) 138static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock)
118{ 139{
119 while (__raw_spin_is_locked(lock)) 140 __ticket_spin_unlock_wait(lock);
120 cpu_relax();
121} 141}
122 142
123#define __raw_read_can_lock(rw) (*(volatile int *)(rw) >= 0) 143#define __raw_read_can_lock(rw) (*(volatile int *)(rw) >= 0)
diff --git a/arch/ia64/include/asm/spinlock_types.h b/arch/ia64/include/asm/spinlock_types.h
index b61d136d9bc2..474e46f1ab4a 100644
--- a/arch/ia64/include/asm/spinlock_types.h
+++ b/arch/ia64/include/asm/spinlock_types.h
@@ -6,7 +6,7 @@
6#endif 6#endif
7 7
8typedef struct { 8typedef struct {
9 volatile unsigned long lock; 9 volatile unsigned int lock;
10} raw_spinlock_t; 10} raw_spinlock_t;
11 11
12#define __RAW_SPIN_LOCK_UNLOCKED { 0 } 12#define __RAW_SPIN_LOCK_UNLOCKED { 0 }
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index d2877a7bfe2e..496ac7a99488 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -887,6 +887,60 @@ ia64_mca_modify_comm(const struct task_struct *previous_current)
887 memcpy(current->comm, comm, sizeof(current->comm)); 887 memcpy(current->comm, comm, sizeof(current->comm));
888} 888}
889 889
890static void
891finish_pt_regs(struct pt_regs *regs, const pal_min_state_area_t *ms,
892 unsigned long *nat)
893{
894 const u64 *bank;
895
896 /* If ipsr.ic then use pmsa_{iip,ipsr,ifs}, else use
897 * pmsa_{xip,xpsr,xfs}
898 */
899 if (ia64_psr(regs)->ic) {
900 regs->cr_iip = ms->pmsa_iip;
901 regs->cr_ipsr = ms->pmsa_ipsr;
902 regs->cr_ifs = ms->pmsa_ifs;
903 } else {
904 regs->cr_iip = ms->pmsa_xip;
905 regs->cr_ipsr = ms->pmsa_xpsr;
906 regs->cr_ifs = ms->pmsa_xfs;
907 }
908 regs->pr = ms->pmsa_pr;
909 regs->b0 = ms->pmsa_br0;
910 regs->ar_rsc = ms->pmsa_rsc;
911 copy_reg(&ms->pmsa_gr[1-1], ms->pmsa_nat_bits, &regs->r1, nat);
912 copy_reg(&ms->pmsa_gr[2-1], ms->pmsa_nat_bits, &regs->r2, nat);
913 copy_reg(&ms->pmsa_gr[3-1], ms->pmsa_nat_bits, &regs->r3, nat);
914 copy_reg(&ms->pmsa_gr[8-1], ms->pmsa_nat_bits, &regs->r8, nat);
915 copy_reg(&ms->pmsa_gr[9-1], ms->pmsa_nat_bits, &regs->r9, nat);
916 copy_reg(&ms->pmsa_gr[10-1], ms->pmsa_nat_bits, &regs->r10, nat);
917 copy_reg(&ms->pmsa_gr[11-1], ms->pmsa_nat_bits, &regs->r11, nat);
918 copy_reg(&ms->pmsa_gr[12-1], ms->pmsa_nat_bits, &regs->r12, nat);
919 copy_reg(&ms->pmsa_gr[13-1], ms->pmsa_nat_bits, &regs->r13, nat);
920 copy_reg(&ms->pmsa_gr[14-1], ms->pmsa_nat_bits, &regs->r14, nat);
921 copy_reg(&ms->pmsa_gr[15-1], ms->pmsa_nat_bits, &regs->r15, nat);
922 if (ia64_psr(regs)->bn)
923 bank = ms->pmsa_bank1_gr;
924 else
925 bank = ms->pmsa_bank0_gr;
926 copy_reg(&bank[16-16], ms->pmsa_nat_bits, &regs->r16, nat);
927 copy_reg(&bank[17-16], ms->pmsa_nat_bits, &regs->r17, nat);
928 copy_reg(&bank[18-16], ms->pmsa_nat_bits, &regs->r18, nat);
929 copy_reg(&bank[19-16], ms->pmsa_nat_bits, &regs->r19, nat);
930 copy_reg(&bank[20-16], ms->pmsa_nat_bits, &regs->r20, nat);
931 copy_reg(&bank[21-16], ms->pmsa_nat_bits, &regs->r21, nat);
932 copy_reg(&bank[22-16], ms->pmsa_nat_bits, &regs->r22, nat);
933 copy_reg(&bank[23-16], ms->pmsa_nat_bits, &regs->r23, nat);
934 copy_reg(&bank[24-16], ms->pmsa_nat_bits, &regs->r24, nat);
935 copy_reg(&bank[25-16], ms->pmsa_nat_bits, &regs->r25, nat);
936 copy_reg(&bank[26-16], ms->pmsa_nat_bits, &regs->r26, nat);
937 copy_reg(&bank[27-16], ms->pmsa_nat_bits, &regs->r27, nat);
938 copy_reg(&bank[28-16], ms->pmsa_nat_bits, &regs->r28, nat);
939 copy_reg(&bank[29-16], ms->pmsa_nat_bits, &regs->r29, nat);
940 copy_reg(&bank[30-16], ms->pmsa_nat_bits, &regs->r30, nat);
941 copy_reg(&bank[31-16], ms->pmsa_nat_bits, &regs->r31, nat);
942}
943
890/* On entry to this routine, we are running on the per cpu stack, see 944/* On entry to this routine, we are running on the per cpu stack, see
891 * mca_asm.h. The original stack has not been touched by this event. Some of 945 * mca_asm.h. The original stack has not been touched by this event. Some of
892 * the original stack's registers will be in the RBS on this stack. This stack 946 * the original stack's registers will be in the RBS on this stack. This stack
@@ -921,7 +975,6 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
921 u64 r12 = ms->pmsa_gr[12-1], r13 = ms->pmsa_gr[13-1]; 975 u64 r12 = ms->pmsa_gr[12-1], r13 = ms->pmsa_gr[13-1];
922 u64 ar_bspstore = regs->ar_bspstore; 976 u64 ar_bspstore = regs->ar_bspstore;
923 u64 ar_bsp = regs->ar_bspstore + (loadrs >> 16); 977 u64 ar_bsp = regs->ar_bspstore + (loadrs >> 16);
924 const u64 *bank;
925 const char *msg; 978 const char *msg;
926 int cpu = smp_processor_id(); 979 int cpu = smp_processor_id();
927 980
@@ -1024,54 +1077,9 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
1024 p = (char *)r12 - sizeof(*regs); 1077 p = (char *)r12 - sizeof(*regs);
1025 old_regs = (struct pt_regs *)p; 1078 old_regs = (struct pt_regs *)p;
1026 memcpy(old_regs, regs, sizeof(*regs)); 1079 memcpy(old_regs, regs, sizeof(*regs));
1027 /* If ipsr.ic then use pmsa_{iip,ipsr,ifs}, else use
1028 * pmsa_{xip,xpsr,xfs}
1029 */
1030 if (ia64_psr(regs)->ic) {
1031 old_regs->cr_iip = ms->pmsa_iip;
1032 old_regs->cr_ipsr = ms->pmsa_ipsr;
1033 old_regs->cr_ifs = ms->pmsa_ifs;
1034 } else {
1035 old_regs->cr_iip = ms->pmsa_xip;
1036 old_regs->cr_ipsr = ms->pmsa_xpsr;
1037 old_regs->cr_ifs = ms->pmsa_xfs;
1038 }
1039 old_regs->pr = ms->pmsa_pr;
1040 old_regs->b0 = ms->pmsa_br0;
1041 old_regs->loadrs = loadrs; 1080 old_regs->loadrs = loadrs;
1042 old_regs->ar_rsc = ms->pmsa_rsc;
1043 old_unat = old_regs->ar_unat; 1081 old_unat = old_regs->ar_unat;
1044 copy_reg(&ms->pmsa_gr[1-1], ms->pmsa_nat_bits, &old_regs->r1, &old_unat); 1082 finish_pt_regs(old_regs, ms, &old_unat);
1045 copy_reg(&ms->pmsa_gr[2-1], ms->pmsa_nat_bits, &old_regs->r2, &old_unat);
1046 copy_reg(&ms->pmsa_gr[3-1], ms->pmsa_nat_bits, &old_regs->r3, &old_unat);
1047 copy_reg(&ms->pmsa_gr[8-1], ms->pmsa_nat_bits, &old_regs->r8, &old_unat);
1048 copy_reg(&ms->pmsa_gr[9-1], ms->pmsa_nat_bits, &old_regs->r9, &old_unat);
1049 copy_reg(&ms->pmsa_gr[10-1], ms->pmsa_nat_bits, &old_regs->r10, &old_unat);
1050 copy_reg(&ms->pmsa_gr[11-1], ms->pmsa_nat_bits, &old_regs->r11, &old_unat);
1051 copy_reg(&ms->pmsa_gr[12-1], ms->pmsa_nat_bits, &old_regs->r12, &old_unat);
1052 copy_reg(&ms->pmsa_gr[13-1], ms->pmsa_nat_bits, &old_regs->r13, &old_unat);
1053 copy_reg(&ms->pmsa_gr[14-1], ms->pmsa_nat_bits, &old_regs->r14, &old_unat);
1054 copy_reg(&ms->pmsa_gr[15-1], ms->pmsa_nat_bits, &old_regs->r15, &old_unat);
1055 if (ia64_psr(old_regs)->bn)
1056 bank = ms->pmsa_bank1_gr;
1057 else
1058 bank = ms->pmsa_bank0_gr;
1059 copy_reg(&bank[16-16], ms->pmsa_nat_bits, &old_regs->r16, &old_unat);
1060 copy_reg(&bank[17-16], ms->pmsa_nat_bits, &old_regs->r17, &old_unat);
1061 copy_reg(&bank[18-16], ms->pmsa_nat_bits, &old_regs->r18, &old_unat);
1062 copy_reg(&bank[19-16], ms->pmsa_nat_bits, &old_regs->r19, &old_unat);
1063 copy_reg(&bank[20-16], ms->pmsa_nat_bits, &old_regs->r20, &old_unat);
1064 copy_reg(&bank[21-16], ms->pmsa_nat_bits, &old_regs->r21, &old_unat);
1065 copy_reg(&bank[22-16], ms->pmsa_nat_bits, &old_regs->r22, &old_unat);
1066 copy_reg(&bank[23-16], ms->pmsa_nat_bits, &old_regs->r23, &old_unat);
1067 copy_reg(&bank[24-16], ms->pmsa_nat_bits, &old_regs->r24, &old_unat);
1068 copy_reg(&bank[25-16], ms->pmsa_nat_bits, &old_regs->r25, &old_unat);
1069 copy_reg(&bank[26-16], ms->pmsa_nat_bits, &old_regs->r26, &old_unat);
1070 copy_reg(&bank[27-16], ms->pmsa_nat_bits, &old_regs->r27, &old_unat);
1071 copy_reg(&bank[28-16], ms->pmsa_nat_bits, &old_regs->r28, &old_unat);
1072 copy_reg(&bank[29-16], ms->pmsa_nat_bits, &old_regs->r29, &old_unat);
1073 copy_reg(&bank[30-16], ms->pmsa_nat_bits, &old_regs->r30, &old_unat);
1074 copy_reg(&bank[31-16], ms->pmsa_nat_bits, &old_regs->r31, &old_unat);
1075 1083
1076 /* Next stack a struct switch_stack. mca_asm.S built a partial 1084 /* Next stack a struct switch_stack. mca_asm.S built a partial
1077 * switch_stack, copy it and fill in the blanks using pt_regs and 1085 * switch_stack, copy it and fill in the blanks using pt_regs and
@@ -1141,6 +1149,8 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
1141no_mod: 1149no_mod:
1142 mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n", 1150 mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n",
1143 smp_processor_id(), type, msg); 1151 smp_processor_id(), type, msg);
1152 old_unat = regs->ar_unat;
1153 finish_pt_regs(regs, ms, &old_unat);
1144 return previous_current; 1154 return previous_current;
1145} 1155}
1146 1156
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c
index 6db08599ebbc..776dd40397e2 100644
--- a/arch/ia64/kernel/unaligned.c
+++ b/arch/ia64/kernel/unaligned.c
@@ -60,7 +60,6 @@ dump (const char *str, void *vp, size_t len)
60 */ 60 */
61int no_unaligned_warning; 61int no_unaligned_warning;
62int unaligned_dump_stack; 62int unaligned_dump_stack;
63static int noprint_warning;
64 63
65/* 64/*
66 * For M-unit: 65 * For M-unit:
@@ -1357,9 +1356,8 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs)
1357 /* watch for command names containing %s */ 1356 /* watch for command names containing %s */
1358 printk(KERN_WARNING "%s", buf); 1357 printk(KERN_WARNING "%s", buf);
1359 } else { 1358 } else {
1360 if (no_unaligned_warning && !noprint_warning) { 1359 if (no_unaligned_warning) {
1361 noprint_warning = 1; 1360 printk_once(KERN_WARNING "%s(%d) encountered an "
1362 printk(KERN_WARNING "%s(%d) encountered an "
1363 "unaligned exception which required\n" 1361 "unaligned exception which required\n"
1364 "kernel assistance, which degrades " 1362 "kernel assistance, which degrades "
1365 "the performance of the application.\n" 1363 "the performance of the application.\n"
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c
index f426dc78d959..ee09d261f2e6 100644
--- a/arch/ia64/mm/tlb.c
+++ b/arch/ia64/mm/tlb.c
@@ -100,24 +100,36 @@ wrap_mmu_context (struct mm_struct *mm)
100 * this primitive it can be moved up to a spinaphore.h header. 100 * this primitive it can be moved up to a spinaphore.h header.
101 */ 101 */
102struct spinaphore { 102struct spinaphore {
103 atomic_t cur; 103 unsigned long ticket;
104 unsigned long serve;
104}; 105};
105 106
106static inline void spinaphore_init(struct spinaphore *ss, int val) 107static inline void spinaphore_init(struct spinaphore *ss, int val)
107{ 108{
108 atomic_set(&ss->cur, val); 109 ss->ticket = 0;
110 ss->serve = val;
109} 111}
110 112
111static inline void down_spin(struct spinaphore *ss) 113static inline void down_spin(struct spinaphore *ss)
112{ 114{
113 while (unlikely(!atomic_add_unless(&ss->cur, -1, 0))) 115 unsigned long t = ia64_fetchadd(1, &ss->ticket, acq), serve;
114 while (atomic_read(&ss->cur) == 0) 116
115 cpu_relax(); 117 if (time_before(t, ss->serve))
118 return;
119
120 ia64_invala();
121
122 for (;;) {
123 asm volatile ("ld4.c.nc %0=[%1]" : "=r"(serve) : "r"(&ss->serve) : "memory");
124 if (time_before(t, serve))
125 return;
126 cpu_relax();
127 }
116} 128}
117 129
118static inline void up_spin(struct spinaphore *ss) 130static inline void up_spin(struct spinaphore *ss)
119{ 131{
120 atomic_add(1, &ss->cur); 132 ia64_fetchadd(1, &ss->serve, rel);
121} 133}
122 134
123static struct spinaphore ptcg_sem; 135static struct spinaphore ptcg_sem;
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 7de76dd352fe..c0fca2c1c858 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -56,10 +56,13 @@ int raw_pci_read(unsigned int seg, unsigned int bus, unsigned int devfn,
56 if ((seg | reg) <= 255) { 56 if ((seg | reg) <= 255) {
57 addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg); 57 addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
58 mode = 0; 58 mode = 0;
59 } else { 59 } else if (sal_revision >= SAL_VERSION_CODE(3,2)) {
60 addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg); 60 addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
61 mode = 1; 61 mode = 1;
62 } else {
63 return -EINVAL;
62 } 64 }
65
63 result = ia64_sal_pci_config_read(addr, mode, len, &data); 66 result = ia64_sal_pci_config_read(addr, mode, len, &data);
64 if (result != 0) 67 if (result != 0)
65 return -EINVAL; 68 return -EINVAL;
@@ -80,9 +83,11 @@ int raw_pci_write(unsigned int seg, unsigned int bus, unsigned int devfn,
80 if ((seg | reg) <= 255) { 83 if ((seg | reg) <= 255) {
81 addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg); 84 addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
82 mode = 0; 85 mode = 0;
83 } else { 86 } else if (sal_revision >= SAL_VERSION_CODE(3,2)) {
84 addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg); 87 addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
85 mode = 1; 88 mode = 1;
89 } else {
90 return -EINVAL;
86 } 91 }
87 result = ia64_sal_pci_config_write(addr, mode, len, value); 92 result = ia64_sal_pci_config_write(addr, mode, len, value);
88 if (result != 0) 93 if (result != 0)
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c
index 25831c47c579..308e6595110e 100644
--- a/arch/ia64/sn/kernel/io_common.c
+++ b/arch/ia64/sn/kernel/io_common.c
@@ -119,7 +119,6 @@ sn_pcidev_info_get(struct pci_dev *dev)
119 * Additionally note that the struct sn_flush_device_war also has to be 119 * Additionally note that the struct sn_flush_device_war also has to be
120 * removed from arch/ia64/sn/include/xtalk/hubdev.h 120 * removed from arch/ia64/sn/include/xtalk/hubdev.h
121 */ 121 */
122static u8 war_implemented = 0;
123 122
124static s64 sn_device_fixup_war(u64 nasid, u64 widget, int device, 123static s64 sn_device_fixup_war(u64 nasid, u64 widget, int device,
125 struct sn_flush_device_common *common) 124 struct sn_flush_device_common *common)
@@ -128,11 +127,8 @@ static s64 sn_device_fixup_war(u64 nasid, u64 widget, int device,
128 struct sn_flush_device_war *dev_entry; 127 struct sn_flush_device_war *dev_entry;
129 struct ia64_sal_retval isrv = {0,0,0,0}; 128 struct ia64_sal_retval isrv = {0,0,0,0};
130 129
131 if (!war_implemented) { 130 printk_once(KERN_WARNING
132 printk(KERN_WARNING "PROM version < 4.50 -- implementing old " 131 "PROM version < 4.50 -- implementing old PROM flush WAR\n");
133 "PROM flush WAR\n");
134 war_implemented = 1;
135 }
136 132
137 war_list = kzalloc(DEV_PER_WIDGET * sizeof(*war_list), GFP_KERNEL); 133 war_list = kzalloc(DEV_PER_WIDGET * sizeof(*war_list), GFP_KERNEL);
138 BUG_ON(!war_list); 134 BUG_ON(!war_list);
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
index 4c7e74790958..55ac3c4e11d2 100644
--- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c
+++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
@@ -786,17 +786,18 @@ sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg)
786 break; 786 break;
787 787
788 case SN_HWPERF_GET_OBJ_NODE: 788 case SN_HWPERF_GET_OBJ_NODE:
789 if (a.sz != sizeof(u64) || a.arg < 0) { 789 i = a.arg;
790 if (a.sz != sizeof(u64) || i < 0) {
790 r = -EINVAL; 791 r = -EINVAL;
791 goto error; 792 goto error;
792 } 793 }
793 if ((r = sn_hwperf_enum_objects(&nobj, &objs)) == 0) { 794 if ((r = sn_hwperf_enum_objects(&nobj, &objs)) == 0) {
794 if (a.arg >= nobj) { 795 if (i >= nobj) {
795 r = -EINVAL; 796 r = -EINVAL;
796 vfree(objs); 797 vfree(objs);
797 goto error; 798 goto error;
798 } 799 }
799 if (objs[(i = a.arg)].id != a.arg) { 800 if (objs[i].id != a.arg) {
800 for (i = 0; i < nobj; i++) { 801 for (i = 0; i < nobj; i++) {
801 if (objs[i].id == a.arg) 802 if (objs[i].id == a.arg)
802 break; 803 break;
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 29dd8489ffec..ecdc19a299b2 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -561,7 +561,7 @@ config HPAPCI
561 561
562config MVME147_SCC 562config MVME147_SCC
563 bool "SCC support for MVME147 serial ports" 563 bool "SCC support for MVME147 serial ports"
564 depends on MVME147 564 depends on MVME147 && BROKEN
565 help 565 help
566 This is the driver for the serial ports on the Motorola MVME147 566 This is the driver for the serial ports on the Motorola MVME147
567 boards. Everyone using one of these boards should say Y here. 567 boards. Everyone using one of these boards should say Y here.
@@ -576,14 +576,14 @@ config SERIAL167
576 576
577config MVME162_SCC 577config MVME162_SCC
578 bool "SCC support for MVME162 serial ports" 578 bool "SCC support for MVME162 serial ports"
579 depends on MVME16x 579 depends on MVME16x && BROKEN
580 help 580 help
581 This is the driver for the serial ports on the Motorola MVME162 and 581 This is the driver for the serial ports on the Motorola MVME162 and
582 172 boards. Everyone using one of these boards should say Y here. 582 172 boards. Everyone using one of these boards should say Y here.
583 583
584config BVME6000_SCC 584config BVME6000_SCC
585 bool "SCC support for BVME6000 serial ports" 585 bool "SCC support for BVME6000 serial ports"
586 depends on BVME6000 586 depends on BVME6000 && BROKEN
587 help 587 help
588 This is the driver for the serial ports on the BVME4000 and BVME6000 588 This is the driver for the serial ports on the BVME4000 and BVME6000
589 boards from BVM Ltd. Everyone using one of these boards should say 589 boards from BVM Ltd. Everyone using one of these boards should say
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 705a7a9170f3..03bd56a2fb6e 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1012,9 +1012,9 @@ config BOOT_ELF32
1012 1012
1013config MIPS_L1_CACHE_SHIFT 1013config MIPS_L1_CACHE_SHIFT
1014 int 1014 int
1015 default "4" if MACH_DECSTATION || MIKROTIK_RB532 1015 default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1016 default "6" if MIPS_CPU_SCACHE
1016 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON 1017 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1017 default "4" if PMC_MSP4200_EVAL
1018 default "5" 1018 default "5"
1019 1019
1020config HAVE_STD_PC_SERIAL_PORT 1020config HAVE_STD_PC_SERIAL_PORT
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index c88c821b4c36..d670928afcfd 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -354,6 +354,28 @@ static void au1x_ic1_ack(unsigned int irq_nr)
354 au_sync(); 354 au_sync();
355} 355}
356 356
357static void au1x_ic0_maskack(unsigned int irq_nr)
358{
359 unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
360
361 au_writel(1 << bit, IC0_WAKECLR);
362 au_writel(1 << bit, IC0_MASKCLR);
363 au_writel(1 << bit, IC0_RISINGCLR);
364 au_writel(1 << bit, IC0_FALLINGCLR);
365 au_sync();
366}
367
368static void au1x_ic1_maskack(unsigned int irq_nr)
369{
370 unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
371
372 au_writel(1 << bit, IC1_WAKECLR);
373 au_writel(1 << bit, IC1_MASKCLR);
374 au_writel(1 << bit, IC1_RISINGCLR);
375 au_writel(1 << bit, IC1_FALLINGCLR);
376 au_sync();
377}
378
357static int au1x_ic1_setwake(unsigned int irq, unsigned int on) 379static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
358{ 380{
359 unsigned int bit = irq - AU1000_INTC1_INT_BASE; 381 unsigned int bit = irq - AU1000_INTC1_INT_BASE;
@@ -379,25 +401,21 @@ static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
379/* 401/*
380 * irq_chips for both ICs; this way the mask handlers can be 402 * irq_chips for both ICs; this way the mask handlers can be
381 * as short as possible. 403 * as short as possible.
382 *
383 * NOTE: the ->ack() callback is used by the handle_edge_irq
384 * flowhandler only, the ->mask_ack() one by handle_level_irq,
385 * so no need for an irq_chip for each type of irq (level/edge).
386 */ 404 */
387static struct irq_chip au1x_ic0_chip = { 405static struct irq_chip au1x_ic0_chip = {
388 .name = "Alchemy-IC0", 406 .name = "Alchemy-IC0",
389 .ack = au1x_ic0_ack, /* edge */ 407 .ack = au1x_ic0_ack,
390 .mask = au1x_ic0_mask, 408 .mask = au1x_ic0_mask,
391 .mask_ack = au1x_ic0_mask, /* level */ 409 .mask_ack = au1x_ic0_maskack,
392 .unmask = au1x_ic0_unmask, 410 .unmask = au1x_ic0_unmask,
393 .set_type = au1x_ic_settype, 411 .set_type = au1x_ic_settype,
394}; 412};
395 413
396static struct irq_chip au1x_ic1_chip = { 414static struct irq_chip au1x_ic1_chip = {
397 .name = "Alchemy-IC1", 415 .name = "Alchemy-IC1",
398 .ack = au1x_ic1_ack, /* edge */ 416 .ack = au1x_ic1_ack,
399 .mask = au1x_ic1_mask, 417 .mask = au1x_ic1_mask,
400 .mask_ack = au1x_ic1_mask, /* level */ 418 .mask_ack = au1x_ic1_maskack,
401 .unmask = au1x_ic1_unmask, 419 .unmask = au1x_ic1_unmask,
402 .set_type = au1x_ic_settype, 420 .set_type = au1x_ic_settype,
403 .set_wake = au1x_ic1_setwake, 421 .set_wake = au1x_ic1_setwake,
diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c
index cc32c69a74ad..45b61c9b82b9 100644
--- a/arch/mips/alchemy/mtx-1/board_setup.c
+++ b/arch/mips/alchemy/mtx-1/board_setup.c
@@ -69,6 +69,7 @@ void __init board_setup(void)
69#else 69#else
70 au_writel(0xf, Au1500_PCI_CFG); 70 au_writel(0xf, Au1500_PCI_CFG);
71#endif 71#endif
72 board_pci_idsel = mtx1_pci_idsel;
72#endif 73#endif
73 74
74 /* Initialize sys_pinfunc */ 75 /* Initialize sys_pinfunc */
@@ -85,8 +86,6 @@ void __init board_setup(void)
85 alchemy_gpio_direction_output(211, 1); /* green on */ 86 alchemy_gpio_direction_output(211, 1); /* green on */
86 alchemy_gpio_direction_output(212, 0); /* red off */ 87 alchemy_gpio_direction_output(212, 0); /* red off */
87 88
88 board_pci_idsel = mtx1_pci_idsel;
89
90 printk(KERN_INFO "4G Systems MTX-1 Board\n"); 89 printk(KERN_INFO "4G Systems MTX-1 Board\n");
91} 90}
92 91
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c
index e2278c04459d..835f3f0319ca 100644
--- a/arch/mips/ar7/platform.c
+++ b/arch/mips/ar7/platform.c
@@ -503,6 +503,7 @@ static int __init ar7_register_devices(void)
503{ 503{
504 u16 chip_id; 504 u16 chip_id;
505 int res; 505 int res;
506 u32 *bootcr, val;
506#ifdef CONFIG_SERIAL_8250 507#ifdef CONFIG_SERIAL_8250
507 static struct uart_port uart_port[2]; 508 static struct uart_port uart_port[2];
508 509
@@ -595,7 +596,13 @@ static int __init ar7_register_devices(void)
595 596
596 ar7_wdt_res.end = ar7_wdt_res.start + 0x20; 597 ar7_wdt_res.end = ar7_wdt_res.start + 0x20;
597 598
598 res = platform_device_register(&ar7_wdt); 599 bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4);
600 val = *bootcr;
601 iounmap(bootcr);
602
603 /* Register watchdog only if enabled in hardware */
604 if (val & AR7_WDT_HW_ENA)
605 res = platform_device_register(&ar7_wdt);
599 606
600 return res; 607 return res;
601} 608}
diff --git a/arch/mips/bcm63xx/Makefile b/arch/mips/bcm63xx/Makefile
index c146d1ededed..00064b660809 100644
--- a/arch/mips/bcm63xx/Makefile
+++ b/arch/mips/bcm63xx/Makefile
@@ -1,5 +1,5 @@
1obj-y += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \ 1obj-y += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \
2 dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o 2 dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o
3obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 3obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
4 4
5obj-y += boards/ 5obj-y += boards/
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c
index 78e155d21be6..05a35cf5963d 100644
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -24,7 +24,6 @@
24#include <bcm63xx_dev_enet.h> 24#include <bcm63xx_dev_enet.h>
25#include <bcm63xx_dev_dsp.h> 25#include <bcm63xx_dev_dsp.h>
26#include <bcm63xx_dev_pcmcia.h> 26#include <bcm63xx_dev_pcmcia.h>
27#include <bcm63xx_dev_uart.h>
28#include <board_bcm963xx.h> 27#include <board_bcm963xx.h>
29 28
30#define PFX "board_bcm963xx: " 29#define PFX "board_bcm963xx: "
@@ -794,8 +793,6 @@ int __init board_register_devices(void)
794{ 793{
795 u32 val; 794 u32 val;
796 795
797 bcm63xx_uart_register();
798
799 if (board.has_pccard) 796 if (board.has_pccard)
800 bcm63xx_pcmcia_register(); 797 bcm63xx_pcmcia_register();
801 798
diff --git a/arch/mips/bcm63xx/cpu.c b/arch/mips/bcm63xx/cpu.c
index 6dc43f0483e8..70378bb5e3f9 100644
--- a/arch/mips/bcm63xx/cpu.c
+++ b/arch/mips/bcm63xx/cpu.c
@@ -10,6 +10,7 @@
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/cpu.h> 12#include <linux/cpu.h>
13#include <asm/cpu-info.h>
13#include <bcm63xx_cpu.h> 14#include <bcm63xx_cpu.h>
14#include <bcm63xx_regs.h> 15#include <bcm63xx_regs.h>
15#include <bcm63xx_io.h> 16#include <bcm63xx_io.h>
@@ -284,6 +285,7 @@ void __init bcm63xx_cpu_init(void)
284{ 285{
285 unsigned int tmp, expected_cpu_id; 286 unsigned int tmp, expected_cpu_id;
286 struct cpuinfo_mips *c = &current_cpu_data; 287 struct cpuinfo_mips *c = &current_cpu_data;
288 unsigned int cpu = smp_processor_id();
287 289
288 /* soc registers location depends on cpu type */ 290 /* soc registers location depends on cpu type */
289 expected_cpu_id = 0; 291 expected_cpu_id = 0;
@@ -293,6 +295,7 @@ void __init bcm63xx_cpu_init(void)
293 * BCM6338 as the same PrId as BCM3302 see arch/mips/kernel/cpu-probe.c 295 * BCM6338 as the same PrId as BCM3302 see arch/mips/kernel/cpu-probe.c
294 */ 296 */
295 case CPU_BCM3302: 297 case CPU_BCM3302:
298 __cpu_name[cpu] = "Broadcom BCM6338";
296 expected_cpu_id = BCM6338_CPU_ID; 299 expected_cpu_id = BCM6338_CPU_ID;
297 bcm63xx_regs_base = bcm96338_regs_base; 300 bcm63xx_regs_base = bcm96338_regs_base;
298 bcm63xx_irqs = bcm96338_irqs; 301 bcm63xx_irqs = bcm96338_irqs;
diff --git a/arch/mips/bcm63xx/dev-uart.c b/arch/mips/bcm63xx/dev-uart.c
index 5f3d89c4a988..b0519461ad9b 100644
--- a/arch/mips/bcm63xx/dev-uart.c
+++ b/arch/mips/bcm63xx/dev-uart.c
@@ -10,7 +10,6 @@
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/platform_device.h> 11#include <linux/platform_device.h>
12#include <bcm63xx_cpu.h> 12#include <bcm63xx_cpu.h>
13#include <bcm63xx_dev_uart.h>
14 13
15static struct resource uart_resources[] = { 14static struct resource uart_resources[] = {
16 { 15 {
@@ -39,3 +38,4 @@ int __init bcm63xx_uart_register(void)
39 uart_resources[1].start = bcm63xx_get_irq_number(IRQ_UART0); 38 uart_resources[1].start = bcm63xx_get_irq_number(IRQ_UART0);
40 return platform_device_register(&bcm63xx_uart_device); 39 return platform_device_register(&bcm63xx_uart_device);
41} 40}
41arch_initcall(bcm63xx_uart_register);
diff --git a/arch/mips/bcm63xx/dev-wdt.c b/arch/mips/bcm63xx/dev-wdt.c
new file mode 100644
index 000000000000..3e6c716a4c11
--- /dev/null
+++ b/arch/mips/bcm63xx/dev-wdt.c
@@ -0,0 +1,37 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2008 Florian Fainelli <florian@openwrt.org>
7 */
8
9#include <linux/init.h>
10#include <linux/kernel.h>
11#include <linux/platform_device.h>
12#include <bcm63xx_cpu.h>
13
14static struct resource wdt_resources[] = {
15 {
16 .start = -1, /* filled at runtime */
17 .end = -1, /* filled at runtime */
18 .flags = IORESOURCE_MEM,
19 },
20};
21
22static struct platform_device bcm63xx_wdt_device = {
23 .name = "bcm63xx-wdt",
24 .id = 0,
25 .num_resources = ARRAY_SIZE(wdt_resources),
26 .resource = wdt_resources,
27};
28
29int __init bcm63xx_wdt_register(void)
30{
31 wdt_resources[0].start = bcm63xx_regset_address(RSET_WDT);
32 wdt_resources[0].end = wdt_resources[0].start;
33 wdt_resources[0].end += RSET_WDT_SIZE - 1;
34
35 return platform_device_register(&bcm63xx_wdt_device);
36}
37arch_initcall(bcm63xx_wdt_register);
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index b18a0ca926fa..d0056598fbfc 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -75,7 +75,9 @@ void bcm63xx_machine_reboot(void)
75 bcm6348_a1_reboot(); 75 bcm6348_a1_reboot();
76 76
77 printk(KERN_INFO "triggering watchdog soft-reset...\n"); 77 printk(KERN_INFO "triggering watchdog soft-reset...\n");
78 bcm_perf_writel(SYS_PLL_SOFT_RESET, PERF_SYS_PLL_CTL_REG); 78 reg = bcm_perf_readl(PERF_SYS_PLL_CTL_REG);
79 reg |= SYS_PLL_SOFT_RESET;
80 bcm_perf_writel(reg, PERF_SYS_PLL_CTL_REG);
79 while (1) 81 while (1)
80 ; 82 ;
81} 83}
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index 384f1842bfb1..6f2acf09328d 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -17,6 +17,15 @@ DEFINE_RWLOCK(octeon_irq_ciu0_rwlock);
17DEFINE_RWLOCK(octeon_irq_ciu1_rwlock); 17DEFINE_RWLOCK(octeon_irq_ciu1_rwlock);
18DEFINE_SPINLOCK(octeon_irq_msi_lock); 18DEFINE_SPINLOCK(octeon_irq_msi_lock);
19 19
20static int octeon_coreid_for_cpu(int cpu)
21{
22#ifdef CONFIG_SMP
23 return cpu_logical_map(cpu);
24#else
25 return cvmx_get_core_num();
26#endif
27}
28
20static void octeon_irq_core_ack(unsigned int irq) 29static void octeon_irq_core_ack(unsigned int irq)
21{ 30{
22 unsigned int bit = irq - OCTEON_IRQ_SW0; 31 unsigned int bit = irq - OCTEON_IRQ_SW0;
@@ -152,11 +161,10 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
152 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 161 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
153 unsigned long flags; 162 unsigned long flags;
154 uint64_t en0; 163 uint64_t en0;
155#ifdef CONFIG_SMP
156 int cpu; 164 int cpu;
157 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags); 165 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
158 for_each_online_cpu(cpu) { 166 for_each_online_cpu(cpu) {
159 int coreid = cpu_logical_map(cpu); 167 int coreid = octeon_coreid_for_cpu(cpu);
160 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 168 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
161 en0 &= ~(1ull << bit); 169 en0 &= ~(1ull << bit);
162 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0); 170 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
@@ -167,26 +175,57 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
167 */ 175 */
168 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 176 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
169 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 177 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags);
170#else 178}
171 int coreid = cvmx_get_core_num(); 179
172 local_irq_save(flags); 180/*
173 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 181 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
174 en0 &= ~(1ull << bit); 182 * registers.
175 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0); 183 */
176 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 184static void octeon_irq_ciu0_enable_v2(unsigned int irq)
177 local_irq_restore(flags); 185{
178#endif 186 int index = cvmx_get_core_num() * 2;
187 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
188
189 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1S(index), mask);
190}
191
192/*
193 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
194 * registers.
195 */
196static void octeon_irq_ciu0_disable_v2(unsigned int irq)
197{
198 int index = cvmx_get_core_num() * 2;
199 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
200
201 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1C(index), mask);
202}
203
204/*
205 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
206 * registers.
207 */
208static void octeon_irq_ciu0_disable_all_v2(unsigned int irq)
209{
210 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
211 int index;
212 int cpu;
213 for_each_online_cpu(cpu) {
214 index = octeon_coreid_for_cpu(cpu) * 2;
215 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1C(index), mask);
216 }
179} 217}
180 218
181#ifdef CONFIG_SMP 219#ifdef CONFIG_SMP
182static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *dest) 220static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *dest)
183{ 221{
184 int cpu; 222 int cpu;
223 unsigned long flags;
185 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 224 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
186 225
187 write_lock(&octeon_irq_ciu0_rwlock); 226 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
188 for_each_online_cpu(cpu) { 227 for_each_online_cpu(cpu) {
189 int coreid = cpu_logical_map(cpu); 228 int coreid = octeon_coreid_for_cpu(cpu);
190 uint64_t en0 = 229 uint64_t en0 =
191 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 230 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
192 if (cpumask_test_cpu(cpu, dest)) 231 if (cpumask_test_cpu(cpu, dest))
@@ -200,11 +239,45 @@ static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *
200 * of them are done. 239 * of them are done.
201 */ 240 */
202 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 241 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
203 write_unlock(&octeon_irq_ciu0_rwlock); 242 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags);
204 243
205 return 0; 244 return 0;
206} 245}
246
247/*
248 * Set affinity for the irq for chips that have the EN*_W1{S,C}
249 * registers.
250 */
251static int octeon_irq_ciu0_set_affinity_v2(unsigned int irq,
252 const struct cpumask *dest)
253{
254 int cpu;
255 int index;
256 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
257 for_each_online_cpu(cpu) {
258 index = octeon_coreid_for_cpu(cpu) * 2;
259 if (cpumask_test_cpu(cpu, dest))
260 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1S(index), mask);
261 else
262 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1C(index), mask);
263 }
264 return 0;
265}
266#endif
267
268/*
269 * Newer octeon chips have support for lockless CIU operation.
270 */
271static struct irq_chip octeon_irq_chip_ciu0_v2 = {
272 .name = "CIU0",
273 .enable = octeon_irq_ciu0_enable_v2,
274 .disable = octeon_irq_ciu0_disable_all_v2,
275 .ack = octeon_irq_ciu0_disable_v2,
276 .eoi = octeon_irq_ciu0_enable_v2,
277#ifdef CONFIG_SMP
278 .set_affinity = octeon_irq_ciu0_set_affinity_v2,
207#endif 279#endif
280};
208 281
209static struct irq_chip octeon_irq_chip_ciu0 = { 282static struct irq_chip octeon_irq_chip_ciu0 = {
210 .name = "CIU0", 283 .name = "CIU0",
@@ -269,11 +342,10 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
269 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 342 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
270 unsigned long flags; 343 unsigned long flags;
271 uint64_t en1; 344 uint64_t en1;
272#ifdef CONFIG_SMP
273 int cpu; 345 int cpu;
274 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags); 346 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
275 for_each_online_cpu(cpu) { 347 for_each_online_cpu(cpu) {
276 int coreid = cpu_logical_map(cpu); 348 int coreid = octeon_coreid_for_cpu(cpu);
277 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 349 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
278 en1 &= ~(1ull << bit); 350 en1 &= ~(1ull << bit);
279 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1); 351 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
@@ -284,26 +356,58 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
284 */ 356 */
285 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 357 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
286 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 358 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags);
287#else 359}
288 int coreid = cvmx_get_core_num(); 360
289 local_irq_save(flags); 361/*
290 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 362 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
291 en1 &= ~(1ull << bit); 363 * registers.
292 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1); 364 */
293 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 365static void octeon_irq_ciu1_enable_v2(unsigned int irq)
294 local_irq_restore(flags); 366{
295#endif 367 int index = cvmx_get_core_num() * 2 + 1;
368 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
369
370 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1S(index), mask);
371}
372
373/*
374 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
375 * registers.
376 */
377static void octeon_irq_ciu1_disable_v2(unsigned int irq)
378{
379 int index = cvmx_get_core_num() * 2 + 1;
380 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
381
382 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1C(index), mask);
383}
384
385/*
386 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
387 * registers.
388 */
389static void octeon_irq_ciu1_disable_all_v2(unsigned int irq)
390{
391 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
392 int index;
393 int cpu;
394 for_each_online_cpu(cpu) {
395 index = octeon_coreid_for_cpu(cpu) * 2 + 1;
396 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1C(index), mask);
397 }
296} 398}
297 399
298#ifdef CONFIG_SMP 400#ifdef CONFIG_SMP
299static int octeon_irq_ciu1_set_affinity(unsigned int irq, const struct cpumask *dest) 401static int octeon_irq_ciu1_set_affinity(unsigned int irq,
402 const struct cpumask *dest)
300{ 403{
301 int cpu; 404 int cpu;
405 unsigned long flags;
302 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 406 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
303 407
304 write_lock(&octeon_irq_ciu1_rwlock); 408 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
305 for_each_online_cpu(cpu) { 409 for_each_online_cpu(cpu) {
306 int coreid = cpu_logical_map(cpu); 410 int coreid = octeon_coreid_for_cpu(cpu);
307 uint64_t en1 = 411 uint64_t en1 =
308 cvmx_read_csr(CVMX_CIU_INTX_EN1 412 cvmx_read_csr(CVMX_CIU_INTX_EN1
309 (coreid * 2 + 1)); 413 (coreid * 2 + 1));
@@ -318,12 +422,46 @@ static int octeon_irq_ciu1_set_affinity(unsigned int irq, const struct cpumask *
318 * of them are done. 422 * of them are done.
319 */ 423 */
320 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 424 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
321 write_unlock(&octeon_irq_ciu1_rwlock); 425 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags);
426
427 return 0;
428}
322 429
430/*
431 * Set affinity for the irq for chips that have the EN*_W1{S,C}
432 * registers.
433 */
434static int octeon_irq_ciu1_set_affinity_v2(unsigned int irq,
435 const struct cpumask *dest)
436{
437 int cpu;
438 int index;
439 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
440 for_each_online_cpu(cpu) {
441 index = octeon_coreid_for_cpu(cpu) * 2 + 1;
442 if (cpumask_test_cpu(cpu, dest))
443 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1S(index), mask);
444 else
445 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1C(index), mask);
446 }
323 return 0; 447 return 0;
324} 448}
325#endif 449#endif
326 450
451/*
452 * Newer octeon chips have support for lockless CIU operation.
453 */
454static struct irq_chip octeon_irq_chip_ciu1_v2 = {
455 .name = "CIU0",
456 .enable = octeon_irq_ciu1_enable_v2,
457 .disable = octeon_irq_ciu1_disable_all_v2,
458 .ack = octeon_irq_ciu1_disable_v2,
459 .eoi = octeon_irq_ciu1_enable_v2,
460#ifdef CONFIG_SMP
461 .set_affinity = octeon_irq_ciu1_set_affinity_v2,
462#endif
463};
464
327static struct irq_chip octeon_irq_chip_ciu1 = { 465static struct irq_chip octeon_irq_chip_ciu1 = {
328 .name = "CIU1", 466 .name = "CIU1",
329 .enable = octeon_irq_ciu1_enable, 467 .enable = octeon_irq_ciu1_enable,
@@ -420,6 +558,8 @@ static struct irq_chip octeon_irq_chip_msi = {
420void __init arch_init_irq(void) 558void __init arch_init_irq(void)
421{ 559{
422 int irq; 560 int irq;
561 struct irq_chip *chip0;
562 struct irq_chip *chip1;
423 563
424#ifdef CONFIG_SMP 564#ifdef CONFIG_SMP
425 /* Set the default affinity to the boot cpu. */ 565 /* Set the default affinity to the boot cpu. */
@@ -430,6 +570,16 @@ void __init arch_init_irq(void)
430 if (NR_IRQS < OCTEON_IRQ_LAST) 570 if (NR_IRQS < OCTEON_IRQ_LAST)
431 pr_err("octeon_irq_init: NR_IRQS is set too low\n"); 571 pr_err("octeon_irq_init: NR_IRQS is set too low\n");
432 572
573 if (OCTEON_IS_MODEL(OCTEON_CN58XX_PASS2_X) ||
574 OCTEON_IS_MODEL(OCTEON_CN56XX_PASS2_X) ||
575 OCTEON_IS_MODEL(OCTEON_CN52XX_PASS2_X)) {
576 chip0 = &octeon_irq_chip_ciu0_v2;
577 chip1 = &octeon_irq_chip_ciu1_v2;
578 } else {
579 chip0 = &octeon_irq_chip_ciu0;
580 chip1 = &octeon_irq_chip_ciu1;
581 }
582
433 /* 0 - 15 reserved for i8259 master and slave controller. */ 583 /* 0 - 15 reserved for i8259 master and slave controller. */
434 584
435 /* 17 - 23 Mips internal */ 585 /* 17 - 23 Mips internal */
@@ -440,14 +590,12 @@ void __init arch_init_irq(void)
440 590
441 /* 24 - 87 CIU_INT_SUM0 */ 591 /* 24 - 87 CIU_INT_SUM0 */
442 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) { 592 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) {
443 set_irq_chip_and_handler(irq, &octeon_irq_chip_ciu0, 593 set_irq_chip_and_handler(irq, chip0, handle_percpu_irq);
444 handle_percpu_irq);
445 } 594 }
446 595
447 /* 88 - 151 CIU_INT_SUM1 */ 596 /* 88 - 151 CIU_INT_SUM1 */
448 for (irq = OCTEON_IRQ_WDOG0; irq <= OCTEON_IRQ_RESERVED151; irq++) { 597 for (irq = OCTEON_IRQ_WDOG0; irq <= OCTEON_IRQ_RESERVED151; irq++) {
449 set_irq_chip_and_handler(irq, &octeon_irq_chip_ciu1, 598 set_irq_chip_and_handler(irq, chip1, handle_percpu_irq);
450 handle_percpu_irq);
451 } 599 }
452 600
453#ifdef CONFIG_PCI_MSI 601#ifdef CONFIG_PCI_MSI
@@ -505,14 +653,10 @@ asmlinkage void plat_irq_dispatch(void)
505#ifdef CONFIG_HOTPLUG_CPU 653#ifdef CONFIG_HOTPLUG_CPU
506static int is_irq_enabled_on_cpu(unsigned int irq, unsigned int cpu) 654static int is_irq_enabled_on_cpu(unsigned int irq, unsigned int cpu)
507{ 655{
508 unsigned int isset; 656 unsigned int isset;
509#ifdef CONFIG_SMP 657 int coreid = octeon_coreid_for_cpu(cpu);
510 int coreid = cpu_logical_map(cpu);
511#else
512 int coreid = cvmx_get_core_num();
513#endif
514 int bit = (irq < OCTEON_IRQ_WDOG0) ? 658 int bit = (irq < OCTEON_IRQ_WDOG0) ?
515 irq - OCTEON_IRQ_WORKQ0 : irq - OCTEON_IRQ_WDOG0; 659 irq - OCTEON_IRQ_WORKQ0 : irq - OCTEON_IRQ_WDOG0;
516 if (irq < 64) { 660 if (irq < 64) {
517 isset = (cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)) & 661 isset = (cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)) &
518 (1ull << bit)) >> bit; 662 (1ull << bit)) >> bit;
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index 32d51a31dc48..c198efdf583e 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -65,11 +65,12 @@ void octeon_send_ipi_single(int cpu, unsigned int action)
65 cvmx_write_csr(CVMX_CIU_MBOX_SETX(coreid), action); 65 cvmx_write_csr(CVMX_CIU_MBOX_SETX(coreid), action);
66} 66}
67 67
68static inline void octeon_send_ipi_mask(cpumask_t mask, unsigned int action) 68static inline void octeon_send_ipi_mask(const struct cpumask *mask,
69 unsigned int action)
69{ 70{
70 unsigned int i; 71 unsigned int i;
71 72
72 for_each_cpu_mask(i, mask) 73 for_each_cpu_mask(i, *mask)
73 octeon_send_ipi_single(i, action); 74 octeon_send_ipi_single(i, action);
74} 75}
75 76
diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h
index efeddc8db8b1..0b89b83e2055 100644
--- a/arch/mips/include/asm/fixmap.h
+++ b/arch/mips/include/asm/fixmap.h
@@ -48,9 +48,9 @@ enum fixed_addresses {
48#define FIX_N_COLOURS 8 48#define FIX_N_COLOURS 8
49 FIX_CMAP_BEGIN, 49 FIX_CMAP_BEGIN,
50#ifdef CONFIG_MIPS_MT_SMTC 50#ifdef CONFIG_MIPS_MT_SMTC
51 FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * NR_CPUS), 51 FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * NR_CPUS * 2),
52#else 52#else
53 FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS, 53 FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * 2),
54#endif 54#endif
55#ifdef CONFIG_HIGHMEM 55#ifdef CONFIG_HIGHMEM
56 /* reserved pte's for temporary kernel mappings */ 56 /* reserved pte's for temporary kernel mappings */
diff --git a/arch/mips/include/asm/gcmpregs.h b/arch/mips/include/asm/gcmpregs.h
index 36fd969d64d6..c0cf76a2ca89 100644
--- a/arch/mips/include/asm/gcmpregs.h
+++ b/arch/mips/include/asm/gcmpregs.h
@@ -19,15 +19,20 @@
19#define GCMP_GDB_OFS 0x8000 /* Global Debug Block */ 19#define GCMP_GDB_OFS 0x8000 /* Global Debug Block */
20 20
21/* Offsets to individual GCMP registers from GCMP base */ 21/* Offsets to individual GCMP registers from GCMP base */
22#define GCMPOFS(block, tag, reg) (GCMP_##block##_OFS + GCMP_##tag##_##reg##_OFS) 22#define GCMPOFS(block, tag, reg) \
23 (GCMP_##block##_OFS + GCMP_##tag##_##reg##_OFS)
24#define GCMPOFSn(block, tag, reg, n) \
25 (GCMP_##block##_OFS + GCMP_##tag##_##reg##_OFS(n))
23 26
24#define GCMPGCBOFS(reg) GCMPOFS(GCB, GCB, reg) 27#define GCMPGCBOFS(reg) GCMPOFS(GCB, GCB, reg)
28#define GCMPGCBOFSn(reg, n) GCMPOFSn(GCB, GCB, reg, n)
25#define GCMPCLCBOFS(reg) GCMPOFS(CLCB, CCB, reg) 29#define GCMPCLCBOFS(reg) GCMPOFS(CLCB, CCB, reg)
26#define GCMPCOCBOFS(reg) GCMPOFS(COCB, CCB, reg) 30#define GCMPCOCBOFS(reg) GCMPOFS(COCB, CCB, reg)
27#define GCMPGDBOFS(reg) GCMPOFS(GDB, GDB, reg) 31#define GCMPGDBOFS(reg) GCMPOFS(GDB, GDB, reg)
28 32
29/* GCMP register access */ 33/* GCMP register access */
30#define GCMPGCB(reg) REGP(_gcmp_base, GCMPGCBOFS(reg)) 34#define GCMPGCB(reg) REGP(_gcmp_base, GCMPGCBOFS(reg))
35#define GCMPGCBn(reg, n) REGP(_gcmp_base, GCMPGCBOFSn(reg, n))
31#define GCMPCLCB(reg) REGP(_gcmp_base, GCMPCLCBOFS(reg)) 36#define GCMPCLCB(reg) REGP(_gcmp_base, GCMPCLCBOFS(reg))
32#define GCMPCOCB(reg) REGP(_gcmp_base, GCMPCOCBOFS(reg)) 37#define GCMPCOCB(reg) REGP(_gcmp_base, GCMPCOCBOFS(reg))
33#define GCMPGDB(reg) REGP(_gcmp_base, GCMPGDBOFS(reg)) 38#define GCMPGDB(reg) REGP(_gcmp_base, GCMPGDBOFS(reg))
@@ -49,10 +54,10 @@
49#define GCMP_GCB_GCMPB_GCMPBASE_MSK GCMPGCBMSK(GCMPB_GCMPBASE, 17) 54#define GCMP_GCB_GCMPB_GCMPBASE_MSK GCMPGCBMSK(GCMPB_GCMPBASE, 17)
50#define GCMP_GCB_GCMPB_CMDEFTGT_SHF 0 55#define GCMP_GCB_GCMPB_CMDEFTGT_SHF 0
51#define GCMP_GCB_GCMPB_CMDEFTGT_MSK GCMPGCBMSK(GCMPB_CMDEFTGT, 2) 56#define GCMP_GCB_GCMPB_CMDEFTGT_MSK GCMPGCBMSK(GCMPB_CMDEFTGT, 2)
52#define GCMP_GCB_GCMPB_CMDEFTGT_MEM 0 57#define GCMP_GCB_GCMPB_CMDEFTGT_DISABLED 0
53#define GCMP_GCB_GCMPB_CMDEFTGT_MEM1 1 58#define GCMP_GCB_GCMPB_CMDEFTGT_MEM 1
54#define GCMP_GCB_GCMPB_CMDEFTGT_IOCU1 2 59#define GCMP_GCB_GCMPB_CMDEFTGT_IOCU1 2
55#define GCMP_GCB_GCMPB_CMDEFTGT_IOCU2 3 60#define GCMP_GCB_GCMPB_CMDEFTGT_IOCU2 3
56#define GCMP_GCB_CCMC_OFS 0x0010 /* Global CM Control */ 61#define GCMP_GCB_CCMC_OFS 0x0010 /* Global CM Control */
57#define GCMP_GCB_GCSRAP_OFS 0x0020 /* Global CSR Access Privilege */ 62#define GCMP_GCB_GCSRAP_OFS 0x0020 /* Global CSR Access Privilege */
58#define GCMP_GCB_GCSRAP_CMACCESS_SHF 0 63#define GCMP_GCB_GCSRAP_CMACCESS_SHF 0
@@ -115,5 +120,6 @@
115#define GCMP_CCB_DBGGROUP_OFS 0x0100 /* DebugBreak Group */ 120#define GCMP_CCB_DBGGROUP_OFS 0x0100 /* DebugBreak Group */
116 121
117extern int __init gcmp_probe(unsigned long, unsigned long); 122extern int __init gcmp_probe(unsigned long, unsigned long);
118 123extern int __init gcmp_niocu(void);
124extern void __init gcmp_setregion(int, unsigned long, unsigned long, int);
119#endif /* _ASM_GCMPREGS_H */ 125#endif /* _ASM_GCMPREGS_H */
diff --git a/arch/mips/include/asm/gic.h b/arch/mips/include/asm/gic.h
index a8f57341f123..9b9436a4d816 100644
--- a/arch/mips/include/asm/gic.h
+++ b/arch/mips/include/asm/gic.h
@@ -12,7 +12,6 @@
12#define _ASM_GICREGS_H 12#define _ASM_GICREGS_H
13 13
14#undef GICISBYTELITTLEENDIAN 14#undef GICISBYTELITTLEENDIAN
15#define GICISWORDLITTLEENDIAN
16 15
17/* Constants */ 16/* Constants */
18#define GIC_POL_POS 1 17#define GIC_POL_POS 1
@@ -20,11 +19,7 @@
20#define GIC_TRIG_EDGE 1 19#define GIC_TRIG_EDGE 1
21#define GIC_TRIG_LEVEL 0 20#define GIC_TRIG_LEVEL 0
22 21
23#ifdef CONFIG_SMP
24#define GIC_NUM_INTRS (24 + NR_CPUS * 2) 22#define GIC_NUM_INTRS (24 + NR_CPUS * 2)
25#else
26#define GIC_NUM_INTRS 32
27#endif
28 23
29#define MSK(n) ((1 << (n)) - 1) 24#define MSK(n) ((1 << (n)) - 1)
30#define REG32(addr) (*(volatile unsigned int *) (addr)) 25#define REG32(addr) (*(volatile unsigned int *) (addr))
@@ -70,13 +65,13 @@
70#define USM_VISIBLE_SECTION_SIZE 0x10000 65#define USM_VISIBLE_SECTION_SIZE 0x10000
71 66
72/* Register Map for Shared Section */ 67/* Register Map for Shared Section */
73#if defined(CONFIG_CPU_LITTLE_ENDIAN) || defined(GICISWORDLITTLEENDIAN)
74 68
75#define GIC_SH_CONFIG_OFS 0x0000 69#define GIC_SH_CONFIG_OFS 0x0000
76 70
77/* Shared Global Counter */ 71/* Shared Global Counter */
78#define GIC_SH_COUNTER_31_00_OFS 0x0010 72#define GIC_SH_COUNTER_31_00_OFS 0x0010
79#define GIC_SH_COUNTER_63_32_OFS 0x0014 73#define GIC_SH_COUNTER_63_32_OFS 0x0014
74#define GIC_SH_REVISIONID_OFS 0x0020
80 75
81/* Interrupt Polarity */ 76/* Interrupt Polarity */
82#define GIC_SH_POL_31_0_OFS 0x0100 77#define GIC_SH_POL_31_0_OFS 0x0100
@@ -164,24 +159,31 @@
164 (GIC_SH_INTR_MAP_TO_VPE_BASE_OFS + (32 * (intr)) + (((vpe) / 32) * 4)) 159 (GIC_SH_INTR_MAP_TO_VPE_BASE_OFS + (32 * (intr)) + (((vpe) / 32) * 4))
165#define GIC_SH_MAP_TO_VPE_REG_BIT(vpe) (1 << ((vpe) % 32)) 160#define GIC_SH_MAP_TO_VPE_REG_BIT(vpe) (1 << ((vpe) % 32))
166 161
162/* Convert an interrupt number to a byte offset/bit for multi-word registers */
163#define GIC_INTR_OFS(intr) (((intr) / 32)*4)
164#define GIC_INTR_BIT(intr) ((intr) % 32)
165
167/* Polarity : Reset Value is always 0 */ 166/* Polarity : Reset Value is always 0 */
168#define GIC_SH_SET_POLARITY_OFS 0x0100 167#define GIC_SH_SET_POLARITY_OFS 0x0100
169#define GIC_SET_POLARITY(intr, pol) \ 168#define GIC_SET_POLARITY(intr, pol) \
170 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_POLARITY_OFS + (((intr) / 32) * 4)), (pol) << ((intr) % 32)) 169 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_POLARITY_OFS + \
170 GIC_INTR_OFS(intr)), (pol) << GIC_INTR_BIT(intr))
171 171
172/* Triggering : Reset Value is always 0 */ 172/* Triggering : Reset Value is always 0 */
173#define GIC_SH_SET_TRIGGER_OFS 0x0180 173#define GIC_SH_SET_TRIGGER_OFS 0x0180
174#define GIC_SET_TRIGGER(intr, trig) \ 174#define GIC_SET_TRIGGER(intr, trig) \
175 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_TRIGGER_OFS + (((intr) / 32) * 4)), (trig) << ((intr) % 32)) 175 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_TRIGGER_OFS + \
176 GIC_INTR_OFS(intr)), (trig) << GIC_INTR_BIT(intr))
176 177
177/* Mask manipulation */ 178/* Mask manipulation */
178#define GIC_SH_SMASK_OFS 0x0380 179#define GIC_SH_SMASK_OFS 0x0380
179#define GIC_SET_INTR_MASK(intr, val) \ 180#define GIC_SET_INTR_MASK(intr) \
180 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_SMASK_OFS + (((intr) / 32) * 4)), ((val) << ((intr) % 32))) 181 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_SMASK_OFS + \
181 182 GIC_INTR_OFS(intr)), 1 << GIC_INTR_BIT(intr))
182#define GIC_SH_RMASK_OFS 0x0300 183#define GIC_SH_RMASK_OFS 0x0300
183#define GIC_CLR_INTR_MASK(intr, val) \ 184#define GIC_CLR_INTR_MASK(intr) \
184 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_RMASK_OFS + (((intr) / 32) * 4)), ((val) << ((intr) % 32))) 185 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_RMASK_OFS + \
186 GIC_INTR_OFS(intr)), 1 << GIC_INTR_BIT(intr))
185 187
186/* Register Map for Local Section */ 188/* Register Map for Local Section */
187#define GIC_VPE_CTL_OFS 0x0000 189#define GIC_VPE_CTL_OFS 0x0000
@@ -219,161 +221,6 @@
219#define GIC_UMV_SH_COUNTER_31_00_OFS 0x0000 221#define GIC_UMV_SH_COUNTER_31_00_OFS 0x0000
220#define GIC_UMV_SH_COUNTER_63_32_OFS 0x0004 222#define GIC_UMV_SH_COUNTER_63_32_OFS 0x0004
221 223
222#else /* CONFIG_CPU_BIG_ENDIAN */
223
224#define GIC_SH_CONFIG_OFS 0x0000
225
226/* Shared Global Counter */
227#define GIC_SH_COUNTER_31_00_OFS 0x0014
228#define GIC_SH_COUNTER_63_32_OFS 0x0010
229
230/* Interrupt Polarity */
231#define GIC_SH_POL_31_0_OFS 0x0104
232#define GIC_SH_POL_63_32_OFS 0x0100
233#define GIC_SH_POL_95_64_OFS 0x010c
234#define GIC_SH_POL_127_96_OFS 0x0108
235#define GIC_SH_POL_159_128_OFS 0x0114
236#define GIC_SH_POL_191_160_OFS 0x0110
237#define GIC_SH_POL_223_192_OFS 0x011c
238#define GIC_SH_POL_255_224_OFS 0x0118
239
240/* Edge/Level Triggering */
241#define GIC_SH_TRIG_31_0_OFS 0x0184
242#define GIC_SH_TRIG_63_32_OFS 0x0180
243#define GIC_SH_TRIG_95_64_OFS 0x018c
244#define GIC_SH_TRIG_127_96_OFS 0x0188
245#define GIC_SH_TRIG_159_128_OFS 0x0194
246#define GIC_SH_TRIG_191_160_OFS 0x0190
247#define GIC_SH_TRIG_223_192_OFS 0x019c
248#define GIC_SH_TRIG_255_224_OFS 0x0198
249
250/* Dual Edge Triggering */
251#define GIC_SH_DUAL_31_0_OFS 0x0204
252#define GIC_SH_DUAL_63_32_OFS 0x0200
253#define GIC_SH_DUAL_95_64_OFS 0x020c
254#define GIC_SH_DUAL_127_96_OFS 0x0208
255#define GIC_SH_DUAL_159_128_OFS 0x0214
256#define GIC_SH_DUAL_191_160_OFS 0x0210
257#define GIC_SH_DUAL_223_192_OFS 0x021c
258#define GIC_SH_DUAL_255_224_OFS 0x0218
259
260/* Set/Clear corresponding bit in Edge Detect Register */
261#define GIC_SH_WEDGE_OFS 0x0280
262
263/* Reset Mask - Disables Interrupt */
264#define GIC_SH_RMASK_31_0_OFS 0x0304
265#define GIC_SH_RMASK_63_32_OFS 0x0300
266#define GIC_SH_RMASK_95_64_OFS 0x030c
267#define GIC_SH_RMASK_127_96_OFS 0x0308
268#define GIC_SH_RMASK_159_128_OFS 0x0314
269#define GIC_SH_RMASK_191_160_OFS 0x0310
270#define GIC_SH_RMASK_223_192_OFS 0x031c
271#define GIC_SH_RMASK_255_224_OFS 0x0318
272
273/* Set Mask (WO) - Enables Interrupt */
274#define GIC_SH_SMASK_31_0_OFS 0x0384
275#define GIC_SH_SMASK_63_32_OFS 0x0380
276#define GIC_SH_SMASK_95_64_OFS 0x038c
277#define GIC_SH_SMASK_127_96_OFS 0x0388
278#define GIC_SH_SMASK_159_128_OFS 0x0394
279#define GIC_SH_SMASK_191_160_OFS 0x0390
280#define GIC_SH_SMASK_223_192_OFS 0x039c
281#define GIC_SH_SMASK_255_224_OFS 0x0398
282
283/* Global Interrupt Mask Register (RO) - Bit Set == Interrupt enabled */
284#define GIC_SH_MASK_31_0_OFS 0x0404
285#define GIC_SH_MASK_63_32_OFS 0x0400
286#define GIC_SH_MASK_95_64_OFS 0x040c
287#define GIC_SH_MASK_127_96_OFS 0x0408
288#define GIC_SH_MASK_159_128_OFS 0x0414
289#define GIC_SH_MASK_191_160_OFS 0x0410
290#define GIC_SH_MASK_223_192_OFS 0x041c
291#define GIC_SH_MASK_255_224_OFS 0x0418
292
293/* Pending Global Interrupts (RO) */
294#define GIC_SH_PEND_31_0_OFS 0x0484
295#define GIC_SH_PEND_63_32_OFS 0x0480
296#define GIC_SH_PEND_95_64_OFS 0x048c
297#define GIC_SH_PEND_127_96_OFS 0x0488
298#define GIC_SH_PEND_159_128_OFS 0x0494
299#define GIC_SH_PEND_191_160_OFS 0x0490
300#define GIC_SH_PEND_223_192_OFS 0x049c
301#define GIC_SH_PEND_255_224_OFS 0x0498
302
303#define GIC_SH_INTR_MAP_TO_PIN_BASE_OFS 0x0500
304
305/* Maps Interrupt X to a Pin */
306#define GIC_SH_MAP_TO_PIN(intr) \
307 (GIC_SH_INTR_MAP_TO_PIN_BASE_OFS + (4 * intr))
308
309#define GIC_SH_INTR_MAP_TO_VPE_BASE_OFS 0x2004
310
311/*
312 * Maps Interrupt X to a VPE. This is more complex than the LE case, as
313 * odd and even registers need to be transposed. It does work - trust me!
314 */
315#define GIC_SH_MAP_TO_VPE_REG_OFF(intr, vpe) \
316 (GIC_SH_INTR_MAP_TO_VPE_BASE_OFS + (32 * (intr)) + \
317 (((((vpe) / 32) ^ 1) - 1) * 4))
318#define GIC_SH_MAP_TO_VPE_REG_BIT(vpe) (1 << ((vpe) % 32))
319
320/* Polarity */
321#define GIC_SH_SET_POLARITY_OFS 0x0100
322#define GIC_SET_POLARITY(intr, pol) \
323 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_POLARITY_OFS + 4 + (((((intr) / 32) ^ 1) - 1) * 4)), (pol) << ((intr) % 32))
324
325/* Triggering */
326#define GIC_SH_SET_TRIGGER_OFS 0x0180
327#define GIC_SET_TRIGGER(intr, trig) \
328 GICBIS(GIC_REG_ADDR(SHARED, GIC_SH_SET_TRIGGER_OFS + 4 + (((((intr) / 32) ^ 1) - 1) * 4)), (trig) << ((intr) % 32))
329
330/* Mask manipulation */
331#define GIC_SH_SMASK_OFS 0x0380
332#define GIC_SET_INTR_MASK(intr, val) \
333 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_SMASK_OFS + 4 + (((((intr) / 32) ^ 1) - 1) * 4)), ((val) << ((intr) % 32)))
334
335#define GIC_SH_RMASK_OFS 0x0300
336#define GIC_CLR_INTR_MASK(intr, val) \
337 GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_RMASK_OFS + 4 + (((((intr) / 32) ^ 1) - 1) * 4)), ((val) << ((intr) % 32)))
338
339/* Register Map for Local Section */
340#define GIC_VPE_CTL_OFS 0x0000
341#define GIC_VPE_PEND_OFS 0x0004
342#define GIC_VPE_MASK_OFS 0x0008
343#define GIC_VPE_RMASK_OFS 0x000c
344#define GIC_VPE_SMASK_OFS 0x0010
345#define GIC_VPE_WD_MAP_OFS 0x0040
346#define GIC_VPE_COMPARE_MAP_OFS 0x0044
347#define GIC_VPE_TIMER_MAP_OFS 0x0048
348#define GIC_VPE_PERFCTR_MAP_OFS 0x0050
349#define GIC_VPE_SWINT0_MAP_OFS 0x0054
350#define GIC_VPE_SWINT1_MAP_OFS 0x0058
351#define GIC_VPE_OTHER_ADDR_OFS 0x0080
352#define GIC_VPE_WD_CONFIG0_OFS 0x0090
353#define GIC_VPE_WD_COUNT0_OFS 0x0094
354#define GIC_VPE_WD_INITIAL0_OFS 0x0098
355#define GIC_VPE_COMPARE_LO_OFS 0x00a4
356#define GIC_VPE_COMPARE_HI_OFS 0x00a0
357
358#define GIC_VPE_EIC_SHADOW_SET_BASE 0x0100
359#define GIC_VPE_EIC_SS(intr) \
360 (GIC_EIC_SHADOW_SET_BASE + (4 * intr))
361
362#define GIC_VPE_EIC_VEC_BASE 0x0800
363#define GIC_VPE_EIC_VEC(intr) \
364 (GIC_VPE_EIC_VEC_BASE + (4 * intr))
365
366#define GIC_VPE_TENABLE_NMI_OFS 0x1000
367#define GIC_VPE_TENABLE_YQ_OFS 0x1004
368#define GIC_VPE_TENABLE_INT_31_0_OFS 0x1080
369#define GIC_VPE_TENABLE_INT_63_32_OFS 0x1084
370
371/* User Mode Visible Section Register Map */
372#define GIC_UMV_SH_COUNTER_31_00_OFS 0x0004
373#define GIC_UMV_SH_COUNTER_63_32_OFS 0x0000
374
375#endif /* !LE */
376
377/* Masks */ 224/* Masks */
378#define GIC_SH_CONFIG_COUNTSTOP_SHF 28 225#define GIC_SH_CONFIG_COUNTSTOP_SHF 28
379#define GIC_SH_CONFIG_COUNTSTOP_MSK (MSK(1) << GIC_SH_CONFIG_COUNTSTOP_SHF) 226#define GIC_SH_CONFIG_COUNTSTOP_MSK (MSK(1) << GIC_SH_CONFIG_COUNTSTOP_SHF)
@@ -473,12 +320,13 @@ struct gic_intrmask_regs {
473 * in building ipi_map. 320 * in building ipi_map.
474 */ 321 */
475struct gic_intr_map { 322struct gic_intr_map {
476 unsigned int intrnum; /* Ext Intr Num */
477 unsigned int cpunum; /* Directed to this CPU */ 323 unsigned int cpunum; /* Directed to this CPU */
478 unsigned int pin; /* Directed to this Pin */ 324 unsigned int pin; /* Directed to this Pin */
479 unsigned int polarity; /* Polarity : +/- */ 325 unsigned int polarity; /* Polarity : +/- */
480 unsigned int trigtype; /* Trigger : Edge/Levl */ 326 unsigned int trigtype; /* Trigger : Edge/Levl */
481 unsigned int ipiflag; /* Is used for IPI ? */ 327 unsigned int flags; /* Misc flags */
328#define GIC_FLAG_IPI 0x01
329#define GIC_FLAG_TRANSPARENT 0x02
482}; 330};
483 331
484extern void gic_init(unsigned long gic_base_addr, 332extern void gic_init(unsigned long gic_base_addr,
diff --git a/arch/mips/include/asm/mach-ar7/ar7.h b/arch/mips/include/asm/mach-ar7/ar7.h
index de71694614de..21cbbc706448 100644
--- a/arch/mips/include/asm/mach-ar7/ar7.h
+++ b/arch/mips/include/asm/mach-ar7/ar7.h
@@ -78,6 +78,9 @@
78#define AR7_REF_CLOCK 25000000 78#define AR7_REF_CLOCK 25000000
79#define AR7_XTAL_CLOCK 24000000 79#define AR7_XTAL_CLOCK 24000000
80 80
81/* DCL */
82#define AR7_WDT_HW_ENA 0x10
83
81struct plat_cpmac_data { 84struct plat_cpmac_data {
82 int reset_bit; 85 int reset_bit;
83 int power_bit; 86 int power_bit;
diff --git a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
index feea00148b5d..91595fa89034 100644
--- a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
@@ -104,6 +104,8 @@ static inline int au1100_gpio2_to_irq(int gpio)
104 104
105 if ((gpio >= 8) && (gpio <= 15)) 105 if ((gpio >= 8) && (gpio <= 15))
106 return MAKE_IRQ(0, 29); /* shared GPIO208_215 */ 106 return MAKE_IRQ(0, 29); /* shared GPIO208_215 */
107
108 return -ENXIO;
107} 109}
108 110
109#ifdef CONFIG_SOC_AU1100 111#ifdef CONFIG_SOC_AU1100
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
deleted file mode 100644
index bf348f573bbc..000000000000
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef BCM63XX_DEV_UART_H_
2#define BCM63XX_DEV_UART_H_
3
4int bcm63xx_uart_register(void);
5
6#endif /* BCM63XX_DEV_UART_H_ */
diff --git a/arch/mips/include/asm/mach-ip27/topology.h b/arch/mips/include/asm/mach-ip27/topology.h
index f6837422fe65..09a59bcc1b07 100644
--- a/arch/mips/include/asm/mach-ip27/topology.h
+++ b/arch/mips/include/asm/mach-ip27/topology.h
@@ -44,8 +44,8 @@ extern unsigned char __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES];
44 .busy_factor = 32, \ 44 .busy_factor = 32, \
45 .imbalance_pct = 125, \ 45 .imbalance_pct = 125, \
46 .cache_nice_tries = 1, \ 46 .cache_nice_tries = 1, \
47 .flags = SD_LOAD_BALANCE \ 47 .flags = SD_LOAD_BALANCE | \
48 | SD_BALANCE_EXEC \ 48 SD_BALANCE_EXEC, \
49 .last_balance = jiffies, \ 49 .last_balance = jiffies, \
50 .balance_interval = 1, \ 50 .balance_interval = 1, \
51 .nr_balance_failed = 0, \ 51 .nr_balance_failed = 0, \
diff --git a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
index ce5b6e270e3f..9947e57c91de 100644
--- a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
@@ -29,7 +29,7 @@
29#define cpu_has_cache_cdex_p 0 29#define cpu_has_cache_cdex_p 0
30#define cpu_has_cache_cdex_s 0 30#define cpu_has_cache_cdex_s 0
31#define cpu_has_counter 1 31#define cpu_has_counter 1
32#define cpu_has_dc_aliases 1 32#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
33#define cpu_has_divec 0 33#define cpu_has_divec 0
34#define cpu_has_dsp 0 34#define cpu_has_dsp 0
35#define cpu_has_ejtag 0 35#define cpu_has_ejtag 0
@@ -54,6 +54,5 @@
54#define cpu_has_vce 0 54#define cpu_has_vce 0
55#define cpu_has_vtag_icache 0 55#define cpu_has_vtag_icache 0
56#define cpu_has_watch 1 56#define cpu_has_watch 1
57#define cpu_icache_snoops_remote_store 1
58 57
59#endif /* __ASM_MACH_LOONGSON_CPU_FEATURE_OVERRIDES_H */ 58#endif /* __ASM_MACH_LOONGSON_CPU_FEATURE_OVERRIDES_H */
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h
index d9743536a621..6083db586500 100644
--- a/arch/mips/include/asm/mmu_context.h
+++ b/arch/mips/include/asm/mmu_context.h
@@ -16,6 +16,7 @@
16#include <linux/smp.h> 16#include <linux/smp.h>
17#include <linux/slab.h> 17#include <linux/slab.h>
18#include <asm/cacheflush.h> 18#include <asm/cacheflush.h>
19#include <asm/hazards.h>
19#include <asm/tlbflush.h> 20#include <asm/tlbflush.h>
20#ifdef CONFIG_MIPS_MT_SMTC 21#ifdef CONFIG_MIPS_MT_SMTC
21#include <asm/mipsmtregs.h> 22#include <asm/mipsmtregs.h>
@@ -36,11 +37,13 @@ extern unsigned long pgd_current[];
36#ifdef CONFIG_32BIT 37#ifdef CONFIG_32BIT
37#define TLBMISS_HANDLER_SETUP() \ 38#define TLBMISS_HANDLER_SETUP() \
38 write_c0_context((unsigned long) smp_processor_id() << 25); \ 39 write_c0_context((unsigned long) smp_processor_id() << 25); \
40 back_to_back_c0_hazard(); \
39 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) 41 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
40#endif 42#endif
41#ifdef CONFIG_64BIT 43#ifdef CONFIG_64BIT
42#define TLBMISS_HANDLER_SETUP() \ 44#define TLBMISS_HANDLER_SETUP() \
43 write_c0_context((unsigned long) smp_processor_id() << 26); \ 45 write_c0_context((unsigned long) smp_processor_id() << 26); \
46 back_to_back_c0_hazard(); \
44 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) 47 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
45#endif 48#endif
46 49
@@ -165,12 +168,12 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
165 * having ASID_MASK smaller than the hardware maximum, 168 * having ASID_MASK smaller than the hardware maximum,
166 * make sure no "soft" bits become "hard"... 169 * make sure no "soft" bits become "hard"...
167 */ 170 */
168 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) 171 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) |
169 | (cpu_context(cpu, next) & ASID_MASK)); 172 cpu_asid(cpu, next));
170 ehb(); /* Make sure it propagates to TCStatus */ 173 ehb(); /* Make sure it propagates to TCStatus */
171 evpe(mtflags); 174 evpe(mtflags);
172#else 175#else
173 write_c0_entryhi(cpu_context(cpu, next)); 176 write_c0_entryhi(cpu_asid(cpu, next));
174#endif /* CONFIG_MIPS_MT_SMTC */ 177#endif /* CONFIG_MIPS_MT_SMTC */
175 TLBMISS_HANDLER_SETUP_PGD(next->pgd); 178 TLBMISS_HANDLER_SETUP_PGD(next->pgd);
176 179
@@ -226,11 +229,11 @@ activate_mm(struct mm_struct *prev, struct mm_struct *next)
226 } 229 }
227 /* See comments for similar code above */ 230 /* See comments for similar code above */
228 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) | 231 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) |
229 (cpu_context(cpu, next) & ASID_MASK)); 232 cpu_asid(cpu, next));
230 ehb(); /* Make sure it propagates to TCStatus */ 233 ehb(); /* Make sure it propagates to TCStatus */
231 evpe(mtflags); 234 evpe(mtflags);
232#else 235#else
233 write_c0_entryhi(cpu_context(cpu, next)); 236 write_c0_entryhi(cpu_asid(cpu, next));
234#endif /* CONFIG_MIPS_MT_SMTC */ 237#endif /* CONFIG_MIPS_MT_SMTC */
235 TLBMISS_HANDLER_SETUP_PGD(next->pgd); 238 TLBMISS_HANDLER_SETUP_PGD(next->pgd);
236 239
diff --git a/arch/mips/include/asm/setup.h b/arch/mips/include/asm/setup.h
index e600cedda976..50511aac04e9 100644
--- a/arch/mips/include/asm/setup.h
+++ b/arch/mips/include/asm/setup.h
@@ -1,7 +1,7 @@
1#ifndef _MIPS_SETUP_H 1#ifndef _MIPS_SETUP_H
2#define _MIPS_SETUP_H 2#define _MIPS_SETUP_H
3 3
4#define COMMAND_LINE_SIZE 256 4#define COMMAND_LINE_SIZE 4096
5 5
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7extern void setup_early_printk(void); 7extern void setup_early_printk(void);
diff --git a/arch/mips/include/asm/smtc_ipi.h b/arch/mips/include/asm/smtc_ipi.h
index 8ce517574340..15278dbd7e79 100644
--- a/arch/mips/include/asm/smtc_ipi.h
+++ b/arch/mips/include/asm/smtc_ipi.h
@@ -45,6 +45,7 @@ struct smtc_ipi_q {
45 spinlock_t lock; 45 spinlock_t lock;
46 struct smtc_ipi *tail; 46 struct smtc_ipi *tail;
47 int depth; 47 int depth;
48 int resched_flag; /* reschedule already queued */
48}; 49};
49 50
50static inline void smtc_ipi_nq(struct smtc_ipi_q *q, struct smtc_ipi *p) 51static inline void smtc_ipi_nq(struct smtc_ipi_q *q, struct smtc_ipi *p)
diff --git a/arch/mips/include/asm/spram.h b/arch/mips/include/asm/spram.h
new file mode 100644
index 000000000000..0b89006e4907
--- /dev/null
+++ b/arch/mips/include/asm/spram.h
@@ -0,0 +1,10 @@
1#ifndef _MIPS_SPRAM_H
2#define _MIPS_SPRAM_H
3
4#ifdef CONFIG_CPU_MIPSR2
5extern __init void spram_config(void);
6#else
7static inline void spram_config(void) { };
8#endif /* CONFIG_CPU_MIPSR2 */
9
10#endif /* _MIPS_SPRAM_H */
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
index 01cc1630b66c..845da2107ed1 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arch/mips/include/asm/thread_info.h
@@ -86,14 +86,7 @@ register struct thread_info *__current_thread_info __asm__("$28");
86#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR 86#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
87 87
88#ifdef CONFIG_DEBUG_STACK_USAGE 88#ifdef CONFIG_DEBUG_STACK_USAGE
89#define alloc_thread_info(tsk) \ 89#define alloc_thread_info(tsk) kzalloc(THREAD_SIZE, GFP_KERNEL)
90({ \
91 struct thread_info *ret; \
92 \
93 ret = kzalloc(THREAD_SIZE, GFP_KERNEL); \
94 \
95 ret; \
96})
97#else 90#else
98#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL) 91#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
99#endif 92#endif
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index 7fd170d007e7..7bd32d04c2cc 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -134,7 +134,7 @@ static irqreturn_t r4030_timer_interrupt(int irq, void *dev_id)
134 134
135static struct irqaction r4030_timer_irqaction = { 135static struct irqaction r4030_timer_irqaction = {
136 .handler = r4030_timer_interrupt, 136 .handler = r4030_timer_interrupt,
137 .flags = IRQF_DISABLED, 137 .flags = IRQF_DISABLED | IRQF_TIMER,
138 .name = "R4030 timer", 138 .name = "R4030 timer",
139}; 139};
140 140
diff --git a/arch/mips/kernel/cevt-bcm1480.c b/arch/mips/kernel/cevt-bcm1480.c
index e02f79b1eb51..bfea327c636c 100644
--- a/arch/mips/kernel/cevt-bcm1480.c
+++ b/arch/mips/kernel/cevt-bcm1480.c
@@ -144,7 +144,7 @@ void __cpuinit sb1480_clockevent_init(void)
144 bcm1480_unmask_irq(cpu, irq); 144 bcm1480_unmask_irq(cpu, irq);
145 145
146 action->handler = sibyte_counter_handler; 146 action->handler = sibyte_counter_handler;
147 action->flags = IRQF_DISABLED | IRQF_PERCPU; 147 action->flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER;
148 action->name = name; 148 action->name = name;
149 action->dev_id = cd; 149 action->dev_id = cd;
150 150
diff --git a/arch/mips/kernel/cevt-ds1287.c b/arch/mips/kernel/cevt-ds1287.c
index 6996da4d74a2..00a4da277cbb 100644
--- a/arch/mips/kernel/cevt-ds1287.c
+++ b/arch/mips/kernel/cevt-ds1287.c
@@ -107,7 +107,7 @@ static irqreturn_t ds1287_interrupt(int irq, void *dev_id)
107 107
108static struct irqaction ds1287_irqaction = { 108static struct irqaction ds1287_irqaction = {
109 .handler = ds1287_interrupt, 109 .handler = ds1287_interrupt,
110 .flags = IRQF_DISABLED | IRQF_PERCPU, 110 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
111 .name = "ds1287", 111 .name = "ds1287",
112}; 112};
113 113
diff --git a/arch/mips/kernel/cevt-gt641xx.c b/arch/mips/kernel/cevt-gt641xx.c
index 92351e00ae0e..f5d265eb6eae 100644
--- a/arch/mips/kernel/cevt-gt641xx.c
+++ b/arch/mips/kernel/cevt-gt641xx.c
@@ -113,7 +113,7 @@ static irqreturn_t gt641xx_timer0_interrupt(int irq, void *dev_id)
113 113
114static struct irqaction gt641xx_timer0_irqaction = { 114static struct irqaction gt641xx_timer0_irqaction = {
115 .handler = gt641xx_timer0_interrupt, 115 .handler = gt641xx_timer0_interrupt,
116 .flags = IRQF_DISABLED | IRQF_PERCPU, 116 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
117 .name = "gt641xx_timer0", 117 .name = "gt641xx_timer0",
118}; 118};
119 119
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index 2652362ce047..b469ad05d520 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -83,7 +83,7 @@ out:
83 83
84struct irqaction c0_compare_irqaction = { 84struct irqaction c0_compare_irqaction = {
85 .handler = c0_compare_interrupt, 85 .handler = c0_compare_interrupt,
86 .flags = IRQF_DISABLED | IRQF_PERCPU, 86 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
87 .name = "timer", 87 .name = "timer",
88}; 88};
89 89
diff --git a/arch/mips/kernel/cevt-sb1250.c b/arch/mips/kernel/cevt-sb1250.c
index ac5903d1b20e..da78eeaea6e8 100644
--- a/arch/mips/kernel/cevt-sb1250.c
+++ b/arch/mips/kernel/cevt-sb1250.c
@@ -143,7 +143,7 @@ void __cpuinit sb1250_clockevent_init(void)
143 sb1250_unmask_irq(cpu, irq); 143 sb1250_unmask_irq(cpu, irq);
144 144
145 action->handler = sibyte_counter_handler; 145 action->handler = sibyte_counter_handler;
146 action->flags = IRQF_DISABLED | IRQF_PERCPU; 146 action->flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER;
147 action->name = name; 147 action->name = name;
148 action->dev_id = cd; 148 action->dev_id = cd;
149 149
diff --git a/arch/mips/kernel/cevt-txx9.c b/arch/mips/kernel/cevt-txx9.c
index 0037f21baf0d..218ee6bda935 100644
--- a/arch/mips/kernel/cevt-txx9.c
+++ b/arch/mips/kernel/cevt-txx9.c
@@ -146,7 +146,7 @@ static irqreturn_t txx9tmr_interrupt(int irq, void *dev_id)
146 146
147static struct irqaction txx9tmr_irq = { 147static struct irqaction txx9tmr_irq = {
148 .handler = txx9tmr_interrupt, 148 .handler = txx9tmr_interrupt,
149 .flags = IRQF_DISABLED | IRQF_PERCPU, 149 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
150 .name = "txx9tmr", 150 .name = "txx9tmr",
151 .dev_id = &txx9_clock_event_device, 151 .dev_id = &txx9_clock_event_device,
152}; 152};
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index f709657e4dcd..7a51866068a4 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -23,7 +23,7 @@
23#include <asm/mipsregs.h> 23#include <asm/mipsregs.h>
24#include <asm/system.h> 24#include <asm/system.h>
25#include <asm/watch.h> 25#include <asm/watch.h>
26 26#include <asm/spram.h>
27/* 27/*
28 * Not all of the MIPS CPUs have the "wait" instruction available. Moreover, 28 * Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
29 * the implementation of the "wait" feature differs between CPU families. This 29 * the implementation of the "wait" feature differs between CPU families. This
@@ -711,12 +711,6 @@ static void __cpuinit decode_configs(struct cpuinfo_mips *c)
711 mips_probe_watch_registers(c); 711 mips_probe_watch_registers(c);
712} 712}
713 713
714#ifdef CONFIG_CPU_MIPSR2
715extern void spram_config(void);
716#else
717static inline void spram_config(void) {}
718#endif
719
720static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu) 714static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu)
721{ 715{
722 decode_configs(c); 716 decode_configs(c);
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index 531ce7b16124..ea695d9605e9 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -191,6 +191,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
191 /* Set the SP after an empty pt_regs. */ 191 /* Set the SP after an empty pt_regs. */
192 PTR_LI sp, _THREAD_SIZE - 32 - PT_SIZE 192 PTR_LI sp, _THREAD_SIZE - 32 - PT_SIZE
193 PTR_ADDU sp, $28 193 PTR_ADDU sp, $28
194 back_to_back_c0_hazard
194 set_saved_sp sp, t0, t1 195 set_saved_sp sp, t0, t1
195 PTR_SUBU sp, 4 * SZREG # init stack pointer 196 PTR_SUBU sp, 4 * SZREG # init stack pointer
196 197
diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
index f7d8d5d0ddbf..ed5c441615e4 100644
--- a/arch/mips/kernel/i8253.c
+++ b/arch/mips/kernel/i8253.c
@@ -98,7 +98,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
98 98
99static struct irqaction irq0 = { 99static struct irqaction irq0 = {
100 .handler = timer_interrupt, 100 .handler = timer_interrupt,
101 .flags = IRQF_DISABLED | IRQF_NOBALANCING, 101 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER,
102 .name = "timer" 102 .name = "timer"
103}; 103};
104 104
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c
index d2072cd38592..b181f2f0ea8e 100644
--- a/arch/mips/kernel/irq-gic.c
+++ b/arch/mips/kernel/irq-gic.c
@@ -14,38 +14,23 @@
14 14
15 15
16static unsigned long _gic_base; 16static unsigned long _gic_base;
17static unsigned int _irqbase, _mapsize, numvpes, numintrs; 17static unsigned int _irqbase;
18static struct gic_intr_map *_intrmap; 18static unsigned int gic_irq_flags[GIC_NUM_INTRS];
19#define GIC_IRQ_FLAG_EDGE 0x0001
19 20
20static struct gic_pcpu_mask pcpu_masks[NR_CPUS]; 21struct gic_pcpu_mask pcpu_masks[NR_CPUS];
21static struct gic_pending_regs pending_regs[NR_CPUS]; 22static struct gic_pending_regs pending_regs[NR_CPUS];
22static struct gic_intrmask_regs intrmask_regs[NR_CPUS]; 23static struct gic_intrmask_regs intrmask_regs[NR_CPUS];
23 24
24#define gic_wedgeb2bok 0 /*
25 * Can GIC handle b2b writes to wedge register?
26 */
27#if gic_wedgeb2bok == 0
28static DEFINE_SPINLOCK(gic_wedgeb2b_lock);
29#endif
30
31void gic_send_ipi(unsigned int intr) 25void gic_send_ipi(unsigned int intr)
32{ 26{
33#if gic_wedgeb2bok == 0
34 unsigned long flags;
35#endif
36 pr_debug("CPU%d: %s status %08x\n", smp_processor_id(), __func__, 27 pr_debug("CPU%d: %s status %08x\n", smp_processor_id(), __func__,
37 read_c0_status()); 28 read_c0_status());
38 if (!gic_wedgeb2bok)
39 spin_lock_irqsave(&gic_wedgeb2b_lock, flags);
40 GICWRITE(GIC_REG(SHARED, GIC_SH_WEDGE), 0x80000000 | intr); 29 GICWRITE(GIC_REG(SHARED, GIC_SH_WEDGE), 0x80000000 | intr);
41 if (!gic_wedgeb2bok) {
42 (void) GIC_REG(SHARED, GIC_SH_CONFIG);
43 spin_unlock_irqrestore(&gic_wedgeb2b_lock, flags);
44 }
45} 30}
46 31
47/* This is Malta specific and needs to be exported */ 32/* This is Malta specific and needs to be exported */
48static void vpe_local_setup(unsigned int numvpes) 33static void __init vpe_local_setup(unsigned int numvpes)
49{ 34{
50 int i; 35 int i;
51 unsigned long timer_interrupt = 5, perf_interrupt = 5; 36 unsigned long timer_interrupt = 5, perf_interrupt = 5;
@@ -105,44 +90,34 @@ unsigned int gic_get_int(void)
105 90
106static unsigned int gic_irq_startup(unsigned int irq) 91static unsigned int gic_irq_startup(unsigned int irq)
107{ 92{
108 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
109 irq -= _irqbase; 93 irq -= _irqbase;
110 GIC_SET_INTR_MASK(irq, 1); 94 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
95 GIC_SET_INTR_MASK(irq);
111 return 0; 96 return 0;
112} 97}
113 98
114static void gic_irq_ack(unsigned int irq) 99static void gic_irq_ack(unsigned int irq)
115{ 100{
116#if gic_wedgeb2bok == 0
117 unsigned long flags;
118#endif
119 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
120 irq -= _irqbase; 101 irq -= _irqbase;
121 GIC_CLR_INTR_MASK(irq, 1); 102 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
103 GIC_CLR_INTR_MASK(irq);
122 104
123 if (_intrmap[irq].trigtype == GIC_TRIG_EDGE) { 105 if (gic_irq_flags[irq] & GIC_IRQ_FLAG_EDGE)
124 if (!gic_wedgeb2bok)
125 spin_lock_irqsave(&gic_wedgeb2b_lock, flags);
126 GICWRITE(GIC_REG(SHARED, GIC_SH_WEDGE), irq); 106 GICWRITE(GIC_REG(SHARED, GIC_SH_WEDGE), irq);
127 if (!gic_wedgeb2bok) {
128 (void) GIC_REG(SHARED, GIC_SH_CONFIG);
129 spin_unlock_irqrestore(&gic_wedgeb2b_lock, flags);
130 }
131 }
132} 107}
133 108
134static void gic_mask_irq(unsigned int irq) 109static void gic_mask_irq(unsigned int irq)
135{ 110{
136 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
137 irq -= _irqbase; 111 irq -= _irqbase;
138 GIC_CLR_INTR_MASK(irq, 1); 112 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
113 GIC_CLR_INTR_MASK(irq);
139} 114}
140 115
141static void gic_unmask_irq(unsigned int irq) 116static void gic_unmask_irq(unsigned int irq)
142{ 117{
143 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
144 irq -= _irqbase; 118 irq -= _irqbase;
145 GIC_SET_INTR_MASK(irq, 1); 119 pr_debug("CPU%d: %s: irq%d\n", smp_processor_id(), __func__, irq);
120 GIC_SET_INTR_MASK(irq);
146} 121}
147 122
148#ifdef CONFIG_SMP 123#ifdef CONFIG_SMP
@@ -155,9 +130,8 @@ static int gic_set_affinity(unsigned int irq, const struct cpumask *cpumask)
155 unsigned long flags; 130 unsigned long flags;
156 int i; 131 int i;
157 132
158 pr_debug(KERN_DEBUG "%s called\n", __func__);
159 irq -= _irqbase; 133 irq -= _irqbase;
160 134 pr_debug(KERN_DEBUG "%s(%d) called\n", __func__, irq);
161 cpumask_and(&tmp, cpumask, cpu_online_mask); 135 cpumask_and(&tmp, cpumask, cpu_online_mask);
162 if (cpus_empty(tmp)) 136 if (cpus_empty(tmp))
163 return -1; 137 return -1;
@@ -168,13 +142,6 @@ static int gic_set_affinity(unsigned int irq, const struct cpumask *cpumask)
168 /* Re-route this IRQ */ 142 /* Re-route this IRQ */
169 GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp)); 143 GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp));
170 144
171 /*
172 * FIXME: assumption that _intrmap is ordered and has no holes
173 */
174
175 /* Update the intr_map */
176 _intrmap[irq].cpunum = first_cpu(tmp);
177
178 /* Update the pcpu_masks */ 145 /* Update the pcpu_masks */
179 for (i = 0; i < NR_CPUS; i++) 146 for (i = 0; i < NR_CPUS; i++)
180 clear_bit(irq, pcpu_masks[i].pcpu_mask); 147 clear_bit(irq, pcpu_masks[i].pcpu_mask);
@@ -201,8 +168,9 @@ static struct irq_chip gic_irq_controller = {
201#endif 168#endif
202}; 169};
203 170
204static void __init setup_intr(unsigned int intr, unsigned int cpu, 171static void __init gic_setup_intr(unsigned int intr, unsigned int cpu,
205 unsigned int pin, unsigned int polarity, unsigned int trigtype) 172 unsigned int pin, unsigned int polarity, unsigned int trigtype,
173 unsigned int flags)
206{ 174{
207 /* Setup Intr to Pin mapping */ 175 /* Setup Intr to Pin mapping */
208 if (pin & GIC_MAP_TO_NMI_MSK) { 176 if (pin & GIC_MAP_TO_NMI_MSK) {
@@ -227,38 +195,43 @@ static void __init setup_intr(unsigned int intr, unsigned int cpu,
227 GIC_SET_TRIGGER(intr, trigtype); 195 GIC_SET_TRIGGER(intr, trigtype);
228 196
229 /* Init Intr Masks */ 197 /* Init Intr Masks */
230 GIC_SET_INTR_MASK(intr, 0); 198 GIC_CLR_INTR_MASK(intr);
199 /* Initialise per-cpu Interrupt software masks */
200 if (flags & GIC_FLAG_IPI)
201 set_bit(intr, pcpu_masks[cpu].pcpu_mask);
202 if (flags & GIC_FLAG_TRANSPARENT)
203 GIC_SET_INTR_MASK(intr);
204 if (trigtype == GIC_TRIG_EDGE)
205 gic_irq_flags[intr] |= GIC_IRQ_FLAG_EDGE;
231} 206}
232 207
233static void __init gic_basic_init(void) 208static void __init gic_basic_init(int numintrs, int numvpes,
209 struct gic_intr_map *intrmap, int mapsize)
234{ 210{
235 unsigned int i, cpu; 211 unsigned int i, cpu;
236 212
237 /* Setup defaults */ 213 /* Setup defaults */
238 for (i = 0; i < GIC_NUM_INTRS; i++) { 214 for (i = 0; i < numintrs; i++) {
239 GIC_SET_POLARITY(i, GIC_POL_POS); 215 GIC_SET_POLARITY(i, GIC_POL_POS);
240 GIC_SET_TRIGGER(i, GIC_TRIG_LEVEL); 216 GIC_SET_TRIGGER(i, GIC_TRIG_LEVEL);
241 GIC_SET_INTR_MASK(i, 0); 217 GIC_CLR_INTR_MASK(i);
218 if (i < GIC_NUM_INTRS)
219 gic_irq_flags[i] = 0;
242 } 220 }
243 221
244 /* Setup specifics */ 222 /* Setup specifics */
245 for (i = 0; i < _mapsize; i++) { 223 for (i = 0; i < mapsize; i++) {
246 cpu = _intrmap[i].cpunum; 224 cpu = intrmap[i].cpunum;
247 if (cpu == X) 225 if (cpu == X)
248 continue; 226 continue;
249 227 if (cpu == 0 && i != 0 && intrmap[i].flags == 0)
250 if (cpu == 0 && i != 0 && _intrmap[i].intrnum == 0 &&
251 _intrmap[i].ipiflag == 0)
252 continue; 228 continue;
253 229 gic_setup_intr(i,
254 setup_intr(_intrmap[i].intrnum, 230 intrmap[i].cpunum,
255 _intrmap[i].cpunum, 231 intrmap[i].pin,
256 _intrmap[i].pin, 232 intrmap[i].polarity,
257 _intrmap[i].polarity, 233 intrmap[i].trigtype,
258 _intrmap[i].trigtype); 234 intrmap[i].flags);
259 /* Initialise per-cpu Interrupt software masks */
260 if (_intrmap[i].ipiflag)
261 set_bit(_intrmap[i].intrnum, pcpu_masks[cpu].pcpu_mask);
262 } 235 }
263 236
264 vpe_local_setup(numvpes); 237 vpe_local_setup(numvpes);
@@ -273,12 +246,11 @@ void __init gic_init(unsigned long gic_base_addr,
273 unsigned int irqbase) 246 unsigned int irqbase)
274{ 247{
275 unsigned int gicconfig; 248 unsigned int gicconfig;
249 int numvpes, numintrs;
276 250
277 _gic_base = (unsigned long) ioremap_nocache(gic_base_addr, 251 _gic_base = (unsigned long) ioremap_nocache(gic_base_addr,
278 gic_addrspace_size); 252 gic_addrspace_size);
279 _irqbase = irqbase; 253 _irqbase = irqbase;
280 _intrmap = intr_map;
281 _mapsize = intr_map_size;
282 254
283 GICREAD(GIC_REG(SHARED, GIC_SH_CONFIG), gicconfig); 255 GICREAD(GIC_REG(SHARED, GIC_SH_CONFIG), gicconfig);
284 numintrs = (gicconfig & GIC_SH_CONFIG_NUMINTRS_MSK) >> 256 numintrs = (gicconfig & GIC_SH_CONFIG_NUMINTRS_MSK) >>
@@ -290,5 +262,5 @@ void __init gic_init(unsigned long gic_base_addr,
290 262
291 pr_debug("%s called\n", __func__); 263 pr_debug("%s called\n", __func__);
292 264
293 gic_basic_init(); 265 gic_basic_init(numintrs, numvpes, intr_map, intr_map_size);
294} 266}
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index 6242bc68add7..b77fefaff9da 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -428,3 +428,9 @@ _sys32_clone(nabi_no_regargs struct pt_regs regs)
428 return do_fork(clone_flags, newsp, &regs, 0, 428 return do_fork(clone_flags, newsp, &regs, 0,
429 parent_tidptr, child_tidptr); 429 parent_tidptr, child_tidptr);
430} 430}
431
432asmlinkage long sys32_lookup_dcookie(u32 a0, u32 a1, char __user *buf,
433 size_t len)
434{
435 return sys_lookup_dcookie(merge_64(a0, a1), buf, len);
436}
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 9bbf9775e0bd..14dde4ca932e 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -450,7 +450,7 @@ sys_call_table:
450 PTR sys_io_submit 450 PTR sys_io_submit
451 PTR sys_io_cancel /* 4245 */ 451 PTR sys_io_cancel /* 4245 */
452 PTR sys_exit_group 452 PTR sys_exit_group
453 PTR sys_lookup_dcookie 453 PTR sys32_lookup_dcookie
454 PTR sys_epoll_create 454 PTR sys_epoll_create
455 PTR sys_epoll_ctl 455 PTR sys_epoll_ctl
456 PTR sys_epoll_wait /* 4250 */ 456 PTR sys_epoll_wait /* 4250 */
@@ -505,7 +505,7 @@ sys_call_table:
505 PTR sys_fchmodat 505 PTR sys_fchmodat
506 PTR sys_faccessat /* 4300 */ 506 PTR sys_faccessat /* 4300 */
507 PTR compat_sys_pselect6 507 PTR compat_sys_pselect6
508 PTR sys_ppoll 508 PTR compat_sys_ppoll
509 PTR sys_unshare 509 PTR sys_unshare
510 PTR sys_splice 510 PTR sys_splice
511 PTR sys32_sync_file_range /* 4305 */ 511 PTR sys32_sync_file_range /* 4305 */
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index 4d181df44a40..24630fd8ef60 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -75,7 +75,6 @@ unsigned long irq_hwmask[NR_IRQS];
75 75
76asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS]; 76asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS];
77 77
78
79/* 78/*
80 * Number of InterProcessor Interrupt (IPI) message buffers to allocate 79 * Number of InterProcessor Interrupt (IPI) message buffers to allocate
81 */ 80 */
@@ -388,6 +387,7 @@ void smtc_prepare_cpus(int cpus)
388 IPIQ[i].head = IPIQ[i].tail = NULL; 387 IPIQ[i].head = IPIQ[i].tail = NULL;
389 spin_lock_init(&IPIQ[i].lock); 388 spin_lock_init(&IPIQ[i].lock);
390 IPIQ[i].depth = 0; 389 IPIQ[i].depth = 0;
390 IPIQ[i].resched_flag = 0; /* No reschedules queued initially */
391 } 391 }
392 392
393 /* cpu_data index starts at zero */ 393 /* cpu_data index starts at zero */
@@ -741,11 +741,24 @@ void smtc_forward_irq(unsigned int irq)
741static void smtc_ipi_qdump(void) 741static void smtc_ipi_qdump(void)
742{ 742{
743 int i; 743 int i;
744 struct smtc_ipi *temp;
744 745
745 for (i = 0; i < NR_CPUS ;i++) { 746 for (i = 0; i < NR_CPUS ;i++) {
746 printk("IPIQ[%d]: head = 0x%x, tail = 0x%x, depth = %d\n", 747 pr_info("IPIQ[%d]: head = 0x%x, tail = 0x%x, depth = %d\n",
747 i, (unsigned)IPIQ[i].head, (unsigned)IPIQ[i].tail, 748 i, (unsigned)IPIQ[i].head, (unsigned)IPIQ[i].tail,
748 IPIQ[i].depth); 749 IPIQ[i].depth);
750 temp = IPIQ[i].head;
751
752 while (temp != IPIQ[i].tail) {
753 pr_debug("%d %d %d: ", temp->type, temp->dest,
754 (int)temp->arg);
755#ifdef SMTC_IPI_DEBUG
756 pr_debug("%u %lu\n", temp->sender, temp->stamp);
757#else
758 pr_debug("\n");
759#endif
760 temp = temp->flink;
761 }
749 } 762 }
750} 763}
751 764
@@ -784,11 +797,16 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
784 int mtflags; 797 int mtflags;
785 unsigned long tcrestart; 798 unsigned long tcrestart;
786 extern void r4k_wait_irqoff(void), __pastwait(void); 799 extern void r4k_wait_irqoff(void), __pastwait(void);
800 int set_resched_flag = (type == LINUX_SMP_IPI &&
801 action == SMP_RESCHEDULE_YOURSELF);
787 802
788 if (cpu == smp_processor_id()) { 803 if (cpu == smp_processor_id()) {
789 printk("Cannot Send IPI to self!\n"); 804 printk("Cannot Send IPI to self!\n");
790 return; 805 return;
791 } 806 }
807 if (set_resched_flag && IPIQ[cpu].resched_flag != 0)
808 return; /* There is a reschedule queued already */
809
792 /* Set up a descriptor, to be delivered either promptly or queued */ 810 /* Set up a descriptor, to be delivered either promptly or queued */
793 pipi = smtc_ipi_dq(&freeIPIq); 811 pipi = smtc_ipi_dq(&freeIPIq);
794 if (pipi == NULL) { 812 if (pipi == NULL) {
@@ -801,6 +819,7 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
801 pipi->dest = cpu; 819 pipi->dest = cpu;
802 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) { 820 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
803 /* If not on same VPE, enqueue and send cross-VPE interrupt */ 821 /* If not on same VPE, enqueue and send cross-VPE interrupt */
822 IPIQ[cpu].resched_flag |= set_resched_flag;
804 smtc_ipi_nq(&IPIQ[cpu], pipi); 823 smtc_ipi_nq(&IPIQ[cpu], pipi);
805 LOCK_CORE_PRA(); 824 LOCK_CORE_PRA();
806 settc(cpu_data[cpu].tc_id); 825 settc(cpu_data[cpu].tc_id);
@@ -847,6 +866,7 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
847 */ 866 */
848 write_tc_c0_tchalt(0); 867 write_tc_c0_tchalt(0);
849 UNLOCK_CORE_PRA(); 868 UNLOCK_CORE_PRA();
869 IPIQ[cpu].resched_flag |= set_resched_flag;
850 smtc_ipi_nq(&IPIQ[cpu], pipi); 870 smtc_ipi_nq(&IPIQ[cpu], pipi);
851 } else { 871 } else {
852postdirect: 872postdirect:
@@ -996,12 +1016,15 @@ void deferred_smtc_ipi(void)
996 * already enabled. 1016 * already enabled.
997 */ 1017 */
998 local_irq_save(flags); 1018 local_irq_save(flags);
999
1000 spin_lock(&q->lock); 1019 spin_lock(&q->lock);
1001 pipi = __smtc_ipi_dq(q); 1020 pipi = __smtc_ipi_dq(q);
1002 spin_unlock(&q->lock); 1021 spin_unlock(&q->lock);
1003 if (pipi != NULL) 1022 if (pipi != NULL) {
1023 if (pipi->type == LINUX_SMP_IPI &&
1024 (int)pipi->arg == SMP_RESCHEDULE_YOURSELF)
1025 IPIQ[cpu].resched_flag = 0;
1004 ipi_decode(pipi); 1026 ipi_decode(pipi);
1027 }
1005 /* 1028 /*
1006 * The use of the __raw_local restore isn't 1029 * The use of the __raw_local restore isn't
1007 * as obviously necessary here as in smtc_ipi_replay(), 1030 * as obviously necessary here as in smtc_ipi_replay(),
@@ -1082,6 +1105,9 @@ static irqreturn_t ipi_interrupt(int irq, void *dev_idm)
1082 * with interrupts off 1105 * with interrupts off
1083 */ 1106 */
1084 local_irq_save(flags); 1107 local_irq_save(flags);
1108 if (pipi->type == LINUX_SMP_IPI &&
1109 (int)pipi->arg == SMP_RESCHEDULE_YOURSELF)
1110 IPIQ[cpu].resched_flag = 0;
1085 ipi_decode(pipi); 1111 ipi_decode(pipi);
1086 local_irq_restore(flags); 1112 local_irq_restore(flags);
1087 } 1113 }
diff --git a/arch/mips/kernel/spram.c b/arch/mips/kernel/spram.c
index 6ddb507a87ef..1821d12a6410 100644
--- a/arch/mips/kernel/spram.c
+++ b/arch/mips/kernel/spram.c
@@ -13,7 +13,6 @@
13#include <linux/ptrace.h> 13#include <linux/ptrace.h>
14#include <linux/stddef.h> 14#include <linux/stddef.h>
15 15
16#include <asm/cpu.h>
17#include <asm/fpu.h> 16#include <asm/fpu.h>
18#include <asm/mipsregs.h> 17#include <asm/mipsregs.h>
19#include <asm/system.h> 18#include <asm/system.h>
@@ -198,8 +197,7 @@ static __cpuinit void probe_spram(char *type,
198 offset += 2 * SPRAM_TAG_STRIDE; 197 offset += 2 * SPRAM_TAG_STRIDE;
199 } 198 }
200} 199}
201 200void __cpuinit spram_config(void)
202__cpuinit void spram_config(void)
203{ 201{
204 struct cpuinfo_mips *c = &current_cpu_data; 202 struct cpuinfo_mips *c = &current_cpu_data;
205 unsigned int config0; 203 unsigned int config0;
@@ -208,6 +206,7 @@ __cpuinit void spram_config(void)
208 case CPU_24K: 206 case CPU_24K:
209 case CPU_34K: 207 case CPU_34K:
210 case CPU_74K: 208 case CPU_74K:
209 case CPU_1004K:
211 config0 = read_c0_config(); 210 config0 = read_c0_config();
212 /* FIXME: addresses are Malta specific */ 211 /* FIXME: addresses are Malta specific */
213 if (config0 & (1<<24)) { 212 if (config0 & (1<<24)) {
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 03092ab2a296..60477529362e 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -1116,8 +1116,6 @@ static int vpe_open(struct inode *inode, struct file *filp)
1116 v->shared_ptr = NULL; 1116 v->shared_ptr = NULL;
1117 v->__start = 0; 1117 v->__start = 0;
1118 1118
1119 unlock_kernel();
1120
1121 return 0; 1119 return 0;
1122} 1120}
1123 1121
diff --git a/arch/mips/loongson/common/irq.c b/arch/mips/loongson/common/irq.c
index f368c735cbd3..b32b4a3e5137 100644
--- a/arch/mips/loongson/common/irq.c
+++ b/arch/mips/loongson/common/irq.c
@@ -55,7 +55,6 @@ void __init arch_init_irq(void)
55 * int-handler is not on bootstrap 55 * int-handler is not on bootstrap
56 */ 56 */
57 clear_c0_status(ST0_IM | ST0_BEV); 57 clear_c0_status(ST0_IM | ST0_BEV);
58 local_irq_disable();
59 58
60 /* setting irq trigger mode */ 59 /* setting irq trigger mode */
61 set_irq_trigger_mode(); 60 set_irq_trigger_mode();
diff --git a/arch/mips/math-emu/dp_simple.c b/arch/mips/math-emu/dp_simple.c
index 1c555e6c6a9f..d9ae1dbabda7 100644
--- a/arch/mips/math-emu/dp_simple.c
+++ b/arch/mips/math-emu/dp_simple.c
@@ -62,8 +62,6 @@ ieee754dp ieee754dp_neg(ieee754dp x)
62 return ieee754dp_nanxcpt(y, "neg"); 62 return ieee754dp_nanxcpt(y, "neg");
63 } 63 }
64 64
65 if (ieee754dp_isnan(x)) /* but not infinity */
66 return ieee754dp_nanxcpt(x, "neg", x);
67 return x; 65 return x;
68} 66}
69 67
@@ -76,15 +74,12 @@ ieee754dp ieee754dp_abs(ieee754dp x)
76 CLEARCX; 74 CLEARCX;
77 FLUSHXDP; 75 FLUSHXDP;
78 76
77 /* Clear sign ALWAYS, irrespective of NaN */
78 DPSIGN(x) = 0;
79
79 if (xc == IEEE754_CLASS_SNAN) { 80 if (xc == IEEE754_CLASS_SNAN) {
80 SETCX(IEEE754_INVALID_OPERATION); 81 return ieee754dp_nanxcpt(ieee754dp_indef(), "abs");
81 return ieee754dp_nanxcpt(ieee754dp_indef(), "neg");
82 } 82 }
83 83
84 if (ieee754dp_isnan(x)) /* but not infinity */
85 return ieee754dp_nanxcpt(x, "abs", x);
86
87 /* quick fix up */
88 DPSIGN(x) = 0;
89 return x; 84 return x;
90} 85}
diff --git a/arch/mips/math-emu/sp_simple.c b/arch/mips/math-emu/sp_simple.c
index 770f0f4677cd..3175477d36f6 100644
--- a/arch/mips/math-emu/sp_simple.c
+++ b/arch/mips/math-emu/sp_simple.c
@@ -62,8 +62,6 @@ ieee754sp ieee754sp_neg(ieee754sp x)
62 return ieee754sp_nanxcpt(y, "neg"); 62 return ieee754sp_nanxcpt(y, "neg");
63 } 63 }
64 64
65 if (ieee754sp_isnan(x)) /* but not infinity */
66 return ieee754sp_nanxcpt(x, "neg", x);
67 return x; 65 return x;
68} 66}
69 67
@@ -76,15 +74,12 @@ ieee754sp ieee754sp_abs(ieee754sp x)
76 CLEARCX; 74 CLEARCX;
77 FLUSHXSP; 75 FLUSHXSP;
78 76
77 /* Clear sign ALWAYS, irrespective of NaN */
78 SPSIGN(x) = 0;
79
79 if (xc == IEEE754_CLASS_SNAN) { 80 if (xc == IEEE754_CLASS_SNAN) {
80 SETCX(IEEE754_INVALID_OPERATION);
81 return ieee754sp_nanxcpt(ieee754sp_indef(), "abs"); 81 return ieee754sp_nanxcpt(ieee754sp_indef(), "abs");
82 } 82 }
83 83
84 if (ieee754sp_isnan(x)) /* but not infinity */
85 return ieee754sp_nanxcpt(x, "abs", x);
86
87 /* quick fix up */
88 SPSIGN(x) = 0;
89 return x; 84 return x;
90} 85}
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 15aa1902a788..8d1f4f363049 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -27,6 +27,7 @@
27#include <linux/swap.h> 27#include <linux/swap.h>
28#include <linux/proc_fs.h> 28#include <linux/proc_fs.h>
29#include <linux/pfn.h> 29#include <linux/pfn.h>
30#include <linux/hardirq.h>
30 31
31#include <asm/asm-offsets.h> 32#include <asm/asm-offsets.h>
32#include <asm/bootinfo.h> 33#include <asm/bootinfo.h>
@@ -132,7 +133,10 @@ void *kmap_coherent(struct page *page, unsigned long addr)
132 inc_preempt_count(); 133 inc_preempt_count();
133 idx = (addr >> PAGE_SHIFT) & (FIX_N_COLOURS - 1); 134 idx = (addr >> PAGE_SHIFT) & (FIX_N_COLOURS - 1);
134#ifdef CONFIG_MIPS_MT_SMTC 135#ifdef CONFIG_MIPS_MT_SMTC
135 idx += FIX_N_COLOURS * smp_processor_id(); 136 idx += FIX_N_COLOURS * smp_processor_id() +
137 (in_interrupt() ? (FIX_N_COLOURS * NR_CPUS) : 0);
138#else
139 idx += in_interrupt() ? FIX_N_COLOURS : 0;
136#endif 140#endif
137 vaddr = __fix_to_virt(FIX_CMAP_END - idx); 141 vaddr = __fix_to_virt(FIX_CMAP_END - idx);
138 pte = mk_pte(page, PAGE_KERNEL); 142 pte = mk_pte(page, PAGE_KERNEL);
diff --git a/arch/mips/mti-malta/malta-amon.c b/arch/mips/mti-malta/malta-amon.c
index df9e526312a2..469d9b0cee6d 100644
--- a/arch/mips/mti-malta/malta-amon.c
+++ b/arch/mips/mti-malta/malta-amon.c
@@ -70,11 +70,12 @@ void amon_cpu_start(int cpu,
70 launch->sp = sp; 70 launch->sp = sp;
71 launch->a0 = a0; 71 launch->a0 = a0;
72 72
73 /* Make sure target sees parameters before the go bit */ 73 smp_wmb(); /* Target must see parameters before go */
74 smp_mb();
75
76 launch->flags |= LAUNCH_FGO; 74 launch->flags |= LAUNCH_FGO;
75 smp_wmb(); /* Target must see go before we poll */
76
77 while ((launch->flags & LAUNCH_FGONE) == 0) 77 while ((launch->flags & LAUNCH_FGONE) == 0)
78 ; 78 ;
79 smp_rmb(); /* Target will be updating flags soon */
79 pr_debug("launch: cpu%d gone!\n", cpu); 80 pr_debug("launch: cpu%d gone!\n", cpu);
80} 81}
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c
index 3e0a9b35ba5c..4c3fca18a171 100644
--- a/arch/mips/mti-malta/malta-int.c
+++ b/arch/mips/mti-malta/malta-int.c
@@ -87,7 +87,7 @@ static inline int mips_pcibios_iack(void)
87 dummy = BONITO_PCIMAP_CFG; 87 dummy = BONITO_PCIMAP_CFG;
88 iob(); /* sync */ 88 iob(); /* sync */
89 89
90 irq = readl((u32 *)_pcictrl_bonito_pcicfg); 90 irq = __raw_readl((u32 *)_pcictrl_bonito_pcicfg);
91 iob(); /* sync */ 91 iob(); /* sync */
92 irq &= 0xff; 92 irq &= 0xff;
93 BONITO_PCIMAP_CFG = 0; 93 BONITO_PCIMAP_CFG = 0;
@@ -379,38 +379,43 @@ static msc_irqmap_t __initdata msc_eicirqmap[] = {
379 379
380static int __initdata msc_nr_eicirqs = ARRAY_SIZE(msc_eicirqmap); 380static int __initdata msc_nr_eicirqs = ARRAY_SIZE(msc_eicirqmap);
381 381
382#if defined(CONFIG_MIPS_MT_SMP)
383/* 382/*
384 * This GIC specific tabular array defines the association between External 383 * This GIC specific tabular array defines the association between External
385 * Interrupts and CPUs/Core Interrupts. The nature of the External 384 * Interrupts and CPUs/Core Interrupts. The nature of the External
386 * Interrupts is also defined here - polarity/trigger. 385 * Interrupts is also defined here - polarity/trigger.
387 */ 386 */
387
388#define GIC_CPU_NMI GIC_MAP_TO_NMI_MSK
388static struct gic_intr_map gic_intr_map[GIC_NUM_INTRS] = { 389static struct gic_intr_map gic_intr_map[GIC_NUM_INTRS] = {
389 { GIC_EXT_INTR(0), X, X, X, X, 0 }, 390 { X, X, X, X, 0 },
390 { GIC_EXT_INTR(1), X, X, X, X, 0 }, 391 { X, X, X, X, 0 },
391 { GIC_EXT_INTR(2), X, X, X, X, 0 }, 392 { X, X, X, X, 0 },
392 { GIC_EXT_INTR(3), 0, GIC_CPU_INT0, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 393 { 0, GIC_CPU_INT0, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
393 { GIC_EXT_INTR(4), 0, GIC_CPU_INT1, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 394 { 0, GIC_CPU_INT1, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
394 { GIC_EXT_INTR(5), 0, GIC_CPU_INT2, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 395 { 0, GIC_CPU_INT2, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
395 { GIC_EXT_INTR(6), 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 396 { 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
396 { GIC_EXT_INTR(7), 0, GIC_CPU_INT4, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 397 { 0, GIC_CPU_INT4, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
397 { GIC_EXT_INTR(8), 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 398 { 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
398 { GIC_EXT_INTR(9), 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 399 { 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
399 { GIC_EXT_INTR(10), X, X, X, X, 0 }, 400 { X, X, X, X, 0 },
400 { GIC_EXT_INTR(11), X, X, X, X, 0 }, 401 { X, X, X, X, 0 },
401 { GIC_EXT_INTR(12), 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 402 { 0, GIC_CPU_INT3, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
402 { GIC_EXT_INTR(13), 0, GIC_MAP_TO_NMI_MSK, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 403 { 0, GIC_CPU_NMI, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
403 { GIC_EXT_INTR(14), 0, GIC_MAP_TO_NMI_MSK, GIC_POL_POS, GIC_TRIG_LEVEL, 0 }, 404 { 0, GIC_CPU_NMI, GIC_POL_POS, GIC_TRIG_LEVEL, GIC_FLAG_TRANSPARENT },
404 { GIC_EXT_INTR(15), X, X, X, X, 0 }, 405 { X, X, X, X, 0 },
405/* This is the end of the general interrupts now we do IPI ones */ 406 /* The remainder of this table is initialised by fill_ipi_map */
406}; 407};
407#endif
408 408
409/* 409/*
410 * GCMP needs to be detected before any SMP initialisation 410 * GCMP needs to be detected before any SMP initialisation
411 */ 411 */
412int __init gcmp_probe(unsigned long addr, unsigned long size) 412int __init gcmp_probe(unsigned long addr, unsigned long size)
413{ 413{
414 if (mips_revision_sconid != MIPS_REVISION_SCON_ROCIT) {
415 gcmp_present = 0;
416 return gcmp_present;
417 }
418
414 if (gcmp_present >= 0) 419 if (gcmp_present >= 0)
415 return gcmp_present; 420 return gcmp_present;
416 421
@@ -419,20 +424,35 @@ int __init gcmp_probe(unsigned long addr, unsigned long size)
419 gcmp_present = (GCMPGCB(GCMPB) & GCMP_GCB_GCMPB_GCMPBASE_MSK) == GCMP_BASE_ADDR; 424 gcmp_present = (GCMPGCB(GCMPB) & GCMP_GCB_GCMPB_GCMPBASE_MSK) == GCMP_BASE_ADDR;
420 425
421 if (gcmp_present) 426 if (gcmp_present)
422 printk(KERN_DEBUG "GCMP present\n"); 427 pr_debug("GCMP present\n");
423 return gcmp_present; 428 return gcmp_present;
424} 429}
425 430
431/* Return the number of IOCU's present */
432int __init gcmp_niocu(void)
433{
434 return gcmp_present ?
435 (GCMPGCB(GC) & GCMP_GCB_GC_NUMIOCU_MSK) >> GCMP_GCB_GC_NUMIOCU_SHF :
436 0;
437}
438
439/* Set GCMP region attributes */
440void __init gcmp_setregion(int region, unsigned long base,
441 unsigned long mask, int type)
442{
443 GCMPGCBn(CMxBASE, region) = base;
444 GCMPGCBn(CMxMASK, region) = mask | type;
445}
446
426#if defined(CONFIG_MIPS_MT_SMP) 447#if defined(CONFIG_MIPS_MT_SMP)
427static void __init fill_ipi_map1(int baseintr, int cpu, int cpupin) 448static void __init fill_ipi_map1(int baseintr, int cpu, int cpupin)
428{ 449{
429 int intr = baseintr + cpu; 450 int intr = baseintr + cpu;
430 gic_intr_map[intr].intrnum = GIC_EXT_INTR(intr);
431 gic_intr_map[intr].cpunum = cpu; 451 gic_intr_map[intr].cpunum = cpu;
432 gic_intr_map[intr].pin = cpupin; 452 gic_intr_map[intr].pin = cpupin;
433 gic_intr_map[intr].polarity = GIC_POL_POS; 453 gic_intr_map[intr].polarity = GIC_POL_POS;
434 gic_intr_map[intr].trigtype = GIC_TRIG_EDGE; 454 gic_intr_map[intr].trigtype = GIC_TRIG_EDGE;
435 gic_intr_map[intr].ipiflag = 1; 455 gic_intr_map[intr].flags = GIC_FLAG_IPI;
436 ipi_map[cpu] |= (1 << (cpupin + 2)); 456 ipi_map[cpu] |= (1 << (cpupin + 2));
437} 457}
438 458
@@ -447,6 +467,12 @@ static void __init fill_ipi_map(void)
447} 467}
448#endif 468#endif
449 469
470void __init arch_init_ipiirq(int irq, struct irqaction *action)
471{
472 setup_irq(irq, action);
473 set_irq_handler(irq, handle_percpu_irq);
474}
475
450void __init arch_init_irq(void) 476void __init arch_init_irq(void)
451{ 477{
452 init_i8259_irqs(); 478 init_i8259_irqs();
@@ -458,12 +484,17 @@ void __init arch_init_irq(void)
458 GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK; 484 GCMPGCB(GICBA) = GIC_BASE_ADDR | GCMP_GCB_GICBA_EN_MSK;
459 gic_present = 1; 485 gic_present = 1;
460 } else { 486 } else {
461 _msc01_biu_base = (unsigned long) ioremap_nocache(MSC01_BIU_REG_BASE, MSC01_BIU_ADDRSPACE_SZ); 487 if (mips_revision_sconid == MIPS_REVISION_SCON_ROCIT) {
462 gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) & 488 _msc01_biu_base = (unsigned long)
463 MSC01_SC_CFG_GICPRES_MSK) >> MSC01_SC_CFG_GICPRES_SHF; 489 ioremap_nocache(MSC01_BIU_REG_BASE,
490 MSC01_BIU_ADDRSPACE_SZ);
491 gic_present = (REG(_msc01_biu_base, MSC01_SC_CFG) &
492 MSC01_SC_CFG_GICPRES_MSK) >>
493 MSC01_SC_CFG_GICPRES_SHF;
494 }
464 } 495 }
465 if (gic_present) 496 if (gic_present)
466 printk(KERN_DEBUG "GIC present\n"); 497 pr_debug("GIC present\n");
467 498
468 switch (mips_revision_sconid) { 499 switch (mips_revision_sconid) {
469 case MIPS_REVISION_SCON_SOCIT: 500 case MIPS_REVISION_SCON_SOCIT:
@@ -526,16 +557,16 @@ void __init arch_init_irq(void)
526 &corehi_irqaction); 557 &corehi_irqaction);
527 } 558 }
528 559
529#if defined(CONFIG_MIPS_MT_SMP)
530 if (gic_present) { 560 if (gic_present) {
531 /* FIXME */ 561 /* FIXME */
532 int i; 562 int i;
533 563#if defined(CONFIG_MIPS_MT_SMP)
534 gic_call_int_base = GIC_NUM_INTRS - NR_CPUS; 564 gic_call_int_base = GIC_NUM_INTRS - NR_CPUS;
535 gic_resched_int_base = gic_call_int_base - NR_CPUS; 565 gic_resched_int_base = gic_call_int_base - NR_CPUS;
536
537 fill_ipi_map(); 566 fill_ipi_map();
538 gic_init(GIC_BASE_ADDR, GIC_ADDRSPACE_SZ, gic_intr_map, ARRAY_SIZE(gic_intr_map), MIPS_GIC_IRQ_BASE); 567#endif
568 gic_init(GIC_BASE_ADDR, GIC_ADDRSPACE_SZ, gic_intr_map,
569 ARRAY_SIZE(gic_intr_map), MIPS_GIC_IRQ_BASE);
539 if (!gcmp_present) { 570 if (!gcmp_present) {
540 /* Enable the GIC */ 571 /* Enable the GIC */
541 i = REG(_msc01_biu_base, MSC01_SC_CFG); 572 i = REG(_msc01_biu_base, MSC01_SC_CFG);
@@ -543,7 +574,7 @@ void __init arch_init_irq(void)
543 (i | (0x1 << MSC01_SC_CFG_GICENA_SHF)); 574 (i | (0x1 << MSC01_SC_CFG_GICENA_SHF));
544 pr_debug("GIC Enabled\n"); 575 pr_debug("GIC Enabled\n");
545 } 576 }
546 577#if defined(CONFIG_MIPS_MT_SMP)
547 /* set up ipi interrupts */ 578 /* set up ipi interrupts */
548 if (cpu_has_vint) { 579 if (cpu_has_vint) {
549 set_vi_handler(MIPSCPU_INT_IPI0, malta_ipi_irqdispatch); 580 set_vi_handler(MIPSCPU_INT_IPI0, malta_ipi_irqdispatch);
@@ -556,16 +587,14 @@ void __init arch_init_irq(void)
556 write_c0_status(0x1100dc00); 587 write_c0_status(0x1100dc00);
557 printk("CPU%d: status register frc %08x\n", smp_processor_id(), read_c0_status()); 588 printk("CPU%d: status register frc %08x\n", smp_processor_id(), read_c0_status());
558 for (i = 0; i < NR_CPUS; i++) { 589 for (i = 0; i < NR_CPUS; i++) {
559 setup_irq(MIPS_GIC_IRQ_BASE + 590 arch_init_ipiirq(MIPS_GIC_IRQ_BASE +
560 GIC_RESCHED_INT(i), &irq_resched); 591 GIC_RESCHED_INT(i), &irq_resched);
561 setup_irq(MIPS_GIC_IRQ_BASE + 592 arch_init_ipiirq(MIPS_GIC_IRQ_BASE +
562 GIC_CALL_INT(i), &irq_call); 593 GIC_CALL_INT(i), &irq_call);
563 set_irq_handler(MIPS_GIC_IRQ_BASE +
564 GIC_RESCHED_INT(i), handle_percpu_irq);
565 set_irq_handler(MIPS_GIC_IRQ_BASE +
566 GIC_CALL_INT(i), handle_percpu_irq);
567 } 594 }
595#endif
568 } else { 596 } else {
597#if defined(CONFIG_MIPS_MT_SMP)
569 /* set up ipi interrupts */ 598 /* set up ipi interrupts */
570 if (cpu_has_veic) { 599 if (cpu_has_veic) {
571 set_vi_handler (MSC01E_INT_SW0, ipi_resched_dispatch); 600 set_vi_handler (MSC01E_INT_SW0, ipi_resched_dispatch);
@@ -580,14 +609,10 @@ void __init arch_init_irq(void)
580 cpu_ipi_resched_irq = MIPS_CPU_IRQ_BASE + MIPS_CPU_IPI_RESCHED_IRQ; 609 cpu_ipi_resched_irq = MIPS_CPU_IRQ_BASE + MIPS_CPU_IPI_RESCHED_IRQ;
581 cpu_ipi_call_irq = MIPS_CPU_IRQ_BASE + MIPS_CPU_IPI_CALL_IRQ; 610 cpu_ipi_call_irq = MIPS_CPU_IRQ_BASE + MIPS_CPU_IPI_CALL_IRQ;
582 } 611 }
583 612 arch_init_ipiirq(cpu_ipi_resched_irq, &irq_resched);
584 setup_irq(cpu_ipi_resched_irq, &irq_resched); 613 arch_init_ipiirq(cpu_ipi_call_irq, &irq_call);
585 setup_irq(cpu_ipi_call_irq, &irq_call);
586
587 set_irq_handler(cpu_ipi_resched_irq, handle_percpu_irq);
588 set_irq_handler(cpu_ipi_call_irq, handle_percpu_irq);
589 }
590#endif 614#endif
615 }
591} 616}
592 617
593void malta_be_init(void) 618void malta_be_init(void)
diff --git a/arch/mips/mti-malta/malta-pci.c b/arch/mips/mti-malta/malta-pci.c
index b9743190609a..2fbfa1a8c3a9 100644
--- a/arch/mips/mti-malta/malta-pci.c
+++ b/arch/mips/mti-malta/malta-pci.c
@@ -27,7 +27,7 @@
27#include <linux/init.h> 27#include <linux/init.h>
28 28
29#include <asm/gt64120.h> 29#include <asm/gt64120.h>
30 30#include <asm/gcmpregs.h>
31#include <asm/mips-boards/generic.h> 31#include <asm/mips-boards/generic.h>
32#include <asm/mips-boards/bonito64.h> 32#include <asm/mips-boards/bonito64.h>
33#include <asm/mips-boards/msc01_pci.h> 33#include <asm/mips-boards/msc01_pci.h>
@@ -201,7 +201,11 @@ void __init mips_pcibios_init(void)
201 msc_mem_resource.start = start & mask; 201 msc_mem_resource.start = start & mask;
202 msc_mem_resource.end = (start & mask) | ~mask; 202 msc_mem_resource.end = (start & mask) | ~mask;
203 msc_controller.mem_offset = (start & mask) - (map & mask); 203 msc_controller.mem_offset = (start & mask) - (map & mask);
204 204#ifdef CONFIG_MIPS_CMP
205 if (gcmp_niocu())
206 gcmp_setregion(0, start, mask,
207 GCMP_GCB_GCMPB_CMDEFTGT_IOCU1);
208#endif
205 MSC_READ(MSC01_PCI_SC2PIOBASL, start); 209 MSC_READ(MSC01_PCI_SC2PIOBASL, start);
206 MSC_READ(MSC01_PCI_SC2PIOMSKL, mask); 210 MSC_READ(MSC01_PCI_SC2PIOMSKL, mask);
207 MSC_READ(MSC01_PCI_SC2PIOMAPL, map); 211 MSC_READ(MSC01_PCI_SC2PIOMAPL, map);
@@ -209,7 +213,11 @@ void __init mips_pcibios_init(void)
209 msc_io_resource.end = (map & mask) | ~mask; 213 msc_io_resource.end = (map & mask) | ~mask;
210 msc_controller.io_offset = 0; 214 msc_controller.io_offset = 0;
211 ioport_resource.end = ~mask; 215 ioport_resource.end = ~mask;
212 216#ifdef CONFIG_MIPS_CMP
217 if (gcmp_niocu())
218 gcmp_setregion(1, start, mask,
219 GCMP_GCB_GCMPB_CMDEFTGT_IOCU1);
220#endif
213 /* If ranges overlap I/O takes precedence. */ 221 /* If ranges overlap I/O takes precedence. */
214 start = start & mask; 222 start = start & mask;
215 end = start | ~mask; 223 end = start | ~mask;
@@ -241,3 +249,16 @@ void __init mips_pcibios_init(void)
241 249
242 register_pci_controller(controller); 250 register_pci_controller(controller);
243} 251}
252
253/* Enable PCI 2.1 compatibility in PIIX4 */
254static void __init quirk_dlcsetup(struct pci_dev *dev)
255{
256 u8 odlc, ndlc;
257 (void) pci_read_config_byte(dev, 0x82, &odlc);
258 /* Enable passive releases and delayed transaction */
259 ndlc = odlc | 7;
260 (void) pci_write_config_byte(dev, 0x82, ndlc);
261}
262
263DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0,
264 quirk_dlcsetup);
diff --git a/arch/mips/nxp/pnx8550/common/int.c b/arch/mips/nxp/pnx8550/common/int.c
index f080f114a1bf..7aca7d5375e5 100644
--- a/arch/mips/nxp/pnx8550/common/int.c
+++ b/arch/mips/nxp/pnx8550/common/int.c
@@ -172,7 +172,7 @@ static struct irqaction gic_action = {
172 172
173static struct irqaction timer_action = { 173static struct irqaction timer_action = {
174 .handler = no_action, 174 .handler = no_action,
175 .flags = IRQF_DISABLED, 175 .flags = IRQF_DISABLED | IRQF_TIMER,
176 .name = "Timer", 176 .name = "Timer",
177}; 177};
178 178
diff --git a/arch/mips/nxp/pnx8550/common/time.c b/arch/mips/nxp/pnx8550/common/time.c
index 18b192784877..8836c6203df0 100644
--- a/arch/mips/nxp/pnx8550/common/time.c
+++ b/arch/mips/nxp/pnx8550/common/time.c
@@ -59,7 +59,7 @@ static irqreturn_t pnx8xxx_timer_interrupt(int irq, void *dev_id)
59 59
60static struct irqaction pnx8xxx_timer_irq = { 60static struct irqaction pnx8xxx_timer_irq = {
61 .handler = pnx8xxx_timer_interrupt, 61 .handler = pnx8xxx_timer_interrupt,
62 .flags = IRQF_DISABLED | IRQF_PERCPU, 62 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
63 .name = "pnx8xxx_timer", 63 .name = "pnx8xxx_timer",
64}; 64};
65 65
@@ -72,7 +72,7 @@ static irqreturn_t monotonic_interrupt(int irq, void *dev_id)
72 72
73static struct irqaction monotonic_irqaction = { 73static struct irqaction monotonic_irqaction = {
74 .handler = monotonic_interrupt, 74 .handler = monotonic_interrupt,
75 .flags = IRQF_DISABLED, 75 .flags = IRQF_DISABLED | IRQF_TIMER,
76 .name = "Monotonic timer", 76 .name = "Monotonic timer",
77}; 77};
78 78
diff --git a/arch/mips/oprofile/op_model_loongson2.c b/arch/mips/oprofile/op_model_loongson2.c
index deed1d5d4982..575cd1473475 100644
--- a/arch/mips/oprofile/op_model_loongson2.c
+++ b/arch/mips/oprofile/op_model_loongson2.c
@@ -22,7 +22,7 @@
22 * otherwise, the oprofile tool will not recognize this and complain about 22 * otherwise, the oprofile tool will not recognize this and complain about
23 * "cpu_type 'unset' is not valid". 23 * "cpu_type 'unset' is not valid".
24 */ 24 */
25#define LOONGSON2_CPU_TYPE "mips/godson2" 25#define LOONGSON2_CPU_TYPE "mips/loongson2"
26 26
27#define LOONGSON2_COUNTER1_EVENT(event) ((event & 0x0f) << 5) 27#define LOONGSON2_COUNTER1_EVENT(event) ((event & 0x0f) << 5)
28#define LOONGSON2_COUNTER2_EVENT(event) ((event & 0x0f) << 9) 28#define LOONGSON2_COUNTER2_EVENT(event) ((event & 0x0f) << 9)
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index 6d0e59ffba2e..d6802d6d1f82 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -105,7 +105,7 @@ static irqreturn_t hub_rt_counter_handler(int irq, void *dev_id)
105 105
106struct irqaction hub_rt_irqaction = { 106struct irqaction hub_rt_irqaction = {
107 .handler = hub_rt_counter_handler, 107 .handler = hub_rt_counter_handler,
108 .flags = IRQF_DISABLED | IRQF_PERCPU, 108 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
109 .name = "hub-rt", 109 .name = "hub-rt",
110}; 110};
111 111
diff --git a/arch/mips/sni/time.c b/arch/mips/sni/time.c
index 62df6a598e0a..f3b60e671207 100644
--- a/arch/mips/sni/time.c
+++ b/arch/mips/sni/time.c
@@ -67,7 +67,7 @@ static irqreturn_t a20r_interrupt(int irq, void *dev_id)
67 67
68static struct irqaction a20r_irqaction = { 68static struct irqaction a20r_irqaction = {
69 .handler = a20r_interrupt, 69 .handler = a20r_interrupt,
70 .flags = IRQF_DISABLED | IRQF_PERCPU, 70 .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
71 .name = "a20r-timer", 71 .name = "a20r-timer",
72}; 72};
73 73
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index c860810722c0..e10184c1b3e1 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -85,7 +85,7 @@ int txx9_ccfg_toeon __initdata = 1;
85struct clk *clk_get(struct device *dev, const char *id) 85struct clk *clk_get(struct device *dev, const char *id)
86{ 86{
87 if (!strcmp(id, "spi-baseclk")) 87 if (!strcmp(id, "spi-baseclk"))
88 return (struct clk *)((unsigned long)txx9_gbus_clock / 2 / 4); 88 return (struct clk *)((unsigned long)txx9_gbus_clock / 2 / 2);
89 if (!strcmp(id, "imbus_clk")) 89 if (!strcmp(id, "imbus_clk"))
90 return (struct clk *)((unsigned long)txx9_gbus_clock / 2); 90 return (struct clk *)((unsigned long)txx9_gbus_clock / 2);
91 return ERR_PTR(-ENOENT); 91 return ERR_PTR(-ENOENT);
@@ -817,7 +817,8 @@ void __init txx9_iocled_init(unsigned long baseaddr,
817out_pdev: 817out_pdev:
818 platform_device_put(pdev); 818 platform_device_put(pdev);
819out_gpio: 819out_gpio:
820 gpio_remove(&iocled->chip); 820 if (gpiochip_remove(&iocled->chip))
821 return;
821out_unmap: 822out_unmap:
822 iounmap(iocled->mmioaddr); 823 iounmap(iocled->mmioaddr);
823out_free: 824out_free:
diff --git a/arch/powerpc/boot/dts/cm5200.dts b/arch/powerpc/boot/dts/cm5200.dts
index cee8080aa245..dd3860846f15 100644
--- a/arch/powerpc/boot/dts/cm5200.dts
+++ b/arch/powerpc/boot/dts/cm5200.dts
@@ -210,7 +210,6 @@
210 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 210 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
211 reg = <0x3d40 0x40>; 211 reg = <0x3d40 0x40>;
212 interrupts = <2 16 0>; 212 interrupts = <2 16 0>;
213 fsl5200-clocking;
214 }; 213 };
215 214
216 sram@8000 { 215 sram@8000 {
diff --git a/arch/powerpc/boot/dts/digsy_mtc.dts b/arch/powerpc/boot/dts/digsy_mtc.dts
index 4c36186ef946..8e9be6bfe23e 100644
--- a/arch/powerpc/boot/dts/digsy_mtc.dts
+++ b/arch/powerpc/boot/dts/digsy_mtc.dts
@@ -199,7 +199,6 @@
199 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 199 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
200 reg = <0x3d00 0x40>; 200 reg = <0x3d00 0x40>;
201 interrupts = <2 15 0>; 201 interrupts = <2 15 0>;
202 fsl5200-clocking;
203 202
204 rtc@50 { 203 rtc@50 {
205 compatible = "at,24c08"; 204 compatible = "at,24c08";
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts
index de30b3f9eb26..82ff2b13bc37 100644
--- a/arch/powerpc/boot/dts/lite5200.dts
+++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -247,7 +247,6 @@
247 compatible = "fsl,mpc5200-i2c","fsl-i2c"; 247 compatible = "fsl,mpc5200-i2c","fsl-i2c";
248 reg = <0x3d00 0x40>; 248 reg = <0x3d00 0x40>;
249 interrupts = <2 15 0>; 249 interrupts = <2 15 0>;
250 fsl5200-clocking;
251 }; 250 };
252 251
253 i2c@3d40 { 252 i2c@3d40 {
@@ -256,7 +255,6 @@
256 compatible = "fsl,mpc5200-i2c","fsl-i2c"; 255 compatible = "fsl,mpc5200-i2c","fsl-i2c";
257 reg = <0x3d40 0x40>; 256 reg = <0x3d40 0x40>;
258 interrupts = <2 16 0>; 257 interrupts = <2 16 0>;
259 fsl5200-clocking;
260 }; 258 };
261 sram@8000 { 259 sram@8000 {
262 compatible = "fsl,mpc5200-sram"; 260 compatible = "fsl,mpc5200-sram";
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts
index d13cb11ce623..e45a63be3a86 100644
--- a/arch/powerpc/boot/dts/lite5200b.dts
+++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -251,7 +251,6 @@
251 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 251 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
252 reg = <0x3d00 0x40>; 252 reg = <0x3d00 0x40>;
253 interrupts = <2 15 0>; 253 interrupts = <2 15 0>;
254 fsl5200-clocking;
255 }; 254 };
256 255
257 i2c@3d40 { 256 i2c@3d40 {
@@ -260,7 +259,6 @@
260 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 259 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
261 reg = <0x3d40 0x40>; 260 reg = <0x3d40 0x40>;
262 interrupts = <2 16 0>; 261 interrupts = <2 16 0>;
263 fsl5200-clocking;
264 }; 262 };
265 263
266 sram@8000 { 264 sram@8000 {
diff --git a/arch/powerpc/boot/dts/media5200.dts b/arch/powerpc/boot/dts/media5200.dts
index e297d8b41875..0c3902bc5b6a 100644
--- a/arch/powerpc/boot/dts/media5200.dts
+++ b/arch/powerpc/boot/dts/media5200.dts
@@ -223,7 +223,6 @@
223 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 223 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
224 reg = <0x3d00 0x40>; 224 reg = <0x3d00 0x40>;
225 interrupts = <2 15 0>; 225 interrupts = <2 15 0>;
226 fsl5200-clocking;
227 }; 226 };
228 227
229 i2c@3d40 { 228 i2c@3d40 {
@@ -232,7 +231,6 @@
232 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 231 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
233 reg = <0x3d40 0x40>; 232 reg = <0x3d40 0x40>;
234 interrupts = <2 16 0>; 233 interrupts = <2 16 0>;
235 fsl5200-clocking;
236 }; 234 };
237 235
238 sram@8000 { 236 sram@8000 {
diff --git a/arch/powerpc/boot/dts/motionpro.dts b/arch/powerpc/boot/dts/motionpro.dts
index 7be8ca038676..6ca4fc144a33 100644
--- a/arch/powerpc/boot/dts/motionpro.dts
+++ b/arch/powerpc/boot/dts/motionpro.dts
@@ -222,7 +222,6 @@
222 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 222 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
223 reg = <0x3d40 0x40>; 223 reg = <0x3d40 0x40>;
224 interrupts = <2 16 0>; 224 interrupts = <2 16 0>;
225 fsl5200-clocking;
226 225
227 rtc@68 { 226 rtc@68 {
228 compatible = "dallas,ds1339"; 227 compatible = "dallas,ds1339";
diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts
index c2b8dbfab79e..c353dac33416 100644
--- a/arch/powerpc/boot/dts/mpc5121ads.dts
+++ b/arch/powerpc/boot/dts/mpc5121ads.dts
@@ -209,7 +209,6 @@
209 reg = <0x1700 0x20>; 209 reg = <0x1700 0x20>;
210 interrupts = <9 0x8>; 210 interrupts = <9 0x8>;
211 interrupt-parent = < &ipic >; 211 interrupt-parent = < &ipic >;
212 fsl5200-clocking;
213 }; 212 };
214 213
215 i2c@1720 { 214 i2c@1720 {
@@ -220,7 +219,6 @@
220 reg = <0x1720 0x20>; 219 reg = <0x1720 0x20>;
221 interrupts = <10 0x8>; 220 interrupts = <10 0x8>;
222 interrupt-parent = < &ipic >; 221 interrupt-parent = < &ipic >;
223 fsl5200-clocking;
224 }; 222 };
225 223
226 i2c@1740 { 224 i2c@1740 {
@@ -231,7 +229,6 @@
231 reg = <0x1740 0x20>; 229 reg = <0x1740 0x20>;
232 interrupts = <11 0x8>; 230 interrupts = <11 0x8>;
233 interrupt-parent = < &ipic >; 231 interrupt-parent = < &ipic >;
234 fsl5200-clocking;
235 }; 232 };
236 233
237 i2ccontrol@1760 { 234 i2ccontrol@1760 {
diff --git a/arch/powerpc/boot/dts/mucmc52.dts b/arch/powerpc/boot/dts/mucmc52.dts
new file mode 100644
index 000000000000..b72a7581d798
--- /dev/null
+++ b/arch/powerpc/boot/dts/mucmc52.dts
@@ -0,0 +1,332 @@
1/*
2 * Manroland mucmc52 board Device Tree Source
3 *
4 * Copyright (C) 2009 DENX Software Engineering GmbH
5 * Heiko Schocher <hs@denx.de>
6 * Copyright 2006-2007 Secret Lab Technologies Ltd.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13
14/dts-v1/;
15
16/ {
17 model = "manroland,mucmc52";
18 compatible = "manroland,mucmc52";
19 #address-cells = <1>;
20 #size-cells = <1>;
21 interrupt-parent = <&mpc5200_pic>;
22
23 cpus {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 PowerPC,5200@0 {
28 device_type = "cpu";
29 reg = <0>;
30 d-cache-line-size = <32>;
31 i-cache-line-size = <32>;
32 d-cache-size = <0x4000>; // L1, 16K
33 i-cache-size = <0x4000>; // L1, 16K
34 timebase-frequency = <0>; // from bootloader
35 bus-frequency = <0>; // from bootloader
36 clock-frequency = <0>; // from bootloader
37 };
38 };
39
40 memory {
41 device_type = "memory";
42 reg = <0x00000000 0x04000000>; // 64MB
43 };
44
45 soc5200@f0000000 {
46 #address-cells = <1>;
47 #size-cells = <1>;
48 compatible = "fsl,mpc5200b-immr";
49 ranges = <0 0xf0000000 0x0000c000>;
50 reg = <0xf0000000 0x00000100>;
51 bus-frequency = <0>; // from bootloader
52 system-frequency = <0>; // from bootloader
53
54 cdm@200 {
55 compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm";
56 reg = <0x200 0x38>;
57 };
58
59 mpc5200_pic: interrupt-controller@500 {
60 // 5200 interrupts are encoded into two levels;
61 interrupt-controller;
62 #interrupt-cells = <3>;
63 compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic";
64 reg = <0x500 0x80>;
65 };
66
67 gpt0: timer@600 { // GPT 0 in GPIO mode
68 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
69 reg = <0x600 0x10>;
70 interrupts = <1 9 0>;
71 gpio-controller;
72 #gpio-cells = <2>;
73 };
74
75 gpt1: timer@610 { // General Purpose Timer in GPIO mode
76 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
77 reg = <0x610 0x10>;
78 interrupts = <1 10 0>;
79 gpio-controller;
80 #gpio-cells = <2>;
81 };
82
83 gpt2: timer@620 { // General Purpose Timer in GPIO mode
84 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
85 reg = <0x620 0x10>;
86 interrupts = <1 11 0>;
87 gpio-controller;
88 #gpio-cells = <2>;
89 };
90
91 gpt3: timer@630 { // General Purpose Timer in GPIO mode
92 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
93 reg = <0x630 0x10>;
94 interrupts = <1 12 0>;
95 gpio-controller;
96 #gpio-cells = <2>;
97 };
98
99 gpio_simple: gpio@b00 {
100 compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio";
101 reg = <0xb00 0x40>;
102 interrupts = <1 7 0>;
103 gpio-controller;
104 #gpio-cells = <2>;
105 };
106
107 gpio_wkup: gpio@c00 {
108 compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup";
109 reg = <0xc00 0x40>;
110 interrupts = <1 8 0 0 3 0>;
111 gpio-controller;
112 #gpio-cells = <2>;
113 };
114
115 dma-controller@1200 {
116 compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm";
117 reg = <0x1200 0x80>;
118 interrupts = <3 0 0 3 1 0 3 2 0 3 3 0
119 3 4 0 3 5 0 3 6 0 3 7 0
120 3 8 0 3 9 0 3 10 0 3 11 0
121 3 12 0 3 13 0 3 14 0 3 15 0>;
122 };
123
124 xlb@1f00 {
125 compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb";
126 reg = <0x1f00 0x100>;
127 };
128
129 serial@2000 { /* PSC1 in UART mode */
130 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
131 reg = <0x2000 0x100>;
132 interrupts = <2 1 0>;
133 };
134
135 serial@2200 { /* PSC2 in UART mode */
136 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
137 reg = <0x2200 0x100>;
138 interrupts = <2 2 0>;
139 };
140
141 serial@2c00 { /* PSC6 in UART mode */
142 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
143 reg = <0x2c00 0x100>;
144 interrupts = <2 4 0>;
145 };
146
147 ethernet@3000 {
148 compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec";
149 reg = <0x3000 0x400>;
150 local-mac-address = [ 00 00 00 00 00 00 ];
151 interrupts = <2 5 0>;
152 phy-handle = <&phy0>;
153 };
154
155 mdio@3000 {
156 #address-cells = <1>;
157 #size-cells = <0>;
158 compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio";
159 reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts
160 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
161
162 phy0: ethernet-phy@0 {
163 compatible = "intel,lxt971";
164 reg = <0>;
165 };
166 };
167
168 ata@3a00 {
169 compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata";
170 reg = <0x3a00 0x100>;
171 interrupts = <2 7 0>;
172 };
173
174 i2c@3d40 {
175 #address-cells = <1>;
176 #size-cells = <0>;
177 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
178 reg = <0x3d40 0x40>;
179 interrupts = <2 16 0>;
180 hwmon@2c {
181 compatible = "ad,adm9240";
182 reg = <0x2c>;
183 };
184 rtc@51 {
185 compatible = "nxp,pcf8563";
186 reg = <0x51>;
187 };
188 };
189
190 sram@8000 {
191 compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram";
192 reg = <0x8000 0x4000>;
193 };
194 };
195
196 pci@f0000d00 {
197 #interrupt-cells = <1>;
198 #size-cells = <2>;
199 #address-cells = <3>;
200 device_type = "pci";
201 compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci";
202 reg = <0xf0000d00 0x100>;
203 interrupt-map-mask = <0xf800 0 0 7>;
204 interrupt-map = <
205 /* IDSEL 0x10 */
206 0x8000 0 0 1 &mpc5200_pic 0 3 3
207 0x8000 0 0 2 &mpc5200_pic 0 3 3
208 0x8000 0 0 3 &mpc5200_pic 0 2 3
209 0x8000 0 0 4 &mpc5200_pic 0 1 3
210 >;
211 clock-frequency = <0>; // From boot loader
212 interrupts = <2 8 0 2 9 0 2 10 0>;
213 bus-range = <0 0>;
214 ranges = <0x42000000 0 0x60000000 0x60000000 0 0x10000000
215 0x02000000 0 0x90000000 0x90000000 0 0x10000000
216 0x01000000 0 0x00000000 0xa0000000 0 0x01000000>;
217 };
218
219 localbus {
220 compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus";
221
222 #address-cells = <2>;
223 #size-cells = <1>;
224
225 ranges = <0 0 0xff800000 0x00800000
226 1 0 0x80000000 0x00800000
227 3 0 0x80000000 0x00800000>;
228
229 flash@0,0 {
230 compatible = "cfi-flash";
231 reg = <0 0 0x00800000>;
232 bank-width = <4>;
233 device-width = <2>;
234 #size-cells = <1>;
235 #address-cells = <1>;
236 partition@0 {
237 label = "DTS";
238 reg = <0x0 0x00100000>;
239 };
240 partition@100000 {
241 label = "Kernel";
242 reg = <0x100000 0x00200000>;
243 };
244 partition@300000 {
245 label = "RootFS";
246 reg = <0x00300000 0x00200000>;
247 };
248 partition@500000 {
249 label = "user";
250 reg = <0x00500000 0x00200000>;
251 };
252 partition@700000 {
253 label = "U-Boot";
254 reg = <0x00700000 0x00040000>;
255 };
256 partition@740000 {
257 label = "Env";
258 reg = <0x00740000 0x00020000>;
259 };
260 partition@760000 {
261 label = "red. Env";
262 reg = <0x00760000 0x00020000>;
263 };
264 partition@780000 {
265 label = "reserve";
266 reg = <0x00780000 0x00080000>;
267 };
268 };
269
270 simple100: gpio-controller-100@3,600100 {
271 compatible = "manroland,mucmc52-aux-gpio";
272 reg = <3 0x00600100 0x1>;
273 gpio-controller;
274 #gpio-cells = <2>;
275 };
276 simple104: gpio-controller-104@3,600104 {
277 compatible = "manroland,mucmc52-aux-gpio";
278 reg = <3 0x00600104 0x1>;
279 gpio-controller;
280 #gpio-cells = <2>;
281 };
282 simple200: gpio-controller-200@3,600200 {
283 compatible = "manroland,mucmc52-aux-gpio";
284 reg = <3 0x00600200 0x1>;
285 gpio-controller;
286 #gpio-cells = <2>;
287 };
288 simple201: gpio-controller-201@3,600201 {
289 compatible = "manroland,mucmc52-aux-gpio";
290 reg = <3 0x00600201 0x1>;
291 gpio-controller;
292 #gpio-cells = <2>;
293 };
294 simple202: gpio-controller-202@3,600202 {
295 compatible = "manroland,mucmc52-aux-gpio";
296 reg = <3 0x00600202 0x1>;
297 gpio-controller;
298 #gpio-cells = <2>;
299 };
300 simple203: gpio-controller-203@3,600203 {
301 compatible = "manroland,mucmc52-aux-gpio";
302 reg = <3 0x00600203 0x1>;
303 gpio-controller;
304 #gpio-cells = <2>;
305 };
306 simple204: gpio-controller-204@3,600204 {
307 compatible = "manroland,mucmc52-aux-gpio";
308 reg = <3 0x00600204 0x1>;
309 gpio-controller;
310 #gpio-cells = <2>;
311 };
312 simple206: gpio-controller-206@3,600206 {
313 compatible = "manroland,mucmc52-aux-gpio";
314 reg = <3 0x00600206 0x1>;
315 gpio-controller;
316 #gpio-cells = <2>;
317 };
318 simple207: gpio-controller-207@3,600207 {
319 compatible = "manroland,mucmc52-aux-gpio";
320 reg = <3 0x00600207 0x1>;
321 gpio-controller;
322 #gpio-cells = <2>;
323 };
324 simple20f: gpio-controller-20f@3,60020f {
325 compatible = "manroland,mucmc52-aux-gpio";
326 reg = <3 0x0060020f 0x1>;
327 gpio-controller;
328 #gpio-cells = <2>;
329 };
330
331 };
332};
diff --git a/arch/powerpc/boot/dts/pcm030.dts b/arch/powerpc/boot/dts/pcm030.dts
index 30bfdc04c6df..8a4ec30b21ae 100644
--- a/arch/powerpc/boot/dts/pcm030.dts
+++ b/arch/powerpc/boot/dts/pcm030.dts
@@ -244,7 +244,6 @@
244 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 244 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
245 reg = <0x3d00 0x40>; 245 reg = <0x3d00 0x40>;
246 interrupts = <2 15 0>; 246 interrupts = <2 15 0>;
247 fsl5200-clocking;
248 }; 247 };
249 248
250 i2c@3d40 { 249 i2c@3d40 {
@@ -253,7 +252,6 @@
253 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 252 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
254 reg = <0x3d40 0x40>; 253 reg = <0x3d40 0x40>;
255 interrupts = <2 16 0>; 254 interrupts = <2 16 0>;
256 fsl5200-clocking;
257 rtc@51 { 255 rtc@51 {
258 compatible = "nxp,pcf8563"; 256 compatible = "nxp,pcf8563";
259 reg = <0x51>; 257 reg = <0x51>;
diff --git a/arch/powerpc/boot/dts/pcm032.dts b/arch/powerpc/boot/dts/pcm032.dts
index 030042678392..85d857a5d46e 100644
--- a/arch/powerpc/boot/dts/pcm032.dts
+++ b/arch/powerpc/boot/dts/pcm032.dts
@@ -244,7 +244,6 @@
244 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 244 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
245 reg = <0x3d00 0x40>; 245 reg = <0x3d00 0x40>;
246 interrupts = <2 15 0>; 246 interrupts = <2 15 0>;
247 fsl5200-clocking;
248 }; 247 };
249 248
250 i2c@3d40 { 249 i2c@3d40 {
@@ -253,7 +252,6 @@
253 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 252 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
254 reg = <0x3d40 0x40>; 253 reg = <0x3d40 0x40>;
255 interrupts = <2 16 0>; 254 interrupts = <2 16 0>;
256 fsl5200-clocking;
257 rtc@51 { 255 rtc@51 {
258 compatible = "nxp,pcf8563"; 256 compatible = "nxp,pcf8563";
259 reg = <0x51>; 257 reg = <0x51>;
diff --git a/arch/powerpc/boot/dts/tqm5200.dts b/arch/powerpc/boot/dts/tqm5200.dts
index c9590b58b7b0..1db07f6cf133 100644
--- a/arch/powerpc/boot/dts/tqm5200.dts
+++ b/arch/powerpc/boot/dts/tqm5200.dts
@@ -160,7 +160,6 @@
160 compatible = "fsl,mpc5200-i2c","fsl-i2c"; 160 compatible = "fsl,mpc5200-i2c","fsl-i2c";
161 reg = <0x3d40 0x40>; 161 reg = <0x3d40 0x40>;
162 interrupts = <2 16 0>; 162 interrupts = <2 16 0>;
163 fsl5200-clocking;
164 163
165 rtc@68 { 164 rtc@68 {
166 compatible = "dallas,ds1307"; 165 compatible = "dallas,ds1307";
diff --git a/arch/powerpc/boot/dts/uc101.dts b/arch/powerpc/boot/dts/uc101.dts
new file mode 100644
index 000000000000..019264c62904
--- /dev/null
+++ b/arch/powerpc/boot/dts/uc101.dts
@@ -0,0 +1,284 @@
1/*
2 * Manroland uc101 board Device Tree Source
3 *
4 * Copyright (C) 2009 DENX Software Engineering GmbH
5 * Heiko Schocher <hs@denx.de>
6 * Copyright 2006-2007 Secret Lab Technologies Ltd.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13
14/dts-v1/;
15
16/ {
17 model = "manroland,uc101";
18 compatible = "manroland,uc101";
19 #address-cells = <1>;
20 #size-cells = <1>;
21 interrupt-parent = <&mpc5200_pic>;
22
23 cpus {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 PowerPC,5200@0 {
28 device_type = "cpu";
29 reg = <0>;
30 d-cache-line-size = <32>;
31 i-cache-line-size = <32>;
32 d-cache-size = <0x4000>; // L1, 16K
33 i-cache-size = <0x4000>; // L1, 16K
34 timebase-frequency = <0>; // from bootloader
35 bus-frequency = <0>; // from bootloader
36 clock-frequency = <0>; // from bootloader
37 };
38 };
39
40 memory {
41 device_type = "memory";
42 reg = <0x00000000 0x04000000>; // 64MB
43 };
44
45 soc5200@f0000000 {
46 #address-cells = <1>;
47 #size-cells = <1>;
48 compatible = "fsl,mpc5200b-immr";
49 ranges = <0 0xf0000000 0x0000c000>;
50 reg = <0xf0000000 0x00000100>;
51 bus-frequency = <0>; // from bootloader
52 system-frequency = <0>; // from bootloader
53
54 cdm@200 {
55 compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm";
56 reg = <0x200 0x38>;
57 };
58
59 mpc5200_pic: interrupt-controller@500 {
60 // 5200 interrupts are encoded into two levels;
61 interrupt-controller;
62 #interrupt-cells = <3>;
63 compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic";
64 reg = <0x500 0x80>;
65 };
66
67 gpt0: timer@600 { // General Purpose Timer in GPIO mode
68 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
69 reg = <0x600 0x10>;
70 interrupts = <1 9 0>;
71 gpio-controller;
72 #gpio-cells = <2>;
73 };
74
75 gpt1: timer@610 { // General Purpose Timer in GPIO mode
76 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
77 reg = <0x610 0x10>;
78 interrupts = <1 10 0>;
79 gpio-controller;
80 #gpio-cells = <2>;
81 };
82
83 gpt2: timer@620 { // General Purpose Timer in GPIO mode
84 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
85 reg = <0x620 0x10>;
86 interrupts = <1 11 0>;
87 gpio-controller;
88 #gpio-cells = <2>;
89 };
90
91 gpt3: timer@630 { // General Purpose Timer in GPIO mode
92 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
93 reg = <0x630 0x10>;
94 interrupts = <1 12 0>;
95 gpio-controller;
96 #gpio-cells = <2>;
97 };
98
99 gpt4: timer@640 { // General Purpose Timer in GPIO mode
100 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
101 reg = <0x640 0x10>;
102 interrupts = <1 13 0>;
103 gpio-controller;
104 #gpio-cells = <2>;
105 };
106
107 gpt5: timer@650 { // General Purpose Timer in GPIO mode
108 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
109 reg = <0x650 0x10>;
110 interrupts = <1 14 0>;
111 gpio-controller;
112 #gpio-cells = <2>;
113 };
114
115 gpt6: timer@660 { // General Purpose Timer in GPIO mode
116 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
117 reg = <0x660 0x10>;
118 interrupts = <1 15 0>;
119 gpio-controller;
120 #gpio-cells = <2>;
121 };
122
123 gpt7: timer@670 { // General Purpose Timer in GPIO mode
124 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
125 reg = <0x670 0x10>;
126 interrupts = <1 16 0>;
127 gpio-controller;
128 #gpio-cells = <2>;
129 };
130
131 gpio_simple: gpio@b00 {
132 compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio";
133 reg = <0xb00 0x40>;
134 interrupts = <1 7 0>;
135 gpio-controller;
136 #gpio-cells = <2>;
137 };
138
139 gpio_wkup: gpio@c00 {
140 compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup";
141 reg = <0xc00 0x40>;
142 interrupts = <1 8 0 0 3 0>;
143 gpio-controller;
144 #gpio-cells = <2>;
145 };
146
147 dma-controller@1200 {
148 compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm";
149 reg = <0x1200 0x80>;
150 interrupts = <3 0 0 3 1 0 3 2 0 3 3 0
151 3 4 0 3 5 0 3 6 0 3 7 0
152 3 8 0 3 9 0 3 10 0 3 11 0
153 3 12 0 3 13 0 3 14 0 3 15 0>;
154 };
155
156 xlb@1f00 {
157 compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb";
158 reg = <0x1f00 0x100>;
159 };
160
161 serial@2000 { /* PSC1 in UART mode */
162 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
163 reg = <0x2000 0x100>;
164 interrupts = <2 1 0>;
165 };
166
167 serial@2200 { /* PSC2 in UART mode */
168 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
169 reg = <0x2200 0x100>;
170 interrupts = <2 2 0>;
171 };
172
173 serial@2c00 { /* PSC6 in UART mode */
174 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
175 reg = <0x2c00 0x100>;
176 interrupts = <2 4 0>;
177 };
178
179 ethernet@3000 {
180 compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec";
181 reg = <0x3000 0x400>;
182 local-mac-address = [ 00 00 00 00 00 00 ];
183 interrupts = <2 5 0>;
184 phy-handle = <&phy0>;
185 };
186
187 mdio@3000 {
188 #address-cells = <1>;
189 #size-cells = <0>;
190 compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio";
191 reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts
192 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
193
194 phy0: ethernet-phy@0 {
195 compatible = "intel,lxt971";
196 reg = <0>;
197 };
198 };
199
200 ata@3a00 {
201 compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata";
202 reg = <0x3a00 0x100>;
203 interrupts = <2 7 0>;
204 };
205
206 i2c@3d40 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
210 reg = <0x3d40 0x40>;
211 interrupts = <2 16 0>;
212 fsl,preserve-clocking;
213 clock-frequency = <400000>;
214
215 hwmon@2c {
216 compatible = "ad,adm9240";
217 reg = <0x2c>;
218 };
219 rtc@51 {
220 compatible = "nxp,pcf8563";
221 reg = <0x51>;
222 };
223 };
224
225 sram@8000 {
226 compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram";
227 reg = <0x8000 0x4000>;
228 };
229 };
230
231 localbus {
232 compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus";
233
234 #address-cells = <2>;
235 #size-cells = <1>;
236
237 ranges = <0 0 0xff800000 0x00800000
238 1 0 0x80000000 0x00800000
239 3 0 0x80000000 0x00800000>;
240
241 flash@0,0 {
242 compatible = "cfi-flash";
243 reg = <0 0 0x00800000>;
244 bank-width = <2>;
245 device-width = <2>;
246 #size-cells = <1>;
247 #address-cells = <1>;
248
249 partition@0 {
250 label = "DTS";
251 reg = <0x0 0x00100000>;
252 };
253 partition@100000 {
254 label = "Kernel";
255 reg = <0x100000 0x00200000>;
256 };
257 partition@300000 {
258 label = "RootFS";
259 reg = <0x00300000 0x00200000>;
260 };
261 partition@500000 {
262 label = "user";
263 reg = <0x00500000 0x00200000>;
264 };
265 partition@700000 {
266 label = "U-Boot";
267 reg = <0x00700000 0x00040000>;
268 };
269 partition@740000 {
270 label = "Env";
271 reg = <0x00740000 0x00010000>;
272 };
273 partition@750000 {
274 label = "red. Env";
275 reg = <0x00750000 0x00010000>;
276 };
277 partition@760000 {
278 label = "reserve";
279 reg = <0x00760000 0x000a0000>;
280 };
281 };
282
283 };
284};
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 3838b77b8116..0396ce7bffc6 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Sat Apr 18 00:47:44 2009 4# Thu Oct 15 10:33:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 48CONFIG_PPC=y
@@ -52,11 +56,13 @@ CONFIG_OF=y
52# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
55CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
65CONFIG_CONSTRUCTORS=y
60 66
61# 67#
62# General setup 68# General setup
@@ -77,11 +83,12 @@ CONFIG_SYSVIPC_SYSCTL=y
77# 83#
78# RCU Subsystem 84# RCU Subsystem
79# 85#
80CONFIG_CLASSIC_RCU=y 86CONFIG_TREE_RCU=y
81# CONFIG_TREE_RCU is not set 87# CONFIG_TREE_PREEMPT_RCU is not set
82# CONFIG_PREEMPT_RCU is not set 88# CONFIG_RCU_TRACE is not set
89CONFIG_RCU_FANOUT=32
90# CONFIG_RCU_FANOUT_EXACT is not set
83# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
85# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
86CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
87CONFIG_GROUP_SCHED=y 94CONFIG_GROUP_SCHED=y
@@ -105,7 +112,6 @@ CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
106# CONFIG_SYSCTL_SYSCALL is not set 113# CONFIG_SYSCTL_SYSCALL is not set
107# CONFIG_KALLSYMS is not set 114# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
109CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
110CONFIG_PRINTK=y 116CONFIG_PRINTK=y
111CONFIG_BUG=y 117CONFIG_BUG=y
@@ -118,6 +124,13 @@ CONFIG_TIMERFD=y
118CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
119CONFIG_SHMEM=y 125CONFIG_SHMEM=y
120CONFIG_AIO=y 126CONFIG_AIO=y
127CONFIG_HAVE_PERF_EVENTS=y
128
129#
130# Kernel Performance Events And Counters
131#
132# CONFIG_PERF_EVENTS is not set
133# CONFIG_PERF_COUNTERS is not set
121CONFIG_VM_EVENT_COUNTERS=y 134CONFIG_VM_EVENT_COUNTERS=y
122CONFIG_SLUB_DEBUG=y 135CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y 136CONFIG_COMPAT_BRK=y
@@ -125,14 +138,19 @@ CONFIG_COMPAT_BRK=y
125CONFIG_SLUB=y 138CONFIG_SLUB=y
126# CONFIG_SLOB is not set 139# CONFIG_SLOB is not set
127# CONFIG_PROFILING is not set 140# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
129CONFIG_HAVE_OPROFILE=y 141CONFIG_HAVE_OPROFILE=y
130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 142CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
131CONFIG_HAVE_IOREMAP_PROT=y 143CONFIG_HAVE_IOREMAP_PROT=y
132CONFIG_HAVE_KPROBES=y 144CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y 145CONFIG_HAVE_KRETPROBES=y
134CONFIG_HAVE_ARCH_TRACEHOOK=y 146CONFIG_HAVE_ARCH_TRACEHOOK=y
147CONFIG_HAVE_DMA_ATTRS=y
135CONFIG_HAVE_CLK=y 148CONFIG_HAVE_CLK=y
149CONFIG_HAVE_DMA_API_DEBUG=y
150
151#
152# GCOV-based kernel profiling
153#
136# CONFIG_SLOW_WORK is not set 154# CONFIG_SLOW_WORK is not set
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 155# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
138CONFIG_SLABINFO=y 156CONFIG_SLABINFO=y
@@ -140,7 +158,7 @@ CONFIG_RT_MUTEXES=y
140CONFIG_BASE_SMALL=0 158CONFIG_BASE_SMALL=0
141# CONFIG_MODULES is not set 159# CONFIG_MODULES is not set
142CONFIG_BLOCK=y 160CONFIG_BLOCK=y
143# CONFIG_LBD is not set 161CONFIG_LBDAF=y
144# CONFIG_BLK_DEV_BSG is not set 162# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set 163# CONFIG_BLK_DEV_INTEGRITY is not set
146 164
@@ -219,11 +237,13 @@ CONFIG_BINFMT_ELF=y
219# CONFIG_HAVE_AOUT is not set 237# CONFIG_HAVE_AOUT is not set
220# CONFIG_BINFMT_MISC is not set 238# CONFIG_BINFMT_MISC is not set
221# CONFIG_IOMMU_HELPER is not set 239# CONFIG_IOMMU_HELPER is not set
240# CONFIG_SWIOTLB is not set
222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 241CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
223CONFIG_ARCH_HAS_WALK_MEMORY=y 242CONFIG_ARCH_HAS_WALK_MEMORY=y
224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 243CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
225# CONFIG_KEXEC is not set 244# CONFIG_KEXEC is not set
226# CONFIG_CRASH_DUMP is not set 245# CONFIG_CRASH_DUMP is not set
246CONFIG_MAX_ACTIVE_REGIONS=32
227CONFIG_ARCH_FLATMEM_ENABLE=y 247CONFIG_ARCH_FLATMEM_ENABLE=y
228CONFIG_ARCH_POPULATES_NODE_MAP=y 248CONFIG_ARCH_POPULATES_NODE_MAP=y
229CONFIG_SELECT_MEMORY_MODEL=y 249CONFIG_SELECT_MEMORY_MODEL=y
@@ -239,9 +259,10 @@ CONFIG_MIGRATION=y
239CONFIG_ZONE_DMA_FLAG=1 259CONFIG_ZONE_DMA_FLAG=1
240CONFIG_BOUNCE=y 260CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 261CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y 262CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y 263CONFIG_HAVE_MLOCKED_PAGE_BIT=y
264# CONFIG_KSM is not set
265CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
245CONFIG_PPC_4K_PAGES=y 266CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set 267# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set 268# CONFIG_PPC_64K_PAGES is not set
@@ -252,6 +273,7 @@ CONFIG_PROC_DEVICETREE=y
252CONFIG_EXTRA_TARGETS="" 273CONFIG_EXTRA_TARGETS=""
253CONFIG_PM=y 274CONFIG_PM=y
254# CONFIG_PM_DEBUG is not set 275# CONFIG_PM_DEBUG is not set
276# CONFIG_PM_RUNTIME is not set
255CONFIG_SECCOMP=y 277CONFIG_SECCOMP=y
256CONFIG_ISA_DMA_API=y 278CONFIG_ISA_DMA_API=y
257 279
@@ -328,6 +350,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_NETFILTER is not set 350# CONFIG_NETFILTER is not set
329# CONFIG_IP_DCCP is not set 351# CONFIG_IP_DCCP is not set
330# CONFIG_IP_SCTP is not set 352# CONFIG_IP_SCTP is not set
353# CONFIG_RDS is not set
331# CONFIG_TIPC is not set 354# CONFIG_TIPC is not set
332# CONFIG_ATM is not set 355# CONFIG_ATM is not set
333# CONFIG_BRIDGE is not set 356# CONFIG_BRIDGE is not set
@@ -342,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
344# CONFIG_PHONET is not set 367# CONFIG_PHONET is not set
368# CONFIG_IEEE802154 is not set
345# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
346# CONFIG_DCB is not set 370# CONFIG_DCB is not set
347 371
@@ -367,6 +391,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
367# Generic Driver Options 391# Generic Driver Options
368# 392#
369CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 393CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
394# CONFIG_DEVTMPFS is not set
370CONFIG_STANDALONE=y 395CONFIG_STANDALONE=y
371CONFIG_PREVENT_FIRMWARE_BUILD=y 396CONFIG_PREVENT_FIRMWARE_BUILD=y
372# CONFIG_FW_LOADER is not set 397# CONFIG_FW_LOADER is not set
@@ -457,6 +482,7 @@ CONFIG_MTD_PHYSMAP_OF=y
457# CONFIG_MTD_UBI is not set 482# CONFIG_MTD_UBI is not set
458CONFIG_OF_DEVICE=y 483CONFIG_OF_DEVICE=y
459CONFIG_OF_I2C=y 484CONFIG_OF_I2C=y
485CONFIG_OF_MDIO=y
460# CONFIG_PARPORT is not set 486# CONFIG_PARPORT is not set
461CONFIG_BLK_DEV=y 487CONFIG_BLK_DEV=y
462# CONFIG_BLK_DEV_FD is not set 488# CONFIG_BLK_DEV_FD is not set
@@ -495,10 +521,6 @@ CONFIG_BLK_DEV_SD=y
495# CONFIG_BLK_DEV_SR is not set 521# CONFIG_BLK_DEV_SR is not set
496CONFIG_CHR_DEV_SG=y 522CONFIG_CHR_DEV_SG=y
497# CONFIG_CHR_DEV_SCH is not set 523# CONFIG_CHR_DEV_SCH is not set
498
499#
500# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
501#
502# CONFIG_SCSI_MULTI_LUN is not set 524# CONFIG_SCSI_MULTI_LUN is not set
503# CONFIG_SCSI_CONSTANTS is not set 525# CONFIG_SCSI_CONSTANTS is not set
504# CONFIG_SCSI_LOGGING is not set 526# CONFIG_SCSI_LOGGING is not set
@@ -519,7 +541,6 @@ CONFIG_CHR_DEV_SG=y
519# CONFIG_MD is not set 541# CONFIG_MD is not set
520# CONFIG_MACINTOSH_DRIVERS is not set 542# CONFIG_MACINTOSH_DRIVERS is not set
521CONFIG_NETDEVICES=y 543CONFIG_NETDEVICES=y
522CONFIG_COMPAT_NET_DEV_OPS=y
523# CONFIG_DUMMY is not set 544# CONFIG_DUMMY is not set
524# CONFIG_BONDING is not set 545# CONFIG_BONDING is not set
525# CONFIG_MACVLAN is not set 546# CONFIG_MACVLAN is not set
@@ -558,14 +579,14 @@ CONFIG_NET_ETHERNET=y
558# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 579# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
559# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 580# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
560# CONFIG_B44 is not set 581# CONFIG_B44 is not set
582# CONFIG_KS8842 is not set
583# CONFIG_KS8851_MLL is not set
561CONFIG_FEC_MPC52xx=y 584CONFIG_FEC_MPC52xx=y
562CONFIG_FEC_MPC52xx_MDIO=y 585CONFIG_FEC_MPC52xx_MDIO=y
586# CONFIG_XILINX_EMACLITE is not set
563# CONFIG_NETDEV_1000 is not set 587# CONFIG_NETDEV_1000 is not set
564# CONFIG_NETDEV_10000 is not set 588# CONFIG_NETDEV_10000 is not set
565 589CONFIG_WLAN=y
566#
567# Wireless LAN
568#
569# CONFIG_WLAN_PRE80211 is not set 590# CONFIG_WLAN_PRE80211 is not set
570# CONFIG_WLAN_80211 is not set 591# CONFIG_WLAN_80211 is not set
571 592
@@ -636,6 +657,7 @@ CONFIG_LEGACY_PTY_COUNT=256
636# CONFIG_TCG_TPM is not set 657# CONFIG_TCG_TPM is not set
637CONFIG_I2C=y 658CONFIG_I2C=y
638CONFIG_I2C_BOARDINFO=y 659CONFIG_I2C_BOARDINFO=y
660CONFIG_I2C_COMPAT=y
639CONFIG_I2C_CHARDEV=y 661CONFIG_I2C_CHARDEV=y
640CONFIG_I2C_HELPER_AUTO=y 662CONFIG_I2C_HELPER_AUTO=y
641 663
@@ -646,6 +668,7 @@ CONFIG_I2C_HELPER_AUTO=y
646# 668#
647# I2C system bus drivers (mostly embedded / system-on-chip) 669# I2C system bus drivers (mostly embedded / system-on-chip)
648# 670#
671# CONFIG_I2C_DESIGNWARE is not set
649CONFIG_I2C_MPC=y 672CONFIG_I2C_MPC=y
650# CONFIG_I2C_OCORES is not set 673# CONFIG_I2C_OCORES is not set
651# CONFIG_I2C_SIMTEC is not set 674# CONFIG_I2C_SIMTEC is not set
@@ -666,23 +689,23 @@ CONFIG_I2C_MPC=y
666# Miscellaneous I2C Chip support 689# Miscellaneous I2C Chip support
667# 690#
668# CONFIG_DS1682 is not set 691# CONFIG_DS1682 is not set
669# CONFIG_SENSORS_PCF8574 is not set
670# CONFIG_PCF8575 is not set
671# CONFIG_SENSORS_PCA9539 is not set
672# CONFIG_SENSORS_MAX6875 is not set
673# CONFIG_SENSORS_TSL2550 is not set 692# CONFIG_SENSORS_TSL2550 is not set
674# CONFIG_I2C_DEBUG_CORE is not set 693# CONFIG_I2C_DEBUG_CORE is not set
675# CONFIG_I2C_DEBUG_ALGO is not set 694# CONFIG_I2C_DEBUG_ALGO is not set
676# CONFIG_I2C_DEBUG_BUS is not set 695# CONFIG_I2C_DEBUG_BUS is not set
677# CONFIG_I2C_DEBUG_CHIP is not set 696# CONFIG_I2C_DEBUG_CHIP is not set
678# CONFIG_SPI is not set 697# CONFIG_SPI is not set
698
699#
700# PPS support
701#
702# CONFIG_PPS is not set
679CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 703CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
680# CONFIG_GPIOLIB is not set 704# CONFIG_GPIOLIB is not set
681# CONFIG_W1 is not set 705# CONFIG_W1 is not set
682# CONFIG_POWER_SUPPLY is not set 706# CONFIG_POWER_SUPPLY is not set
683# CONFIG_HWMON is not set 707# CONFIG_HWMON is not set
684# CONFIG_THERMAL is not set 708# CONFIG_THERMAL is not set
685# CONFIG_THERMAL_HWMON is not set
686CONFIG_WATCHDOG=y 709CONFIG_WATCHDOG=y
687# CONFIG_WATCHDOG_NOWAYOUT is not set 710# CONFIG_WATCHDOG_NOWAYOUT is not set
688 711
@@ -713,25 +736,12 @@ CONFIG_SSB_POSSIBLE=y
713# CONFIG_MFD_TMIO is not set 736# CONFIG_MFD_TMIO is not set
714# CONFIG_PMIC_DA903X is not set 737# CONFIG_PMIC_DA903X is not set
715# CONFIG_MFD_WM8400 is not set 738# CONFIG_MFD_WM8400 is not set
739# CONFIG_MFD_WM831X is not set
716# CONFIG_MFD_WM8350_I2C is not set 740# CONFIG_MFD_WM8350_I2C is not set
717# CONFIG_MFD_PCF50633 is not set 741# CONFIG_MFD_PCF50633 is not set
742# CONFIG_AB3100_CORE is not set
718# CONFIG_REGULATOR is not set 743# CONFIG_REGULATOR is not set
719 744# CONFIG_MEDIA_SUPPORT is not set
720#
721# Multimedia devices
722#
723
724#
725# Multimedia core support
726#
727# CONFIG_VIDEO_DEV is not set
728# CONFIG_DVB_CORE is not set
729# CONFIG_VIDEO_MEDIA is not set
730
731#
732# Multimedia drivers
733#
734# CONFIG_DAB is not set
735 745
736# 746#
737# Graphics support 747# Graphics support
@@ -775,11 +785,12 @@ CONFIG_USB_DEVICEFS=y
775# CONFIG_USB_OXU210HP_HCD is not set 785# CONFIG_USB_OXU210HP_HCD is not set
776# CONFIG_USB_ISP116X_HCD is not set 786# CONFIG_USB_ISP116X_HCD is not set
777# CONFIG_USB_ISP1760_HCD is not set 787# CONFIG_USB_ISP1760_HCD is not set
788# CONFIG_USB_ISP1362_HCD is not set
778CONFIG_USB_OHCI_HCD=y 789CONFIG_USB_OHCI_HCD=y
779CONFIG_USB_OHCI_HCD_PPC_SOC=y 790CONFIG_USB_OHCI_HCD_PPC_SOC=y
780CONFIG_USB_OHCI_HCD_PPC_OF=y
781CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 791CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
782# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 792# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
793CONFIG_USB_OHCI_HCD_PPC_OF=y
783CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 794CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
784CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 795CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
785# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set 796# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set
@@ -866,6 +877,10 @@ CONFIG_USB_STORAGE=y
866# CONFIG_DMADEVICES is not set 877# CONFIG_DMADEVICES is not set
867# CONFIG_AUXDISPLAY is not set 878# CONFIG_AUXDISPLAY is not set
868# CONFIG_UIO is not set 879# CONFIG_UIO is not set
880
881#
882# TI VLYNQ
883#
869# CONFIG_STAGING is not set 884# CONFIG_STAGING is not set
870 885
871# 886#
@@ -885,10 +900,13 @@ CONFIG_FS_MBCACHE=y
885# CONFIG_REISERFS_FS is not set 900# CONFIG_REISERFS_FS is not set
886# CONFIG_JFS_FS is not set 901# CONFIG_JFS_FS is not set
887# CONFIG_FS_POSIX_ACL is not set 902# CONFIG_FS_POSIX_ACL is not set
888CONFIG_FILE_LOCKING=y
889# CONFIG_XFS_FS is not set 903# CONFIG_XFS_FS is not set
904# CONFIG_GFS2_FS is not set
890# CONFIG_OCFS2_FS is not set 905# CONFIG_OCFS2_FS is not set
891# CONFIG_BTRFS_FS is not set 906# CONFIG_BTRFS_FS is not set
907# CONFIG_NILFS2_FS is not set
908CONFIG_FILE_LOCKING=y
909CONFIG_FSNOTIFY=y
892CONFIG_DNOTIFY=y 910CONFIG_DNOTIFY=y
893CONFIG_INOTIFY=y 911CONFIG_INOTIFY=y
894CONFIG_INOTIFY_USER=y 912CONFIG_INOTIFY_USER=y
@@ -959,12 +977,12 @@ CONFIG_CRAMFS=y
959# CONFIG_ROMFS_FS is not set 977# CONFIG_ROMFS_FS is not set
960# CONFIG_SYSV_FS is not set 978# CONFIG_SYSV_FS is not set
961# CONFIG_UFS_FS is not set 979# CONFIG_UFS_FS is not set
962# CONFIG_NILFS2_FS is not set
963CONFIG_NETWORK_FILESYSTEMS=y 980CONFIG_NETWORK_FILESYSTEMS=y
964CONFIG_NFS_FS=y 981CONFIG_NFS_FS=y
965CONFIG_NFS_V3=y 982CONFIG_NFS_V3=y
966# CONFIG_NFS_V3_ACL is not set 983# CONFIG_NFS_V3_ACL is not set
967CONFIG_NFS_V4=y 984CONFIG_NFS_V4=y
985# CONFIG_NFS_V4_1 is not set
968CONFIG_ROOT_NFS=y 986CONFIG_ROOT_NFS=y
969# CONFIG_NFSD is not set 987# CONFIG_NFSD is not set
970CONFIG_LOCKD=y 988CONFIG_LOCKD=y
@@ -1064,6 +1082,7 @@ CONFIG_HAS_IOPORT=y
1064CONFIG_HAS_DMA=y 1082CONFIG_HAS_DMA=y
1065CONFIG_HAVE_LMB=y 1083CONFIG_HAVE_LMB=y
1066CONFIG_NLATTR=y 1084CONFIG_NLATTR=y
1085CONFIG_GENERIC_ATOMIC64=y
1067 1086
1068# 1087#
1069# Kernel hacking 1088# Kernel hacking
@@ -1073,6 +1092,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1073CONFIG_ENABLE_MUST_CHECK=y 1092CONFIG_ENABLE_MUST_CHECK=y
1074CONFIG_FRAME_WARN=1024 1093CONFIG_FRAME_WARN=1024
1075# CONFIG_MAGIC_SYSRQ is not set 1094# CONFIG_MAGIC_SYSRQ is not set
1095# CONFIG_STRIP_ASM_SYMS is not set
1076# CONFIG_UNUSED_SYMBOLS is not set 1096# CONFIG_UNUSED_SYMBOLS is not set
1077# CONFIG_DEBUG_FS is not set 1097# CONFIG_DEBUG_FS is not set
1078# CONFIG_HEADERS_CHECK is not set 1098# CONFIG_HEADERS_CHECK is not set
@@ -1090,10 +1110,14 @@ CONFIG_SCHED_DEBUG=y
1090# CONFIG_DEBUG_OBJECTS is not set 1110# CONFIG_DEBUG_OBJECTS is not set
1091# CONFIG_SLUB_DEBUG_ON is not set 1111# CONFIG_SLUB_DEBUG_ON is not set
1092# CONFIG_SLUB_STATS is not set 1112# CONFIG_SLUB_STATS is not set
1113# CONFIG_DEBUG_KMEMLEAK is not set
1093# CONFIG_DEBUG_RT_MUTEXES is not set 1114# CONFIG_DEBUG_RT_MUTEXES is not set
1094# CONFIG_RT_MUTEX_TESTER is not set 1115# CONFIG_RT_MUTEX_TESTER is not set
1095# CONFIG_DEBUG_SPINLOCK is not set 1116# CONFIG_DEBUG_SPINLOCK is not set
1096# CONFIG_DEBUG_MUTEXES is not set 1117# CONFIG_DEBUG_MUTEXES is not set
1118# CONFIG_DEBUG_LOCK_ALLOC is not set
1119# CONFIG_PROVE_LOCKING is not set
1120# CONFIG_LOCK_STAT is not set
1097# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1121# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1098# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1122# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1099# CONFIG_DEBUG_KOBJECT is not set 1123# CONFIG_DEBUG_KOBJECT is not set
@@ -1105,11 +1129,12 @@ CONFIG_SCHED_DEBUG=y
1105# CONFIG_DEBUG_LIST is not set 1129# CONFIG_DEBUG_LIST is not set
1106# CONFIG_DEBUG_SG is not set 1130# CONFIG_DEBUG_SG is not set
1107# CONFIG_DEBUG_NOTIFIERS is not set 1131# CONFIG_DEBUG_NOTIFIERS is not set
1108# CONFIG_BOOT_PRINTK_DELAY is not set 1132# CONFIG_DEBUG_CREDENTIALS is not set
1109# CONFIG_RCU_TORTURE_TEST is not set 1133# CONFIG_RCU_TORTURE_TEST is not set
1110# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1134# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1111# CONFIG_BACKTRACE_SELF_TEST is not set 1135# CONFIG_BACKTRACE_SELF_TEST is not set
1112# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1136# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1137# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1113# CONFIG_FAULT_INJECTION is not set 1138# CONFIG_FAULT_INJECTION is not set
1114# CONFIG_LATENCYTOP is not set 1139# CONFIG_LATENCYTOP is not set
1115# CONFIG_DEBUG_PAGEALLOC is not set 1140# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1118,23 +1143,25 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1118CONFIG_HAVE_DYNAMIC_FTRACE=y 1143CONFIG_HAVE_DYNAMIC_FTRACE=y
1119CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1144CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1120CONFIG_TRACING_SUPPORT=y 1145CONFIG_TRACING_SUPPORT=y
1121 1146CONFIG_FTRACE=y
1122#
1123# Tracers
1124#
1125# CONFIG_FUNCTION_TRACER is not set 1147# CONFIG_FUNCTION_TRACER is not set
1148# CONFIG_IRQSOFF_TRACER is not set
1126# CONFIG_SCHED_TRACER is not set 1149# CONFIG_SCHED_TRACER is not set
1127# CONFIG_CONTEXT_SWITCH_TRACER is not set 1150# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1128# CONFIG_EVENT_TRACER is not set
1129# CONFIG_BOOT_TRACER is not set 1151# CONFIG_BOOT_TRACER is not set
1130# CONFIG_TRACE_BRANCH_PROFILING is not set 1152CONFIG_BRANCH_PROFILE_NONE=y
1153# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1154# CONFIG_PROFILE_ALL_BRANCHES is not set
1131# CONFIG_STACK_TRACER is not set 1155# CONFIG_STACK_TRACER is not set
1132# CONFIG_KMEMTRACE is not set 1156# CONFIG_KMEMTRACE is not set
1133# CONFIG_WORKQUEUE_TRACER is not set 1157# CONFIG_WORKQUEUE_TRACER is not set
1134# CONFIG_BLK_DEV_IO_TRACE is not set 1158# CONFIG_BLK_DEV_IO_TRACE is not set
1159# CONFIG_DMA_API_DEBUG is not set
1135# CONFIG_SAMPLES is not set 1160# CONFIG_SAMPLES is not set
1136CONFIG_HAVE_ARCH_KGDB=y 1161CONFIG_HAVE_ARCH_KGDB=y
1137# CONFIG_KGDB is not set 1162# CONFIG_KGDB is not set
1163# CONFIG_PPC_DISABLE_WERROR is not set
1164CONFIG_PPC_WERROR=y
1138CONFIG_PRINT_STACK_DEPTH=64 1165CONFIG_PRINT_STACK_DEPTH=64
1139# CONFIG_DEBUG_STACKOVERFLOW is not set 1166# CONFIG_DEBUG_STACKOVERFLOW is not set
1140# CONFIG_DEBUG_STACK_USAGE is not set 1167# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1159,7 +1186,6 @@ CONFIG_CRYPTO=y
1159# 1186#
1160# Crypto core or helper 1187# Crypto core or helper
1161# 1188#
1162# CONFIG_CRYPTO_FIPS is not set
1163CONFIG_CRYPTO_ALGAPI=y 1189CONFIG_CRYPTO_ALGAPI=y
1164CONFIG_CRYPTO_ALGAPI2=y 1190CONFIG_CRYPTO_ALGAPI2=y
1165CONFIG_CRYPTO_AEAD2=y 1191CONFIG_CRYPTO_AEAD2=y
@@ -1200,11 +1226,13 @@ CONFIG_CRYPTO_PCBC=y
1200# 1226#
1201# CONFIG_CRYPTO_HMAC is not set 1227# CONFIG_CRYPTO_HMAC is not set
1202# CONFIG_CRYPTO_XCBC is not set 1228# CONFIG_CRYPTO_XCBC is not set
1229# CONFIG_CRYPTO_VMAC is not set
1203 1230
1204# 1231#
1205# Digest 1232# Digest
1206# 1233#
1207# CONFIG_CRYPTO_CRC32C is not set 1234# CONFIG_CRYPTO_CRC32C is not set
1235# CONFIG_CRYPTO_GHASH is not set
1208# CONFIG_CRYPTO_MD4 is not set 1236# CONFIG_CRYPTO_MD4 is not set
1209CONFIG_CRYPTO_MD5=y 1237CONFIG_CRYPTO_MD5=y
1210# CONFIG_CRYPTO_MICHAEL_MIC is not set 1238# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 29b0f34488f5..f5c07fd72239 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Sat Apr 18 00:48:04 2009 4# Thu Oct 15 10:33:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 48CONFIG_PPC=y
@@ -52,12 +56,14 @@ CONFIG_OF=y
52# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
55CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 61CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 62# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 63# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 64CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 65CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
66CONFIG_CONSTRUCTORS=y
61 67
62# 68#
63# General setup 69# General setup
@@ -78,11 +84,12 @@ CONFIG_SYSVIPC_SYSCTL=y
78# 84#
79# RCU Subsystem 85# RCU Subsystem
80# 86#
81CONFIG_CLASSIC_RCU=y 87CONFIG_TREE_RCU=y
82# CONFIG_TREE_RCU is not set 88# CONFIG_TREE_PREEMPT_RCU is not set
83# CONFIG_PREEMPT_RCU is not set 89# CONFIG_RCU_TRACE is not set
90CONFIG_RCU_FANOUT=32
91# CONFIG_RCU_FANOUT_EXACT is not set
84# CONFIG_TREE_RCU_TRACE is not set 92# CONFIG_TREE_RCU_TRACE is not set
85# CONFIG_PREEMPT_RCU_TRACE is not set
86# CONFIG_IKCONFIG is not set 93# CONFIG_IKCONFIG is not set
87CONFIG_LOG_BUF_SHIFT=14 94CONFIG_LOG_BUF_SHIFT=14
88CONFIG_GROUP_SCHED=y 95CONFIG_GROUP_SCHED=y
@@ -106,7 +113,6 @@ CONFIG_ANON_INODES=y
106CONFIG_EMBEDDED=y 113CONFIG_EMBEDDED=y
107# CONFIG_SYSCTL_SYSCALL is not set 114# CONFIG_SYSCTL_SYSCALL is not set
108# CONFIG_KALLSYMS is not set 115# CONFIG_KALLSYMS is not set
109# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 116CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 117CONFIG_PRINTK=y
112CONFIG_BUG=y 118CONFIG_BUG=y
@@ -119,6 +125,13 @@ CONFIG_TIMERFD=y
119CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
120CONFIG_SHMEM=y 126CONFIG_SHMEM=y
121CONFIG_AIO=y 127CONFIG_AIO=y
128CONFIG_HAVE_PERF_EVENTS=y
129
130#
131# Kernel Performance Events And Counters
132#
133# CONFIG_PERF_EVENTS is not set
134# CONFIG_PERF_COUNTERS is not set
122CONFIG_VM_EVENT_COUNTERS=y 135CONFIG_VM_EVENT_COUNTERS=y
123CONFIG_PCI_QUIRKS=y 136CONFIG_PCI_QUIRKS=y
124CONFIG_SLUB_DEBUG=y 137CONFIG_SLUB_DEBUG=y
@@ -127,14 +140,19 @@ CONFIG_COMPAT_BRK=y
127CONFIG_SLUB=y 140CONFIG_SLUB=y
128# CONFIG_SLOB is not set 141# CONFIG_SLOB is not set
129# CONFIG_PROFILING is not set 142# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
131CONFIG_HAVE_OPROFILE=y 143CONFIG_HAVE_OPROFILE=y
132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 144CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
133CONFIG_HAVE_IOREMAP_PROT=y 145CONFIG_HAVE_IOREMAP_PROT=y
134CONFIG_HAVE_KPROBES=y 146CONFIG_HAVE_KPROBES=y
135CONFIG_HAVE_KRETPROBES=y 147CONFIG_HAVE_KRETPROBES=y
136CONFIG_HAVE_ARCH_TRACEHOOK=y 148CONFIG_HAVE_ARCH_TRACEHOOK=y
149CONFIG_HAVE_DMA_ATTRS=y
137CONFIG_HAVE_CLK=y 150CONFIG_HAVE_CLK=y
151CONFIG_HAVE_DMA_API_DEBUG=y
152
153#
154# GCOV-based kernel profiling
155#
138# CONFIG_SLOW_WORK is not set 156# CONFIG_SLOW_WORK is not set
139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 157# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 158CONFIG_SLABINFO=y
@@ -147,7 +165,7 @@ CONFIG_MODULE_UNLOAD=y
147# CONFIG_MODVERSIONS is not set 165# CONFIG_MODVERSIONS is not set
148# CONFIG_MODULE_SRCVERSION_ALL is not set 166# CONFIG_MODULE_SRCVERSION_ALL is not set
149CONFIG_BLOCK=y 167CONFIG_BLOCK=y
150# CONFIG_LBD is not set 168CONFIG_LBDAF=y
151# CONFIG_BLK_DEV_BSG is not set 169# CONFIG_BLK_DEV_BSG is not set
152# CONFIG_BLK_DEV_INTEGRITY is not set 170# CONFIG_BLK_DEV_INTEGRITY is not set
153 171
@@ -228,11 +246,13 @@ CONFIG_BINFMT_ELF=y
228# CONFIG_HAVE_AOUT is not set 246# CONFIG_HAVE_AOUT is not set
229# CONFIG_BINFMT_MISC is not set 247# CONFIG_BINFMT_MISC is not set
230# CONFIG_IOMMU_HELPER is not set 248# CONFIG_IOMMU_HELPER is not set
249# CONFIG_SWIOTLB is not set
231CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 250CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
232CONFIG_ARCH_HAS_WALK_MEMORY=y 251CONFIG_ARCH_HAS_WALK_MEMORY=y
233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 252CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set 253# CONFIG_KEXEC is not set
235# CONFIG_CRASH_DUMP is not set 254# CONFIG_CRASH_DUMP is not set
255CONFIG_MAX_ACTIVE_REGIONS=32
236CONFIG_ARCH_FLATMEM_ENABLE=y 256CONFIG_ARCH_FLATMEM_ENABLE=y
237CONFIG_ARCH_POPULATES_NODE_MAP=y 257CONFIG_ARCH_POPULATES_NODE_MAP=y
238CONFIG_SELECT_MEMORY_MODEL=y 258CONFIG_SELECT_MEMORY_MODEL=y
@@ -248,9 +268,10 @@ CONFIG_MIGRATION=y
248CONFIG_ZONE_DMA_FLAG=1 268CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 269CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 270CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y
252CONFIG_HAVE_MLOCK=y 271CONFIG_HAVE_MLOCK=y
253CONFIG_HAVE_MLOCKED_PAGE_BIT=y 272CONFIG_HAVE_MLOCKED_PAGE_BIT=y
273# CONFIG_KSM is not set
274CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
254CONFIG_PPC_4K_PAGES=y 275CONFIG_PPC_4K_PAGES=y
255# CONFIG_PPC_16K_PAGES is not set 276# CONFIG_PPC_16K_PAGES is not set
256# CONFIG_PPC_64K_PAGES is not set 277# CONFIG_PPC_64K_PAGES is not set
@@ -264,6 +285,7 @@ CONFIG_PM=y
264CONFIG_PM_SLEEP=y 285CONFIG_PM_SLEEP=y
265CONFIG_SUSPEND=y 286CONFIG_SUSPEND=y
266CONFIG_SUSPEND_FREEZER=y 287CONFIG_SUSPEND_FREEZER=y
288# CONFIG_PM_RUNTIME is not set
267CONFIG_SECCOMP=y 289CONFIG_SECCOMP=y
268CONFIG_ISA_DMA_API=y 290CONFIG_ISA_DMA_API=y
269 291
@@ -348,6 +370,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_NETFILTER is not set 370# CONFIG_NETFILTER is not set
349# CONFIG_IP_DCCP is not set 371# CONFIG_IP_DCCP is not set
350# CONFIG_IP_SCTP is not set 372# CONFIG_IP_SCTP is not set
373# CONFIG_RDS is not set
351# CONFIG_TIPC is not set 374# CONFIG_TIPC is not set
352# CONFIG_ATM is not set 375# CONFIG_ATM is not set
353# CONFIG_BRIDGE is not set 376# CONFIG_BRIDGE is not set
@@ -362,6 +385,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_ECONET is not set 385# CONFIG_ECONET is not set
363# CONFIG_WAN_ROUTER is not set 386# CONFIG_WAN_ROUTER is not set
364# CONFIG_PHONET is not set 387# CONFIG_PHONET is not set
388# CONFIG_IEEE802154 is not set
365# CONFIG_NET_SCHED is not set 389# CONFIG_NET_SCHED is not set
366# CONFIG_DCB is not set 390# CONFIG_DCB is not set
367 391
@@ -387,6 +411,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
387# Generic Driver Options 411# Generic Driver Options
388# 412#
389CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 413CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
414# CONFIG_DEVTMPFS is not set
390CONFIG_STANDALONE=y 415CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y 416CONFIG_PREVENT_FIRMWARE_BUILD=y
392# CONFIG_FW_LOADER is not set 417# CONFIG_FW_LOADER is not set
@@ -397,6 +422,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
397# CONFIG_MTD is not set 422# CONFIG_MTD is not set
398CONFIG_OF_DEVICE=y 423CONFIG_OF_DEVICE=y
399CONFIG_OF_I2C=y 424CONFIG_OF_I2C=y
425CONFIG_OF_MDIO=y
400# CONFIG_PARPORT is not set 426# CONFIG_PARPORT is not set
401CONFIG_BLK_DEV=y 427CONFIG_BLK_DEV=y
402# CONFIG_BLK_DEV_FD is not set 428# CONFIG_BLK_DEV_FD is not set
@@ -431,7 +457,9 @@ CONFIG_MISC_DEVICES=y
431# 457#
432# CONFIG_EEPROM_AT24 is not set 458# CONFIG_EEPROM_AT24 is not set
433# CONFIG_EEPROM_LEGACY is not set 459# CONFIG_EEPROM_LEGACY is not set
460# CONFIG_EEPROM_MAX6875 is not set
434# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_CB710_CORE is not set
435CONFIG_HAVE_IDE=y 463CONFIG_HAVE_IDE=y
436# CONFIG_IDE is not set 464# CONFIG_IDE is not set
437 465
@@ -454,10 +482,6 @@ CONFIG_BLK_DEV_SD=y
454# CONFIG_BLK_DEV_SR is not set 482# CONFIG_BLK_DEV_SR is not set
455# CONFIG_CHR_DEV_SG is not set 483# CONFIG_CHR_DEV_SG is not set
456# CONFIG_CHR_DEV_SCH is not set 484# CONFIG_CHR_DEV_SCH is not set
457
458#
459# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
460#
461# CONFIG_SCSI_MULTI_LUN is not set 485# CONFIG_SCSI_MULTI_LUN is not set
462# CONFIG_SCSI_CONSTANTS is not set 486# CONFIG_SCSI_CONSTANTS is not set
463# CONFIG_SCSI_LOGGING is not set 487# CONFIG_SCSI_LOGGING is not set
@@ -475,6 +499,8 @@ CONFIG_SCSI_WAIT_SCAN=m
475CONFIG_SCSI_LOWLEVEL=y 499CONFIG_SCSI_LOWLEVEL=y
476# CONFIG_ISCSI_TCP is not set 500# CONFIG_ISCSI_TCP is not set
477# CONFIG_SCSI_CXGB3_ISCSI is not set 501# CONFIG_SCSI_CXGB3_ISCSI is not set
502# CONFIG_SCSI_BNX2_ISCSI is not set
503# CONFIG_BE2ISCSI is not set
478# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
479# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
480# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -483,6 +509,7 @@ CONFIG_SCSI_LOWLEVEL=y
483# CONFIG_SCSI_AIC7XXX_OLD is not set 509# CONFIG_SCSI_AIC7XXX_OLD is not set
484# CONFIG_SCSI_AIC79XX is not set 510# CONFIG_SCSI_AIC79XX is not set
485# CONFIG_SCSI_AIC94XX is not set 511# CONFIG_SCSI_AIC94XX is not set
512# CONFIG_SCSI_MVSAS is not set
486# CONFIG_SCSI_DPT_I2O is not set 513# CONFIG_SCSI_DPT_I2O is not set
487# CONFIG_SCSI_ADVANSYS is not set 514# CONFIG_SCSI_ADVANSYS is not set
488# CONFIG_SCSI_ARCMSR is not set 515# CONFIG_SCSI_ARCMSR is not set
@@ -502,7 +529,6 @@ CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_SCSI_IPS is not set 529# CONFIG_SCSI_IPS is not set
503# CONFIG_SCSI_INITIO is not set 530# CONFIG_SCSI_INITIO is not set
504# CONFIG_SCSI_INIA100 is not set 531# CONFIG_SCSI_INIA100 is not set
505# CONFIG_SCSI_MVSAS is not set
506# CONFIG_SCSI_STEX is not set 532# CONFIG_SCSI_STEX is not set
507# CONFIG_SCSI_SYM53C8XX_2 is not set 533# CONFIG_SCSI_SYM53C8XX_2 is not set
508# CONFIG_SCSI_IPR is not set 534# CONFIG_SCSI_IPR is not set
@@ -514,11 +540,14 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_SCSI_DC390T is not set 540# CONFIG_SCSI_DC390T is not set
515# CONFIG_SCSI_NSP32 is not set 541# CONFIG_SCSI_NSP32 is not set
516# CONFIG_SCSI_DEBUG is not set 542# CONFIG_SCSI_DEBUG is not set
543# CONFIG_SCSI_PMCRAID is not set
517# CONFIG_SCSI_SRP is not set 544# CONFIG_SCSI_SRP is not set
545# CONFIG_SCSI_BFA_FC is not set
518# CONFIG_SCSI_DH is not set 546# CONFIG_SCSI_DH is not set
519# CONFIG_SCSI_OSD_INITIATOR is not set 547# CONFIG_SCSI_OSD_INITIATOR is not set
520CONFIG_ATA=y 548CONFIG_ATA=y
521# CONFIG_ATA_NONSTANDARD is not set 549# CONFIG_ATA_NONSTANDARD is not set
550CONFIG_ATA_VERBOSE_ERROR=y
522CONFIG_SATA_PMP=y 551CONFIG_SATA_PMP=y
523# CONFIG_SATA_AHCI is not set 552# CONFIG_SATA_AHCI is not set
524# CONFIG_SATA_SIL24 is not set 553# CONFIG_SATA_SIL24 is not set
@@ -540,6 +569,7 @@ CONFIG_ATA_SFF=y
540# CONFIG_PATA_ALI is not set 569# CONFIG_PATA_ALI is not set
541# CONFIG_PATA_AMD is not set 570# CONFIG_PATA_AMD is not set
542# CONFIG_PATA_ARTOP is not set 571# CONFIG_PATA_ARTOP is not set
572# CONFIG_PATA_ATP867X is not set
543# CONFIG_PATA_ATIIXP is not set 573# CONFIG_PATA_ATIIXP is not set
544# CONFIG_PATA_CMD640_PCI is not set 574# CONFIG_PATA_CMD640_PCI is not set
545# CONFIG_PATA_CMD64X is not set 575# CONFIG_PATA_CMD64X is not set
@@ -568,6 +598,7 @@ CONFIG_PATA_MPC52xx=y
568# CONFIG_PATA_OPTIDMA is not set 598# CONFIG_PATA_OPTIDMA is not set
569# CONFIG_PATA_PDC_OLD is not set 599# CONFIG_PATA_PDC_OLD is not set
570# CONFIG_PATA_RADISYS is not set 600# CONFIG_PATA_RADISYS is not set
601# CONFIG_PATA_RDC is not set
571# CONFIG_PATA_RZ1000 is not set 602# CONFIG_PATA_RZ1000 is not set
572# CONFIG_PATA_SC1200 is not set 603# CONFIG_PATA_SC1200 is not set
573# CONFIG_PATA_SERVERWORKS is not set 604# CONFIG_PATA_SERVERWORKS is not set
@@ -586,14 +617,17 @@ CONFIG_PATA_MPC52xx=y
586# 617#
587 618
588# 619#
589# Enable only one of the two stacks, unless you know what you are doing 620# You can enable one or both FireWire driver stacks.
621#
622
623#
624# See the help texts for more information.
590# 625#
591# CONFIG_FIREWIRE is not set 626# CONFIG_FIREWIRE is not set
592# CONFIG_IEEE1394 is not set 627# CONFIG_IEEE1394 is not set
593# CONFIG_I2O is not set 628# CONFIG_I2O is not set
594# CONFIG_MACINTOSH_DRIVERS is not set 629# CONFIG_MACINTOSH_DRIVERS is not set
595CONFIG_NETDEVICES=y 630CONFIG_NETDEVICES=y
596CONFIG_COMPAT_NET_DEV_OPS=y
597# CONFIG_DUMMY is not set 631# CONFIG_DUMMY is not set
598# CONFIG_BONDING is not set 632# CONFIG_BONDING is not set
599# CONFIG_MACVLAN is not set 633# CONFIG_MACVLAN is not set
@@ -640,9 +674,12 @@ CONFIG_NET_ETHERNET=y
640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 674# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
641# CONFIG_NET_PCI is not set 675# CONFIG_NET_PCI is not set
642# CONFIG_B44 is not set 676# CONFIG_B44 is not set
677# CONFIG_KS8842 is not set
678# CONFIG_KS8851_MLL is not set
643CONFIG_FEC_MPC52xx=y 679CONFIG_FEC_MPC52xx=y
644CONFIG_FEC_MPC52xx_MDIO=y 680CONFIG_FEC_MPC52xx_MDIO=y
645# CONFIG_ATL2 is not set 681# CONFIG_ATL2 is not set
682# CONFIG_XILINX_EMACLITE is not set
646CONFIG_NETDEV_1000=y 683CONFIG_NETDEV_1000=y
647# CONFIG_ACENIC is not set 684# CONFIG_ACENIC is not set
648# CONFIG_DL2K is not set 685# CONFIG_DL2K is not set
@@ -661,6 +698,8 @@ CONFIG_NETDEV_1000=y
661# CONFIG_VIA_VELOCITY is not set 698# CONFIG_VIA_VELOCITY is not set
662# CONFIG_TIGON3 is not set 699# CONFIG_TIGON3 is not set
663# CONFIG_BNX2 is not set 700# CONFIG_BNX2 is not set
701# CONFIG_CNIC is not set
702# CONFIG_MV643XX_ETH is not set
664# CONFIG_QLA3XXX is not set 703# CONFIG_QLA3XXX is not set
665# CONFIG_ATL1 is not set 704# CONFIG_ATL1 is not set
666# CONFIG_ATL1E is not set 705# CONFIG_ATL1E is not set
@@ -686,10 +725,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
686# CONFIG_SFC is not set 725# CONFIG_SFC is not set
687# CONFIG_BE2NET is not set 726# CONFIG_BE2NET is not set
688# CONFIG_TR is not set 727# CONFIG_TR is not set
689 728CONFIG_WLAN=y
690#
691# Wireless LAN
692#
693# CONFIG_WLAN_PRE80211 is not set 729# CONFIG_WLAN_PRE80211 is not set
694# CONFIG_WLAN_80211 is not set 730# CONFIG_WLAN_80211 is not set
695 731
@@ -759,6 +795,7 @@ CONFIG_GEN_RTC=y
759CONFIG_DEVPORT=y 795CONFIG_DEVPORT=y
760CONFIG_I2C=y 796CONFIG_I2C=y
761CONFIG_I2C_BOARDINFO=y 797CONFIG_I2C_BOARDINFO=y
798CONFIG_I2C_COMPAT=y
762CONFIG_I2C_CHARDEV=y 799CONFIG_I2C_CHARDEV=y
763CONFIG_I2C_HELPER_AUTO=y 800CONFIG_I2C_HELPER_AUTO=y
764 801
@@ -787,6 +824,7 @@ CONFIG_I2C_HELPER_AUTO=y
787# 824#
788# I2C system bus drivers (mostly embedded / system-on-chip) 825# I2C system bus drivers (mostly embedded / system-on-chip)
789# 826#
827# CONFIG_I2C_DESIGNWARE is not set
790CONFIG_I2C_MPC=y 828CONFIG_I2C_MPC=y
791# CONFIG_I2C_OCORES is not set 829# CONFIG_I2C_OCORES is not set
792# CONFIG_I2C_SIMTEC is not set 830# CONFIG_I2C_SIMTEC is not set
@@ -812,23 +850,23 @@ CONFIG_I2C_MPC=y
812# Miscellaneous I2C Chip support 850# Miscellaneous I2C Chip support
813# 851#
814# CONFIG_DS1682 is not set 852# CONFIG_DS1682 is not set
815# CONFIG_SENSORS_PCF8574 is not set
816# CONFIG_PCF8575 is not set
817# CONFIG_SENSORS_PCA9539 is not set
818# CONFIG_SENSORS_MAX6875 is not set
819# CONFIG_SENSORS_TSL2550 is not set 853# CONFIG_SENSORS_TSL2550 is not set
820# CONFIG_I2C_DEBUG_CORE is not set 854# CONFIG_I2C_DEBUG_CORE is not set
821# CONFIG_I2C_DEBUG_ALGO is not set 855# CONFIG_I2C_DEBUG_ALGO is not set
822# CONFIG_I2C_DEBUG_BUS is not set 856# CONFIG_I2C_DEBUG_BUS is not set
823# CONFIG_I2C_DEBUG_CHIP is not set 857# CONFIG_I2C_DEBUG_CHIP is not set
824# CONFIG_SPI is not set 858# CONFIG_SPI is not set
859
860#
861# PPS support
862#
863# CONFIG_PPS is not set
825CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 864CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
826# CONFIG_GPIOLIB is not set 865# CONFIG_GPIOLIB is not set
827# CONFIG_W1 is not set 866# CONFIG_W1 is not set
828# CONFIG_POWER_SUPPLY is not set 867# CONFIG_POWER_SUPPLY is not set
829# CONFIG_HWMON is not set 868# CONFIG_HWMON is not set
830# CONFIG_THERMAL is not set 869# CONFIG_THERMAL is not set
831# CONFIG_THERMAL_HWMON is not set
832# CONFIG_WATCHDOG is not set 870# CONFIG_WATCHDOG is not set
833CONFIG_SSB_POSSIBLE=y 871CONFIG_SSB_POSSIBLE=y
834 872
@@ -847,30 +885,18 @@ CONFIG_SSB_POSSIBLE=y
847# CONFIG_MFD_TMIO is not set 885# CONFIG_MFD_TMIO is not set
848# CONFIG_PMIC_DA903X is not set 886# CONFIG_PMIC_DA903X is not set
849# CONFIG_MFD_WM8400 is not set 887# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM831X is not set
850# CONFIG_MFD_WM8350_I2C is not set 889# CONFIG_MFD_WM8350_I2C is not set
851# CONFIG_MFD_PCF50633 is not set 890# CONFIG_MFD_PCF50633 is not set
891# CONFIG_AB3100_CORE is not set
852# CONFIG_REGULATOR is not set 892# CONFIG_REGULATOR is not set
853 893# CONFIG_MEDIA_SUPPORT is not set
854#
855# Multimedia devices
856#
857
858#
859# Multimedia core support
860#
861# CONFIG_VIDEO_DEV is not set
862# CONFIG_DVB_CORE is not set
863# CONFIG_VIDEO_MEDIA is not set
864
865#
866# Multimedia drivers
867#
868# CONFIG_DAB is not set
869 894
870# 895#
871# Graphics support 896# Graphics support
872# 897#
873# CONFIG_AGP is not set 898# CONFIG_AGP is not set
899CONFIG_VGA_ARB=y
874# CONFIG_DRM is not set 900# CONFIG_DRM is not set
875# CONFIG_VGASTATE is not set 901# CONFIG_VGASTATE is not set
876CONFIG_VIDEO_OUTPUT_CONTROL=m 902CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -913,6 +939,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
913# CONFIG_DMADEVICES is not set 939# CONFIG_DMADEVICES is not set
914# CONFIG_AUXDISPLAY is not set 940# CONFIG_AUXDISPLAY is not set
915# CONFIG_UIO is not set 941# CONFIG_UIO is not set
942
943#
944# TI VLYNQ
945#
916# CONFIG_STAGING is not set 946# CONFIG_STAGING is not set
917 947
918# 948#
@@ -932,10 +962,13 @@ CONFIG_FS_MBCACHE=y
932# CONFIG_REISERFS_FS is not set 962# CONFIG_REISERFS_FS is not set
933# CONFIG_JFS_FS is not set 963# CONFIG_JFS_FS is not set
934# CONFIG_FS_POSIX_ACL is not set 964# CONFIG_FS_POSIX_ACL is not set
935CONFIG_FILE_LOCKING=y
936# CONFIG_XFS_FS is not set 965# CONFIG_XFS_FS is not set
966# CONFIG_GFS2_FS is not set
937# CONFIG_OCFS2_FS is not set 967# CONFIG_OCFS2_FS is not set
938# CONFIG_BTRFS_FS is not set 968# CONFIG_BTRFS_FS is not set
969# CONFIG_NILFS2_FS is not set
970CONFIG_FILE_LOCKING=y
971CONFIG_FSNOTIFY=y
939CONFIG_DNOTIFY=y 972CONFIG_DNOTIFY=y
940CONFIG_INOTIFY=y 973CONFIG_INOTIFY=y
941CONFIG_INOTIFY_USER=y 974CONFIG_INOTIFY_USER=y
@@ -992,12 +1025,12 @@ CONFIG_MISC_FILESYSTEMS=y
992# CONFIG_ROMFS_FS is not set 1025# CONFIG_ROMFS_FS is not set
993# CONFIG_SYSV_FS is not set 1026# CONFIG_SYSV_FS is not set
994# CONFIG_UFS_FS is not set 1027# CONFIG_UFS_FS is not set
995# CONFIG_NILFS2_FS is not set
996CONFIG_NETWORK_FILESYSTEMS=y 1028CONFIG_NETWORK_FILESYSTEMS=y
997CONFIG_NFS_FS=y 1029CONFIG_NFS_FS=y
998CONFIG_NFS_V3=y 1030CONFIG_NFS_V3=y
999# CONFIG_NFS_V3_ACL is not set 1031# CONFIG_NFS_V3_ACL is not set
1000CONFIG_NFS_V4=y 1032CONFIG_NFS_V4=y
1033# CONFIG_NFS_V4_1 is not set
1001CONFIG_ROOT_NFS=y 1034CONFIG_ROOT_NFS=y
1002# CONFIG_NFSD is not set 1035# CONFIG_NFSD is not set
1003CONFIG_LOCKD=y 1036CONFIG_LOCKD=y
@@ -1041,6 +1074,7 @@ CONFIG_HAS_IOPORT=y
1041CONFIG_HAS_DMA=y 1074CONFIG_HAS_DMA=y
1042CONFIG_HAVE_LMB=y 1075CONFIG_HAVE_LMB=y
1043CONFIG_NLATTR=y 1076CONFIG_NLATTR=y
1077CONFIG_GENERIC_ATOMIC64=y
1044 1078
1045# 1079#
1046# Kernel hacking 1080# Kernel hacking
@@ -1050,6 +1084,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1050CONFIG_ENABLE_MUST_CHECK=y 1084CONFIG_ENABLE_MUST_CHECK=y
1051CONFIG_FRAME_WARN=1024 1085CONFIG_FRAME_WARN=1024
1052# CONFIG_MAGIC_SYSRQ is not set 1086# CONFIG_MAGIC_SYSRQ is not set
1087# CONFIG_STRIP_ASM_SYMS is not set
1053# CONFIG_UNUSED_SYMBOLS is not set 1088# CONFIG_UNUSED_SYMBOLS is not set
1054# CONFIG_DEBUG_FS is not set 1089# CONFIG_DEBUG_FS is not set
1055# CONFIG_HEADERS_CHECK is not set 1090# CONFIG_HEADERS_CHECK is not set
@@ -1067,10 +1102,14 @@ CONFIG_SCHED_DEBUG=y
1067# CONFIG_DEBUG_OBJECTS is not set 1102# CONFIG_DEBUG_OBJECTS is not set
1068# CONFIG_SLUB_DEBUG_ON is not set 1103# CONFIG_SLUB_DEBUG_ON is not set
1069# CONFIG_SLUB_STATS is not set 1104# CONFIG_SLUB_STATS is not set
1105# CONFIG_DEBUG_KMEMLEAK is not set
1070# CONFIG_DEBUG_RT_MUTEXES is not set 1106# CONFIG_DEBUG_RT_MUTEXES is not set
1071# CONFIG_RT_MUTEX_TESTER is not set 1107# CONFIG_RT_MUTEX_TESTER is not set
1072# CONFIG_DEBUG_SPINLOCK is not set 1108# CONFIG_DEBUG_SPINLOCK is not set
1073# CONFIG_DEBUG_MUTEXES is not set 1109# CONFIG_DEBUG_MUTEXES is not set
1110# CONFIG_DEBUG_LOCK_ALLOC is not set
1111# CONFIG_PROVE_LOCKING is not set
1112# CONFIG_LOCK_STAT is not set
1074# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1113# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1075# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1114# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1076# CONFIG_DEBUG_KOBJECT is not set 1115# CONFIG_DEBUG_KOBJECT is not set
@@ -1082,11 +1121,12 @@ CONFIG_DEBUG_INFO=y
1082# CONFIG_DEBUG_LIST is not set 1121# CONFIG_DEBUG_LIST is not set
1083# CONFIG_DEBUG_SG is not set 1122# CONFIG_DEBUG_SG is not set
1084# CONFIG_DEBUG_NOTIFIERS is not set 1123# CONFIG_DEBUG_NOTIFIERS is not set
1085# CONFIG_BOOT_PRINTK_DELAY is not set 1124# CONFIG_DEBUG_CREDENTIALS is not set
1086# CONFIG_RCU_TORTURE_TEST is not set 1125# CONFIG_RCU_TORTURE_TEST is not set
1087# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1126# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1088# CONFIG_BACKTRACE_SELF_TEST is not set 1127# CONFIG_BACKTRACE_SELF_TEST is not set
1089# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1128# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1129# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1090# CONFIG_FAULT_INJECTION is not set 1130# CONFIG_FAULT_INJECTION is not set
1091# CONFIG_LATENCYTOP is not set 1131# CONFIG_LATENCYTOP is not set
1092# CONFIG_DEBUG_PAGEALLOC is not set 1132# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1095,23 +1135,25 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1095CONFIG_HAVE_DYNAMIC_FTRACE=y 1135CONFIG_HAVE_DYNAMIC_FTRACE=y
1096CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1136CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1097CONFIG_TRACING_SUPPORT=y 1137CONFIG_TRACING_SUPPORT=y
1098 1138CONFIG_FTRACE=y
1099#
1100# Tracers
1101#
1102# CONFIG_FUNCTION_TRACER is not set 1139# CONFIG_FUNCTION_TRACER is not set
1140# CONFIG_IRQSOFF_TRACER is not set
1103# CONFIG_SCHED_TRACER is not set 1141# CONFIG_SCHED_TRACER is not set
1104# CONFIG_CONTEXT_SWITCH_TRACER is not set 1142# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1105# CONFIG_EVENT_TRACER is not set
1106# CONFIG_BOOT_TRACER is not set 1143# CONFIG_BOOT_TRACER is not set
1107# CONFIG_TRACE_BRANCH_PROFILING is not set 1144CONFIG_BRANCH_PROFILE_NONE=y
1145# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1146# CONFIG_PROFILE_ALL_BRANCHES is not set
1108# CONFIG_STACK_TRACER is not set 1147# CONFIG_STACK_TRACER is not set
1109# CONFIG_KMEMTRACE is not set 1148# CONFIG_KMEMTRACE is not set
1110# CONFIG_WORKQUEUE_TRACER is not set 1149# CONFIG_WORKQUEUE_TRACER is not set
1111# CONFIG_BLK_DEV_IO_TRACE is not set 1150# CONFIG_BLK_DEV_IO_TRACE is not set
1151# CONFIG_DMA_API_DEBUG is not set
1112# CONFIG_SAMPLES is not set 1152# CONFIG_SAMPLES is not set
1113CONFIG_HAVE_ARCH_KGDB=y 1153CONFIG_HAVE_ARCH_KGDB=y
1114# CONFIG_KGDB is not set 1154# CONFIG_KGDB is not set
1155# CONFIG_PPC_DISABLE_WERROR is not set
1156CONFIG_PPC_WERROR=y
1115CONFIG_PRINT_STACK_DEPTH=64 1157CONFIG_PRINT_STACK_DEPTH=64
1116# CONFIG_DEBUG_STACKOVERFLOW is not set 1158# CONFIG_DEBUG_STACKOVERFLOW is not set
1117# CONFIG_DEBUG_STACK_USAGE is not set 1159# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1136,7 +1178,6 @@ CONFIG_CRYPTO=y
1136# 1178#
1137# Crypto core or helper 1179# Crypto core or helper
1138# 1180#
1139# CONFIG_CRYPTO_FIPS is not set
1140CONFIG_CRYPTO_ALGAPI=y 1181CONFIG_CRYPTO_ALGAPI=y
1141CONFIG_CRYPTO_ALGAPI2=y 1182CONFIG_CRYPTO_ALGAPI2=y
1142CONFIG_CRYPTO_AEAD2=y 1183CONFIG_CRYPTO_AEAD2=y
@@ -1178,11 +1219,13 @@ CONFIG_CRYPTO_CBC=y
1178# 1219#
1179# CONFIG_CRYPTO_HMAC is not set 1220# CONFIG_CRYPTO_HMAC is not set
1180# CONFIG_CRYPTO_XCBC is not set 1221# CONFIG_CRYPTO_XCBC is not set
1222# CONFIG_CRYPTO_VMAC is not set
1181 1223
1182# 1224#
1183# Digest 1225# Digest
1184# 1226#
1185# CONFIG_CRYPTO_CRC32C is not set 1227# CONFIG_CRYPTO_CRC32C is not set
1228# CONFIG_CRYPTO_GHASH is not set
1186# CONFIG_CRYPTO_MD4 is not set 1229# CONFIG_CRYPTO_MD4 is not set
1187CONFIG_CRYPTO_MD5=y 1230CONFIG_CRYPTO_MD5=y
1188# CONFIG_CRYPTO_MICHAEL_MIC is not set 1231# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index 07b6b266ea95..4f77a1bdc8f9 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Sat Apr 18 00:48:22 2009 4# Thu Oct 15 10:33:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 48CONFIG_PPC=y
@@ -52,11 +56,13 @@ CONFIG_OF=y
52# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
55CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
65CONFIG_CONSTRUCTORS=y
60 66
61# 67#
62# General setup 68# General setup
@@ -77,11 +83,12 @@ CONFIG_SYSVIPC_SYSCTL=y
77# 83#
78# RCU Subsystem 84# RCU Subsystem
79# 85#
80CONFIG_CLASSIC_RCU=y 86CONFIG_TREE_RCU=y
81# CONFIG_TREE_RCU is not set 87# CONFIG_TREE_PREEMPT_RCU is not set
82# CONFIG_PREEMPT_RCU is not set 88# CONFIG_RCU_TRACE is not set
89CONFIG_RCU_FANOUT=32
90# CONFIG_RCU_FANOUT_EXACT is not set
83# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
85# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
86CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
87CONFIG_GROUP_SCHED=y 94CONFIG_GROUP_SCHED=y
@@ -105,7 +112,6 @@ CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
106# CONFIG_SYSCTL_SYSCALL is not set 113# CONFIG_SYSCTL_SYSCALL is not set
107# CONFIG_KALLSYMS is not set 114# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
109CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
110CONFIG_PRINTK=y 116CONFIG_PRINTK=y
111CONFIG_BUG=y 117CONFIG_BUG=y
@@ -118,6 +124,13 @@ CONFIG_TIMERFD=y
118CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
119CONFIG_SHMEM=y 125CONFIG_SHMEM=y
120CONFIG_AIO=y 126CONFIG_AIO=y
127CONFIG_HAVE_PERF_EVENTS=y
128
129#
130# Kernel Performance Events And Counters
131#
132# CONFIG_PERF_EVENTS is not set
133# CONFIG_PERF_COUNTERS is not set
121CONFIG_VM_EVENT_COUNTERS=y 134CONFIG_VM_EVENT_COUNTERS=y
122CONFIG_SLUB_DEBUG=y 135CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y 136CONFIG_COMPAT_BRK=y
@@ -125,14 +138,19 @@ CONFIG_COMPAT_BRK=y
125CONFIG_SLUB=y 138CONFIG_SLUB=y
126# CONFIG_SLOB is not set 139# CONFIG_SLOB is not set
127# CONFIG_PROFILING is not set 140# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
129CONFIG_HAVE_OPROFILE=y 141CONFIG_HAVE_OPROFILE=y
130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 142CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
131CONFIG_HAVE_IOREMAP_PROT=y 143CONFIG_HAVE_IOREMAP_PROT=y
132CONFIG_HAVE_KPROBES=y 144CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y 145CONFIG_HAVE_KRETPROBES=y
134CONFIG_HAVE_ARCH_TRACEHOOK=y 146CONFIG_HAVE_ARCH_TRACEHOOK=y
147CONFIG_HAVE_DMA_ATTRS=y
135CONFIG_HAVE_CLK=y 148CONFIG_HAVE_CLK=y
149CONFIG_HAVE_DMA_API_DEBUG=y
150
151#
152# GCOV-based kernel profiling
153#
136# CONFIG_SLOW_WORK is not set 154# CONFIG_SLOW_WORK is not set
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 155# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
138CONFIG_SLABINFO=y 156CONFIG_SLABINFO=y
@@ -140,7 +158,7 @@ CONFIG_RT_MUTEXES=y
140CONFIG_BASE_SMALL=0 158CONFIG_BASE_SMALL=0
141# CONFIG_MODULES is not set 159# CONFIG_MODULES is not set
142CONFIG_BLOCK=y 160CONFIG_BLOCK=y
143# CONFIG_LBD is not set 161CONFIG_LBDAF=y
144# CONFIG_BLK_DEV_BSG is not set 162# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set 163# CONFIG_BLK_DEV_INTEGRITY is not set
146 164
@@ -220,11 +238,13 @@ CONFIG_BINFMT_ELF=y
220# CONFIG_HAVE_AOUT is not set 238# CONFIG_HAVE_AOUT is not set
221# CONFIG_BINFMT_MISC is not set 239# CONFIG_BINFMT_MISC is not set
222# CONFIG_IOMMU_HELPER is not set 240# CONFIG_IOMMU_HELPER is not set
241# CONFIG_SWIOTLB is not set
223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 242CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
224CONFIG_ARCH_HAS_WALK_MEMORY=y 243CONFIG_ARCH_HAS_WALK_MEMORY=y
225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 244CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
226# CONFIG_KEXEC is not set 245# CONFIG_KEXEC is not set
227# CONFIG_CRASH_DUMP is not set 246# CONFIG_CRASH_DUMP is not set
247CONFIG_MAX_ACTIVE_REGIONS=32
228CONFIG_ARCH_FLATMEM_ENABLE=y 248CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 249CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 250CONFIG_SELECT_MEMORY_MODEL=y
@@ -240,9 +260,10 @@ CONFIG_MIGRATION=y
240CONFIG_ZONE_DMA_FLAG=1 260CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 261CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 262CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y 263CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y 264CONFIG_HAVE_MLOCKED_PAGE_BIT=y
265# CONFIG_KSM is not set
266CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
246CONFIG_PPC_4K_PAGES=y 267CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 268# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 269# CONFIG_PPC_64K_PAGES is not set
@@ -253,6 +274,7 @@ CONFIG_PROC_DEVICETREE=y
253CONFIG_EXTRA_TARGETS="" 274CONFIG_EXTRA_TARGETS=""
254CONFIG_PM=y 275CONFIG_PM=y
255# CONFIG_PM_DEBUG is not set 276# CONFIG_PM_DEBUG is not set
277# CONFIG_PM_RUNTIME is not set
256CONFIG_SECCOMP=y 278CONFIG_SECCOMP=y
257CONFIG_ISA_DMA_API=y 279CONFIG_ISA_DMA_API=y
258 280
@@ -329,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_NETFILTER is not set 351# CONFIG_NETFILTER is not set
330# CONFIG_IP_DCCP is not set 352# CONFIG_IP_DCCP is not set
331# CONFIG_IP_SCTP is not set 353# CONFIG_IP_SCTP is not set
354# CONFIG_RDS is not set
332# CONFIG_TIPC is not set 355# CONFIG_TIPC is not set
333# CONFIG_ATM is not set 356# CONFIG_ATM is not set
334# CONFIG_BRIDGE is not set 357# CONFIG_BRIDGE is not set
@@ -343,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
344# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
345# CONFIG_PHONET is not set 368# CONFIG_PHONET is not set
369# CONFIG_IEEE802154 is not set
346# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set 371# CONFIG_DCB is not set
348 372
@@ -368,6 +392,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
368# Generic Driver Options 392# Generic Driver Options
369# 393#
370CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 394CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
395# CONFIG_DEVTMPFS is not set
371CONFIG_STANDALONE=y 396CONFIG_STANDALONE=y
372CONFIG_PREVENT_FIRMWARE_BUILD=y 397CONFIG_PREVENT_FIRMWARE_BUILD=y
373# CONFIG_FW_LOADER is not set 398# CONFIG_FW_LOADER is not set
@@ -458,6 +483,7 @@ CONFIG_MTD_ROM=y
458# CONFIG_MTD_UBI is not set 483# CONFIG_MTD_UBI is not set
459CONFIG_OF_DEVICE=y 484CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 485CONFIG_OF_I2C=y
486CONFIG_OF_MDIO=y
461# CONFIG_PARPORT is not set 487# CONFIG_PARPORT is not set
462CONFIG_BLK_DEV=y 488CONFIG_BLK_DEV=y
463# CONFIG_BLK_DEV_FD is not set 489# CONFIG_BLK_DEV_FD is not set
@@ -483,6 +509,7 @@ CONFIG_MISC_DEVICES=y
483# 509#
484# CONFIG_EEPROM_AT24 is not set 510# CONFIG_EEPROM_AT24 is not set
485CONFIG_EEPROM_LEGACY=y 511CONFIG_EEPROM_LEGACY=y
512# CONFIG_EEPROM_MAX6875 is not set
486# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
487CONFIG_HAVE_IDE=y 514CONFIG_HAVE_IDE=y
488# CONFIG_IDE is not set 515# CONFIG_IDE is not set
@@ -506,10 +533,6 @@ CONFIG_BLK_DEV_SD=y
506# CONFIG_BLK_DEV_SR is not set 533# CONFIG_BLK_DEV_SR is not set
507CONFIG_CHR_DEV_SG=y 534CONFIG_CHR_DEV_SG=y
508# CONFIG_CHR_DEV_SCH is not set 535# CONFIG_CHR_DEV_SCH is not set
509
510#
511# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
512#
513# CONFIG_SCSI_MULTI_LUN is not set 536# CONFIG_SCSI_MULTI_LUN is not set
514# CONFIG_SCSI_CONSTANTS is not set 537# CONFIG_SCSI_CONSTANTS is not set
515# CONFIG_SCSI_LOGGING is not set 538# CONFIG_SCSI_LOGGING is not set
@@ -532,6 +555,7 @@ CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_SCSI_OSD_INITIATOR is not set 555# CONFIG_SCSI_OSD_INITIATOR is not set
533CONFIG_ATA=y 556CONFIG_ATA=y
534# CONFIG_ATA_NONSTANDARD is not set 557# CONFIG_ATA_NONSTANDARD is not set
558CONFIG_ATA_VERBOSE_ERROR=y
535CONFIG_SATA_PMP=y 559CONFIG_SATA_PMP=y
536CONFIG_ATA_SFF=y 560CONFIG_ATA_SFF=y
537# CONFIG_SATA_MV is not set 561# CONFIG_SATA_MV is not set
@@ -540,7 +564,6 @@ CONFIG_PATA_MPC52xx=y
540# CONFIG_MD is not set 564# CONFIG_MD is not set
541# CONFIG_MACINTOSH_DRIVERS is not set 565# CONFIG_MACINTOSH_DRIVERS is not set
542CONFIG_NETDEVICES=y 566CONFIG_NETDEVICES=y
543CONFIG_COMPAT_NET_DEV_OPS=y
544# CONFIG_DUMMY is not set 567# CONFIG_DUMMY is not set
545# CONFIG_BONDING is not set 568# CONFIG_BONDING is not set
546# CONFIG_MACVLAN is not set 569# CONFIG_MACVLAN is not set
@@ -579,14 +602,14 @@ CONFIG_MII=y
579# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 602# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
580# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 603# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
581# CONFIG_B44 is not set 604# CONFIG_B44 is not set
605# CONFIG_KS8842 is not set
606# CONFIG_KS8851_MLL is not set
582CONFIG_FEC_MPC52xx=y 607CONFIG_FEC_MPC52xx=y
583CONFIG_FEC_MPC52xx_MDIO=y 608CONFIG_FEC_MPC52xx_MDIO=y
609# CONFIG_XILINX_EMACLITE is not set
584# CONFIG_NETDEV_1000 is not set 610# CONFIG_NETDEV_1000 is not set
585# CONFIG_NETDEV_10000 is not set 611# CONFIG_NETDEV_10000 is not set
586 612CONFIG_WLAN=y
587#
588# Wireless LAN
589#
590# CONFIG_WLAN_PRE80211 is not set 613# CONFIG_WLAN_PRE80211 is not set
591# CONFIG_WLAN_80211 is not set 614# CONFIG_WLAN_80211 is not set
592 615
@@ -647,6 +670,7 @@ CONFIG_LEGACY_PTY_COUNT=256
647# CONFIG_TCG_TPM is not set 670# CONFIG_TCG_TPM is not set
648CONFIG_I2C=y 671CONFIG_I2C=y
649CONFIG_I2C_BOARDINFO=y 672CONFIG_I2C_BOARDINFO=y
673CONFIG_I2C_COMPAT=y
650CONFIG_I2C_CHARDEV=y 674CONFIG_I2C_CHARDEV=y
651CONFIG_I2C_HELPER_AUTO=y 675CONFIG_I2C_HELPER_AUTO=y
652 676
@@ -657,6 +681,7 @@ CONFIG_I2C_HELPER_AUTO=y
657# 681#
658# I2C system bus drivers (mostly embedded / system-on-chip) 682# I2C system bus drivers (mostly embedded / system-on-chip)
659# 683#
684# CONFIG_I2C_DESIGNWARE is not set
660CONFIG_I2C_MPC=y 685CONFIG_I2C_MPC=y
661# CONFIG_I2C_OCORES is not set 686# CONFIG_I2C_OCORES is not set
662# CONFIG_I2C_SIMTEC is not set 687# CONFIG_I2C_SIMTEC is not set
@@ -676,22 +701,28 @@ CONFIG_I2C_MPC=y
676# Miscellaneous I2C Chip support 701# Miscellaneous I2C Chip support
677# 702#
678# CONFIG_DS1682 is not set 703# CONFIG_DS1682 is not set
679# CONFIG_SENSORS_PCF8574 is not set
680# CONFIG_PCF8575 is not set
681# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_MAX6875 is not set
683# CONFIG_SENSORS_TSL2550 is not set 704# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_I2C_DEBUG_CORE is not set 705# CONFIG_I2C_DEBUG_CORE is not set
685# CONFIG_I2C_DEBUG_ALGO is not set 706# CONFIG_I2C_DEBUG_ALGO is not set
686# CONFIG_I2C_DEBUG_BUS is not set 707# CONFIG_I2C_DEBUG_BUS is not set
687# CONFIG_I2C_DEBUG_CHIP is not set 708# CONFIG_I2C_DEBUG_CHIP is not set
688# CONFIG_SPI is not set 709# CONFIG_SPI is not set
710
711#
712# PPS support
713#
714# CONFIG_PPS is not set
689CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 715CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
690# CONFIG_GPIOLIB is not set 716# CONFIG_GPIOLIB is not set
691# CONFIG_W1 is not set 717# CONFIG_W1 is not set
692# CONFIG_POWER_SUPPLY is not set 718# CONFIG_POWER_SUPPLY is not set
693CONFIG_HWMON=y 719CONFIG_HWMON=y
694# CONFIG_HWMON_VID is not set 720# CONFIG_HWMON_VID is not set
721# CONFIG_HWMON_DEBUG_CHIP is not set
722
723#
724# Native drivers
725#
695# CONFIG_SENSORS_AD7414 is not set 726# CONFIG_SENSORS_AD7414 is not set
696# CONFIG_SENSORS_AD7418 is not set 727# CONFIG_SENSORS_AD7418 is not set
697# CONFIG_SENSORS_ADM1021 is not set 728# CONFIG_SENSORS_ADM1021 is not set
@@ -738,6 +769,8 @@ CONFIG_HWMON=y
738# CONFIG_SENSORS_SMSC47B397 is not set 769# CONFIG_SENSORS_SMSC47B397 is not set
739# CONFIG_SENSORS_ADS7828 is not set 770# CONFIG_SENSORS_ADS7828 is not set
740# CONFIG_SENSORS_THMC50 is not set 771# CONFIG_SENSORS_THMC50 is not set
772# CONFIG_SENSORS_TMP401 is not set
773# CONFIG_SENSORS_TMP421 is not set
741# CONFIG_SENSORS_VT1211 is not set 774# CONFIG_SENSORS_VT1211 is not set
742# CONFIG_SENSORS_W83781D is not set 775# CONFIG_SENSORS_W83781D is not set
743# CONFIG_SENSORS_W83791D is not set 776# CONFIG_SENSORS_W83791D is not set
@@ -747,9 +780,7 @@ CONFIG_HWMON=y
747# CONFIG_SENSORS_W83L786NG is not set 780# CONFIG_SENSORS_W83L786NG is not set
748# CONFIG_SENSORS_W83627HF is not set 781# CONFIG_SENSORS_W83627HF is not set
749# CONFIG_SENSORS_W83627EHF is not set 782# CONFIG_SENSORS_W83627EHF is not set
750# CONFIG_HWMON_DEBUG_CHIP is not set
751# CONFIG_THERMAL is not set 783# CONFIG_THERMAL is not set
752# CONFIG_THERMAL_HWMON is not set
753CONFIG_WATCHDOG=y 784CONFIG_WATCHDOG=y
754# CONFIG_WATCHDOG_NOWAYOUT is not set 785# CONFIG_WATCHDOG_NOWAYOUT is not set
755 786
@@ -775,25 +806,12 @@ CONFIG_SSB_POSSIBLE=y
775# CONFIG_MFD_TMIO is not set 806# CONFIG_MFD_TMIO is not set
776# CONFIG_PMIC_DA903X is not set 807# CONFIG_PMIC_DA903X is not set
777# CONFIG_MFD_WM8400 is not set 808# CONFIG_MFD_WM8400 is not set
809# CONFIG_MFD_WM831X is not set
778# CONFIG_MFD_WM8350_I2C is not set 810# CONFIG_MFD_WM8350_I2C is not set
779# CONFIG_MFD_PCF50633 is not set 811# CONFIG_MFD_PCF50633 is not set
812# CONFIG_AB3100_CORE is not set
780# CONFIG_REGULATOR is not set 813# CONFIG_REGULATOR is not set
781 814# CONFIG_MEDIA_SUPPORT is not set
782#
783# Multimedia devices
784#
785
786#
787# Multimedia core support
788#
789# CONFIG_VIDEO_DEV is not set
790# CONFIG_DVB_CORE is not set
791# CONFIG_VIDEO_MEDIA is not set
792
793#
794# Multimedia drivers
795#
796CONFIG_DAB=y
797 815
798# 816#
799# Graphics support 817# Graphics support
@@ -817,7 +835,7 @@ CONFIG_LEDS_CLASS=y
817# 835#
818# LED drivers 836# LED drivers
819# 837#
820# CONFIG_LEDS_LP5521 is not set 838# CONFIG_LEDS_LP3944 is not set
821# CONFIG_LEDS_PCA955X is not set 839# CONFIG_LEDS_PCA955X is not set
822# CONFIG_LEDS_BD2802 is not set 840# CONFIG_LEDS_BD2802 is not set
823 841
@@ -866,6 +884,7 @@ CONFIG_RTC_DRV_DS1307=y
866# CONFIG_RTC_DRV_S35390A is not set 884# CONFIG_RTC_DRV_S35390A is not set
867# CONFIG_RTC_DRV_FM3130 is not set 885# CONFIG_RTC_DRV_FM3130 is not set
868# CONFIG_RTC_DRV_RX8581 is not set 886# CONFIG_RTC_DRV_RX8581 is not set
887# CONFIG_RTC_DRV_RX8025 is not set
869 888
870# 889#
871# SPI RTC drivers 890# SPI RTC drivers
@@ -893,6 +912,10 @@ CONFIG_RTC_DRV_DS1307=y
893# CONFIG_DMADEVICES is not set 912# CONFIG_DMADEVICES is not set
894# CONFIG_AUXDISPLAY is not set 913# CONFIG_AUXDISPLAY is not set
895# CONFIG_UIO is not set 914# CONFIG_UIO is not set
915
916#
917# TI VLYNQ
918#
896# CONFIG_STAGING is not set 919# CONFIG_STAGING is not set
897 920
898# 921#
@@ -912,10 +935,13 @@ CONFIG_FS_MBCACHE=y
912# CONFIG_REISERFS_FS is not set 935# CONFIG_REISERFS_FS is not set
913# CONFIG_JFS_FS is not set 936# CONFIG_JFS_FS is not set
914# CONFIG_FS_POSIX_ACL is not set 937# CONFIG_FS_POSIX_ACL is not set
915CONFIG_FILE_LOCKING=y
916# CONFIG_XFS_FS is not set 938# CONFIG_XFS_FS is not set
939# CONFIG_GFS2_FS is not set
917# CONFIG_OCFS2_FS is not set 940# CONFIG_OCFS2_FS is not set
918# CONFIG_BTRFS_FS is not set 941# CONFIG_BTRFS_FS is not set
942# CONFIG_NILFS2_FS is not set
943CONFIG_FILE_LOCKING=y
944CONFIG_FSNOTIFY=y
919CONFIG_DNOTIFY=y 945CONFIG_DNOTIFY=y
920CONFIG_INOTIFY=y 946CONFIG_INOTIFY=y
921CONFIG_INOTIFY_USER=y 947CONFIG_INOTIFY_USER=y
@@ -986,12 +1012,12 @@ CONFIG_CRAMFS=y
986# CONFIG_ROMFS_FS is not set 1012# CONFIG_ROMFS_FS is not set
987# CONFIG_SYSV_FS is not set 1013# CONFIG_SYSV_FS is not set
988# CONFIG_UFS_FS is not set 1014# CONFIG_UFS_FS is not set
989# CONFIG_NILFS2_FS is not set
990CONFIG_NETWORK_FILESYSTEMS=y 1015CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1016CONFIG_NFS_FS=y
992CONFIG_NFS_V3=y 1017CONFIG_NFS_V3=y
993# CONFIG_NFS_V3_ACL is not set 1018# CONFIG_NFS_V3_ACL is not set
994CONFIG_NFS_V4=y 1019CONFIG_NFS_V4=y
1020# CONFIG_NFS_V4_1 is not set
995CONFIG_ROOT_NFS=y 1021CONFIG_ROOT_NFS=y
996# CONFIG_NFSD is not set 1022# CONFIG_NFSD is not set
997CONFIG_LOCKD=y 1023CONFIG_LOCKD=y
@@ -1091,6 +1117,7 @@ CONFIG_HAS_IOPORT=y
1091CONFIG_HAS_DMA=y 1117CONFIG_HAS_DMA=y
1092CONFIG_HAVE_LMB=y 1118CONFIG_HAVE_LMB=y
1093CONFIG_NLATTR=y 1119CONFIG_NLATTR=y
1120CONFIG_GENERIC_ATOMIC64=y
1094 1121
1095# 1122#
1096# Kernel hacking 1123# Kernel hacking
@@ -1100,6 +1127,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1100CONFIG_ENABLE_MUST_CHECK=y 1127CONFIG_ENABLE_MUST_CHECK=y
1101CONFIG_FRAME_WARN=1024 1128CONFIG_FRAME_WARN=1024
1102# CONFIG_MAGIC_SYSRQ is not set 1129# CONFIG_MAGIC_SYSRQ is not set
1130# CONFIG_STRIP_ASM_SYMS is not set
1103# CONFIG_UNUSED_SYMBOLS is not set 1131# CONFIG_UNUSED_SYMBOLS is not set
1104# CONFIG_DEBUG_FS is not set 1132# CONFIG_DEBUG_FS is not set
1105# CONFIG_HEADERS_CHECK is not set 1133# CONFIG_HEADERS_CHECK is not set
@@ -1117,10 +1145,14 @@ CONFIG_SCHED_DEBUG=y
1117# CONFIG_DEBUG_OBJECTS is not set 1145# CONFIG_DEBUG_OBJECTS is not set
1118# CONFIG_SLUB_DEBUG_ON is not set 1146# CONFIG_SLUB_DEBUG_ON is not set
1119# CONFIG_SLUB_STATS is not set 1147# CONFIG_SLUB_STATS is not set
1148# CONFIG_DEBUG_KMEMLEAK is not set
1120# CONFIG_DEBUG_RT_MUTEXES is not set 1149# CONFIG_DEBUG_RT_MUTEXES is not set
1121# CONFIG_RT_MUTEX_TESTER is not set 1150# CONFIG_RT_MUTEX_TESTER is not set
1122# CONFIG_DEBUG_SPINLOCK is not set 1151# CONFIG_DEBUG_SPINLOCK is not set
1123# CONFIG_DEBUG_MUTEXES is not set 1152# CONFIG_DEBUG_MUTEXES is not set
1153# CONFIG_DEBUG_LOCK_ALLOC is not set
1154# CONFIG_PROVE_LOCKING is not set
1155# CONFIG_LOCK_STAT is not set
1124# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1156# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1125# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1157# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1126# CONFIG_DEBUG_KOBJECT is not set 1158# CONFIG_DEBUG_KOBJECT is not set
@@ -1132,11 +1164,12 @@ CONFIG_DEBUG_INFO=y
1132# CONFIG_DEBUG_LIST is not set 1164# CONFIG_DEBUG_LIST is not set
1133# CONFIG_DEBUG_SG is not set 1165# CONFIG_DEBUG_SG is not set
1134# CONFIG_DEBUG_NOTIFIERS is not set 1166# CONFIG_DEBUG_NOTIFIERS is not set
1135# CONFIG_BOOT_PRINTK_DELAY is not set 1167# CONFIG_DEBUG_CREDENTIALS is not set
1136# CONFIG_RCU_TORTURE_TEST is not set 1168# CONFIG_RCU_TORTURE_TEST is not set
1137# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1169# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1138# CONFIG_BACKTRACE_SELF_TEST is not set 1170# CONFIG_BACKTRACE_SELF_TEST is not set
1139# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1171# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1172# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1140# CONFIG_FAULT_INJECTION is not set 1173# CONFIG_FAULT_INJECTION is not set
1141# CONFIG_LATENCYTOP is not set 1174# CONFIG_LATENCYTOP is not set
1142# CONFIG_DEBUG_PAGEALLOC is not set 1175# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1145,23 +1178,25 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1145CONFIG_HAVE_DYNAMIC_FTRACE=y 1178CONFIG_HAVE_DYNAMIC_FTRACE=y
1146CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1179CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1147CONFIG_TRACING_SUPPORT=y 1180CONFIG_TRACING_SUPPORT=y
1148 1181CONFIG_FTRACE=y
1149#
1150# Tracers
1151#
1152# CONFIG_FUNCTION_TRACER is not set 1182# CONFIG_FUNCTION_TRACER is not set
1183# CONFIG_IRQSOFF_TRACER is not set
1153# CONFIG_SCHED_TRACER is not set 1184# CONFIG_SCHED_TRACER is not set
1154# CONFIG_CONTEXT_SWITCH_TRACER is not set 1185# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1155# CONFIG_EVENT_TRACER is not set
1156# CONFIG_BOOT_TRACER is not set 1186# CONFIG_BOOT_TRACER is not set
1157# CONFIG_TRACE_BRANCH_PROFILING is not set 1187CONFIG_BRANCH_PROFILE_NONE=y
1188# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1189# CONFIG_PROFILE_ALL_BRANCHES is not set
1158# CONFIG_STACK_TRACER is not set 1190# CONFIG_STACK_TRACER is not set
1159# CONFIG_KMEMTRACE is not set 1191# CONFIG_KMEMTRACE is not set
1160# CONFIG_WORKQUEUE_TRACER is not set 1192# CONFIG_WORKQUEUE_TRACER is not set
1161# CONFIG_BLK_DEV_IO_TRACE is not set 1193# CONFIG_BLK_DEV_IO_TRACE is not set
1194# CONFIG_DMA_API_DEBUG is not set
1162# CONFIG_SAMPLES is not set 1195# CONFIG_SAMPLES is not set
1163CONFIG_HAVE_ARCH_KGDB=y 1196CONFIG_HAVE_ARCH_KGDB=y
1164# CONFIG_KGDB is not set 1197# CONFIG_KGDB is not set
1198# CONFIG_PPC_DISABLE_WERROR is not set
1199CONFIG_PPC_WERROR=y
1165CONFIG_PRINT_STACK_DEPTH=64 1200CONFIG_PRINT_STACK_DEPTH=64
1166# CONFIG_DEBUG_STACKOVERFLOW is not set 1201# CONFIG_DEBUG_STACKOVERFLOW is not set
1167# CONFIG_DEBUG_STACK_USAGE is not set 1202# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1186,7 +1221,6 @@ CONFIG_CRYPTO=y
1186# 1221#
1187# Crypto core or helper 1222# Crypto core or helper
1188# 1223#
1189# CONFIG_CRYPTO_FIPS is not set
1190CONFIG_CRYPTO_ALGAPI=y 1224CONFIG_CRYPTO_ALGAPI=y
1191CONFIG_CRYPTO_ALGAPI2=y 1225CONFIG_CRYPTO_ALGAPI2=y
1192CONFIG_CRYPTO_AEAD2=y 1226CONFIG_CRYPTO_AEAD2=y
@@ -1227,11 +1261,13 @@ CONFIG_CRYPTO_PCBC=y
1227# 1261#
1228# CONFIG_CRYPTO_HMAC is not set 1262# CONFIG_CRYPTO_HMAC is not set
1229# CONFIG_CRYPTO_XCBC is not set 1263# CONFIG_CRYPTO_XCBC is not set
1264# CONFIG_CRYPTO_VMAC is not set
1230 1265
1231# 1266#
1232# Digest 1267# Digest
1233# 1268#
1234# CONFIG_CRYPTO_CRC32C is not set 1269# CONFIG_CRYPTO_CRC32C is not set
1270# CONFIG_CRYPTO_GHASH is not set
1235# CONFIG_CRYPTO_MD4 is not set 1271# CONFIG_CRYPTO_MD4 is not set
1236CONFIG_CRYPTO_MD5=y 1272CONFIG_CRYPTO_MD5=y
1237# CONFIG_CRYPTO_MICHAEL_MIC is not set 1273# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index afb1a3d1ef0a..f9168c1a2fa5 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Sat Apr 18 00:48:42 2009 4# Thu Oct 15 10:33:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 48CONFIG_PPC=y
@@ -52,11 +56,13 @@ CONFIG_OF=y
52# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
55CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
65CONFIG_CONSTRUCTORS=y
60 66
61# 67#
62# General setup 68# General setup
@@ -79,11 +85,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
79# 85#
80# RCU Subsystem 86# RCU Subsystem
81# 87#
82CONFIG_CLASSIC_RCU=y 88CONFIG_TREE_RCU=y
83# CONFIG_TREE_RCU is not set 89# CONFIG_TREE_PREEMPT_RCU is not set
84# CONFIG_PREEMPT_RCU is not set 90# CONFIG_RCU_TRACE is not set
91CONFIG_RCU_FANOUT=32
92# CONFIG_RCU_FANOUT_EXACT is not set
85# CONFIG_TREE_RCU_TRACE is not set 93# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
87CONFIG_IKCONFIG=y 94CONFIG_IKCONFIG=y
88CONFIG_IKCONFIG_PROC=y 95CONFIG_IKCONFIG_PROC=y
89CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
@@ -105,7 +112,6 @@ CONFIG_EMBEDDED=y
105# CONFIG_SYSCTL_SYSCALL is not set 112# CONFIG_SYSCTL_SYSCALL is not set
106CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
107# CONFIG_KALLSYMS_EXTRA_PASS is not set 114# CONFIG_KALLSYMS_EXTRA_PASS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
109CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
110CONFIG_PRINTK=y 116CONFIG_PRINTK=y
111CONFIG_BUG=y 117CONFIG_BUG=y
@@ -118,6 +124,13 @@ CONFIG_TIMERFD=y
118CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
119CONFIG_SHMEM=y 125CONFIG_SHMEM=y
120CONFIG_AIO=y 126CONFIG_AIO=y
127CONFIG_HAVE_PERF_EVENTS=y
128
129#
130# Kernel Performance Events And Counters
131#
132# CONFIG_PERF_EVENTS is not set
133# CONFIG_PERF_COUNTERS is not set
121# CONFIG_VM_EVENT_COUNTERS is not set 134# CONFIG_VM_EVENT_COUNTERS is not set
122CONFIG_PCI_QUIRKS=y 135CONFIG_PCI_QUIRKS=y
123CONFIG_COMPAT_BRK=y 136CONFIG_COMPAT_BRK=y
@@ -125,7 +138,6 @@ CONFIG_SLAB=y
125# CONFIG_SLUB is not set 138# CONFIG_SLUB is not set
126# CONFIG_SLOB is not set 139# CONFIG_SLOB is not set
127# CONFIG_PROFILING is not set 140# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
129CONFIG_HAVE_OPROFILE=y 141CONFIG_HAVE_OPROFILE=y
130# CONFIG_KPROBES is not set 142# CONFIG_KPROBES is not set
131CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 143CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -133,7 +145,13 @@ CONFIG_HAVE_IOREMAP_PROT=y
133CONFIG_HAVE_KPROBES=y 145CONFIG_HAVE_KPROBES=y
134CONFIG_HAVE_KRETPROBES=y 146CONFIG_HAVE_KRETPROBES=y
135CONFIG_HAVE_ARCH_TRACEHOOK=y 147CONFIG_HAVE_ARCH_TRACEHOOK=y
148CONFIG_HAVE_DMA_ATTRS=y
136CONFIG_HAVE_CLK=y 149CONFIG_HAVE_CLK=y
150CONFIG_HAVE_DMA_API_DEBUG=y
151
152#
153# GCOV-based kernel profiling
154#
137# CONFIG_SLOW_WORK is not set 155# CONFIG_SLOW_WORK is not set
138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 156# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
139CONFIG_SLABINFO=y 157CONFIG_SLABINFO=y
@@ -146,7 +164,7 @@ CONFIG_MODULE_UNLOAD=y
146# CONFIG_MODVERSIONS is not set 164# CONFIG_MODVERSIONS is not set
147# CONFIG_MODULE_SRCVERSION_ALL is not set 165# CONFIG_MODULE_SRCVERSION_ALL is not set
148CONFIG_BLOCK=y 166CONFIG_BLOCK=y
149# CONFIG_LBD is not set 167CONFIG_LBDAF=y
150# CONFIG_BLK_DEV_BSG is not set 168# CONFIG_BLK_DEV_BSG is not set
151# CONFIG_BLK_DEV_INTEGRITY is not set 169# CONFIG_BLK_DEV_INTEGRITY is not set
152 170
@@ -227,11 +245,13 @@ CONFIG_BINFMT_ELF=y
227# CONFIG_HAVE_AOUT is not set 245# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 246# CONFIG_BINFMT_MISC is not set
229# CONFIG_IOMMU_HELPER is not set 247# CONFIG_IOMMU_HELPER is not set
248# CONFIG_SWIOTLB is not set
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 249CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
231CONFIG_ARCH_HAS_WALK_MEMORY=y 250CONFIG_ARCH_HAS_WALK_MEMORY=y
232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 251CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set 252# CONFIG_KEXEC is not set
234# CONFIG_CRASH_DUMP is not set 253# CONFIG_CRASH_DUMP is not set
254CONFIG_MAX_ACTIVE_REGIONS=32
235CONFIG_ARCH_FLATMEM_ENABLE=y 255CONFIG_ARCH_FLATMEM_ENABLE=y
236CONFIG_ARCH_POPULATES_NODE_MAP=y 256CONFIG_ARCH_POPULATES_NODE_MAP=y
237CONFIG_SELECT_MEMORY_MODEL=y 257CONFIG_SELECT_MEMORY_MODEL=y
@@ -247,9 +267,10 @@ CONFIG_MIGRATION=y
247CONFIG_ZONE_DMA_FLAG=1 267CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 268CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 269CONFIG_VIRT_TO_BUS=y
250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y 270CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y 271CONFIG_HAVE_MLOCKED_PAGE_BIT=y
272# CONFIG_KSM is not set
273CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
253CONFIG_PPC_4K_PAGES=y 274CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set 275# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set 276# CONFIG_PPC_64K_PAGES is not set
@@ -336,6 +357,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_NETFILTER is not set 357# CONFIG_NETFILTER is not set
337# CONFIG_IP_DCCP is not set 358# CONFIG_IP_DCCP is not set
338# CONFIG_IP_SCTP is not set 359# CONFIG_IP_SCTP is not set
360# CONFIG_RDS is not set
339# CONFIG_TIPC is not set 361# CONFIG_TIPC is not set
340# CONFIG_ATM is not set 362# CONFIG_ATM is not set
341# CONFIG_BRIDGE is not set 363# CONFIG_BRIDGE is not set
@@ -350,6 +372,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_ECONET is not set 372# CONFIG_ECONET is not set
351# CONFIG_WAN_ROUTER is not set 373# CONFIG_WAN_ROUTER is not set
352# CONFIG_PHONET is not set 374# CONFIG_PHONET is not set
375# CONFIG_IEEE802154 is not set
353# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 377# CONFIG_DCB is not set
355 378
@@ -375,6 +398,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
375# Generic Driver Options 398# Generic Driver Options
376# 399#
377CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 400CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
401# CONFIG_DEVTMPFS is not set
378CONFIG_STANDALONE=y 402CONFIG_STANDALONE=y
379CONFIG_PREVENT_FIRMWARE_BUILD=y 403CONFIG_PREVENT_FIRMWARE_BUILD=y
380# CONFIG_FW_LOADER is not set 404# CONFIG_FW_LOADER is not set
@@ -382,9 +406,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
382# CONFIG_CONNECTOR is not set 406# CONFIG_CONNECTOR is not set
383CONFIG_MTD=y 407CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 408# CONFIG_MTD_DEBUG is not set
409# CONFIG_MTD_TESTS is not set
385# CONFIG_MTD_CONCAT is not set 410# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 411CONFIG_MTD_PARTITIONS=y
387# CONFIG_MTD_TESTS is not set
388# CONFIG_MTD_REDBOOT_PARTS is not set 412# CONFIG_MTD_REDBOOT_PARTS is not set
389CONFIG_MTD_CMDLINE_PARTS=y 413CONFIG_MTD_CMDLINE_PARTS=y
390# CONFIG_MTD_OF_PARTS is not set 414# CONFIG_MTD_OF_PARTS is not set
@@ -467,6 +491,7 @@ CONFIG_MTD_PHYSMAP=y
467# CONFIG_MTD_UBI is not set 491# CONFIG_MTD_UBI is not set
468CONFIG_OF_DEVICE=y 492CONFIG_OF_DEVICE=y
469CONFIG_OF_I2C=y 493CONFIG_OF_I2C=y
494CONFIG_OF_MDIO=y
470# CONFIG_PARPORT is not set 495# CONFIG_PARPORT is not set
471# CONFIG_BLK_DEV is not set 496# CONFIG_BLK_DEV is not set
472# CONFIG_MISC_DEVICES is not set 497# CONFIG_MISC_DEVICES is not set
@@ -492,10 +517,6 @@ CONFIG_BLK_DEV_SD=m
492# CONFIG_BLK_DEV_SR is not set 517# CONFIG_BLK_DEV_SR is not set
493# CONFIG_CHR_DEV_SG is not set 518# CONFIG_CHR_DEV_SG is not set
494# CONFIG_CHR_DEV_SCH is not set 519# CONFIG_CHR_DEV_SCH is not set
495
496#
497# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
498#
499# CONFIG_SCSI_MULTI_LUN is not set 520# CONFIG_SCSI_MULTI_LUN is not set
500# CONFIG_SCSI_CONSTANTS is not set 521# CONFIG_SCSI_CONSTANTS is not set
501# CONFIG_SCSI_LOGGING is not set 522# CONFIG_SCSI_LOGGING is not set
@@ -515,6 +536,7 @@ CONFIG_SCSI_WAIT_SCAN=m
515# CONFIG_SCSI_OSD_INITIATOR is not set 536# CONFIG_SCSI_OSD_INITIATOR is not set
516CONFIG_ATA=m 537CONFIG_ATA=m
517# CONFIG_ATA_NONSTANDARD is not set 538# CONFIG_ATA_NONSTANDARD is not set
539CONFIG_ATA_VERBOSE_ERROR=y
518CONFIG_SATA_PMP=y 540CONFIG_SATA_PMP=y
519# CONFIG_SATA_AHCI is not set 541# CONFIG_SATA_AHCI is not set
520# CONFIG_SATA_SIL24 is not set 542# CONFIG_SATA_SIL24 is not set
@@ -536,6 +558,7 @@ CONFIG_ATA_SFF=y
536# CONFIG_PATA_ALI is not set 558# CONFIG_PATA_ALI is not set
537# CONFIG_PATA_AMD is not set 559# CONFIG_PATA_AMD is not set
538# CONFIG_PATA_ARTOP is not set 560# CONFIG_PATA_ARTOP is not set
561# CONFIG_PATA_ATP867X is not set
539# CONFIG_PATA_ATIIXP is not set 562# CONFIG_PATA_ATIIXP is not set
540# CONFIG_PATA_CMD640_PCI is not set 563# CONFIG_PATA_CMD640_PCI is not set
541# CONFIG_PATA_CMD64X is not set 564# CONFIG_PATA_CMD64X is not set
@@ -564,6 +587,7 @@ CONFIG_PATA_MPC52xx=m
564# CONFIG_PATA_OPTIDMA is not set 587# CONFIG_PATA_OPTIDMA is not set
565# CONFIG_PATA_PDC_OLD is not set 588# CONFIG_PATA_PDC_OLD is not set
566# CONFIG_PATA_RADISYS is not set 589# CONFIG_PATA_RADISYS is not set
590# CONFIG_PATA_RDC is not set
567# CONFIG_PATA_RZ1000 is not set 591# CONFIG_PATA_RZ1000 is not set
568# CONFIG_PATA_SC1200 is not set 592# CONFIG_PATA_SC1200 is not set
569# CONFIG_PATA_SERVERWORKS is not set 593# CONFIG_PATA_SERVERWORKS is not set
@@ -582,14 +606,17 @@ CONFIG_PATA_MPC52xx=m
582# 606#
583 607
584# 608#
585# Enable only one of the two stacks, unless you know what you are doing 609# You can enable one or both FireWire driver stacks.
610#
611
612#
613# See the help texts for more information.
586# 614#
587# CONFIG_FIREWIRE is not set 615# CONFIG_FIREWIRE is not set
588# CONFIG_IEEE1394 is not set 616# CONFIG_IEEE1394 is not set
589# CONFIG_I2O is not set 617# CONFIG_I2O is not set
590# CONFIG_MACINTOSH_DRIVERS is not set 618# CONFIG_MACINTOSH_DRIVERS is not set
591CONFIG_NETDEVICES=y 619CONFIG_NETDEVICES=y
592CONFIG_COMPAT_NET_DEV_OPS=y
593# CONFIG_DUMMY is not set 620# CONFIG_DUMMY is not set
594# CONFIG_BONDING is not set 621# CONFIG_BONDING is not set
595# CONFIG_MACVLAN is not set 622# CONFIG_MACVLAN is not set
@@ -636,16 +663,16 @@ CONFIG_MII=y
636# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 663# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
637# CONFIG_NET_PCI is not set 664# CONFIG_NET_PCI is not set
638# CONFIG_B44 is not set 665# CONFIG_B44 is not set
666# CONFIG_KS8842 is not set
667# CONFIG_KS8851_MLL is not set
639CONFIG_FEC_MPC52xx=y 668CONFIG_FEC_MPC52xx=y
640CONFIG_FEC_MPC52xx_MDIO=y 669CONFIG_FEC_MPC52xx_MDIO=y
641# CONFIG_ATL2 is not set 670# CONFIG_ATL2 is not set
671# CONFIG_XILINX_EMACLITE is not set
642# CONFIG_NETDEV_1000 is not set 672# CONFIG_NETDEV_1000 is not set
643# CONFIG_NETDEV_10000 is not set 673# CONFIG_NETDEV_10000 is not set
644# CONFIG_TR is not set 674# CONFIG_TR is not set
645 675CONFIG_WLAN=y
646#
647# Wireless LAN
648#
649# CONFIG_WLAN_PRE80211 is not set 676# CONFIG_WLAN_PRE80211 is not set
650# CONFIG_WLAN_80211 is not set 677# CONFIG_WLAN_80211 is not set
651 678
@@ -722,6 +749,7 @@ CONFIG_HW_RANDOM=y
722CONFIG_DEVPORT=y 749CONFIG_DEVPORT=y
723CONFIG_I2C=y 750CONFIG_I2C=y
724CONFIG_I2C_BOARDINFO=y 751CONFIG_I2C_BOARDINFO=y
752CONFIG_I2C_COMPAT=y
725CONFIG_I2C_CHARDEV=y 753CONFIG_I2C_CHARDEV=y
726CONFIG_I2C_HELPER_AUTO=y 754CONFIG_I2C_HELPER_AUTO=y
727 755
@@ -750,6 +778,7 @@ CONFIG_I2C_HELPER_AUTO=y
750# 778#
751# I2C system bus drivers (mostly embedded / system-on-chip) 779# I2C system bus drivers (mostly embedded / system-on-chip)
752# 780#
781# CONFIG_I2C_DESIGNWARE is not set
753CONFIG_I2C_MPC=y 782CONFIG_I2C_MPC=y
754# CONFIG_I2C_OCORES is not set 783# CONFIG_I2C_OCORES is not set
755# CONFIG_I2C_SIMTEC is not set 784# CONFIG_I2C_SIMTEC is not set
@@ -776,23 +805,23 @@ CONFIG_I2C_MPC=y
776# Miscellaneous I2C Chip support 805# Miscellaneous I2C Chip support
777# 806#
778# CONFIG_DS1682 is not set 807# CONFIG_DS1682 is not set
779# CONFIG_SENSORS_PCF8574 is not set
780# CONFIG_PCF8575 is not set
781# CONFIG_SENSORS_PCA9539 is not set
782# CONFIG_SENSORS_MAX6875 is not set
783# CONFIG_SENSORS_TSL2550 is not set 808# CONFIG_SENSORS_TSL2550 is not set
784# CONFIG_I2C_DEBUG_CORE is not set 809# CONFIG_I2C_DEBUG_CORE is not set
785# CONFIG_I2C_DEBUG_ALGO is not set 810# CONFIG_I2C_DEBUG_ALGO is not set
786# CONFIG_I2C_DEBUG_BUS is not set 811# CONFIG_I2C_DEBUG_BUS is not set
787# CONFIG_I2C_DEBUG_CHIP is not set 812# CONFIG_I2C_DEBUG_CHIP is not set
788# CONFIG_SPI is not set 813# CONFIG_SPI is not set
814
815#
816# PPS support
817#
818# CONFIG_PPS is not set
789CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 819CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
790# CONFIG_GPIOLIB is not set 820# CONFIG_GPIOLIB is not set
791# CONFIG_W1 is not set 821# CONFIG_W1 is not set
792# CONFIG_POWER_SUPPLY is not set 822# CONFIG_POWER_SUPPLY is not set
793# CONFIG_HWMON is not set 823# CONFIG_HWMON is not set
794# CONFIG_THERMAL is not set 824# CONFIG_THERMAL is not set
795# CONFIG_THERMAL_HWMON is not set
796# CONFIG_WATCHDOG is not set 825# CONFIG_WATCHDOG is not set
797CONFIG_SSB_POSSIBLE=y 826CONFIG_SSB_POSSIBLE=y
798 827
@@ -811,30 +840,18 @@ CONFIG_SSB_POSSIBLE=y
811# CONFIG_MFD_TMIO is not set 840# CONFIG_MFD_TMIO is not set
812# CONFIG_PMIC_DA903X is not set 841# CONFIG_PMIC_DA903X is not set
813# CONFIG_MFD_WM8400 is not set 842# CONFIG_MFD_WM8400 is not set
843# CONFIG_MFD_WM831X is not set
814# CONFIG_MFD_WM8350_I2C is not set 844# CONFIG_MFD_WM8350_I2C is not set
815# CONFIG_MFD_PCF50633 is not set 845# CONFIG_MFD_PCF50633 is not set
846# CONFIG_AB3100_CORE is not set
816# CONFIG_REGULATOR is not set 847# CONFIG_REGULATOR is not set
817 848# CONFIG_MEDIA_SUPPORT is not set
818#
819# Multimedia devices
820#
821
822#
823# Multimedia core support
824#
825# CONFIG_VIDEO_DEV is not set
826# CONFIG_DVB_CORE is not set
827# CONFIG_VIDEO_MEDIA is not set
828
829#
830# Multimedia drivers
831#
832# CONFIG_DAB is not set
833 849
834# 850#
835# Graphics support 851# Graphics support
836# 852#
837# CONFIG_AGP is not set 853# CONFIG_AGP is not set
854CONFIG_VGA_ARB=y
838# CONFIG_DRM is not set 855# CONFIG_DRM is not set
839# CONFIG_VGASTATE is not set 856# CONFIG_VGASTATE is not set
840# CONFIG_VIDEO_OUTPUT_CONTROL is not set 857# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -871,15 +888,17 @@ CONFIG_USB_DEVICEFS=y
871# USB Host Controller Drivers 888# USB Host Controller Drivers
872# 889#
873# CONFIG_USB_C67X00_HCD is not set 890# CONFIG_USB_C67X00_HCD is not set
891# CONFIG_USB_XHCI_HCD is not set
874# CONFIG_USB_EHCI_HCD is not set 892# CONFIG_USB_EHCI_HCD is not set
875# CONFIG_USB_OXU210HP_HCD is not set 893# CONFIG_USB_OXU210HP_HCD is not set
876# CONFIG_USB_ISP116X_HCD is not set 894# CONFIG_USB_ISP116X_HCD is not set
877# CONFIG_USB_ISP1760_HCD is not set 895# CONFIG_USB_ISP1760_HCD is not set
896# CONFIG_USB_ISP1362_HCD is not set
878CONFIG_USB_OHCI_HCD=m 897CONFIG_USB_OHCI_HCD=m
879# CONFIG_USB_OHCI_HCD_PPC_SOC is not set 898# CONFIG_USB_OHCI_HCD_PPC_SOC is not set
880CONFIG_USB_OHCI_HCD_PPC_OF=y
881CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 899CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
882# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 900# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
901CONFIG_USB_OHCI_HCD_PPC_OF=y
883# CONFIG_USB_OHCI_HCD_PCI is not set 902# CONFIG_USB_OHCI_HCD_PCI is not set
884CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 903CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
885CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 904CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
@@ -995,6 +1014,7 @@ CONFIG_RTC_DRV_PCF8563=m
995# CONFIG_RTC_DRV_S35390A is not set 1014# CONFIG_RTC_DRV_S35390A is not set
996# CONFIG_RTC_DRV_FM3130 is not set 1015# CONFIG_RTC_DRV_FM3130 is not set
997# CONFIG_RTC_DRV_RX8581 is not set 1016# CONFIG_RTC_DRV_RX8581 is not set
1017# CONFIG_RTC_DRV_RX8025 is not set
998 1018
999# 1019#
1000# SPI RTC drivers 1020# SPI RTC drivers
@@ -1022,6 +1042,10 @@ CONFIG_RTC_DRV_PCF8563=m
1022# CONFIG_DMADEVICES is not set 1042# CONFIG_DMADEVICES is not set
1023# CONFIG_AUXDISPLAY is not set 1043# CONFIG_AUXDISPLAY is not set
1024# CONFIG_UIO is not set 1044# CONFIG_UIO is not set
1045
1046#
1047# TI VLYNQ
1048#
1025# CONFIG_STAGING is not set 1049# CONFIG_STAGING is not set
1026 1050
1027# 1051#
@@ -1041,12 +1065,16 @@ CONFIG_FS_MBCACHE=m
1041# CONFIG_REISERFS_FS is not set 1065# CONFIG_REISERFS_FS is not set
1042# CONFIG_JFS_FS is not set 1066# CONFIG_JFS_FS is not set
1043# CONFIG_FS_POSIX_ACL is not set 1067# CONFIG_FS_POSIX_ACL is not set
1044CONFIG_FILE_LOCKING=y
1045# CONFIG_XFS_FS is not set 1068# CONFIG_XFS_FS is not set
1069# CONFIG_GFS2_FS is not set
1046# CONFIG_OCFS2_FS is not set 1070# CONFIG_OCFS2_FS is not set
1047# CONFIG_BTRFS_FS is not set 1071# CONFIG_BTRFS_FS is not set
1072# CONFIG_NILFS2_FS is not set
1073CONFIG_FILE_LOCKING=y
1074CONFIG_FSNOTIFY=y
1048# CONFIG_DNOTIFY is not set 1075# CONFIG_DNOTIFY is not set
1049# CONFIG_INOTIFY is not set 1076# CONFIG_INOTIFY is not set
1077CONFIG_INOTIFY_USER=y
1050# CONFIG_QUOTA is not set 1078# CONFIG_QUOTA is not set
1051# CONFIG_AUTOFS_FS is not set 1079# CONFIG_AUTOFS_FS is not set
1052# CONFIG_AUTOFS4_FS is not set 1080# CONFIG_AUTOFS4_FS is not set
@@ -1114,7 +1142,6 @@ CONFIG_JFFS2_RTIME=y
1114# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1115# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1116# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1117# CONFIG_NILFS2_FS is not set
1118CONFIG_NETWORK_FILESYSTEMS=y 1145CONFIG_NETWORK_FILESYSTEMS=y
1119CONFIG_NFS_FS=y 1146CONFIG_NFS_FS=y
1120CONFIG_NFS_V3=y 1147CONFIG_NFS_V3=y
@@ -1201,6 +1228,7 @@ CONFIG_HAS_IOPORT=y
1201CONFIG_HAS_DMA=y 1228CONFIG_HAS_DMA=y
1202CONFIG_HAVE_LMB=y 1229CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y 1230CONFIG_NLATTR=y
1231CONFIG_GENERIC_ATOMIC64=y
1204 1232
1205# 1233#
1206# Kernel hacking 1234# Kernel hacking
@@ -1210,6 +1238,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1210CONFIG_ENABLE_MUST_CHECK=y 1238CONFIG_ENABLE_MUST_CHECK=y
1211CONFIG_FRAME_WARN=1024 1239CONFIG_FRAME_WARN=1024
1212# CONFIG_MAGIC_SYSRQ is not set 1240# CONFIG_MAGIC_SYSRQ is not set
1241# CONFIG_STRIP_ASM_SYMS is not set
1213# CONFIG_UNUSED_SYMBOLS is not set 1242# CONFIG_UNUSED_SYMBOLS is not set
1214# CONFIG_DEBUG_FS is not set 1243# CONFIG_DEBUG_FS is not set
1215# CONFIG_HEADERS_CHECK is not set 1244# CONFIG_HEADERS_CHECK is not set
@@ -1223,23 +1252,12 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1223CONFIG_HAVE_DYNAMIC_FTRACE=y 1252CONFIG_HAVE_DYNAMIC_FTRACE=y
1224CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1253CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1225CONFIG_TRACING_SUPPORT=y 1254CONFIG_TRACING_SUPPORT=y
1226 1255# CONFIG_FTRACE is not set
1227# 1256# CONFIG_DMA_API_DEBUG is not set
1228# Tracers
1229#
1230# CONFIG_FUNCTION_TRACER is not set
1231# CONFIG_PREEMPT_TRACER is not set
1232# CONFIG_SCHED_TRACER is not set
1233# CONFIG_CONTEXT_SWITCH_TRACER is not set
1234# CONFIG_EVENT_TRACER is not set
1235# CONFIG_BOOT_TRACER is not set
1236# CONFIG_TRACE_BRANCH_PROFILING is not set
1237# CONFIG_STACK_TRACER is not set
1238# CONFIG_KMEMTRACE is not set
1239# CONFIG_WORKQUEUE_TRACER is not set
1240# CONFIG_BLK_DEV_IO_TRACE is not set
1241# CONFIG_SAMPLES is not set 1257# CONFIG_SAMPLES is not set
1242CONFIG_HAVE_ARCH_KGDB=y 1258CONFIG_HAVE_ARCH_KGDB=y
1259# CONFIG_PPC_DISABLE_WERROR is not set
1260CONFIG_PPC_WERROR=y
1243CONFIG_PRINT_STACK_DEPTH=64 1261CONFIG_PRINT_STACK_DEPTH=64
1244# CONFIG_IRQSTACKS is not set 1262# CONFIG_IRQSTACKS is not set
1245# CONFIG_BOOTX_TEXT is not set 1263# CONFIG_BOOTX_TEXT is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index 8585c7c12861..75c835c2ae66 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Sat Apr 18 00:48:57 2009 4# Thu Oct 15 10:33:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 48CONFIG_PPC=y
@@ -52,11 +56,13 @@ CONFIG_OF=y
52# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
55CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
65CONFIG_CONSTRUCTORS=y
60 66
61# 67#
62# General setup 68# General setup
@@ -77,11 +83,12 @@ CONFIG_SYSVIPC_SYSCTL=y
77# 83#
78# RCU Subsystem 84# RCU Subsystem
79# 85#
80CONFIG_CLASSIC_RCU=y 86CONFIG_TREE_RCU=y
81# CONFIG_TREE_RCU is not set 87# CONFIG_TREE_PREEMPT_RCU is not set
82# CONFIG_PREEMPT_RCU is not set 88# CONFIG_RCU_TRACE is not set
89CONFIG_RCU_FANOUT=32
90# CONFIG_RCU_FANOUT_EXACT is not set
83# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
85# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
86CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
87CONFIG_GROUP_SCHED=y 94CONFIG_GROUP_SCHED=y
@@ -105,7 +112,6 @@ CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
106# CONFIG_SYSCTL_SYSCALL is not set 113# CONFIG_SYSCTL_SYSCALL is not set
107# CONFIG_KALLSYMS is not set 114# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
109CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
110CONFIG_PRINTK=y 116CONFIG_PRINTK=y
111CONFIG_BUG=y 117CONFIG_BUG=y
@@ -118,6 +124,13 @@ CONFIG_TIMERFD=y
118CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
119CONFIG_SHMEM=y 125CONFIG_SHMEM=y
120CONFIG_AIO=y 126CONFIG_AIO=y
127CONFIG_HAVE_PERF_EVENTS=y
128
129#
130# Kernel Performance Events And Counters
131#
132# CONFIG_PERF_EVENTS is not set
133# CONFIG_PERF_COUNTERS is not set
121CONFIG_VM_EVENT_COUNTERS=y 134CONFIG_VM_EVENT_COUNTERS=y
122CONFIG_SLUB_DEBUG=y 135CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y 136CONFIG_COMPAT_BRK=y
@@ -125,14 +138,19 @@ CONFIG_COMPAT_BRK=y
125CONFIG_SLUB=y 138CONFIG_SLUB=y
126# CONFIG_SLOB is not set 139# CONFIG_SLOB is not set
127# CONFIG_PROFILING is not set 140# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
129CONFIG_HAVE_OPROFILE=y 141CONFIG_HAVE_OPROFILE=y
130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 142CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
131CONFIG_HAVE_IOREMAP_PROT=y 143CONFIG_HAVE_IOREMAP_PROT=y
132CONFIG_HAVE_KPROBES=y 144CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y 145CONFIG_HAVE_KRETPROBES=y
134CONFIG_HAVE_ARCH_TRACEHOOK=y 146CONFIG_HAVE_ARCH_TRACEHOOK=y
147CONFIG_HAVE_DMA_ATTRS=y
135CONFIG_HAVE_CLK=y 148CONFIG_HAVE_CLK=y
149CONFIG_HAVE_DMA_API_DEBUG=y
150
151#
152# GCOV-based kernel profiling
153#
136# CONFIG_SLOW_WORK is not set 154# CONFIG_SLOW_WORK is not set
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 155# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
138CONFIG_SLABINFO=y 156CONFIG_SLABINFO=y
@@ -145,7 +163,7 @@ CONFIG_MODULE_UNLOAD=y
145CONFIG_MODVERSIONS=y 163CONFIG_MODVERSIONS=y
146# CONFIG_MODULE_SRCVERSION_ALL is not set 164# CONFIG_MODULE_SRCVERSION_ALL is not set
147CONFIG_BLOCK=y 165CONFIG_BLOCK=y
148# CONFIG_LBD is not set 166CONFIG_LBDAF=y
149# CONFIG_BLK_DEV_BSG is not set 167# CONFIG_BLK_DEV_BSG is not set
150# CONFIG_BLK_DEV_INTEGRITY is not set 168# CONFIG_BLK_DEV_INTEGRITY is not set
151 169
@@ -225,11 +243,13 @@ CONFIG_BINFMT_ELF=y
225# CONFIG_HAVE_AOUT is not set 243# CONFIG_HAVE_AOUT is not set
226# CONFIG_BINFMT_MISC is not set 244# CONFIG_BINFMT_MISC is not set
227# CONFIG_IOMMU_HELPER is not set 245# CONFIG_IOMMU_HELPER is not set
246# CONFIG_SWIOTLB is not set
228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 247CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
229CONFIG_ARCH_HAS_WALK_MEMORY=y 248CONFIG_ARCH_HAS_WALK_MEMORY=y
230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 249CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
231# CONFIG_KEXEC is not set 250# CONFIG_KEXEC is not set
232# CONFIG_CRASH_DUMP is not set 251# CONFIG_CRASH_DUMP is not set
252CONFIG_MAX_ACTIVE_REGIONS=32
233CONFIG_ARCH_FLATMEM_ENABLE=y 253CONFIG_ARCH_FLATMEM_ENABLE=y
234CONFIG_ARCH_POPULATES_NODE_MAP=y 254CONFIG_ARCH_POPULATES_NODE_MAP=y
235CONFIG_SELECT_MEMORY_MODEL=y 255CONFIG_SELECT_MEMORY_MODEL=y
@@ -245,9 +265,10 @@ CONFIG_MIGRATION=y
245CONFIG_ZONE_DMA_FLAG=1 265CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 266CONFIG_BOUNCE=y
247CONFIG_VIRT_TO_BUS=y 267CONFIG_VIRT_TO_BUS=y
248CONFIG_UNEVICTABLE_LRU=y
249CONFIG_HAVE_MLOCK=y 268CONFIG_HAVE_MLOCK=y
250CONFIG_HAVE_MLOCKED_PAGE_BIT=y 269CONFIG_HAVE_MLOCKED_PAGE_BIT=y
270# CONFIG_KSM is not set
271CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
251CONFIG_PPC_4K_PAGES=y 272CONFIG_PPC_4K_PAGES=y
252# CONFIG_PPC_16K_PAGES is not set 273# CONFIG_PPC_16K_PAGES is not set
253# CONFIG_PPC_64K_PAGES is not set 274# CONFIG_PPC_64K_PAGES is not set
@@ -258,6 +279,7 @@ CONFIG_PROC_DEVICETREE=y
258CONFIG_EXTRA_TARGETS="" 279CONFIG_EXTRA_TARGETS=""
259CONFIG_PM=y 280CONFIG_PM=y
260# CONFIG_PM_DEBUG is not set 281# CONFIG_PM_DEBUG is not set
282# CONFIG_PM_RUNTIME is not set
261CONFIG_SECCOMP=y 283CONFIG_SECCOMP=y
262CONFIG_ISA_DMA_API=y 284CONFIG_ISA_DMA_API=y
263 285
@@ -334,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_NETFILTER is not set 356# CONFIG_NETFILTER is not set
335# CONFIG_IP_DCCP is not set 357# CONFIG_IP_DCCP is not set
336# CONFIG_IP_SCTP is not set 358# CONFIG_IP_SCTP is not set
359# CONFIG_RDS is not set
337# CONFIG_TIPC is not set 360# CONFIG_TIPC is not set
338# CONFIG_ATM is not set 361# CONFIG_ATM is not set
339# CONFIG_BRIDGE is not set 362# CONFIG_BRIDGE is not set
@@ -348,6 +371,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_ECONET is not set 371# CONFIG_ECONET is not set
349# CONFIG_WAN_ROUTER is not set 372# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set 373# CONFIG_PHONET is not set
374# CONFIG_IEEE802154 is not set
351# CONFIG_NET_SCHED is not set 375# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set 376# CONFIG_DCB is not set
353 377
@@ -373,6 +397,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
373# Generic Driver Options 397# Generic Driver Options
374# 398#
375CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 399CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
400# CONFIG_DEVTMPFS is not set
376CONFIG_STANDALONE=y 401CONFIG_STANDALONE=y
377CONFIG_PREVENT_FIRMWARE_BUILD=y 402CONFIG_PREVENT_FIRMWARE_BUILD=y
378# CONFIG_FW_LOADER is not set 403# CONFIG_FW_LOADER is not set
@@ -382,9 +407,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
382# CONFIG_CONNECTOR is not set 407# CONFIG_CONNECTOR is not set
383CONFIG_MTD=y 408CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 409# CONFIG_MTD_DEBUG is not set
410# CONFIG_MTD_TESTS is not set
385CONFIG_MTD_CONCAT=y 411CONFIG_MTD_CONCAT=y
386CONFIG_MTD_PARTITIONS=y 412CONFIG_MTD_PARTITIONS=y
387# CONFIG_MTD_TESTS is not set
388# CONFIG_MTD_REDBOOT_PARTS is not set 413# CONFIG_MTD_REDBOOT_PARTS is not set
389CONFIG_MTD_CMDLINE_PARTS=y 414CONFIG_MTD_CMDLINE_PARTS=y
390# CONFIG_MTD_OF_PARTS is not set 415# CONFIG_MTD_OF_PARTS is not set
@@ -464,6 +489,7 @@ CONFIG_MTD_PHYSMAP_OF=y
464# CONFIG_MTD_UBI is not set 489# CONFIG_MTD_UBI is not set
465CONFIG_OF_DEVICE=y 490CONFIG_OF_DEVICE=y
466CONFIG_OF_I2C=y 491CONFIG_OF_I2C=y
492CONFIG_OF_MDIO=y
467# CONFIG_PARPORT is not set 493# CONFIG_PARPORT is not set
468CONFIG_BLK_DEV=y 494CONFIG_BLK_DEV=y
469# CONFIG_BLK_DEV_FD is not set 495# CONFIG_BLK_DEV_FD is not set
@@ -502,10 +528,6 @@ CONFIG_BLK_DEV_SD=y
502# CONFIG_BLK_DEV_SR is not set 528# CONFIG_BLK_DEV_SR is not set
503CONFIG_CHR_DEV_SG=y 529CONFIG_CHR_DEV_SG=y
504# CONFIG_CHR_DEV_SCH is not set 530# CONFIG_CHR_DEV_SCH is not set
505
506#
507# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
508#
509# CONFIG_SCSI_MULTI_LUN is not set 531# CONFIG_SCSI_MULTI_LUN is not set
510# CONFIG_SCSI_CONSTANTS is not set 532# CONFIG_SCSI_CONSTANTS is not set
511# CONFIG_SCSI_LOGGING is not set 533# CONFIG_SCSI_LOGGING is not set
@@ -529,6 +551,7 @@ CONFIG_SCSI_LOWLEVEL=y
529# CONFIG_SCSI_OSD_INITIATOR is not set 551# CONFIG_SCSI_OSD_INITIATOR is not set
530CONFIG_ATA=y 552CONFIG_ATA=y
531# CONFIG_ATA_NONSTANDARD is not set 553# CONFIG_ATA_NONSTANDARD is not set
554CONFIG_ATA_VERBOSE_ERROR=y
532CONFIG_SATA_PMP=y 555CONFIG_SATA_PMP=y
533CONFIG_ATA_SFF=y 556CONFIG_ATA_SFF=y
534# CONFIG_SATA_MV is not set 557# CONFIG_SATA_MV is not set
@@ -538,7 +561,6 @@ CONFIG_PATA_PLATFORM=y
538# CONFIG_MD is not set 561# CONFIG_MD is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 562# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 563CONFIG_NETDEVICES=y
541CONFIG_COMPAT_NET_DEV_OPS=y
542# CONFIG_DUMMY is not set 564# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 565# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 566# CONFIG_MACVLAN is not set
@@ -577,14 +599,14 @@ CONFIG_NET_ETHERNET=y
577# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 599# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
578# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 600# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
579# CONFIG_B44 is not set 601# CONFIG_B44 is not set
602# CONFIG_KS8842 is not set
603# CONFIG_KS8851_MLL is not set
580CONFIG_FEC_MPC52xx=y 604CONFIG_FEC_MPC52xx=y
581CONFIG_FEC_MPC52xx_MDIO=y 605CONFIG_FEC_MPC52xx_MDIO=y
606# CONFIG_XILINX_EMACLITE is not set
582# CONFIG_NETDEV_1000 is not set 607# CONFIG_NETDEV_1000 is not set
583# CONFIG_NETDEV_10000 is not set 608# CONFIG_NETDEV_10000 is not set
584 609CONFIG_WLAN=y
585#
586# Wireless LAN
587#
588# CONFIG_WLAN_PRE80211 is not set 610# CONFIG_WLAN_PRE80211 is not set
589# CONFIG_WLAN_80211 is not set 611# CONFIG_WLAN_80211 is not set
590 612
@@ -654,6 +676,7 @@ CONFIG_LEGACY_PTY_COUNT=256
654# CONFIG_TCG_TPM is not set 676# CONFIG_TCG_TPM is not set
655CONFIG_I2C=y 677CONFIG_I2C=y
656CONFIG_I2C_BOARDINFO=y 678CONFIG_I2C_BOARDINFO=y
679CONFIG_I2C_COMPAT=y
657CONFIG_I2C_CHARDEV=y 680CONFIG_I2C_CHARDEV=y
658CONFIG_I2C_HELPER_AUTO=y 681CONFIG_I2C_HELPER_AUTO=y
659 682
@@ -664,6 +687,7 @@ CONFIG_I2C_HELPER_AUTO=y
664# 687#
665# I2C system bus drivers (mostly embedded / system-on-chip) 688# I2C system bus drivers (mostly embedded / system-on-chip)
666# 689#
690# CONFIG_I2C_DESIGNWARE is not set
667CONFIG_I2C_MPC=y 691CONFIG_I2C_MPC=y
668# CONFIG_I2C_OCORES is not set 692# CONFIG_I2C_OCORES is not set
669# CONFIG_I2C_SIMTEC is not set 693# CONFIG_I2C_SIMTEC is not set
@@ -685,22 +709,28 @@ CONFIG_I2C_MPC=y
685# Miscellaneous I2C Chip support 709# Miscellaneous I2C Chip support
686# 710#
687# CONFIG_DS1682 is not set 711# CONFIG_DS1682 is not set
688# CONFIG_SENSORS_PCF8574 is not set
689# CONFIG_PCF8575 is not set
690# CONFIG_SENSORS_PCA9539 is not set
691# CONFIG_SENSORS_MAX6875 is not set
692# CONFIG_SENSORS_TSL2550 is not set 712# CONFIG_SENSORS_TSL2550 is not set
693# CONFIG_I2C_DEBUG_CORE is not set 713# CONFIG_I2C_DEBUG_CORE is not set
694# CONFIG_I2C_DEBUG_ALGO is not set 714# CONFIG_I2C_DEBUG_ALGO is not set
695# CONFIG_I2C_DEBUG_BUS is not set 715# CONFIG_I2C_DEBUG_BUS is not set
696# CONFIG_I2C_DEBUG_CHIP is not set 716# CONFIG_I2C_DEBUG_CHIP is not set
697# CONFIG_SPI is not set 717# CONFIG_SPI is not set
718
719#
720# PPS support
721#
722# CONFIG_PPS is not set
698CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 723CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
699# CONFIG_GPIOLIB is not set 724# CONFIG_GPIOLIB is not set
700# CONFIG_W1 is not set 725# CONFIG_W1 is not set
701# CONFIG_POWER_SUPPLY is not set 726# CONFIG_POWER_SUPPLY is not set
702CONFIG_HWMON=y 727CONFIG_HWMON=y
703# CONFIG_HWMON_VID is not set 728# CONFIG_HWMON_VID is not set
729# CONFIG_HWMON_DEBUG_CHIP is not set
730
731#
732# Native drivers
733#
704# CONFIG_SENSORS_AD7414 is not set 734# CONFIG_SENSORS_AD7414 is not set
705# CONFIG_SENSORS_AD7418 is not set 735# CONFIG_SENSORS_AD7418 is not set
706# CONFIG_SENSORS_ADM1021 is not set 736# CONFIG_SENSORS_ADM1021 is not set
@@ -747,6 +777,8 @@ CONFIG_HWMON=y
747# CONFIG_SENSORS_SMSC47B397 is not set 777# CONFIG_SENSORS_SMSC47B397 is not set
748# CONFIG_SENSORS_ADS7828 is not set 778# CONFIG_SENSORS_ADS7828 is not set
749# CONFIG_SENSORS_THMC50 is not set 779# CONFIG_SENSORS_THMC50 is not set
780# CONFIG_SENSORS_TMP401 is not set
781# CONFIG_SENSORS_TMP421 is not set
750# CONFIG_SENSORS_VT1211 is not set 782# CONFIG_SENSORS_VT1211 is not set
751# CONFIG_SENSORS_W83781D is not set 783# CONFIG_SENSORS_W83781D is not set
752# CONFIG_SENSORS_W83791D is not set 784# CONFIG_SENSORS_W83791D is not set
@@ -756,9 +788,7 @@ CONFIG_HWMON=y
756# CONFIG_SENSORS_W83L786NG is not set 788# CONFIG_SENSORS_W83L786NG is not set
757# CONFIG_SENSORS_W83627HF is not set 789# CONFIG_SENSORS_W83627HF is not set
758# CONFIG_SENSORS_W83627EHF is not set 790# CONFIG_SENSORS_W83627EHF is not set
759# CONFIG_HWMON_DEBUG_CHIP is not set
760# CONFIG_THERMAL is not set 791# CONFIG_THERMAL is not set
761# CONFIG_THERMAL_HWMON is not set
762CONFIG_WATCHDOG=y 792CONFIG_WATCHDOG=y
763# CONFIG_WATCHDOG_NOWAYOUT is not set 793# CONFIG_WATCHDOG_NOWAYOUT is not set
764 794
@@ -789,25 +819,12 @@ CONFIG_SSB_POSSIBLE=y
789# CONFIG_MFD_TMIO is not set 819# CONFIG_MFD_TMIO is not set
790# CONFIG_PMIC_DA903X is not set 820# CONFIG_PMIC_DA903X is not set
791# CONFIG_MFD_WM8400 is not set 821# CONFIG_MFD_WM8400 is not set
822# CONFIG_MFD_WM831X is not set
792# CONFIG_MFD_WM8350_I2C is not set 823# CONFIG_MFD_WM8350_I2C is not set
793# CONFIG_MFD_PCF50633 is not set 824# CONFIG_MFD_PCF50633 is not set
825# CONFIG_AB3100_CORE is not set
794# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
795 827# CONFIG_MEDIA_SUPPORT is not set
796#
797# Multimedia devices
798#
799
800#
801# Multimedia core support
802#
803# CONFIG_VIDEO_DEV is not set
804# CONFIG_DVB_CORE is not set
805# CONFIG_VIDEO_MEDIA is not set
806
807#
808# Multimedia drivers
809#
810# CONFIG_DAB is not set
811 828
812# 829#
813# Graphics support 830# Graphics support
@@ -851,11 +868,12 @@ CONFIG_USB_MON=y
851# CONFIG_USB_OXU210HP_HCD is not set 868# CONFIG_USB_OXU210HP_HCD is not set
852# CONFIG_USB_ISP116X_HCD is not set 869# CONFIG_USB_ISP116X_HCD is not set
853# CONFIG_USB_ISP1760_HCD is not set 870# CONFIG_USB_ISP1760_HCD is not set
871# CONFIG_USB_ISP1362_HCD is not set
854CONFIG_USB_OHCI_HCD=y 872CONFIG_USB_OHCI_HCD=y
855CONFIG_USB_OHCI_HCD_PPC_SOC=y 873CONFIG_USB_OHCI_HCD_PPC_SOC=y
856CONFIG_USB_OHCI_HCD_PPC_OF=y
857CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 874CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
858# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 875# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
876CONFIG_USB_OHCI_HCD_PPC_OF=y
859CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 877CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
860CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 878CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
861# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set 879# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set
@@ -969,6 +987,7 @@ CONFIG_RTC_DRV_DS1307=y
969# CONFIG_RTC_DRV_S35390A is not set 987# CONFIG_RTC_DRV_S35390A is not set
970# CONFIG_RTC_DRV_FM3130 is not set 988# CONFIG_RTC_DRV_FM3130 is not set
971# CONFIG_RTC_DRV_RX8581 is not set 989# CONFIG_RTC_DRV_RX8581 is not set
990# CONFIG_RTC_DRV_RX8025 is not set
972 991
973# 992#
974# SPI RTC drivers 993# SPI RTC drivers
@@ -996,6 +1015,10 @@ CONFIG_RTC_DRV_DS1307=y
996# CONFIG_DMADEVICES is not set 1015# CONFIG_DMADEVICES is not set
997# CONFIG_AUXDISPLAY is not set 1016# CONFIG_AUXDISPLAY is not set
998# CONFIG_UIO is not set 1017# CONFIG_UIO is not set
1018
1019#
1020# TI VLYNQ
1021#
999# CONFIG_STAGING is not set 1022# CONFIG_STAGING is not set
1000 1023
1001# 1024#
@@ -1015,10 +1038,13 @@ CONFIG_FS_MBCACHE=y
1015# CONFIG_REISERFS_FS is not set 1038# CONFIG_REISERFS_FS is not set
1016# CONFIG_JFS_FS is not set 1039# CONFIG_JFS_FS is not set
1017# CONFIG_FS_POSIX_ACL is not set 1040# CONFIG_FS_POSIX_ACL is not set
1018CONFIG_FILE_LOCKING=y
1019# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1042# CONFIG_GFS2_FS is not set
1020# CONFIG_OCFS2_FS is not set 1043# CONFIG_OCFS2_FS is not set
1021# CONFIG_BTRFS_FS is not set 1044# CONFIG_BTRFS_FS is not set
1045# CONFIG_NILFS2_FS is not set
1046CONFIG_FILE_LOCKING=y
1047CONFIG_FSNOTIFY=y
1022CONFIG_DNOTIFY=y 1048CONFIG_DNOTIFY=y
1023CONFIG_INOTIFY=y 1049CONFIG_INOTIFY=y
1024CONFIG_INOTIFY_USER=y 1050CONFIG_INOTIFY_USER=y
@@ -1089,12 +1115,12 @@ CONFIG_CRAMFS=y
1089# CONFIG_ROMFS_FS is not set 1115# CONFIG_ROMFS_FS is not set
1090# CONFIG_SYSV_FS is not set 1116# CONFIG_SYSV_FS is not set
1091# CONFIG_UFS_FS is not set 1117# CONFIG_UFS_FS is not set
1092# CONFIG_NILFS2_FS is not set
1093CONFIG_NETWORK_FILESYSTEMS=y 1118CONFIG_NETWORK_FILESYSTEMS=y
1094CONFIG_NFS_FS=y 1119CONFIG_NFS_FS=y
1095CONFIG_NFS_V3=y 1120CONFIG_NFS_V3=y
1096# CONFIG_NFS_V3_ACL is not set 1121# CONFIG_NFS_V3_ACL is not set
1097CONFIG_NFS_V4=y 1122CONFIG_NFS_V4=y
1123# CONFIG_NFS_V4_1 is not set
1098CONFIG_ROOT_NFS=y 1124CONFIG_ROOT_NFS=y
1099# CONFIG_NFSD is not set 1125# CONFIG_NFSD is not set
1100CONFIG_LOCKD=y 1126CONFIG_LOCKD=y
@@ -1194,6 +1220,7 @@ CONFIG_HAS_IOPORT=y
1194CONFIG_HAS_DMA=y 1220CONFIG_HAS_DMA=y
1195CONFIG_HAVE_LMB=y 1221CONFIG_HAVE_LMB=y
1196CONFIG_NLATTR=y 1222CONFIG_NLATTR=y
1223CONFIG_GENERIC_ATOMIC64=y
1197 1224
1198# 1225#
1199# Kernel hacking 1226# Kernel hacking
@@ -1203,6 +1230,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1203CONFIG_ENABLE_MUST_CHECK=y 1230CONFIG_ENABLE_MUST_CHECK=y
1204CONFIG_FRAME_WARN=1024 1231CONFIG_FRAME_WARN=1024
1205# CONFIG_MAGIC_SYSRQ is not set 1232# CONFIG_MAGIC_SYSRQ is not set
1233# CONFIG_STRIP_ASM_SYMS is not set
1206# CONFIG_UNUSED_SYMBOLS is not set 1234# CONFIG_UNUSED_SYMBOLS is not set
1207# CONFIG_DEBUG_FS is not set 1235# CONFIG_DEBUG_FS is not set
1208# CONFIG_HEADERS_CHECK is not set 1236# CONFIG_HEADERS_CHECK is not set
@@ -1220,10 +1248,14 @@ CONFIG_SCHED_DEBUG=y
1220# CONFIG_DEBUG_OBJECTS is not set 1248# CONFIG_DEBUG_OBJECTS is not set
1221# CONFIG_SLUB_DEBUG_ON is not set 1249# CONFIG_SLUB_DEBUG_ON is not set
1222# CONFIG_SLUB_STATS is not set 1250# CONFIG_SLUB_STATS is not set
1251# CONFIG_DEBUG_KMEMLEAK is not set
1223# CONFIG_DEBUG_RT_MUTEXES is not set 1252# CONFIG_DEBUG_RT_MUTEXES is not set
1224# CONFIG_RT_MUTEX_TESTER is not set 1253# CONFIG_RT_MUTEX_TESTER is not set
1225# CONFIG_DEBUG_SPINLOCK is not set 1254# CONFIG_DEBUG_SPINLOCK is not set
1226# CONFIG_DEBUG_MUTEXES is not set 1255# CONFIG_DEBUG_MUTEXES is not set
1256# CONFIG_DEBUG_LOCK_ALLOC is not set
1257# CONFIG_PROVE_LOCKING is not set
1258# CONFIG_LOCK_STAT is not set
1227# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1259# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1228# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1260# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1229# CONFIG_DEBUG_KOBJECT is not set 1261# CONFIG_DEBUG_KOBJECT is not set
@@ -1235,11 +1267,12 @@ CONFIG_DEBUG_INFO=y
1235# CONFIG_DEBUG_LIST is not set 1267# CONFIG_DEBUG_LIST is not set
1236# CONFIG_DEBUG_SG is not set 1268# CONFIG_DEBUG_SG is not set
1237# CONFIG_DEBUG_NOTIFIERS is not set 1269# CONFIG_DEBUG_NOTIFIERS is not set
1238# CONFIG_BOOT_PRINTK_DELAY is not set 1270# CONFIG_DEBUG_CREDENTIALS is not set
1239# CONFIG_RCU_TORTURE_TEST is not set 1271# CONFIG_RCU_TORTURE_TEST is not set
1240# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1272# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1241# CONFIG_BACKTRACE_SELF_TEST is not set 1273# CONFIG_BACKTRACE_SELF_TEST is not set
1242# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1274# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1275# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1243# CONFIG_FAULT_INJECTION is not set 1276# CONFIG_FAULT_INJECTION is not set
1244# CONFIG_LATENCYTOP is not set 1277# CONFIG_LATENCYTOP is not set
1245# CONFIG_DEBUG_PAGEALLOC is not set 1278# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1248,23 +1281,25 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1248CONFIG_HAVE_DYNAMIC_FTRACE=y 1281CONFIG_HAVE_DYNAMIC_FTRACE=y
1249CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1282CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1250CONFIG_TRACING_SUPPORT=y 1283CONFIG_TRACING_SUPPORT=y
1251 1284CONFIG_FTRACE=y
1252#
1253# Tracers
1254#
1255# CONFIG_FUNCTION_TRACER is not set 1285# CONFIG_FUNCTION_TRACER is not set
1286# CONFIG_IRQSOFF_TRACER is not set
1256# CONFIG_SCHED_TRACER is not set 1287# CONFIG_SCHED_TRACER is not set
1257# CONFIG_CONTEXT_SWITCH_TRACER is not set 1288# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1258# CONFIG_EVENT_TRACER is not set
1259# CONFIG_BOOT_TRACER is not set 1289# CONFIG_BOOT_TRACER is not set
1260# CONFIG_TRACE_BRANCH_PROFILING is not set 1290CONFIG_BRANCH_PROFILE_NONE=y
1291# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1292# CONFIG_PROFILE_ALL_BRANCHES is not set
1261# CONFIG_STACK_TRACER is not set 1293# CONFIG_STACK_TRACER is not set
1262# CONFIG_KMEMTRACE is not set 1294# CONFIG_KMEMTRACE is not set
1263# CONFIG_WORKQUEUE_TRACER is not set 1295# CONFIG_WORKQUEUE_TRACER is not set
1264# CONFIG_BLK_DEV_IO_TRACE is not set 1296# CONFIG_BLK_DEV_IO_TRACE is not set
1297# CONFIG_DMA_API_DEBUG is not set
1265# CONFIG_SAMPLES is not set 1298# CONFIG_SAMPLES is not set
1266CONFIG_HAVE_ARCH_KGDB=y 1299CONFIG_HAVE_ARCH_KGDB=y
1267# CONFIG_KGDB is not set 1300# CONFIG_KGDB is not set
1301# CONFIG_PPC_DISABLE_WERROR is not set
1302CONFIG_PPC_WERROR=y
1268CONFIG_PRINT_STACK_DEPTH=64 1303CONFIG_PRINT_STACK_DEPTH=64
1269# CONFIG_DEBUG_STACKOVERFLOW is not set 1304# CONFIG_DEBUG_STACKOVERFLOW is not set
1270# CONFIG_DEBUG_STACK_USAGE is not set 1305# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1289,7 +1324,6 @@ CONFIG_CRYPTO=y
1289# 1324#
1290# Crypto core or helper 1325# Crypto core or helper
1291# 1326#
1292# CONFIG_CRYPTO_FIPS is not set
1293CONFIG_CRYPTO_ALGAPI=y 1327CONFIG_CRYPTO_ALGAPI=y
1294CONFIG_CRYPTO_ALGAPI2=y 1328CONFIG_CRYPTO_ALGAPI2=y
1295CONFIG_CRYPTO_AEAD2=y 1329CONFIG_CRYPTO_AEAD2=y
@@ -1331,11 +1365,13 @@ CONFIG_CRYPTO_PCBC=y
1331# 1365#
1332# CONFIG_CRYPTO_HMAC is not set 1366# CONFIG_CRYPTO_HMAC is not set
1333# CONFIG_CRYPTO_XCBC is not set 1367# CONFIG_CRYPTO_XCBC is not set
1368# CONFIG_CRYPTO_VMAC is not set
1334 1369
1335# 1370#
1336# Digest 1371# Digest
1337# 1372#
1338# CONFIG_CRYPTO_CRC32C is not set 1373# CONFIG_CRYPTO_CRC32C is not set
1374# CONFIG_CRYPTO_GHASH is not set
1339# CONFIG_CRYPTO_MD4 is not set 1375# CONFIG_CRYPTO_MD4 is not set
1340CONFIG_CRYPTO_MD5=y 1376CONFIG_CRYPTO_MD5=y
1341# CONFIG_CRYPTO_MICHAEL_MIC is not set 1377# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index aaa4416660e9..523d5fe18c0e 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -1,25 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2 3# Linux kernel version: 2.6.32-rc4
4# Mon Apr 20 11:06:25 2009 4# Thu Oct 15 10:33:21 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_6xx=y 11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set 12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set 13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y 17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
18CONFIG_PPC_FPU=y 19CONFIG_PPC_FPU=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
20CONFIG_PPC_STD_MMU=y 21CONFIG_PPC_STD_MMU=y
21CONFIG_PPC_STD_MMU_32=y 22CONFIG_PPC_STD_MMU_32=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
23# CONFIG_SMP is not set 25# CONFIG_SMP is not set
24CONFIG_PPC32=y 26CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 27CONFIG_WORD_SIZE=32
@@ -30,15 +32,17 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 33CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 34CONFIG_GENERIC_HARDIRQS=y
35CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y 40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 42CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 44CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 46CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_GENERIC_GPIO=y 47CONFIG_GENERIC_GPIO=y
44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 48# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
@@ -53,12 +57,14 @@ CONFIG_OF=y
53# CONFIG_GENERIC_TBSYNC is not set 57# CONFIG_GENERIC_TBSYNC is not set
54CONFIG_AUDIT_ARCH=y 58CONFIG_AUDIT_ARCH=y
55CONFIG_GENERIC_BUG=y 59CONFIG_GENERIC_BUG=y
60CONFIG_DTC=y
56CONFIG_DEFAULT_UIMAGE=y 61CONFIG_DEFAULT_UIMAGE=y
57CONFIG_ARCH_SUSPEND_POSSIBLE=y 62CONFIG_ARCH_SUSPEND_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 63# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 64# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 66CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
67CONFIG_CONSTRUCTORS=y
62 68
63# 69#
64# General setup 70# General setup
@@ -79,11 +85,12 @@ CONFIG_SYSVIPC_SYSCTL=y
79# 85#
80# RCU Subsystem 86# RCU Subsystem
81# 87#
82CONFIG_CLASSIC_RCU=y 88CONFIG_TREE_RCU=y
83# CONFIG_TREE_RCU is not set 89# CONFIG_TREE_PREEMPT_RCU is not set
84# CONFIG_PREEMPT_RCU is not set 90# CONFIG_RCU_TRACE is not set
91CONFIG_RCU_FANOUT=32
92# CONFIG_RCU_FANOUT_EXACT is not set
85# CONFIG_TREE_RCU_TRACE is not set 93# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
87# CONFIG_IKCONFIG is not set 94# CONFIG_IKCONFIG is not set
88CONFIG_LOG_BUF_SHIFT=14 95CONFIG_LOG_BUF_SHIFT=14
89# CONFIG_GROUP_SCHED is not set 96# CONFIG_GROUP_SCHED is not set
@@ -103,7 +110,6 @@ CONFIG_ANON_INODES=y
103CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
104# CONFIG_SYSCTL_SYSCALL is not set 111# CONFIG_SYSCTL_SYSCALL is not set
105# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
106# CONFIG_STRIP_ASM_SYMS is not set
107CONFIG_HOTPLUG=y 113CONFIG_HOTPLUG=y
108CONFIG_PRINTK=y 114CONFIG_PRINTK=y
109CONFIG_BUG=y 115CONFIG_BUG=y
@@ -116,6 +122,13 @@ CONFIG_TIMERFD=y
116CONFIG_EVENTFD=y 122CONFIG_EVENTFD=y
117CONFIG_SHMEM=y 123CONFIG_SHMEM=y
118CONFIG_AIO=y 124CONFIG_AIO=y
125CONFIG_HAVE_PERF_EVENTS=y
126
127#
128# Kernel Performance Events And Counters
129#
130# CONFIG_PERF_EVENTS is not set
131# CONFIG_PERF_COUNTERS is not set
119CONFIG_VM_EVENT_COUNTERS=y 132CONFIG_VM_EVENT_COUNTERS=y
120CONFIG_PCI_QUIRKS=y 133CONFIG_PCI_QUIRKS=y
121CONFIG_SLUB_DEBUG=y 134CONFIG_SLUB_DEBUG=y
@@ -124,14 +137,19 @@ CONFIG_COMPAT_BRK=y
124CONFIG_SLUB=y 137CONFIG_SLUB=y
125# CONFIG_SLOB is not set 138# CONFIG_SLOB is not set
126# CONFIG_PROFILING is not set 139# CONFIG_PROFILING is not set
127# CONFIG_MARKERS is not set
128CONFIG_HAVE_OPROFILE=y 140CONFIG_HAVE_OPROFILE=y
129CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
130CONFIG_HAVE_IOREMAP_PROT=y 142CONFIG_HAVE_IOREMAP_PROT=y
131CONFIG_HAVE_KPROBES=y 143CONFIG_HAVE_KPROBES=y
132CONFIG_HAVE_KRETPROBES=y 144CONFIG_HAVE_KRETPROBES=y
133CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
146CONFIG_HAVE_DMA_ATTRS=y
134CONFIG_HAVE_CLK=y 147CONFIG_HAVE_CLK=y
148CONFIG_HAVE_DMA_API_DEBUG=y
149
150#
151# GCOV-based kernel profiling
152#
135# CONFIG_SLOW_WORK is not set 153# CONFIG_SLOW_WORK is not set
136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 154# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
137CONFIG_SLABINFO=y 155CONFIG_SLABINFO=y
@@ -144,7 +162,7 @@ CONFIG_MODULE_UNLOAD=y
144# CONFIG_MODVERSIONS is not set 162# CONFIG_MODVERSIONS is not set
145# CONFIG_MODULE_SRCVERSION_ALL is not set 163# CONFIG_MODULE_SRCVERSION_ALL is not set
146CONFIG_BLOCK=y 164CONFIG_BLOCK=y
147# CONFIG_LBD is not set 165CONFIG_LBDAF=y
148# CONFIG_BLK_DEV_BSG is not set 166# CONFIG_BLK_DEV_BSG is not set
149# CONFIG_BLK_DEV_INTEGRITY is not set 167# CONFIG_BLK_DEV_INTEGRITY is not set
150 168
@@ -205,7 +223,7 @@ CONFIG_RTAS_PROC=y
205CONFIG_PPC_BESTCOMM=y 223CONFIG_PPC_BESTCOMM=y
206CONFIG_PPC_BESTCOMM_ATA=y 224CONFIG_PPC_BESTCOMM_ATA=y
207CONFIG_PPC_BESTCOMM_FEC=y 225CONFIG_PPC_BESTCOMM_FEC=y
208# CONFIG_SIMPLE_GPIO is not set 226CONFIG_SIMPLE_GPIO=y
209 227
210# 228#
211# Kernel options 229# Kernel options
@@ -229,11 +247,13 @@ CONFIG_BINFMT_ELF=y
229# CONFIG_HAVE_AOUT is not set 247# CONFIG_HAVE_AOUT is not set
230# CONFIG_BINFMT_MISC is not set 248# CONFIG_BINFMT_MISC is not set
231# CONFIG_IOMMU_HELPER is not set 249# CONFIG_IOMMU_HELPER is not set
250# CONFIG_SWIOTLB is not set
232CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 251CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
233CONFIG_ARCH_HAS_WALK_MEMORY=y 252CONFIG_ARCH_HAS_WALK_MEMORY=y
234CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 253CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
235# CONFIG_KEXEC is not set 254# CONFIG_KEXEC is not set
236# CONFIG_CRASH_DUMP is not set 255# CONFIG_CRASH_DUMP is not set
256CONFIG_MAX_ACTIVE_REGIONS=32
237CONFIG_ARCH_FLATMEM_ENABLE=y 257CONFIG_ARCH_FLATMEM_ENABLE=y
238CONFIG_ARCH_POPULATES_NODE_MAP=y 258CONFIG_ARCH_POPULATES_NODE_MAP=y
239CONFIG_SELECT_MEMORY_MODEL=y 259CONFIG_SELECT_MEMORY_MODEL=y
@@ -249,9 +269,10 @@ CONFIG_MIGRATION=y
249CONFIG_ZONE_DMA_FLAG=1 269CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 270CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 271CONFIG_VIRT_TO_BUS=y
252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_HAVE_MLOCK=y 272CONFIG_HAVE_MLOCK=y
254CONFIG_HAVE_MLOCKED_PAGE_BIT=y 273CONFIG_HAVE_MLOCKED_PAGE_BIT=y
274# CONFIG_KSM is not set
275CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
255CONFIG_PPC_4K_PAGES=y 276CONFIG_PPC_4K_PAGES=y
256# CONFIG_PPC_16K_PAGES is not set 277# CONFIG_PPC_16K_PAGES is not set
257# CONFIG_PPC_64K_PAGES is not set 278# CONFIG_PPC_64K_PAGES is not set
@@ -265,6 +286,7 @@ CONFIG_PM=y
265CONFIG_PM_SLEEP=y 286CONFIG_PM_SLEEP=y
266CONFIG_SUSPEND=y 287CONFIG_SUSPEND=y
267CONFIG_SUSPEND_FREEZER=y 288CONFIG_SUSPEND_FREEZER=y
289# CONFIG_PM_RUNTIME is not set
268CONFIG_SECCOMP=y 290CONFIG_SECCOMP=y
269CONFIG_ISA_DMA_API=y 291CONFIG_ISA_DMA_API=y
270 292
@@ -349,6 +371,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_NETFILTER is not set 371# CONFIG_NETFILTER is not set
350# CONFIG_IP_DCCP is not set 372# CONFIG_IP_DCCP is not set
351# CONFIG_IP_SCTP is not set 373# CONFIG_IP_SCTP is not set
374# CONFIG_RDS is not set
352# CONFIG_TIPC is not set 375# CONFIG_TIPC is not set
353# CONFIG_ATM is not set 376# CONFIG_ATM is not set
354# CONFIG_BRIDGE is not set 377# CONFIG_BRIDGE is not set
@@ -363,6 +386,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_ECONET is not set 386# CONFIG_ECONET is not set
364# CONFIG_WAN_ROUTER is not set 387# CONFIG_WAN_ROUTER is not set
365# CONFIG_PHONET is not set 388# CONFIG_PHONET is not set
389# CONFIG_IEEE802154 is not set
366# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
367# CONFIG_DCB is not set 391# CONFIG_DCB is not set
368 392
@@ -388,6 +412,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
388# Generic Driver Options 412# Generic Driver Options
389# 413#
390CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 414CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
415# CONFIG_DEVTMPFS is not set
391CONFIG_STANDALONE=y 416CONFIG_STANDALONE=y
392CONFIG_PREVENT_FIRMWARE_BUILD=y 417CONFIG_PREVENT_FIRMWARE_BUILD=y
393# CONFIG_FW_LOADER is not set 418# CONFIG_FW_LOADER is not set
@@ -397,9 +422,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
397# CONFIG_CONNECTOR is not set 422# CONFIG_CONNECTOR is not set
398CONFIG_MTD=y 423CONFIG_MTD=y
399# CONFIG_MTD_DEBUG is not set 424# CONFIG_MTD_DEBUG is not set
425# CONFIG_MTD_TESTS is not set
400CONFIG_MTD_CONCAT=y 426CONFIG_MTD_CONCAT=y
401CONFIG_MTD_PARTITIONS=y 427CONFIG_MTD_PARTITIONS=y
402# CONFIG_MTD_TESTS is not set
403# CONFIG_MTD_REDBOOT_PARTS is not set 428# CONFIG_MTD_REDBOOT_PARTS is not set
404CONFIG_MTD_CMDLINE_PARTS=y 429CONFIG_MTD_CMDLINE_PARTS=y
405CONFIG_MTD_OF_PARTS=y 430CONFIG_MTD_OF_PARTS=y
@@ -458,6 +483,7 @@ CONFIG_MTD_PHYSMAP_OF=y
458# CONFIG_MTD_PMC551 is not set 483# CONFIG_MTD_PMC551 is not set
459# CONFIG_MTD_DATAFLASH is not set 484# CONFIG_MTD_DATAFLASH is not set
460# CONFIG_MTD_M25P80 is not set 485# CONFIG_MTD_M25P80 is not set
486# CONFIG_MTD_SST25L is not set
461# CONFIG_MTD_SLRAM is not set 487# CONFIG_MTD_SLRAM is not set
462# CONFIG_MTD_PHRAM is not set 488# CONFIG_MTD_PHRAM is not set
463# CONFIG_MTD_MTDRAM is not set 489# CONFIG_MTD_MTDRAM is not set
@@ -493,6 +519,7 @@ CONFIG_OF_DEVICE=y
493CONFIG_OF_GPIO=y 519CONFIG_OF_GPIO=y
494CONFIG_OF_I2C=y 520CONFIG_OF_I2C=y
495CONFIG_OF_SPI=y 521CONFIG_OF_SPI=y
522CONFIG_OF_MDIO=y
496# CONFIG_PARPORT is not set 523# CONFIG_PARPORT is not set
497CONFIG_BLK_DEV=y 524CONFIG_BLK_DEV=y
498# CONFIG_BLK_DEV_FD is not set 525# CONFIG_BLK_DEV_FD is not set
@@ -529,7 +556,9 @@ CONFIG_MISC_DEVICES=y
529CONFIG_EEPROM_AT24=y 556CONFIG_EEPROM_AT24=y
530# CONFIG_EEPROM_AT25 is not set 557# CONFIG_EEPROM_AT25 is not set
531# CONFIG_EEPROM_LEGACY is not set 558# CONFIG_EEPROM_LEGACY is not set
559# CONFIG_EEPROM_MAX6875 is not set
532# CONFIG_EEPROM_93CX6 is not set 560# CONFIG_EEPROM_93CX6 is not set
561# CONFIG_CB710_CORE is not set
533CONFIG_HAVE_IDE=y 562CONFIG_HAVE_IDE=y
534# CONFIG_IDE is not set 563# CONFIG_IDE is not set
535 564
@@ -552,10 +581,6 @@ CONFIG_BLK_DEV_SD=y
552# CONFIG_BLK_DEV_SR is not set 581# CONFIG_BLK_DEV_SR is not set
553CONFIG_CHR_DEV_SG=y 582CONFIG_CHR_DEV_SG=y
554# CONFIG_CHR_DEV_SCH is not set 583# CONFIG_CHR_DEV_SCH is not set
555
556#
557# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
558#
559# CONFIG_SCSI_MULTI_LUN is not set 584# CONFIG_SCSI_MULTI_LUN is not set
560# CONFIG_SCSI_CONSTANTS is not set 585# CONFIG_SCSI_CONSTANTS is not set
561# CONFIG_SCSI_LOGGING is not set 586# CONFIG_SCSI_LOGGING is not set
@@ -572,6 +597,8 @@ CONFIG_SCSI_WAIT_SCAN=m
572# CONFIG_SCSI_SRP_ATTRS is not set 597# CONFIG_SCSI_SRP_ATTRS is not set
573CONFIG_SCSI_LOWLEVEL=y 598CONFIG_SCSI_LOWLEVEL=y
574# CONFIG_ISCSI_TCP is not set 599# CONFIG_ISCSI_TCP is not set
600# CONFIG_SCSI_BNX2_ISCSI is not set
601# CONFIG_BE2ISCSI is not set
575# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 602# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
576# CONFIG_SCSI_3W_9XXX is not set 603# CONFIG_SCSI_3W_9XXX is not set
577# CONFIG_SCSI_ACARD is not set 604# CONFIG_SCSI_ACARD is not set
@@ -580,6 +607,7 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_SCSI_AIC7XXX_OLD is not set 607# CONFIG_SCSI_AIC7XXX_OLD is not set
581# CONFIG_SCSI_AIC79XX is not set 608# CONFIG_SCSI_AIC79XX is not set
582# CONFIG_SCSI_AIC94XX is not set 609# CONFIG_SCSI_AIC94XX is not set
610# CONFIG_SCSI_MVSAS is not set
583# CONFIG_SCSI_DPT_I2O is not set 611# CONFIG_SCSI_DPT_I2O is not set
584# CONFIG_SCSI_ADVANSYS is not set 612# CONFIG_SCSI_ADVANSYS is not set
585# CONFIG_SCSI_ARCMSR is not set 613# CONFIG_SCSI_ARCMSR is not set
@@ -599,7 +627,6 @@ CONFIG_SCSI_LOWLEVEL=y
599# CONFIG_SCSI_IPS is not set 627# CONFIG_SCSI_IPS is not set
600# CONFIG_SCSI_INITIO is not set 628# CONFIG_SCSI_INITIO is not set
601# CONFIG_SCSI_INIA100 is not set 629# CONFIG_SCSI_INIA100 is not set
602# CONFIG_SCSI_MVSAS is not set
603# CONFIG_SCSI_STEX is not set 630# CONFIG_SCSI_STEX is not set
604# CONFIG_SCSI_SYM53C8XX_2 is not set 631# CONFIG_SCSI_SYM53C8XX_2 is not set
605# CONFIG_SCSI_IPR is not set 632# CONFIG_SCSI_IPR is not set
@@ -611,11 +638,14 @@ CONFIG_SCSI_LOWLEVEL=y
611# CONFIG_SCSI_DC390T is not set 638# CONFIG_SCSI_DC390T is not set
612# CONFIG_SCSI_NSP32 is not set 639# CONFIG_SCSI_NSP32 is not set
613# CONFIG_SCSI_DEBUG is not set 640# CONFIG_SCSI_DEBUG is not set
641# CONFIG_SCSI_PMCRAID is not set
614# CONFIG_SCSI_SRP is not set 642# CONFIG_SCSI_SRP is not set
643# CONFIG_SCSI_BFA_FC is not set
615# CONFIG_SCSI_DH is not set 644# CONFIG_SCSI_DH is not set
616# CONFIG_SCSI_OSD_INITIATOR is not set 645# CONFIG_SCSI_OSD_INITIATOR is not set
617CONFIG_ATA=y 646CONFIG_ATA=y
618# CONFIG_ATA_NONSTANDARD is not set 647# CONFIG_ATA_NONSTANDARD is not set
648CONFIG_ATA_VERBOSE_ERROR=y
619CONFIG_SATA_PMP=y 649CONFIG_SATA_PMP=y
620# CONFIG_SATA_AHCI is not set 650# CONFIG_SATA_AHCI is not set
621# CONFIG_SATA_SIL24 is not set 651# CONFIG_SATA_SIL24 is not set
@@ -637,6 +667,7 @@ CONFIG_ATA_SFF=y
637# CONFIG_PATA_ALI is not set 667# CONFIG_PATA_ALI is not set
638# CONFIG_PATA_AMD is not set 668# CONFIG_PATA_AMD is not set
639# CONFIG_PATA_ARTOP is not set 669# CONFIG_PATA_ARTOP is not set
670# CONFIG_PATA_ATP867X is not set
640# CONFIG_PATA_ATIIXP is not set 671# CONFIG_PATA_ATIIXP is not set
641# CONFIG_PATA_CMD640_PCI is not set 672# CONFIG_PATA_CMD640_PCI is not set
642# CONFIG_PATA_CMD64X is not set 673# CONFIG_PATA_CMD64X is not set
@@ -665,6 +696,7 @@ CONFIG_PATA_MPC52xx=y
665# CONFIG_PATA_OPTIDMA is not set 696# CONFIG_PATA_OPTIDMA is not set
666# CONFIG_PATA_PDC_OLD is not set 697# CONFIG_PATA_PDC_OLD is not set
667# CONFIG_PATA_RADISYS is not set 698# CONFIG_PATA_RADISYS is not set
699# CONFIG_PATA_RDC is not set
668# CONFIG_PATA_RZ1000 is not set 700# CONFIG_PATA_RZ1000 is not set
669# CONFIG_PATA_SC1200 is not set 701# CONFIG_PATA_SC1200 is not set
670# CONFIG_PATA_SERVERWORKS is not set 702# CONFIG_PATA_SERVERWORKS is not set
@@ -684,14 +716,17 @@ CONFIG_PATA_PLATFORM=y
684# 716#
685 717
686# 718#
687# Enable only one of the two stacks, unless you know what you are doing 719# You can enable one or both FireWire driver stacks.
720#
721
722#
723# See the help texts for more information.
688# 724#
689# CONFIG_FIREWIRE is not set 725# CONFIG_FIREWIRE is not set
690# CONFIG_IEEE1394 is not set 726# CONFIG_IEEE1394 is not set
691# CONFIG_I2O is not set 727# CONFIG_I2O is not set
692# CONFIG_MACINTOSH_DRIVERS is not set 728# CONFIG_MACINTOSH_DRIVERS is not set
693CONFIG_NETDEVICES=y 729CONFIG_NETDEVICES=y
694CONFIG_COMPAT_NET_DEV_OPS=y
695# CONFIG_DUMMY is not set 730# CONFIG_DUMMY is not set
696# CONFIG_BONDING is not set 731# CONFIG_BONDING is not set
697# CONFIG_MACVLAN is not set 732# CONFIG_MACVLAN is not set
@@ -739,16 +774,17 @@ CONFIG_NET_ETHERNET=y
739# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 774# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
740# CONFIG_NET_PCI is not set 775# CONFIG_NET_PCI is not set
741# CONFIG_B44 is not set 776# CONFIG_B44 is not set
777# CONFIG_KS8842 is not set
778# CONFIG_KS8851 is not set
779# CONFIG_KS8851_MLL is not set
742CONFIG_FEC_MPC52xx=y 780CONFIG_FEC_MPC52xx=y
743CONFIG_FEC_MPC52xx_MDIO=y 781CONFIG_FEC_MPC52xx_MDIO=y
744# CONFIG_ATL2 is not set 782# CONFIG_ATL2 is not set
783# CONFIG_XILINX_EMACLITE is not set
745# CONFIG_NETDEV_1000 is not set 784# CONFIG_NETDEV_1000 is not set
746# CONFIG_NETDEV_10000 is not set 785# CONFIG_NETDEV_10000 is not set
747# CONFIG_TR is not set 786# CONFIG_TR is not set
748 787CONFIG_WLAN=y
749#
750# Wireless LAN
751#
752# CONFIG_WLAN_PRE80211 is not set 788# CONFIG_WLAN_PRE80211 is not set
753# CONFIG_WLAN_80211 is not set 789# CONFIG_WLAN_80211 is not set
754 790
@@ -854,6 +890,7 @@ CONFIG_LEGACY_PTY_COUNT=256
854CONFIG_DEVPORT=y 890CONFIG_DEVPORT=y
855CONFIG_I2C=y 891CONFIG_I2C=y
856CONFIG_I2C_BOARDINFO=y 892CONFIG_I2C_BOARDINFO=y
893CONFIG_I2C_COMPAT=y
857CONFIG_I2C_CHARDEV=y 894CONFIG_I2C_CHARDEV=y
858CONFIG_I2C_HELPER_AUTO=y 895CONFIG_I2C_HELPER_AUTO=y
859CONFIG_I2C_ALGOBIT=y 896CONFIG_I2C_ALGOBIT=y
@@ -883,6 +920,7 @@ CONFIG_I2C_ALGOBIT=y
883# 920#
884# I2C system bus drivers (mostly embedded / system-on-chip) 921# I2C system bus drivers (mostly embedded / system-on-chip)
885# 922#
923# CONFIG_I2C_DESIGNWARE is not set
886# CONFIG_I2C_GPIO is not set 924# CONFIG_I2C_GPIO is not set
887CONFIG_I2C_MPC=y 925CONFIG_I2C_MPC=y
888# CONFIG_I2C_OCORES is not set 926# CONFIG_I2C_OCORES is not set
@@ -910,10 +948,6 @@ CONFIG_I2C_MPC=y
910# Miscellaneous I2C Chip support 948# Miscellaneous I2C Chip support
911# 949#
912# CONFIG_DS1682 is not set 950# CONFIG_DS1682 is not set
913# CONFIG_SENSORS_PCF8574 is not set
914# CONFIG_PCF8575 is not set
915# CONFIG_SENSORS_PCA9539 is not set
916# CONFIG_SENSORS_MAX6875 is not set
917# CONFIG_SENSORS_TSL2550 is not set 951# CONFIG_SENSORS_TSL2550 is not set
918# CONFIG_I2C_DEBUG_CORE is not set 952# CONFIG_I2C_DEBUG_CORE is not set
919# CONFIG_I2C_DEBUG_ALGO is not set 953# CONFIG_I2C_DEBUG_ALGO is not set
@@ -935,6 +969,11 @@ CONFIG_SPI_MPC52xx_PSC=m
935# 969#
936CONFIG_SPI_SPIDEV=m 970CONFIG_SPI_SPIDEV=m
937# CONFIG_SPI_TLE62X0 is not set 971# CONFIG_SPI_TLE62X0 is not set
972
973#
974# PPS support
975#
976# CONFIG_PPS is not set
938CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 977CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
939CONFIG_ARCH_REQUIRE_GPIOLIB=y 978CONFIG_ARCH_REQUIRE_GPIOLIB=y
940CONFIG_GPIOLIB=y 979CONFIG_GPIOLIB=y
@@ -957,16 +996,27 @@ CONFIG_GPIOLIB=y
957# PCI GPIO expanders: 996# PCI GPIO expanders:
958# 997#
959# CONFIG_GPIO_BT8XX is not set 998# CONFIG_GPIO_BT8XX is not set
999# CONFIG_GPIO_LANGWELL is not set
960 1000
961# 1001#
962# SPI GPIO expanders: 1002# SPI GPIO expanders:
963# 1003#
964# CONFIG_GPIO_MAX7301 is not set 1004# CONFIG_GPIO_MAX7301 is not set
965# CONFIG_GPIO_MCP23S08 is not set 1005# CONFIG_GPIO_MCP23S08 is not set
1006# CONFIG_GPIO_MC33880 is not set
1007
1008#
1009# AC97 GPIO expanders:
1010#
966# CONFIG_W1 is not set 1011# CONFIG_W1 is not set
967# CONFIG_POWER_SUPPLY is not set 1012# CONFIG_POWER_SUPPLY is not set
968CONFIG_HWMON=y 1013CONFIG_HWMON=y
969# CONFIG_HWMON_VID is not set 1014# CONFIG_HWMON_VID is not set
1015# CONFIG_HWMON_DEBUG_CHIP is not set
1016
1017#
1018# Native drivers
1019#
970# CONFIG_SENSORS_AD7414 is not set 1020# CONFIG_SENSORS_AD7414 is not set
971# CONFIG_SENSORS_AD7418 is not set 1021# CONFIG_SENSORS_AD7418 is not set
972# CONFIG_SENSORS_ADCXX is not set 1022# CONFIG_SENSORS_ADCXX is not set
@@ -1019,6 +1069,8 @@ CONFIG_HWMON=y
1019# CONFIG_SENSORS_SMSC47B397 is not set 1069# CONFIG_SENSORS_SMSC47B397 is not set
1020# CONFIG_SENSORS_ADS7828 is not set 1070# CONFIG_SENSORS_ADS7828 is not set
1021# CONFIG_SENSORS_THMC50 is not set 1071# CONFIG_SENSORS_THMC50 is not set
1072# CONFIG_SENSORS_TMP401 is not set
1073# CONFIG_SENSORS_TMP421 is not set
1022# CONFIG_SENSORS_VIA686A is not set 1074# CONFIG_SENSORS_VIA686A is not set
1023# CONFIG_SENSORS_VT1211 is not set 1075# CONFIG_SENSORS_VT1211 is not set
1024# CONFIG_SENSORS_VT8231 is not set 1076# CONFIG_SENSORS_VT8231 is not set
@@ -1031,9 +1083,7 @@ CONFIG_HWMON=y
1031# CONFIG_SENSORS_W83627HF is not set 1083# CONFIG_SENSORS_W83627HF is not set
1032# CONFIG_SENSORS_W83627EHF is not set 1084# CONFIG_SENSORS_W83627EHF is not set
1033# CONFIG_SENSORS_LIS3_SPI is not set 1085# CONFIG_SENSORS_LIS3_SPI is not set
1034# CONFIG_HWMON_DEBUG_CHIP is not set
1035# CONFIG_THERMAL is not set 1086# CONFIG_THERMAL is not set
1036# CONFIG_THERMAL_HWMON is not set
1037CONFIG_WATCHDOG=y 1087CONFIG_WATCHDOG=y
1038# CONFIG_WATCHDOG_NOWAYOUT is not set 1088# CONFIG_WATCHDOG_NOWAYOUT is not set
1039 1089
@@ -1073,31 +1123,20 @@ CONFIG_SSB_POSSIBLE=y
1073# CONFIG_MFD_TMIO is not set 1123# CONFIG_MFD_TMIO is not set
1074# CONFIG_PMIC_DA903X is not set 1124# CONFIG_PMIC_DA903X is not set
1075# CONFIG_MFD_WM8400 is not set 1125# CONFIG_MFD_WM8400 is not set
1126# CONFIG_MFD_WM831X is not set
1076# CONFIG_MFD_WM8350_I2C is not set 1127# CONFIG_MFD_WM8350_I2C is not set
1077# CONFIG_MFD_PCF50633 is not set 1128# CONFIG_MFD_PCF50633 is not set
1129# CONFIG_MFD_MC13783 is not set
1130# CONFIG_AB3100_CORE is not set
1131# CONFIG_EZX_PCAP is not set
1078# CONFIG_REGULATOR is not set 1132# CONFIG_REGULATOR is not set
1079 1133# CONFIG_MEDIA_SUPPORT is not set
1080#
1081# Multimedia devices
1082#
1083
1084#
1085# Multimedia core support
1086#
1087# CONFIG_VIDEO_DEV is not set
1088# CONFIG_DVB_CORE is not set
1089# CONFIG_VIDEO_MEDIA is not set
1090
1091#
1092# Multimedia drivers
1093#
1094CONFIG_DAB=y
1095# CONFIG_USB_DABUSB is not set
1096 1134
1097# 1135#
1098# Graphics support 1136# Graphics support
1099# 1137#
1100# CONFIG_AGP is not set 1138# CONFIG_AGP is not set
1139CONFIG_VGA_ARB=y
1101CONFIG_DRM=y 1140CONFIG_DRM=y
1102# CONFIG_DRM_TDFX is not set 1141# CONFIG_DRM_TDFX is not set
1103# CONFIG_DRM_R128 is not set 1142# CONFIG_DRM_R128 is not set
@@ -1167,6 +1206,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1167# CONFIG_FB_BROADSHEET is not set 1206# CONFIG_FB_BROADSHEET is not set
1168CONFIG_BACKLIGHT_LCD_SUPPORT=y 1207CONFIG_BACKLIGHT_LCD_SUPPORT=y
1169CONFIG_LCD_CLASS_DEVICE=m 1208CONFIG_LCD_CLASS_DEVICE=m
1209# CONFIG_LCD_LMS283GF05 is not set
1170# CONFIG_LCD_LTV350QV is not set 1210# CONFIG_LCD_LTV350QV is not set
1171# CONFIG_LCD_ILI9320 is not set 1211# CONFIG_LCD_ILI9320 is not set
1172# CONFIG_LCD_TDO24M is not set 1212# CONFIG_LCD_TDO24M is not set
@@ -1198,7 +1238,6 @@ CONFIG_LOGO_LINUX_CLUT224=y
1198# CONFIG_SOUND is not set 1238# CONFIG_SOUND is not set
1199CONFIG_HID_SUPPORT=y 1239CONFIG_HID_SUPPORT=y
1200CONFIG_HID=y 1240CONFIG_HID=y
1201# CONFIG_HID_DEBUG is not set
1202# CONFIG_HIDRAW is not set 1241# CONFIG_HIDRAW is not set
1203 1242
1204# 1243#
@@ -1217,10 +1256,11 @@ CONFIG_HID_BELKIN=y
1217CONFIG_HID_CHERRY=y 1256CONFIG_HID_CHERRY=y
1218# CONFIG_HID_CHICONY is not set 1257# CONFIG_HID_CHICONY is not set
1219CONFIG_HID_CYPRESS=y 1258CONFIG_HID_CYPRESS=y
1220# CONFIG_DRAGONRISE_FF is not set 1259# CONFIG_HID_DRAGONRISE is not set
1221CONFIG_HID_EZKEY=y 1260CONFIG_HID_EZKEY=y
1222# CONFIG_HID_KYE is not set 1261# CONFIG_HID_KYE is not set
1223# CONFIG_HID_GYRATION is not set 1262# CONFIG_HID_GYRATION is not set
1263# CONFIG_HID_TWINHAN is not set
1224# CONFIG_HID_KENSINGTON is not set 1264# CONFIG_HID_KENSINGTON is not set
1225# CONFIG_HID_LOGITECH is not set 1265# CONFIG_HID_LOGITECH is not set
1226# CONFIG_HID_MICROSOFT is not set 1266# CONFIG_HID_MICROSOFT is not set
@@ -1231,10 +1271,11 @@ CONFIG_HID_EZKEY=y
1231# CONFIG_HID_SAMSUNG is not set 1271# CONFIG_HID_SAMSUNG is not set
1232# CONFIG_HID_SONY is not set 1272# CONFIG_HID_SONY is not set
1233# CONFIG_HID_SUNPLUS is not set 1273# CONFIG_HID_SUNPLUS is not set
1234# CONFIG_GREENASIA_FF is not set 1274# CONFIG_HID_GREENASIA is not set
1275# CONFIG_HID_SMARTJOYPLUS is not set
1235# CONFIG_HID_TOPSEED is not set 1276# CONFIG_HID_TOPSEED is not set
1236# CONFIG_THRUSTMASTER_FF is not set 1277# CONFIG_HID_THRUSTMASTER is not set
1237# CONFIG_ZEROPLUS_FF is not set 1278# CONFIG_HID_ZEROPLUS is not set
1238CONFIG_USB_SUPPORT=y 1279CONFIG_USB_SUPPORT=y
1239CONFIG_USB_ARCH_HAS_HCD=y 1280CONFIG_USB_ARCH_HAS_HCD=y
1240CONFIG_USB_ARCH_HAS_OHCI=y 1281CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1261,15 +1302,17 @@ CONFIG_USB_MON=y
1261# USB Host Controller Drivers 1302# USB Host Controller Drivers
1262# 1303#
1263# CONFIG_USB_C67X00_HCD is not set 1304# CONFIG_USB_C67X00_HCD is not set
1305# CONFIG_USB_XHCI_HCD is not set
1264# CONFIG_USB_EHCI_HCD is not set 1306# CONFIG_USB_EHCI_HCD is not set
1265# CONFIG_USB_OXU210HP_HCD is not set 1307# CONFIG_USB_OXU210HP_HCD is not set
1266# CONFIG_USB_ISP116X_HCD is not set 1308# CONFIG_USB_ISP116X_HCD is not set
1267# CONFIG_USB_ISP1760_HCD is not set 1309# CONFIG_USB_ISP1760_HCD is not set
1310# CONFIG_USB_ISP1362_HCD is not set
1268CONFIG_USB_OHCI_HCD=y 1311CONFIG_USB_OHCI_HCD=y
1269CONFIG_USB_OHCI_HCD_PPC_SOC=y 1312CONFIG_USB_OHCI_HCD_PPC_SOC=y
1270CONFIG_USB_OHCI_HCD_PPC_OF=y
1271CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1313CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
1272# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 1314# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
1315CONFIG_USB_OHCI_HCD_PPC_OF=y
1273CONFIG_USB_OHCI_HCD_PCI=y 1316CONFIG_USB_OHCI_HCD_PCI=y
1274CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 1317CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1275CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 1318CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
@@ -1400,6 +1443,7 @@ CONFIG_RTC_DRV_DS1307=y
1400# CONFIG_RTC_DRV_S35390A is not set 1443# CONFIG_RTC_DRV_S35390A is not set
1401# CONFIG_RTC_DRV_FM3130 is not set 1444# CONFIG_RTC_DRV_FM3130 is not set
1402# CONFIG_RTC_DRV_RX8581 is not set 1445# CONFIG_RTC_DRV_RX8581 is not set
1446# CONFIG_RTC_DRV_RX8025 is not set
1403 1447
1404# 1448#
1405# SPI RTC drivers 1449# SPI RTC drivers
@@ -1411,6 +1455,7 @@ CONFIG_RTC_DRV_DS1307=y
1411# CONFIG_RTC_DRV_R9701 is not set 1455# CONFIG_RTC_DRV_R9701 is not set
1412# CONFIG_RTC_DRV_RS5C348 is not set 1456# CONFIG_RTC_DRV_RS5C348 is not set
1413# CONFIG_RTC_DRV_DS3234 is not set 1457# CONFIG_RTC_DRV_DS3234 is not set
1458# CONFIG_RTC_DRV_PCF2123 is not set
1414 1459
1415# 1460#
1416# Platform RTC drivers 1461# Platform RTC drivers
@@ -1434,6 +1479,10 @@ CONFIG_RTC_DRV_DS1307=y
1434# CONFIG_DMADEVICES is not set 1479# CONFIG_DMADEVICES is not set
1435# CONFIG_AUXDISPLAY is not set 1480# CONFIG_AUXDISPLAY is not set
1436# CONFIG_UIO is not set 1481# CONFIG_UIO is not set
1482
1483#
1484# TI VLYNQ
1485#
1437# CONFIG_STAGING is not set 1486# CONFIG_STAGING is not set
1438 1487
1439# 1488#
@@ -1453,10 +1502,13 @@ CONFIG_FS_MBCACHE=y
1453# CONFIG_REISERFS_FS is not set 1502# CONFIG_REISERFS_FS is not set
1454# CONFIG_JFS_FS is not set 1503# CONFIG_JFS_FS is not set
1455# CONFIG_FS_POSIX_ACL is not set 1504# CONFIG_FS_POSIX_ACL is not set
1456CONFIG_FILE_LOCKING=y
1457# CONFIG_XFS_FS is not set 1505# CONFIG_XFS_FS is not set
1506# CONFIG_GFS2_FS is not set
1458# CONFIG_OCFS2_FS is not set 1507# CONFIG_OCFS2_FS is not set
1459# CONFIG_BTRFS_FS is not set 1508# CONFIG_BTRFS_FS is not set
1509# CONFIG_NILFS2_FS is not set
1510CONFIG_FILE_LOCKING=y
1511CONFIG_FSNOTIFY=y
1460CONFIG_DNOTIFY=y 1512CONFIG_DNOTIFY=y
1461CONFIG_INOTIFY=y 1513CONFIG_INOTIFY=y
1462CONFIG_INOTIFY_USER=y 1514CONFIG_INOTIFY_USER=y
@@ -1533,12 +1585,12 @@ CONFIG_CRAMFS=y
1533# CONFIG_ROMFS_FS is not set 1585# CONFIG_ROMFS_FS is not set
1534# CONFIG_SYSV_FS is not set 1586# CONFIG_SYSV_FS is not set
1535# CONFIG_UFS_FS is not set 1587# CONFIG_UFS_FS is not set
1536# CONFIG_NILFS2_FS is not set
1537CONFIG_NETWORK_FILESYSTEMS=y 1588CONFIG_NETWORK_FILESYSTEMS=y
1538CONFIG_NFS_FS=y 1589CONFIG_NFS_FS=y
1539CONFIG_NFS_V3=y 1590CONFIG_NFS_V3=y
1540# CONFIG_NFS_V3_ACL is not set 1591# CONFIG_NFS_V3_ACL is not set
1541CONFIG_NFS_V4=y 1592CONFIG_NFS_V4=y
1593# CONFIG_NFS_V4_1 is not set
1542CONFIG_ROOT_NFS=y 1594CONFIG_ROOT_NFS=y
1543# CONFIG_NFSD is not set 1595# CONFIG_NFSD is not set
1544CONFIG_LOCKD=y 1596CONFIG_LOCKD=y
@@ -1624,6 +1676,7 @@ CONFIG_HAS_IOPORT=y
1624CONFIG_HAS_DMA=y 1676CONFIG_HAS_DMA=y
1625CONFIG_HAVE_LMB=y 1677CONFIG_HAVE_LMB=y
1626CONFIG_NLATTR=y 1678CONFIG_NLATTR=y
1679CONFIG_GENERIC_ATOMIC64=y
1627 1680
1628# 1681#
1629# Kernel hacking 1682# Kernel hacking
@@ -1633,6 +1686,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1633CONFIG_ENABLE_MUST_CHECK=y 1686CONFIG_ENABLE_MUST_CHECK=y
1634CONFIG_FRAME_WARN=1024 1687CONFIG_FRAME_WARN=1024
1635# CONFIG_MAGIC_SYSRQ is not set 1688# CONFIG_MAGIC_SYSRQ is not set
1689# CONFIG_STRIP_ASM_SYMS is not set
1636# CONFIG_UNUSED_SYMBOLS is not set 1690# CONFIG_UNUSED_SYMBOLS is not set
1637# CONFIG_DEBUG_FS is not set 1691# CONFIG_DEBUG_FS is not set
1638# CONFIG_HEADERS_CHECK is not set 1692# CONFIG_HEADERS_CHECK is not set
@@ -1650,10 +1704,14 @@ CONFIG_SCHED_DEBUG=y
1650# CONFIG_DEBUG_OBJECTS is not set 1704# CONFIG_DEBUG_OBJECTS is not set
1651# CONFIG_SLUB_DEBUG_ON is not set 1705# CONFIG_SLUB_DEBUG_ON is not set
1652# CONFIG_SLUB_STATS is not set 1706# CONFIG_SLUB_STATS is not set
1707# CONFIG_DEBUG_KMEMLEAK is not set
1653# CONFIG_DEBUG_RT_MUTEXES is not set 1708# CONFIG_DEBUG_RT_MUTEXES is not set
1654# CONFIG_RT_MUTEX_TESTER is not set 1709# CONFIG_RT_MUTEX_TESTER is not set
1655# CONFIG_DEBUG_SPINLOCK is not set 1710# CONFIG_DEBUG_SPINLOCK is not set
1656# CONFIG_DEBUG_MUTEXES is not set 1711# CONFIG_DEBUG_MUTEXES is not set
1712# CONFIG_DEBUG_LOCK_ALLOC is not set
1713# CONFIG_PROVE_LOCKING is not set
1714# CONFIG_LOCK_STAT is not set
1657# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1715# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1658# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1716# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1659# CONFIG_DEBUG_KOBJECT is not set 1717# CONFIG_DEBUG_KOBJECT is not set
@@ -1665,11 +1723,12 @@ CONFIG_DEBUG_INFO=y
1665# CONFIG_DEBUG_LIST is not set 1723# CONFIG_DEBUG_LIST is not set
1666# CONFIG_DEBUG_SG is not set 1724# CONFIG_DEBUG_SG is not set
1667# CONFIG_DEBUG_NOTIFIERS is not set 1725# CONFIG_DEBUG_NOTIFIERS is not set
1668# CONFIG_BOOT_PRINTK_DELAY is not set 1726# CONFIG_DEBUG_CREDENTIALS is not set
1669# CONFIG_RCU_TORTURE_TEST is not set 1727# CONFIG_RCU_TORTURE_TEST is not set
1670# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1728# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1671# CONFIG_BACKTRACE_SELF_TEST is not set 1729# CONFIG_BACKTRACE_SELF_TEST is not set
1672# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1730# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1731# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1673# CONFIG_FAULT_INJECTION is not set 1732# CONFIG_FAULT_INJECTION is not set
1674# CONFIG_LATENCYTOP is not set 1733# CONFIG_LATENCYTOP is not set
1675# CONFIG_DEBUG_PAGEALLOC is not set 1734# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1678,23 +1737,25 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1678CONFIG_HAVE_DYNAMIC_FTRACE=y 1737CONFIG_HAVE_DYNAMIC_FTRACE=y
1679CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1680CONFIG_TRACING_SUPPORT=y 1739CONFIG_TRACING_SUPPORT=y
1681 1740CONFIG_FTRACE=y
1682#
1683# Tracers
1684#
1685# CONFIG_FUNCTION_TRACER is not set 1741# CONFIG_FUNCTION_TRACER is not set
1742# CONFIG_IRQSOFF_TRACER is not set
1686# CONFIG_SCHED_TRACER is not set 1743# CONFIG_SCHED_TRACER is not set
1687# CONFIG_CONTEXT_SWITCH_TRACER is not set 1744# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1688# CONFIG_EVENT_TRACER is not set
1689# CONFIG_BOOT_TRACER is not set 1745# CONFIG_BOOT_TRACER is not set
1690# CONFIG_TRACE_BRANCH_PROFILING is not set 1746CONFIG_BRANCH_PROFILE_NONE=y
1747# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1748# CONFIG_PROFILE_ALL_BRANCHES is not set
1691# CONFIG_STACK_TRACER is not set 1749# CONFIG_STACK_TRACER is not set
1692# CONFIG_KMEMTRACE is not set 1750# CONFIG_KMEMTRACE is not set
1693# CONFIG_WORKQUEUE_TRACER is not set 1751# CONFIG_WORKQUEUE_TRACER is not set
1694# CONFIG_BLK_DEV_IO_TRACE is not set 1752# CONFIG_BLK_DEV_IO_TRACE is not set
1753# CONFIG_DMA_API_DEBUG is not set
1695# CONFIG_SAMPLES is not set 1754# CONFIG_SAMPLES is not set
1696CONFIG_HAVE_ARCH_KGDB=y 1755CONFIG_HAVE_ARCH_KGDB=y
1697# CONFIG_KGDB is not set 1756# CONFIG_KGDB is not set
1757# CONFIG_PPC_DISABLE_WERROR is not set
1758CONFIG_PPC_WERROR=y
1698CONFIG_PRINT_STACK_DEPTH=64 1759CONFIG_PRINT_STACK_DEPTH=64
1699# CONFIG_DEBUG_STACKOVERFLOW is not set 1760# CONFIG_DEBUG_STACKOVERFLOW is not set
1700# CONFIG_DEBUG_STACK_USAGE is not set 1761# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1719,7 +1780,6 @@ CONFIG_CRYPTO=y
1719# 1780#
1720# Crypto core or helper 1781# Crypto core or helper
1721# 1782#
1722# CONFIG_CRYPTO_FIPS is not set
1723CONFIG_CRYPTO_ALGAPI=y 1783CONFIG_CRYPTO_ALGAPI=y
1724CONFIG_CRYPTO_ALGAPI2=y 1784CONFIG_CRYPTO_ALGAPI2=y
1725CONFIG_CRYPTO_AEAD2=y 1785CONFIG_CRYPTO_AEAD2=y
@@ -1761,11 +1821,13 @@ CONFIG_CRYPTO_CBC=y
1761# 1821#
1762# CONFIG_CRYPTO_HMAC is not set 1822# CONFIG_CRYPTO_HMAC is not set
1763# CONFIG_CRYPTO_XCBC is not set 1823# CONFIG_CRYPTO_XCBC is not set
1824# CONFIG_CRYPTO_VMAC is not set
1764 1825
1765# 1826#
1766# Digest 1827# Digest
1767# 1828#
1768# CONFIG_CRYPTO_CRC32C is not set 1829# CONFIG_CRYPTO_CRC32C is not set
1830# CONFIG_CRYPTO_GHASH is not set
1769# CONFIG_CRYPTO_MD4 is not set 1831# CONFIG_CRYPTO_MD4 is not set
1770CONFIG_CRYPTO_MD5=y 1832CONFIG_CRYPTO_MD5=y
1771# CONFIG_CRYPTO_MICHAEL_MIC is not set 1833# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/ppc64e_defconfig b/arch/powerpc/configs/ppc64e_defconfig
new file mode 100644
index 000000000000..18af46036258
--- /dev/null
+++ b/arch/powerpc/configs/ppc64e_defconfig
@@ -0,0 +1,2199 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32-rc5
4# Fri Oct 16 11:37:15 2009
5#
6CONFIG_PPC64=y
7
8#
9# Processor support
10#
11# CONFIG_PPC_BOOK3S_64 is not set
12CONFIG_PPC_BOOK3E_64=y
13CONFIG_PPC_BOOK3E=y
14CONFIG_PPC_FPU=y
15CONFIG_BOOKE=y
16CONFIG_PPC_MMU_NOHASH=y
17CONFIG_PPC_MMU_NOHASH_64=y
18CONFIG_PPC_BOOK3E_MMU=y
19# CONFIG_PPC_MM_SLICES is not set
20CONFIG_VIRT_CPU_ACCOUNTING=y
21CONFIG_PPC_HAVE_PMU_SUPPORT=y
22CONFIG_PPC_PERF_CTRS=y
23CONFIG_SMP=y
24CONFIG_NR_CPUS=32
25CONFIG_64BIT=y
26CONFIG_WORD_SIZE=64
27CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y
31CONFIG_GENERIC_TIME_VSYSCALL=y
32CONFIG_GENERIC_CLOCKEVENTS=y
33CONFIG_GENERIC_HARDIRQS=y
34CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
35CONFIG_HAVE_SETUP_PER_CPU_AREA=y
36CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
37CONFIG_IRQ_PER_CPU=y
38CONFIG_STACKTRACE_SUPPORT=y
39CONFIG_HAVE_LATENCYTOP_SUPPORT=y
40CONFIG_TRACE_IRQFLAGS_SUPPORT=y
41CONFIG_LOCKDEP_SUPPORT=y
42CONFIG_RWSEM_XCHGADD_ALGORITHM=y
43CONFIG_ARCH_HAS_ILOG2_U32=y
44CONFIG_ARCH_HAS_ILOG2_U64=y
45CONFIG_GENERIC_HWEIGHT=y
46CONFIG_GENERIC_FIND_NEXT_BIT=y
47CONFIG_ARCH_NO_VIRT_TO_BUS=y
48CONFIG_PPC=y
49CONFIG_EARLY_PRINTK=y
50CONFIG_COMPAT=y
51CONFIG_SYSVIPC_COMPAT=y
52CONFIG_SCHED_OMIT_FRAME_POINTER=y
53CONFIG_ARCH_MAY_HAVE_PC_FDC=y
54CONFIG_PPC_OF=y
55CONFIG_OF=y
56# CONFIG_PPC_UDBG_16550 is not set
57# CONFIG_GENERIC_TBSYNC is not set
58CONFIG_AUDIT_ARCH=y
59CONFIG_GENERIC_BUG=y
60CONFIG_DTC=y
61# CONFIG_DEFAULT_UIMAGE is not set
62# CONFIG_PPC_DCR_NATIVE is not set
63# CONFIG_PPC_DCR_MMIO is not set
64# CONFIG_PPC_OF_PLATFORM_PCI is not set
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
66CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
67CONFIG_CONSTRUCTORS=y
68
69#
70# General setup
71#
72CONFIG_EXPERIMENTAL=y
73CONFIG_LOCK_KERNEL=y
74CONFIG_INIT_ENV_ARG_LIMIT=32
75CONFIG_LOCALVERSION=""
76CONFIG_LOCALVERSION_AUTO=y
77CONFIG_SWAP=y
78CONFIG_SYSVIPC=y
79CONFIG_SYSVIPC_SYSCTL=y
80CONFIG_POSIX_MQUEUE=y
81CONFIG_POSIX_MQUEUE_SYSCTL=y
82# CONFIG_BSD_PROCESS_ACCT is not set
83CONFIG_TASKSTATS=y
84CONFIG_TASK_DELAY_ACCT=y
85# CONFIG_TASK_XACCT is not set
86# CONFIG_AUDIT is not set
87
88#
89# RCU Subsystem
90#
91CONFIG_TREE_RCU=y
92# CONFIG_TREE_PREEMPT_RCU is not set
93# CONFIG_RCU_TRACE is not set
94CONFIG_RCU_FANOUT=64
95# CONFIG_RCU_FANOUT_EXACT is not set
96# CONFIG_TREE_RCU_TRACE is not set
97CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=17
100# CONFIG_GROUP_SCHED is not set
101CONFIG_CGROUPS=y
102# CONFIG_CGROUP_DEBUG is not set
103# CONFIG_CGROUP_NS is not set
104# CONFIG_CGROUP_FREEZER is not set
105# CONFIG_CGROUP_DEVICE is not set
106CONFIG_CPUSETS=y
107CONFIG_PROC_PID_CPUSET=y
108# CONFIG_CGROUP_CPUACCT is not set
109# CONFIG_RESOURCE_COUNTERS is not set
110CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y
112CONFIG_RELAY=y
113CONFIG_NAMESPACES=y
114# CONFIG_UTS_NS is not set
115# CONFIG_IPC_NS is not set
116# CONFIG_USER_NS is not set
117# CONFIG_PID_NS is not set
118# CONFIG_NET_NS is not set
119CONFIG_BLK_DEV_INITRD=y
120CONFIG_INITRAMFS_SOURCE=""
121CONFIG_RD_GZIP=y
122CONFIG_RD_BZIP2=y
123CONFIG_RD_LZMA=y
124CONFIG_CC_OPTIMIZE_FOR_SIZE=y
125CONFIG_SYSCTL=y
126CONFIG_ANON_INODES=y
127# CONFIG_EMBEDDED is not set
128CONFIG_SYSCTL_SYSCALL=y
129CONFIG_KALLSYMS=y
130CONFIG_KALLSYMS_ALL=y
131# CONFIG_KALLSYMS_EXTRA_PASS is not set
132CONFIG_HOTPLUG=y
133CONFIG_PRINTK=y
134CONFIG_BUG=y
135CONFIG_ELF_CORE=y
136CONFIG_BASE_FULL=y
137CONFIG_FUTEX=y
138CONFIG_EPOLL=y
139CONFIG_SIGNALFD=y
140CONFIG_TIMERFD=y
141CONFIG_EVENTFD=y
142CONFIG_SHMEM=y
143CONFIG_AIO=y
144CONFIG_HAVE_PERF_EVENTS=y
145
146#
147# Kernel Performance Events And Counters
148#
149CONFIG_PERF_EVENTS=y
150CONFIG_EVENT_PROFILE=y
151# CONFIG_PERF_COUNTERS is not set
152# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
153CONFIG_VM_EVENT_COUNTERS=y
154CONFIG_PCI_QUIRKS=y
155CONFIG_SLUB_DEBUG=y
156# CONFIG_COMPAT_BRK is not set
157# CONFIG_SLAB is not set
158CONFIG_SLUB=y
159# CONFIG_SLOB is not set
160CONFIG_PROFILING=y
161CONFIG_TRACEPOINTS=y
162CONFIG_OPROFILE=y
163CONFIG_HAVE_OPROFILE=y
164# CONFIG_KPROBES is not set
165CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
166CONFIG_HAVE_SYSCALL_WRAPPERS=y
167CONFIG_HAVE_IOREMAP_PROT=y
168CONFIG_HAVE_KPROBES=y
169CONFIG_HAVE_KRETPROBES=y
170CONFIG_HAVE_ARCH_TRACEHOOK=y
171CONFIG_HAVE_DMA_ATTRS=y
172CONFIG_USE_GENERIC_SMP_HELPERS=y
173CONFIG_HAVE_DMA_API_DEBUG=y
174
175#
176# GCOV-based kernel profiling
177#
178# CONFIG_GCOV_KERNEL is not set
179CONFIG_SLOW_WORK=y
180# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
181CONFIG_SLABINFO=y
182CONFIG_RT_MUTEXES=y
183CONFIG_BASE_SMALL=0
184CONFIG_MODULES=y
185# CONFIG_MODULE_FORCE_LOAD is not set
186CONFIG_MODULE_UNLOAD=y
187# CONFIG_MODULE_FORCE_UNLOAD is not set
188CONFIG_MODVERSIONS=y
189CONFIG_MODULE_SRCVERSION_ALL=y
190CONFIG_STOP_MACHINE=y
191CONFIG_BLOCK=y
192CONFIG_BLK_DEV_BSG=y
193# CONFIG_BLK_DEV_INTEGRITY is not set
194CONFIG_BLOCK_COMPAT=y
195
196#
197# IO Schedulers
198#
199CONFIG_IOSCHED_NOOP=y
200CONFIG_IOSCHED_AS=y
201CONFIG_IOSCHED_DEADLINE=y
202CONFIG_IOSCHED_CFQ=y
203CONFIG_DEFAULT_AS=y
204# CONFIG_DEFAULT_DEADLINE is not set
205# CONFIG_DEFAULT_CFQ is not set
206# CONFIG_DEFAULT_NOOP is not set
207CONFIG_DEFAULT_IOSCHED="anticipatory"
208# CONFIG_FREEZER is not set
209
210#
211# Platform support
212#
213# CONFIG_PPC_CELL is not set
214# CONFIG_PPC_CELL_NATIVE is not set
215# CONFIG_PQ2ADS is not set
216CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
217# CONFIG_IPIC is not set
218# CONFIG_MPIC is not set
219# CONFIG_MPIC_WEIRD is not set
220# CONFIG_PPC_I8259 is not set
221# CONFIG_U3_DART is not set
222# CONFIG_PPC_RTAS is not set
223# CONFIG_MMIO_NVRAM is not set
224# CONFIG_PPC_MPC106 is not set
225# CONFIG_PPC_970_NAP is not set
226# CONFIG_PPC_INDIRECT_IO is not set
227# CONFIG_GENERIC_IOMAP is not set
228CONFIG_CPU_FREQ=y
229CONFIG_CPU_FREQ_TABLE=y
230# CONFIG_CPU_FREQ_DEBUG is not set
231CONFIG_CPU_FREQ_STAT=y
232# CONFIG_CPU_FREQ_STAT_DETAILS is not set
233CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
234# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
235# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
236# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
237# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
238CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
239CONFIG_CPU_FREQ_GOV_POWERSAVE=y
240CONFIG_CPU_FREQ_GOV_USERSPACE=y
241# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
242# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
243
244#
245# CPU Frequency drivers
246#
247# CONFIG_FSL_ULI1575 is not set
248# CONFIG_SIMPLE_GPIO is not set
249
250#
251# Kernel options
252#
253CONFIG_TICK_ONESHOT=y
254CONFIG_NO_HZ=y
255CONFIG_HIGH_RES_TIMERS=y
256CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
257# CONFIG_HZ_100 is not set
258CONFIG_HZ_250=y
259# CONFIG_HZ_300 is not set
260# CONFIG_HZ_1000 is not set
261CONFIG_HZ=250
262CONFIG_SCHED_HRTICK=y
263CONFIG_PREEMPT_NONE=y
264# CONFIG_PREEMPT_VOLUNTARY is not set
265# CONFIG_PREEMPT is not set
266CONFIG_BINFMT_ELF=y
267CONFIG_COMPAT_BINFMT_ELF=y
268# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
269# CONFIG_HAVE_AOUT is not set
270CONFIG_BINFMT_MISC=m
271CONFIG_IOMMU_VMERGE=y
272CONFIG_IOMMU_HELPER=y
273# CONFIG_SWIOTLB is not set
274CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
275CONFIG_ARCH_HAS_WALK_MEMORY=y
276CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
277# CONFIG_CRASH_DUMP is not set
278CONFIG_IRQ_ALL_CPUS=y
279# CONFIG_NUMA is not set
280CONFIG_MAX_ACTIVE_REGIONS=256
281CONFIG_ARCH_SELECT_MEMORY_MODEL=y
282CONFIG_ARCH_FLATMEM_ENABLE=y
283CONFIG_ARCH_SPARSEMEM_ENABLE=y
284CONFIG_ARCH_POPULATES_NODE_MAP=y
285CONFIG_SELECT_MEMORY_MODEL=y
286# CONFIG_FLATMEM_MANUAL is not set
287# CONFIG_DISCONTIGMEM_MANUAL is not set
288CONFIG_SPARSEMEM_MANUAL=y
289CONFIG_SPARSEMEM=y
290CONFIG_HAVE_MEMORY_PRESENT=y
291CONFIG_SPARSEMEM_EXTREME=y
292CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
293CONFIG_SPARSEMEM_VMEMMAP=y
294# CONFIG_MEMORY_HOTPLUG is not set
295CONFIG_PAGEFLAGS_EXTENDED=y
296CONFIG_SPLIT_PTLOCK_CPUS=4
297CONFIG_MIGRATION=y
298CONFIG_PHYS_ADDR_T_64BIT=y
299CONFIG_ZONE_DMA_FLAG=1
300CONFIG_BOUNCE=y
301CONFIG_HAVE_MLOCK=y
302CONFIG_HAVE_MLOCKED_PAGE_BIT=y
303# CONFIG_KSM is not set
304CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
305# CONFIG_PPC_HAS_HASH_64K is not set
306CONFIG_PPC_4K_PAGES=y
307# CONFIG_PPC_16K_PAGES is not set
308# CONFIG_PPC_64K_PAGES is not set
309# CONFIG_PPC_256K_PAGES is not set
310CONFIG_FORCE_MAX_ZONEORDER=13
311# CONFIG_SCHED_SMT is not set
312CONFIG_PROC_DEVICETREE=y
313# CONFIG_CMDLINE_BOOL is not set
314CONFIG_EXTRA_TARGETS=""
315# CONFIG_PM is not set
316CONFIG_SECCOMP=y
317CONFIG_ISA_DMA_API=y
318
319#
320# Bus options
321#
322CONFIG_ZONE_DMA=y
323CONFIG_GENERIC_ISA_DMA=y
324# CONFIG_PPC_INDIRECT_PCI is not set
325CONFIG_PCI=y
326CONFIG_PCI_DOMAINS=y
327CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y
330CONFIG_PCI_MSI=y
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_DEBUG is not set
333# CONFIG_PCI_STUB is not set
334# CONFIG_PCI_IOV is not set
335CONFIG_PCCARD=y
336# CONFIG_PCMCIA_DEBUG is not set
337CONFIG_PCMCIA=y
338CONFIG_PCMCIA_LOAD_CIS=y
339CONFIG_PCMCIA_IOCTL=y
340CONFIG_CARDBUS=y
341
342#
343# PC-card bridges
344#
345# CONFIG_YENTA is not set
346# CONFIG_PD6729 is not set
347# CONFIG_I82092 is not set
348CONFIG_HOTPLUG_PCI=m
349# CONFIG_HOTPLUG_PCI_FAKE is not set
350# CONFIG_HOTPLUG_PCI_CPCI is not set
351# CONFIG_HOTPLUG_PCI_SHPC is not set
352# CONFIG_HAS_RAPIDIO is not set
353# CONFIG_RELOCATABLE is not set
354CONFIG_PAGE_OFFSET=0xc000000000000000
355CONFIG_KERNEL_START=0xc000000000000000
356CONFIG_PHYSICAL_START=0x00000000
357CONFIG_NET=y
358CONFIG_COMPAT_NETLINK_MESSAGES=y
359
360#
361# Networking options
362#
363CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y
366CONFIG_XFRM=y
367CONFIG_XFRM_USER=m
368# CONFIG_XFRM_SUB_POLICY is not set
369# CONFIG_XFRM_MIGRATE is not set
370# CONFIG_XFRM_STATISTICS is not set
371CONFIG_XFRM_IPCOMP=m
372CONFIG_NET_KEY=m
373# CONFIG_NET_KEY_MIGRATE is not set
374CONFIG_INET=y
375CONFIG_IP_MULTICAST=y
376# CONFIG_IP_ADVANCED_ROUTER is not set
377CONFIG_IP_FIB_HASH=y
378CONFIG_IP_PNP=y
379CONFIG_IP_PNP_DHCP=y
380CONFIG_IP_PNP_BOOTP=y
381# CONFIG_IP_PNP_RARP is not set
382CONFIG_NET_IPIP=y
383# CONFIG_NET_IPGRE is not set
384# CONFIG_IP_MROUTE is not set
385# CONFIG_ARPD is not set
386CONFIG_SYN_COOKIES=y
387CONFIG_INET_AH=m
388CONFIG_INET_ESP=m
389CONFIG_INET_IPCOMP=m
390CONFIG_INET_XFRM_TUNNEL=m
391CONFIG_INET_TUNNEL=y
392CONFIG_INET_XFRM_MODE_TRANSPORT=y
393CONFIG_INET_XFRM_MODE_TUNNEL=y
394CONFIG_INET_XFRM_MODE_BEET=y
395CONFIG_INET_LRO=y
396CONFIG_INET_DIAG=y
397CONFIG_INET_TCP_DIAG=y
398# CONFIG_TCP_CONG_ADVANCED is not set
399CONFIG_TCP_CONG_CUBIC=y
400CONFIG_DEFAULT_TCP_CONG="cubic"
401# CONFIG_TCP_MD5SIG is not set
402# CONFIG_IPV6 is not set
403# CONFIG_NETWORK_SECMARK is not set
404CONFIG_NETFILTER=y
405# CONFIG_NETFILTER_DEBUG is not set
406CONFIG_NETFILTER_ADVANCED=y
407
408#
409# Core Netfilter Configuration
410#
411CONFIG_NETFILTER_NETLINK=m
412CONFIG_NETFILTER_NETLINK_QUEUE=m
413CONFIG_NETFILTER_NETLINK_LOG=m
414CONFIG_NF_CONNTRACK=m
415CONFIG_NF_CT_ACCT=y
416CONFIG_NF_CONNTRACK_MARK=y
417CONFIG_NF_CONNTRACK_EVENTS=y
418# CONFIG_NF_CT_PROTO_DCCP is not set
419CONFIG_NF_CT_PROTO_GRE=m
420CONFIG_NF_CT_PROTO_SCTP=m
421# CONFIG_NF_CT_PROTO_UDPLITE is not set
422CONFIG_NF_CONNTRACK_AMANDA=m
423CONFIG_NF_CONNTRACK_FTP=m
424CONFIG_NF_CONNTRACK_H323=m
425CONFIG_NF_CONNTRACK_IRC=m
426CONFIG_NF_CONNTRACK_NETBIOS_NS=m
427CONFIG_NF_CONNTRACK_PPTP=m
428# CONFIG_NF_CONNTRACK_SANE is not set
429CONFIG_NF_CONNTRACK_SIP=m
430CONFIG_NF_CONNTRACK_TFTP=m
431CONFIG_NF_CT_NETLINK=m
432CONFIG_NETFILTER_TPROXY=m
433CONFIG_NETFILTER_XTABLES=m
434CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
435CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
436CONFIG_NETFILTER_XT_TARGET_DSCP=m
437CONFIG_NETFILTER_XT_TARGET_HL=m
438CONFIG_NETFILTER_XT_TARGET_MARK=m
439CONFIG_NETFILTER_XT_TARGET_NFLOG=m
440CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
441CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
442CONFIG_NETFILTER_XT_TARGET_RATEEST=m
443CONFIG_NETFILTER_XT_TARGET_TPROXY=m
444CONFIG_NETFILTER_XT_TARGET_TRACE=m
445CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
446CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
447# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
448CONFIG_NETFILTER_XT_MATCH_COMMENT=m
449CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
450CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
451CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
452CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
453CONFIG_NETFILTER_XT_MATCH_DCCP=m
454CONFIG_NETFILTER_XT_MATCH_DSCP=m
455CONFIG_NETFILTER_XT_MATCH_ESP=m
456CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
457CONFIG_NETFILTER_XT_MATCH_HELPER=m
458CONFIG_NETFILTER_XT_MATCH_HL=m
459CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
460CONFIG_NETFILTER_XT_MATCH_LENGTH=m
461CONFIG_NETFILTER_XT_MATCH_LIMIT=m
462CONFIG_NETFILTER_XT_MATCH_MAC=m
463CONFIG_NETFILTER_XT_MATCH_MARK=m
464CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
465CONFIG_NETFILTER_XT_MATCH_OWNER=m
466CONFIG_NETFILTER_XT_MATCH_POLICY=m
467CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
468CONFIG_NETFILTER_XT_MATCH_QUOTA=m
469CONFIG_NETFILTER_XT_MATCH_RATEEST=m
470CONFIG_NETFILTER_XT_MATCH_REALM=m
471CONFIG_NETFILTER_XT_MATCH_RECENT=m
472# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
473CONFIG_NETFILTER_XT_MATCH_SCTP=m
474CONFIG_NETFILTER_XT_MATCH_SOCKET=m
475CONFIG_NETFILTER_XT_MATCH_STATE=m
476CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
477CONFIG_NETFILTER_XT_MATCH_STRING=m
478CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
479# CONFIG_NETFILTER_XT_MATCH_TIME is not set
480CONFIG_NETFILTER_XT_MATCH_U32=m
481# CONFIG_NETFILTER_XT_MATCH_OSF is not set
482# CONFIG_IP_VS is not set
483
484#
485# IP: Netfilter Configuration
486#
487CONFIG_NF_DEFRAG_IPV4=m
488CONFIG_NF_CONNTRACK_IPV4=m
489CONFIG_NF_CONNTRACK_PROC_COMPAT=y
490CONFIG_IP_NF_QUEUE=m
491CONFIG_IP_NF_IPTABLES=m
492CONFIG_IP_NF_MATCH_ADDRTYPE=m
493CONFIG_IP_NF_MATCH_AH=m
494CONFIG_IP_NF_MATCH_ECN=m
495CONFIG_IP_NF_MATCH_TTL=m
496CONFIG_IP_NF_FILTER=m
497CONFIG_IP_NF_TARGET_REJECT=m
498CONFIG_IP_NF_TARGET_LOG=m
499CONFIG_IP_NF_TARGET_ULOG=m
500CONFIG_NF_NAT=m
501CONFIG_NF_NAT_NEEDED=y
502CONFIG_IP_NF_TARGET_MASQUERADE=m
503CONFIG_IP_NF_TARGET_NETMAP=m
504CONFIG_IP_NF_TARGET_REDIRECT=m
505CONFIG_NF_NAT_SNMP_BASIC=m
506CONFIG_NF_NAT_PROTO_GRE=m
507CONFIG_NF_NAT_PROTO_SCTP=m
508CONFIG_NF_NAT_FTP=m
509CONFIG_NF_NAT_IRC=m
510CONFIG_NF_NAT_TFTP=m
511CONFIG_NF_NAT_AMANDA=m
512CONFIG_NF_NAT_PPTP=m
513CONFIG_NF_NAT_H323=m
514CONFIG_NF_NAT_SIP=m
515CONFIG_IP_NF_MANGLE=m
516CONFIG_IP_NF_TARGET_CLUSTERIP=m
517CONFIG_IP_NF_TARGET_ECN=m
518CONFIG_IP_NF_TARGET_TTL=m
519CONFIG_IP_NF_RAW=m
520CONFIG_IP_NF_ARPTABLES=m
521CONFIG_IP_NF_ARPFILTER=m
522CONFIG_IP_NF_ARP_MANGLE=m
523# CONFIG_IP_DCCP is not set
524# CONFIG_IP_SCTP is not set
525# CONFIG_RDS is not set
526# CONFIG_TIPC is not set
527# CONFIG_ATM is not set
528# CONFIG_BRIDGE is not set
529# CONFIG_NET_DSA is not set
530# CONFIG_VLAN_8021Q is not set
531# CONFIG_DECNET is not set
532CONFIG_LLC=y
533# CONFIG_LLC2 is not set
534# CONFIG_IPX is not set
535# CONFIG_ATALK is not set
536# CONFIG_X25 is not set
537# CONFIG_LAPB is not set
538# CONFIG_ECONET is not set
539# CONFIG_WAN_ROUTER is not set
540# CONFIG_PHONET is not set
541# CONFIG_IEEE802154 is not set
542# CONFIG_NET_SCHED is not set
543CONFIG_NET_CLS_ROUTE=y
544# CONFIG_DCB is not set
545
546#
547# Network testing
548#
549# CONFIG_NET_PKTGEN is not set
550# CONFIG_NET_DROP_MONITOR is not set
551# CONFIG_HAMRADIO is not set
552# CONFIG_CAN is not set
553# CONFIG_IRDA is not set
554# CONFIG_BT is not set
555# CONFIG_AF_RXRPC is not set
556CONFIG_WIRELESS=y
557# CONFIG_CFG80211 is not set
558CONFIG_CFG80211_DEFAULT_PS_VALUE=0
559CONFIG_WIRELESS_OLD_REGULATORY=y
560CONFIG_WIRELESS_EXT=y
561CONFIG_WIRELESS_EXT_SYSFS=y
562# CONFIG_LIB80211 is not set
563
564#
565# CFG80211 needs to be enabled for MAC80211
566#
567# CONFIG_WIMAX is not set
568# CONFIG_RFKILL is not set
569# CONFIG_NET_9P is not set
570
571#
572# Device Drivers
573#
574
575#
576# Generic Driver Options
577#
578CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
579# CONFIG_DEVTMPFS is not set
580CONFIG_STANDALONE=y
581CONFIG_PREVENT_FIRMWARE_BUILD=y
582CONFIG_FW_LOADER=y
583CONFIG_FIRMWARE_IN_KERNEL=y
584CONFIG_EXTRA_FIRMWARE=""
585# CONFIG_DEBUG_DRIVER is not set
586# CONFIG_DEBUG_DEVRES is not set
587# CONFIG_SYS_HYPERVISOR is not set
588# CONFIG_CONNECTOR is not set
589# CONFIG_MTD is not set
590CONFIG_OF_DEVICE=y
591CONFIG_OF_I2C=y
592CONFIG_OF_MDIO=y
593# CONFIG_PARPORT is not set
594CONFIG_BLK_DEV=y
595CONFIG_BLK_DEV_FD=y
596# CONFIG_BLK_CPQ_CISS_DA is not set
597# CONFIG_BLK_DEV_DAC960 is not set
598# CONFIG_BLK_DEV_UMEM is not set
599# CONFIG_BLK_DEV_COW_COMMON is not set
600CONFIG_BLK_DEV_LOOP=y
601# CONFIG_BLK_DEV_CRYPTOLOOP is not set
602CONFIG_BLK_DEV_NBD=m
603# CONFIG_BLK_DEV_SX8 is not set
604# CONFIG_BLK_DEV_UB is not set
605CONFIG_BLK_DEV_RAM=y
606CONFIG_BLK_DEV_RAM_COUNT=16
607CONFIG_BLK_DEV_RAM_SIZE=65536
608# CONFIG_BLK_DEV_XIP is not set
609# CONFIG_CDROM_PKTCDVD is not set
610# CONFIG_ATA_OVER_ETH is not set
611# CONFIG_BLK_DEV_HD is not set
612CONFIG_MISC_DEVICES=y
613# CONFIG_PHANTOM is not set
614# CONFIG_SGI_IOC4 is not set
615# CONFIG_TIFM_CORE is not set
616# CONFIG_ICS932S401 is not set
617# CONFIG_ENCLOSURE_SERVICES is not set
618# CONFIG_HP_ILO is not set
619# CONFIG_ISL29003 is not set
620# CONFIG_C2PORT is not set
621
622#
623# EEPROM support
624#
625# CONFIG_EEPROM_AT24 is not set
626# CONFIG_EEPROM_LEGACY is not set
627# CONFIG_EEPROM_MAX6875 is not set
628# CONFIG_EEPROM_93CX6 is not set
629# CONFIG_CB710_CORE is not set
630CONFIG_HAVE_IDE=y
631CONFIG_IDE=y
632
633#
634# Please see Documentation/ide/ide.txt for help/info on IDE drives
635#
636CONFIG_IDE_XFER_MODE=y
637CONFIG_IDE_TIMINGS=y
638CONFIG_IDE_ATAPI=y
639# CONFIG_BLK_DEV_IDE_SATA is not set
640CONFIG_IDE_GD=y
641CONFIG_IDE_GD_ATA=y
642# CONFIG_IDE_GD_ATAPI is not set
643# CONFIG_BLK_DEV_IDECS is not set
644# CONFIG_BLK_DEV_DELKIN is not set
645CONFIG_BLK_DEV_IDECD=y
646CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
647# CONFIG_BLK_DEV_IDETAPE is not set
648# CONFIG_IDE_TASK_IOCTL is not set
649CONFIG_IDE_PROC_FS=y
650
651#
652# IDE chipset support/bugfixes
653#
654# CONFIG_BLK_DEV_PLATFORM is not set
655CONFIG_BLK_DEV_IDEDMA_SFF=y
656
657#
658# PCI IDE chipsets support
659#
660CONFIG_BLK_DEV_IDEPCI=y
661CONFIG_IDEPCI_PCIBUS_ORDER=y
662# CONFIG_BLK_DEV_OFFBOARD is not set
663CONFIG_BLK_DEV_GENERIC=y
664# CONFIG_BLK_DEV_OPTI621 is not set
665CONFIG_BLK_DEV_IDEDMA_PCI=y
666# CONFIG_BLK_DEV_AEC62XX is not set
667# CONFIG_BLK_DEV_ALI15X3 is not set
668CONFIG_BLK_DEV_AMD74XX=y
669# CONFIG_BLK_DEV_CMD64X is not set
670# CONFIG_BLK_DEV_TRIFLEX is not set
671# CONFIG_BLK_DEV_CS5520 is not set
672# CONFIG_BLK_DEV_CS5530 is not set
673# CONFIG_BLK_DEV_HPT366 is not set
674# CONFIG_BLK_DEV_JMICRON is not set
675# CONFIG_BLK_DEV_SC1200 is not set
676# CONFIG_BLK_DEV_PIIX is not set
677# CONFIG_BLK_DEV_IT8172 is not set
678# CONFIG_BLK_DEV_IT8213 is not set
679# CONFIG_BLK_DEV_IT821X is not set
680# CONFIG_BLK_DEV_NS87415 is not set
681# CONFIG_BLK_DEV_PDC202XX_OLD is not set
682# CONFIG_BLK_DEV_PDC202XX_NEW is not set
683# CONFIG_BLK_DEV_SVWKS is not set
684# CONFIG_BLK_DEV_SIIMAGE is not set
685# CONFIG_BLK_DEV_SL82C105 is not set
686# CONFIG_BLK_DEV_SLC90E66 is not set
687# CONFIG_BLK_DEV_TRM290 is not set
688# CONFIG_BLK_DEV_VIA82CXXX is not set
689# CONFIG_BLK_DEV_TC86C001 is not set
690CONFIG_BLK_DEV_IDEDMA=y
691
692#
693# SCSI device support
694#
695# CONFIG_RAID_ATTRS is not set
696CONFIG_SCSI=y
697CONFIG_SCSI_DMA=y
698# CONFIG_SCSI_TGT is not set
699CONFIG_SCSI_NETLINK=y
700CONFIG_SCSI_PROC_FS=y
701
702#
703# SCSI support type (disk, tape, CD-ROM)
704#
705CONFIG_BLK_DEV_SD=y
706CONFIG_CHR_DEV_ST=y
707# CONFIG_CHR_DEV_OSST is not set
708CONFIG_BLK_DEV_SR=y
709CONFIG_BLK_DEV_SR_VENDOR=y
710CONFIG_CHR_DEV_SG=y
711# CONFIG_CHR_DEV_SCH is not set
712CONFIG_SCSI_MULTI_LUN=y
713CONFIG_SCSI_CONSTANTS=y
714# CONFIG_SCSI_LOGGING is not set
715# CONFIG_SCSI_SCAN_ASYNC is not set
716CONFIG_SCSI_WAIT_SCAN=m
717
718#
719# SCSI Transports
720#
721CONFIG_SCSI_SPI_ATTRS=y
722CONFIG_SCSI_FC_ATTRS=y
723CONFIG_SCSI_ISCSI_ATTRS=m
724# CONFIG_SCSI_SAS_ATTRS is not set
725# CONFIG_SCSI_SAS_LIBSAS is not set
726CONFIG_SCSI_SRP_ATTRS=y
727CONFIG_SCSI_LOWLEVEL=y
728# CONFIG_ISCSI_TCP is not set
729# CONFIG_SCSI_CXGB3_ISCSI is not set
730# CONFIG_SCSI_BNX2_ISCSI is not set
731# CONFIG_BE2ISCSI is not set
732# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
733# CONFIG_SCSI_3W_9XXX is not set
734# CONFIG_SCSI_ACARD is not set
735# CONFIG_SCSI_AACRAID is not set
736# CONFIG_SCSI_AIC7XXX is not set
737# CONFIG_SCSI_AIC7XXX_OLD is not set
738# CONFIG_SCSI_AIC79XX is not set
739# CONFIG_SCSI_AIC94XX is not set
740# CONFIG_SCSI_MVSAS is not set
741# CONFIG_SCSI_ARCMSR is not set
742# CONFIG_MEGARAID_NEWGEN is not set
743# CONFIG_MEGARAID_LEGACY is not set
744# CONFIG_MEGARAID_SAS is not set
745# CONFIG_SCSI_MPT2SAS is not set
746# CONFIG_SCSI_HPTIOP is not set
747# CONFIG_LIBFC is not set
748# CONFIG_LIBFCOE is not set
749# CONFIG_FCOE is not set
750# CONFIG_SCSI_DMX3191D is not set
751# CONFIG_SCSI_EATA is not set
752# CONFIG_SCSI_FUTURE_DOMAIN is not set
753# CONFIG_SCSI_GDTH is not set
754# CONFIG_SCSI_IPS is not set
755# CONFIG_SCSI_INITIO is not set
756# CONFIG_SCSI_INIA100 is not set
757# CONFIG_SCSI_STEX is not set
758CONFIG_SCSI_SYM53C8XX_2=y
759CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
760CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
761CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
762CONFIG_SCSI_SYM53C8XX_MMIO=y
763CONFIG_SCSI_IPR=y
764CONFIG_SCSI_IPR_TRACE=y
765CONFIG_SCSI_IPR_DUMP=y
766# CONFIG_SCSI_QLOGIC_1280 is not set
767# CONFIG_SCSI_QLA_FC is not set
768# CONFIG_SCSI_QLA_ISCSI is not set
769CONFIG_SCSI_LPFC=m
770# CONFIG_SCSI_LPFC_DEBUG_FS is not set
771# CONFIG_SCSI_DC395x is not set
772# CONFIG_SCSI_DC390T is not set
773CONFIG_SCSI_DEBUG=m
774# CONFIG_SCSI_PMCRAID is not set
775# CONFIG_SCSI_SRP is not set
776# CONFIG_SCSI_BFA_FC is not set
777# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
778# CONFIG_SCSI_DH is not set
779# CONFIG_SCSI_OSD_INITIATOR is not set
780CONFIG_ATA=y
781# CONFIG_ATA_NONSTANDARD is not set
782CONFIG_ATA_VERBOSE_ERROR=y
783CONFIG_SATA_PMP=y
784# CONFIG_SATA_AHCI is not set
785CONFIG_SATA_SIL24=y
786CONFIG_ATA_SFF=y
787CONFIG_SATA_SVW=y
788# CONFIG_ATA_PIIX is not set
789# CONFIG_SATA_MV is not set
790# CONFIG_SATA_NV is not set
791# CONFIG_PDC_ADMA is not set
792# CONFIG_SATA_QSTOR is not set
793# CONFIG_SATA_PROMISE is not set
794# CONFIG_SATA_SX4 is not set
795# CONFIG_SATA_SIL is not set
796# CONFIG_SATA_SIS is not set
797# CONFIG_SATA_ULI is not set
798# CONFIG_SATA_VIA is not set
799# CONFIG_SATA_VITESSE is not set
800# CONFIG_SATA_INIC162X is not set
801# CONFIG_PATA_ALI is not set
802# CONFIG_PATA_AMD is not set
803# CONFIG_PATA_ARTOP is not set
804# CONFIG_PATA_ATP867X is not set
805# CONFIG_PATA_ATIIXP is not set
806# CONFIG_PATA_CMD640_PCI is not set
807# CONFIG_PATA_CMD64X is not set
808# CONFIG_PATA_CS5520 is not set
809# CONFIG_PATA_CS5530 is not set
810# CONFIG_PATA_CYPRESS is not set
811# CONFIG_PATA_EFAR is not set
812# CONFIG_ATA_GENERIC is not set
813# CONFIG_PATA_HPT366 is not set
814# CONFIG_PATA_HPT37X is not set
815# CONFIG_PATA_HPT3X2N is not set
816# CONFIG_PATA_HPT3X3 is not set
817# CONFIG_PATA_IT821X is not set
818# CONFIG_PATA_IT8213 is not set
819# CONFIG_PATA_JMICRON is not set
820# CONFIG_PATA_TRIFLEX is not set
821# CONFIG_PATA_MARVELL is not set
822# CONFIG_PATA_MPIIX is not set
823# CONFIG_PATA_OLDPIIX is not set
824# CONFIG_PATA_NETCELL is not set
825# CONFIG_PATA_NINJA32 is not set
826# CONFIG_PATA_NS87410 is not set
827# CONFIG_PATA_NS87415 is not set
828# CONFIG_PATA_OPTI is not set
829# CONFIG_PATA_OPTIDMA is not set
830# CONFIG_PATA_PCMCIA is not set
831# CONFIG_PATA_PDC_OLD is not set
832# CONFIG_PATA_RADISYS is not set
833# CONFIG_PATA_RDC is not set
834# CONFIG_PATA_RZ1000 is not set
835# CONFIG_PATA_SC1200 is not set
836# CONFIG_PATA_SERVERWORKS is not set
837# CONFIG_PATA_PDC2027X is not set
838# CONFIG_PATA_SIL680 is not set
839# CONFIG_PATA_SIS is not set
840# CONFIG_PATA_VIA is not set
841# CONFIG_PATA_WINBOND is not set
842# CONFIG_PATA_PLATFORM is not set
843# CONFIG_PATA_SCH is not set
844CONFIG_MD=y
845CONFIG_BLK_DEV_MD=y
846CONFIG_MD_AUTODETECT=y
847CONFIG_MD_LINEAR=y
848CONFIG_MD_RAID0=y
849CONFIG_MD_RAID1=y
850CONFIG_MD_RAID10=y
851CONFIG_MD_RAID456=y
852# CONFIG_MULTICORE_RAID456 is not set
853CONFIG_MD_RAID6_PQ=y
854# CONFIG_ASYNC_RAID6_TEST is not set
855CONFIG_MD_MULTIPATH=m
856CONFIG_MD_FAULTY=m
857CONFIG_BLK_DEV_DM=y
858# CONFIG_DM_DEBUG is not set
859CONFIG_DM_CRYPT=m
860CONFIG_DM_SNAPSHOT=m
861CONFIG_DM_MIRROR=m
862# CONFIG_DM_LOG_USERSPACE is not set
863CONFIG_DM_ZERO=m
864CONFIG_DM_MULTIPATH=m
865# CONFIG_DM_MULTIPATH_QL is not set
866# CONFIG_DM_MULTIPATH_ST is not set
867# CONFIG_DM_DELAY is not set
868# CONFIG_DM_UEVENT is not set
869# CONFIG_FUSION is not set
870
871#
872# IEEE 1394 (FireWire) support
873#
874
875#
876# You can enable one or both FireWire driver stacks.
877#
878
879#
880# See the help texts for more information.
881#
882# CONFIG_FIREWIRE is not set
883CONFIG_IEEE1394=y
884CONFIG_IEEE1394_OHCI1394=y
885# CONFIG_IEEE1394_PCILYNX is not set
886CONFIG_IEEE1394_SBP2=m
887CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
888CONFIG_IEEE1394_ETH1394=m
889CONFIG_IEEE1394_RAWIO=y
890CONFIG_IEEE1394_VIDEO1394=m
891CONFIG_IEEE1394_DV1394=m
892# CONFIG_IEEE1394_VERBOSEDEBUG is not set
893# CONFIG_I2O is not set
894CONFIG_MACINTOSH_DRIVERS=y
895# CONFIG_MAC_EMUMOUSEBTN is not set
896CONFIG_WINDFARM=y
897CONFIG_NETDEVICES=y
898CONFIG_DUMMY=m
899CONFIG_BONDING=m
900# CONFIG_MACVLAN is not set
901# CONFIG_EQUALIZER is not set
902CONFIG_TUN=m
903# CONFIG_VETH is not set
904# CONFIG_ARCNET is not set
905CONFIG_PHYLIB=y
906
907#
908# MII PHY device drivers
909#
910CONFIG_MARVELL_PHY=y
911# CONFIG_DAVICOM_PHY is not set
912# CONFIG_QSEMI_PHY is not set
913# CONFIG_LXT_PHY is not set
914# CONFIG_CICADA_PHY is not set
915# CONFIG_VITESSE_PHY is not set
916# CONFIG_SMSC_PHY is not set
917CONFIG_BROADCOM_PHY=m
918# CONFIG_ICPLUS_PHY is not set
919# CONFIG_REALTEK_PHY is not set
920# CONFIG_NATIONAL_PHY is not set
921# CONFIG_STE10XP is not set
922# CONFIG_LSI_ET1011C_PHY is not set
923# CONFIG_FIXED_PHY is not set
924# CONFIG_MDIO_BITBANG is not set
925CONFIG_NET_ETHERNET=y
926CONFIG_MII=y
927# CONFIG_HAPPYMEAL is not set
928CONFIG_SUNGEM=y
929# CONFIG_CASSINI is not set
930CONFIG_NET_VENDOR_3COM=y
931CONFIG_VORTEX=y
932# CONFIG_TYPHOON is not set
933# CONFIG_ETHOC is not set
934# CONFIG_DNET is not set
935# CONFIG_NET_TULIP is not set
936# CONFIG_HP100 is not set
937# CONFIG_IBM_NEW_EMAC_ZMII is not set
938# CONFIG_IBM_NEW_EMAC_RGMII is not set
939# CONFIG_IBM_NEW_EMAC_TAH is not set
940# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
941# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
942# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
943# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
944CONFIG_NET_PCI=y
945CONFIG_PCNET32=y
946# CONFIG_AMD8111_ETH is not set
947# CONFIG_ADAPTEC_STARFIRE is not set
948# CONFIG_B44 is not set
949# CONFIG_FORCEDETH is not set
950CONFIG_E100=y
951# CONFIG_FEALNX is not set
952# CONFIG_NATSEMI is not set
953# CONFIG_NE2K_PCI is not set
954# CONFIG_8139CP is not set
955# CONFIG_8139TOO is not set
956# CONFIG_R6040 is not set
957# CONFIG_SIS900 is not set
958# CONFIG_EPIC100 is not set
959# CONFIG_SMSC9420 is not set
960# CONFIG_SUNDANCE is not set
961# CONFIG_TLAN is not set
962# CONFIG_KS8842 is not set
963# CONFIG_KS8851_MLL is not set
964# CONFIG_VIA_RHINE is not set
965# CONFIG_SC92031 is not set
966# CONFIG_ATL2 is not set
967CONFIG_NETDEV_1000=y
968CONFIG_ACENIC=y
969CONFIG_ACENIC_OMIT_TIGON_I=y
970# CONFIG_DL2K is not set
971CONFIG_E1000=y
972# CONFIG_E1000E is not set
973# CONFIG_IP1000 is not set
974# CONFIG_IGB is not set
975# CONFIG_IGBVF is not set
976# CONFIG_NS83820 is not set
977# CONFIG_HAMACHI is not set
978# CONFIG_YELLOWFIN is not set
979# CONFIG_R8169 is not set
980# CONFIG_SIS190 is not set
981# CONFIG_SKGE is not set
982# CONFIG_SKY2 is not set
983# CONFIG_VIA_VELOCITY is not set
984CONFIG_TIGON3=y
985# CONFIG_BNX2 is not set
986# CONFIG_CNIC is not set
987# CONFIG_QLA3XXX is not set
988# CONFIG_ATL1 is not set
989# CONFIG_ATL1E is not set
990# CONFIG_ATL1C is not set
991# CONFIG_JME is not set
992CONFIG_NETDEV_10000=y
993# CONFIG_CHELSIO_T1 is not set
994CONFIG_CHELSIO_T3_DEPENDS=y
995# CONFIG_CHELSIO_T3 is not set
996# CONFIG_ENIC is not set
997# CONFIG_IXGBE is not set
998CONFIG_IXGB=m
999# CONFIG_S2IO is not set
1000# CONFIG_VXGE is not set
1001# CONFIG_MYRI10GE is not set
1002# CONFIG_NETXEN_NIC is not set
1003# CONFIG_NIU is not set
1004# CONFIG_MLX4_EN is not set
1005# CONFIG_MLX4_CORE is not set
1006# CONFIG_TEHUTI is not set
1007# CONFIG_BNX2X is not set
1008# CONFIG_QLGE is not set
1009# CONFIG_SFC is not set
1010# CONFIG_BE2NET is not set
1011CONFIG_TR=y
1012CONFIG_IBMOL=y
1013# CONFIG_3C359 is not set
1014# CONFIG_TMS380TR is not set
1015CONFIG_WLAN=y
1016# CONFIG_WLAN_PRE80211 is not set
1017# CONFIG_WLAN_80211 is not set
1018
1019#
1020# Enable WiMAX (Networking options) to see the WiMAX drivers
1021#
1022
1023#
1024# USB Network Adapters
1025#
1026# CONFIG_USB_CATC is not set
1027# CONFIG_USB_KAWETH is not set
1028# CONFIG_USB_PEGASUS is not set
1029# CONFIG_USB_RTL8150 is not set
1030# CONFIG_USB_USBNET is not set
1031# CONFIG_NET_PCMCIA is not set
1032# CONFIG_WAN is not set
1033# CONFIG_FDDI is not set
1034# CONFIG_HIPPI is not set
1035CONFIG_PPP=m
1036# CONFIG_PPP_MULTILINK is not set
1037# CONFIG_PPP_FILTER is not set
1038CONFIG_PPP_ASYNC=m
1039CONFIG_PPP_SYNC_TTY=m
1040CONFIG_PPP_DEFLATE=m
1041CONFIG_PPP_BSDCOMP=m
1042# CONFIG_PPP_MPPE is not set
1043CONFIG_PPPOE=m
1044# CONFIG_PPPOL2TP is not set
1045# CONFIG_SLIP is not set
1046CONFIG_SLHC=m
1047# CONFIG_NET_FC is not set
1048CONFIG_NETCONSOLE=y
1049# CONFIG_NETCONSOLE_DYNAMIC is not set
1050CONFIG_NETPOLL=y
1051CONFIG_NETPOLL_TRAP=y
1052CONFIG_NET_POLL_CONTROLLER=y
1053# CONFIG_ISDN is not set
1054# CONFIG_PHONE is not set
1055
1056#
1057# Input device support
1058#
1059CONFIG_INPUT=y
1060# CONFIG_INPUT_FF_MEMLESS is not set
1061# CONFIG_INPUT_POLLDEV is not set
1062
1063#
1064# Userland interfaces
1065#
1066CONFIG_INPUT_MOUSEDEV=y
1067# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
1068CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
1069CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
1070# CONFIG_INPUT_JOYDEV is not set
1071CONFIG_INPUT_EVDEV=m
1072# CONFIG_INPUT_EVBUG is not set
1073
1074#
1075# Input Device Drivers
1076#
1077CONFIG_INPUT_KEYBOARD=y
1078# CONFIG_KEYBOARD_ADP5588 is not set
1079CONFIG_KEYBOARD_ATKBD=y
1080# CONFIG_QT2160 is not set
1081# CONFIG_KEYBOARD_LKKBD is not set
1082# CONFIG_KEYBOARD_MAX7359 is not set
1083# CONFIG_KEYBOARD_NEWTON is not set
1084# CONFIG_KEYBOARD_OPENCORES is not set
1085# CONFIG_KEYBOARD_STOWAWAY is not set
1086# CONFIG_KEYBOARD_SUNKBD is not set
1087# CONFIG_KEYBOARD_XTKBD is not set
1088CONFIG_INPUT_MOUSE=y
1089CONFIG_MOUSE_PS2=y
1090CONFIG_MOUSE_PS2_ALPS=y
1091CONFIG_MOUSE_PS2_LOGIPS2PP=y
1092CONFIG_MOUSE_PS2_SYNAPTICS=y
1093CONFIG_MOUSE_PS2_TRACKPOINT=y
1094# CONFIG_MOUSE_PS2_ELANTECH is not set
1095# CONFIG_MOUSE_PS2_SENTELIC is not set
1096# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1097# CONFIG_MOUSE_SERIAL is not set
1098# CONFIG_MOUSE_APPLETOUCH is not set
1099# CONFIG_MOUSE_BCM5974 is not set
1100# CONFIG_MOUSE_VSXXXAA is not set
1101# CONFIG_MOUSE_SYNAPTICS_I2C is not set
1102# CONFIG_INPUT_JOYSTICK is not set
1103# CONFIG_INPUT_TABLET is not set
1104# CONFIG_INPUT_TOUCHSCREEN is not set
1105CONFIG_INPUT_MISC=y
1106# CONFIG_INPUT_ATI_REMOTE is not set
1107# CONFIG_INPUT_ATI_REMOTE2 is not set
1108# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1109# CONFIG_INPUT_POWERMATE is not set
1110# CONFIG_INPUT_YEALINK is not set
1111# CONFIG_INPUT_CM109 is not set
1112# CONFIG_INPUT_UINPUT is not set
1113
1114#
1115# Hardware I/O ports
1116#
1117CONFIG_SERIO=y
1118CONFIG_SERIO_I8042=y
1119# CONFIG_SERIO_SERPORT is not set
1120# CONFIG_SERIO_PCIPS2 is not set
1121CONFIG_SERIO_LIBPS2=y
1122# CONFIG_SERIO_RAW is not set
1123# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1124# CONFIG_GAMEPORT is not set
1125
1126#
1127# Character devices
1128#
1129CONFIG_VT=y
1130CONFIG_CONSOLE_TRANSLATIONS=y
1131CONFIG_VT_CONSOLE=y
1132CONFIG_HW_CONSOLE=y
1133CONFIG_VT_HW_CONSOLE_BINDING=y
1134CONFIG_DEVKMEM=y
1135# CONFIG_SERIAL_NONSTANDARD is not set
1136# CONFIG_NOZOMI is not set
1137
1138#
1139# Serial drivers
1140#
1141CONFIG_SERIAL_8250=y
1142CONFIG_SERIAL_8250_CONSOLE=y
1143CONFIG_SERIAL_8250_PCI=y
1144# CONFIG_SERIAL_8250_CS is not set
1145CONFIG_SERIAL_8250_NR_UARTS=4
1146CONFIG_SERIAL_8250_RUNTIME_UARTS=4
1147# CONFIG_SERIAL_8250_EXTENDED is not set
1148
1149#
1150# Non-8250 serial port support
1151#
1152CONFIG_SERIAL_CORE=y
1153CONFIG_SERIAL_CORE_CONSOLE=y
1154# CONFIG_SERIAL_JSM is not set
1155# CONFIG_SERIAL_OF_PLATFORM is not set
1156CONFIG_UNIX98_PTYS=y
1157# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1158CONFIG_LEGACY_PTYS=y
1159CONFIG_LEGACY_PTY_COUNT=256
1160# CONFIG_HVC_UDBG is not set
1161# CONFIG_IPMI_HANDLER is not set
1162# CONFIG_HW_RANDOM is not set
1163# CONFIG_R3964 is not set
1164# CONFIG_APPLICOM is not set
1165
1166#
1167# PCMCIA character devices
1168#
1169# CONFIG_SYNCLINK_CS is not set
1170# CONFIG_CARDMAN_4000 is not set
1171# CONFIG_CARDMAN_4040 is not set
1172# CONFIG_IPWIRELESS is not set
1173CONFIG_RAW_DRIVER=y
1174CONFIG_MAX_RAW_DEVS=256
1175# CONFIG_HANGCHECK_TIMER is not set
1176# CONFIG_TCG_TPM is not set
1177CONFIG_DEVPORT=y
1178CONFIG_I2C=y
1179CONFIG_I2C_BOARDINFO=y
1180CONFIG_I2C_COMPAT=y
1181CONFIG_I2C_CHARDEV=y
1182CONFIG_I2C_HELPER_AUTO=y
1183CONFIG_I2C_ALGOBIT=y
1184
1185#
1186# I2C Hardware Bus support
1187#
1188
1189#
1190# PC SMBus host controller drivers
1191#
1192# CONFIG_I2C_ALI1535 is not set
1193# CONFIG_I2C_ALI1563 is not set
1194# CONFIG_I2C_ALI15X3 is not set
1195# CONFIG_I2C_AMD756 is not set
1196CONFIG_I2C_AMD8111=y
1197# CONFIG_I2C_I801 is not set
1198# CONFIG_I2C_ISCH is not set
1199# CONFIG_I2C_PIIX4 is not set
1200# CONFIG_I2C_NFORCE2 is not set
1201# CONFIG_I2C_SIS5595 is not set
1202# CONFIG_I2C_SIS630 is not set
1203# CONFIG_I2C_SIS96X is not set
1204# CONFIG_I2C_VIA is not set
1205# CONFIG_I2C_VIAPRO is not set
1206
1207#
1208# I2C system bus drivers (mostly embedded / system-on-chip)
1209#
1210# CONFIG_I2C_OCORES is not set
1211# CONFIG_I2C_SIMTEC is not set
1212
1213#
1214# External I2C/SMBus adapter drivers
1215#
1216# CONFIG_I2C_PARPORT_LIGHT is not set
1217# CONFIG_I2C_TAOS_EVM is not set
1218# CONFIG_I2C_TINY_USB is not set
1219
1220#
1221# Graphics adapter I2C/DDC channel drivers
1222#
1223# CONFIG_I2C_VOODOO3 is not set
1224
1225#
1226# Other I2C/SMBus bus drivers
1227#
1228# CONFIG_I2C_PCA_PLATFORM is not set
1229# CONFIG_I2C_STUB is not set
1230
1231#
1232# Miscellaneous I2C Chip support
1233#
1234# CONFIG_DS1682 is not set
1235# CONFIG_SENSORS_TSL2550 is not set
1236# CONFIG_I2C_DEBUG_CORE is not set
1237# CONFIG_I2C_DEBUG_ALGO is not set
1238# CONFIG_I2C_DEBUG_BUS is not set
1239# CONFIG_I2C_DEBUG_CHIP is not set
1240# CONFIG_SPI is not set
1241
1242#
1243# PPS support
1244#
1245# CONFIG_PPS is not set
1246CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1247# CONFIG_GPIOLIB is not set
1248# CONFIG_W1 is not set
1249# CONFIG_POWER_SUPPLY is not set
1250# CONFIG_HWMON is not set
1251# CONFIG_THERMAL is not set
1252# CONFIG_WATCHDOG is not set
1253CONFIG_SSB_POSSIBLE=y
1254
1255#
1256# Sonics Silicon Backplane
1257#
1258# CONFIG_SSB is not set
1259
1260#
1261# Multifunction device drivers
1262#
1263# CONFIG_MFD_CORE is not set
1264# CONFIG_MFD_SM501 is not set
1265# CONFIG_HTC_PASIC3 is not set
1266# CONFIG_TWL4030_CORE is not set
1267# CONFIG_MFD_TMIO is not set
1268# CONFIG_PMIC_DA903X is not set
1269# CONFIG_MFD_WM8400 is not set
1270# CONFIG_MFD_WM831X is not set
1271# CONFIG_MFD_WM8350_I2C is not set
1272# CONFIG_MFD_PCF50633 is not set
1273# CONFIG_AB3100_CORE is not set
1274# CONFIG_REGULATOR is not set
1275# CONFIG_MEDIA_SUPPORT is not set
1276
1277#
1278# Graphics support
1279#
1280# CONFIG_AGP is not set
1281CONFIG_VGA_ARB=y
1282# CONFIG_DRM is not set
1283# CONFIG_VGASTATE is not set
1284CONFIG_VIDEO_OUTPUT_CONTROL=m
1285CONFIG_FB=y
1286CONFIG_FIRMWARE_EDID=y
1287CONFIG_FB_DDC=y
1288# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1289CONFIG_FB_CFB_FILLRECT=y
1290CONFIG_FB_CFB_COPYAREA=y
1291CONFIG_FB_CFB_IMAGEBLIT=y
1292# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1293# CONFIG_FB_SYS_FILLRECT is not set
1294# CONFIG_FB_SYS_COPYAREA is not set
1295# CONFIG_FB_SYS_IMAGEBLIT is not set
1296# CONFIG_FB_FOREIGN_ENDIAN is not set
1297# CONFIG_FB_SYS_FOPS is not set
1298# CONFIG_FB_SVGALIB is not set
1299CONFIG_FB_MACMODES=y
1300CONFIG_FB_BACKLIGHT=y
1301CONFIG_FB_MODE_HELPERS=y
1302CONFIG_FB_TILEBLITTING=y
1303
1304#
1305# Frame buffer hardware drivers
1306#
1307# CONFIG_FB_CIRRUS is not set
1308# CONFIG_FB_PM2 is not set
1309# CONFIG_FB_CYBER2000 is not set
1310CONFIG_FB_OF=y
1311# CONFIG_FB_ASILIANT is not set
1312# CONFIG_FB_IMSTT is not set
1313# CONFIG_FB_VGA16 is not set
1314# CONFIG_FB_S1D13XXX is not set
1315# CONFIG_FB_NVIDIA is not set
1316# CONFIG_FB_RIVA is not set
1317CONFIG_FB_MATROX=y
1318CONFIG_FB_MATROX_MILLENIUM=y
1319CONFIG_FB_MATROX_MYSTIQUE=y
1320CONFIG_FB_MATROX_G=y
1321CONFIG_FB_MATROX_I2C=m
1322CONFIG_FB_MATROX_MAVEN=m
1323CONFIG_FB_RADEON=y
1324CONFIG_FB_RADEON_I2C=y
1325CONFIG_FB_RADEON_BACKLIGHT=y
1326# CONFIG_FB_RADEON_DEBUG is not set
1327# CONFIG_FB_ATY128 is not set
1328# CONFIG_FB_ATY is not set
1329# CONFIG_FB_S3 is not set
1330# CONFIG_FB_SAVAGE is not set
1331# CONFIG_FB_SIS is not set
1332# CONFIG_FB_VIA is not set
1333# CONFIG_FB_NEOMAGIC is not set
1334# CONFIG_FB_KYRO is not set
1335# CONFIG_FB_3DFX is not set
1336# CONFIG_FB_VOODOO1 is not set
1337# CONFIG_FB_VT8623 is not set
1338# CONFIG_FB_TRIDENT is not set
1339# CONFIG_FB_ARK is not set
1340# CONFIG_FB_PM3 is not set
1341# CONFIG_FB_CARMINE is not set
1342CONFIG_FB_IBM_GXT4500=y
1343# CONFIG_FB_VIRTUAL is not set
1344# CONFIG_FB_METRONOME is not set
1345# CONFIG_FB_MB862XX is not set
1346# CONFIG_FB_BROADSHEET is not set
1347CONFIG_BACKLIGHT_LCD_SUPPORT=y
1348CONFIG_LCD_CLASS_DEVICE=y
1349# CONFIG_LCD_ILI9320 is not set
1350# CONFIG_LCD_PLATFORM is not set
1351CONFIG_BACKLIGHT_CLASS_DEVICE=y
1352CONFIG_BACKLIGHT_GENERIC=y
1353
1354#
1355# Display device support
1356#
1357CONFIG_DISPLAY_SUPPORT=y
1358
1359#
1360# Display hardware drivers
1361#
1362
1363#
1364# Console display driver support
1365#
1366# CONFIG_VGA_CONSOLE is not set
1367CONFIG_DUMMY_CONSOLE=y
1368CONFIG_FRAMEBUFFER_CONSOLE=y
1369# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1370# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1371# CONFIG_FONTS is not set
1372CONFIG_FONT_8x8=y
1373CONFIG_FONT_8x16=y
1374CONFIG_LOGO=y
1375CONFIG_LOGO_LINUX_MONO=y
1376CONFIG_LOGO_LINUX_VGA16=y
1377CONFIG_LOGO_LINUX_CLUT224=y
1378CONFIG_SOUND=m
1379CONFIG_SOUND_OSS_CORE=y
1380CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1381CONFIG_SND=m
1382CONFIG_SND_TIMER=m
1383CONFIG_SND_PCM=m
1384CONFIG_SND_SEQUENCER=m
1385CONFIG_SND_SEQ_DUMMY=m
1386CONFIG_SND_OSSEMUL=y
1387CONFIG_SND_MIXER_OSS=m
1388CONFIG_SND_PCM_OSS=m
1389CONFIG_SND_PCM_OSS_PLUGINS=y
1390CONFIG_SND_SEQUENCER_OSS=y
1391# CONFIG_SND_HRTIMER is not set
1392# CONFIG_SND_DYNAMIC_MINORS is not set
1393CONFIG_SND_SUPPORT_OLD_API=y
1394CONFIG_SND_VERBOSE_PROCFS=y
1395# CONFIG_SND_VERBOSE_PRINTK is not set
1396# CONFIG_SND_DEBUG is not set
1397# CONFIG_SND_RAWMIDI_SEQ is not set
1398# CONFIG_SND_OPL3_LIB_SEQ is not set
1399# CONFIG_SND_OPL4_LIB_SEQ is not set
1400# CONFIG_SND_SBAWE_SEQ is not set
1401# CONFIG_SND_EMU10K1_SEQ is not set
1402CONFIG_SND_DRIVERS=y
1403# CONFIG_SND_DUMMY is not set
1404# CONFIG_SND_VIRMIDI is not set
1405# CONFIG_SND_MTPAV is not set
1406# CONFIG_SND_SERIAL_U16550 is not set
1407# CONFIG_SND_MPU401 is not set
1408CONFIG_SND_PCI=y
1409# CONFIG_SND_AD1889 is not set
1410# CONFIG_SND_ALS300 is not set
1411# CONFIG_SND_ALS4000 is not set
1412# CONFIG_SND_ALI5451 is not set
1413# CONFIG_SND_ATIIXP is not set
1414# CONFIG_SND_ATIIXP_MODEM is not set
1415# CONFIG_SND_AU8810 is not set
1416# CONFIG_SND_AU8820 is not set
1417# CONFIG_SND_AU8830 is not set
1418# CONFIG_SND_AW2 is not set
1419# CONFIG_SND_AZT3328 is not set
1420# CONFIG_SND_BT87X is not set
1421# CONFIG_SND_CA0106 is not set
1422# CONFIG_SND_CMIPCI is not set
1423# CONFIG_SND_OXYGEN is not set
1424# CONFIG_SND_CS4281 is not set
1425# CONFIG_SND_CS46XX is not set
1426# CONFIG_SND_CS5530 is not set
1427# CONFIG_SND_CTXFI is not set
1428# CONFIG_SND_DARLA20 is not set
1429# CONFIG_SND_GINA20 is not set
1430# CONFIG_SND_LAYLA20 is not set
1431# CONFIG_SND_DARLA24 is not set
1432# CONFIG_SND_GINA24 is not set
1433# CONFIG_SND_LAYLA24 is not set
1434# CONFIG_SND_MONA is not set
1435# CONFIG_SND_MIA is not set
1436# CONFIG_SND_ECHO3G is not set
1437# CONFIG_SND_INDIGO is not set
1438# CONFIG_SND_INDIGOIO is not set
1439# CONFIG_SND_INDIGODJ is not set
1440# CONFIG_SND_INDIGOIOX is not set
1441# CONFIG_SND_INDIGODJX is not set
1442# CONFIG_SND_EMU10K1 is not set
1443# CONFIG_SND_EMU10K1X is not set
1444# CONFIG_SND_ENS1370 is not set
1445# CONFIG_SND_ENS1371 is not set
1446# CONFIG_SND_ES1938 is not set
1447# CONFIG_SND_ES1968 is not set
1448# CONFIG_SND_FM801 is not set
1449# CONFIG_SND_HDA_INTEL is not set
1450# CONFIG_SND_HDSP is not set
1451# CONFIG_SND_HDSPM is not set
1452# CONFIG_SND_HIFIER is not set
1453# CONFIG_SND_ICE1712 is not set
1454# CONFIG_SND_ICE1724 is not set
1455# CONFIG_SND_INTEL8X0 is not set
1456# CONFIG_SND_INTEL8X0M is not set
1457# CONFIG_SND_KORG1212 is not set
1458# CONFIG_SND_LX6464ES is not set
1459# CONFIG_SND_MAESTRO3 is not set
1460# CONFIG_SND_MIXART is not set
1461# CONFIG_SND_NM256 is not set
1462# CONFIG_SND_PCXHR is not set
1463# CONFIG_SND_RIPTIDE is not set
1464# CONFIG_SND_RME32 is not set
1465# CONFIG_SND_RME96 is not set
1466# CONFIG_SND_RME9652 is not set
1467# CONFIG_SND_SONICVIBES is not set
1468# CONFIG_SND_TRIDENT is not set
1469# CONFIG_SND_VIA82XX is not set
1470# CONFIG_SND_VIA82XX_MODEM is not set
1471# CONFIG_SND_VIRTUOSO is not set
1472# CONFIG_SND_VX222 is not set
1473# CONFIG_SND_YMFPCI is not set
1474CONFIG_SND_PPC=y
1475CONFIG_SND_USB=y
1476# CONFIG_SND_USB_AUDIO is not set
1477# CONFIG_SND_USB_USX2Y is not set
1478# CONFIG_SND_USB_CAIAQ is not set
1479CONFIG_SND_PCMCIA=y
1480# CONFIG_SND_VXPOCKET is not set
1481# CONFIG_SND_PDAUDIOCF is not set
1482# CONFIG_SND_SOC is not set
1483# CONFIG_SOUND_PRIME is not set
1484CONFIG_HID_SUPPORT=y
1485CONFIG_HID=y
1486# CONFIG_HIDRAW is not set
1487
1488#
1489# USB Input Devices
1490#
1491CONFIG_USB_HID=y
1492# CONFIG_HID_PID is not set
1493CONFIG_USB_HIDDEV=y
1494
1495#
1496# Special HID drivers
1497#
1498CONFIG_HID_A4TECH=y
1499CONFIG_HID_APPLE=y
1500CONFIG_HID_BELKIN=y
1501CONFIG_HID_CHERRY=y
1502CONFIG_HID_CHICONY=y
1503CONFIG_HID_CYPRESS=y
1504CONFIG_HID_DRAGONRISE=y
1505# CONFIG_DRAGONRISE_FF is not set
1506CONFIG_HID_EZKEY=y
1507CONFIG_HID_KYE=y
1508CONFIG_HID_GYRATION=y
1509CONFIG_HID_TWINHAN=y
1510CONFIG_HID_KENSINGTON=y
1511CONFIG_HID_LOGITECH=y
1512# CONFIG_LOGITECH_FF is not set
1513# CONFIG_LOGIRUMBLEPAD2_FF is not set
1514CONFIG_HID_MICROSOFT=y
1515CONFIG_HID_MONTEREY=y
1516CONFIG_HID_NTRIG=y
1517CONFIG_HID_PANTHERLORD=y
1518# CONFIG_PANTHERLORD_FF is not set
1519CONFIG_HID_PETALYNX=y
1520CONFIG_HID_SAMSUNG=y
1521CONFIG_HID_SONY=y
1522CONFIG_HID_SUNPLUS=y
1523CONFIG_HID_GREENASIA=y
1524# CONFIG_GREENASIA_FF is not set
1525CONFIG_HID_SMARTJOYPLUS=y
1526# CONFIG_SMARTJOYPLUS_FF is not set
1527CONFIG_HID_TOPSEED=y
1528CONFIG_HID_THRUSTMASTER=y
1529# CONFIG_THRUSTMASTER_FF is not set
1530CONFIG_HID_ZEROPLUS=y
1531# CONFIG_ZEROPLUS_FF is not set
1532CONFIG_USB_SUPPORT=y
1533CONFIG_USB_ARCH_HAS_HCD=y
1534CONFIG_USB_ARCH_HAS_OHCI=y
1535CONFIG_USB_ARCH_HAS_EHCI=y
1536CONFIG_USB=y
1537# CONFIG_USB_DEBUG is not set
1538# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1539
1540#
1541# Miscellaneous USB options
1542#
1543CONFIG_USB_DEVICEFS=y
1544CONFIG_USB_DEVICE_CLASS=y
1545# CONFIG_USB_DYNAMIC_MINORS is not set
1546# CONFIG_USB_OTG is not set
1547# CONFIG_USB_MON is not set
1548# CONFIG_USB_WUSB is not set
1549# CONFIG_USB_WUSB_CBAF is not set
1550
1551#
1552# USB Host Controller Drivers
1553#
1554# CONFIG_USB_C67X00_HCD is not set
1555# CONFIG_USB_XHCI_HCD is not set
1556CONFIG_USB_EHCI_HCD=y
1557# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1558CONFIG_USB_EHCI_TT_NEWSCHED=y
1559# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1560# CONFIG_USB_OXU210HP_HCD is not set
1561# CONFIG_USB_ISP116X_HCD is not set
1562# CONFIG_USB_ISP1760_HCD is not set
1563# CONFIG_USB_ISP1362_HCD is not set
1564CONFIG_USB_OHCI_HCD=y
1565# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
1566# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
1567# CONFIG_USB_OHCI_HCD_PPC_OF is not set
1568# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1569# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1570CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1571# CONFIG_USB_UHCI_HCD is not set
1572# CONFIG_USB_SL811_HCD is not set
1573# CONFIG_USB_R8A66597_HCD is not set
1574# CONFIG_USB_WHCI_HCD is not set
1575# CONFIG_USB_HWA_HCD is not set
1576
1577#
1578# USB Device Class drivers
1579#
1580# CONFIG_USB_ACM is not set
1581# CONFIG_USB_PRINTER is not set
1582# CONFIG_USB_WDM is not set
1583# CONFIG_USB_TMC is not set
1584
1585#
1586# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1587#
1588
1589#
1590# also be needed; see USB_STORAGE Help for more info
1591#
1592CONFIG_USB_STORAGE=m
1593# CONFIG_USB_STORAGE_DEBUG is not set
1594# CONFIG_USB_STORAGE_DATAFAB is not set
1595# CONFIG_USB_STORAGE_FREECOM is not set
1596# CONFIG_USB_STORAGE_ISD200 is not set
1597# CONFIG_USB_STORAGE_USBAT is not set
1598# CONFIG_USB_STORAGE_SDDR09 is not set
1599# CONFIG_USB_STORAGE_SDDR55 is not set
1600# CONFIG_USB_STORAGE_JUMPSHOT is not set
1601# CONFIG_USB_STORAGE_ALAUDA is not set
1602# CONFIG_USB_STORAGE_ONETOUCH is not set
1603# CONFIG_USB_STORAGE_KARMA is not set
1604# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1605# CONFIG_USB_LIBUSUAL is not set
1606
1607#
1608# USB Imaging devices
1609#
1610# CONFIG_USB_MDC800 is not set
1611# CONFIG_USB_MICROTEK is not set
1612
1613#
1614# USB port drivers
1615#
1616# CONFIG_USB_SERIAL is not set
1617
1618#
1619# USB Miscellaneous drivers
1620#
1621# CONFIG_USB_EMI62 is not set
1622# CONFIG_USB_EMI26 is not set
1623# CONFIG_USB_ADUTUX is not set
1624# CONFIG_USB_SEVSEG is not set
1625# CONFIG_USB_RIO500 is not set
1626# CONFIG_USB_LEGOTOWER is not set
1627# CONFIG_USB_LCD is not set
1628# CONFIG_USB_BERRY_CHARGE is not set
1629# CONFIG_USB_LED is not set
1630# CONFIG_USB_CYPRESS_CY7C63 is not set
1631# CONFIG_USB_CYTHERM is not set
1632# CONFIG_USB_IDMOUSE is not set
1633# CONFIG_USB_FTDI_ELAN is not set
1634CONFIG_USB_APPLEDISPLAY=m
1635# CONFIG_USB_SISUSBVGA is not set
1636# CONFIG_USB_LD is not set
1637# CONFIG_USB_TRANCEVIBRATOR is not set
1638# CONFIG_USB_IOWARRIOR is not set
1639# CONFIG_USB_TEST is not set
1640# CONFIG_USB_ISIGHTFW is not set
1641# CONFIG_USB_VST is not set
1642# CONFIG_USB_GADGET is not set
1643
1644#
1645# OTG and related infrastructure
1646#
1647# CONFIG_NOP_USB_XCEIV is not set
1648# CONFIG_UWB is not set
1649# CONFIG_MMC is not set
1650# CONFIG_MEMSTICK is not set
1651# CONFIG_NEW_LEDS is not set
1652# CONFIG_ACCESSIBILITY is not set
1653CONFIG_INFINIBAND=m
1654# CONFIG_INFINIBAND_USER_MAD is not set
1655# CONFIG_INFINIBAND_USER_ACCESS is not set
1656CONFIG_INFINIBAND_ADDR_TRANS=y
1657CONFIG_INFINIBAND_MTHCA=m
1658CONFIG_INFINIBAND_MTHCA_DEBUG=y
1659# CONFIG_INFINIBAND_IPATH is not set
1660# CONFIG_INFINIBAND_AMSO1100 is not set
1661# CONFIG_MLX4_INFINIBAND is not set
1662# CONFIG_INFINIBAND_NES is not set
1663CONFIG_INFINIBAND_IPOIB=m
1664# CONFIG_INFINIBAND_IPOIB_CM is not set
1665CONFIG_INFINIBAND_IPOIB_DEBUG=y
1666# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
1667# CONFIG_INFINIBAND_SRP is not set
1668CONFIG_INFINIBAND_ISER=m
1669CONFIG_EDAC=y
1670
1671#
1672# Reporting subsystems
1673#
1674# CONFIG_EDAC_DEBUG is not set
1675CONFIG_EDAC_MM_EDAC=y
1676# CONFIG_EDAC_CPC925 is not set
1677CONFIG_RTC_LIB=y
1678CONFIG_RTC_CLASS=y
1679CONFIG_RTC_HCTOSYS=y
1680CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1681# CONFIG_RTC_DEBUG is not set
1682
1683#
1684# RTC interfaces
1685#
1686CONFIG_RTC_INTF_SYSFS=y
1687CONFIG_RTC_INTF_PROC=y
1688CONFIG_RTC_INTF_DEV=y
1689# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1690# CONFIG_RTC_DRV_TEST is not set
1691
1692#
1693# I2C RTC drivers
1694#
1695CONFIG_RTC_DRV_DS1307=y
1696# CONFIG_RTC_DRV_DS1374 is not set
1697# CONFIG_RTC_DRV_DS1672 is not set
1698# CONFIG_RTC_DRV_MAX6900 is not set
1699# CONFIG_RTC_DRV_RS5C372 is not set
1700# CONFIG_RTC_DRV_ISL1208 is not set
1701# CONFIG_RTC_DRV_X1205 is not set
1702# CONFIG_RTC_DRV_PCF8563 is not set
1703# CONFIG_RTC_DRV_PCF8583 is not set
1704# CONFIG_RTC_DRV_M41T80 is not set
1705# CONFIG_RTC_DRV_S35390A is not set
1706# CONFIG_RTC_DRV_FM3130 is not set
1707# CONFIG_RTC_DRV_RX8581 is not set
1708# CONFIG_RTC_DRV_RX8025 is not set
1709
1710#
1711# SPI RTC drivers
1712#
1713
1714#
1715# Platform RTC drivers
1716#
1717# CONFIG_RTC_DRV_CMOS is not set
1718# CONFIG_RTC_DRV_DS1286 is not set
1719# CONFIG_RTC_DRV_DS1511 is not set
1720# CONFIG_RTC_DRV_DS1553 is not set
1721# CONFIG_RTC_DRV_DS1742 is not set
1722# CONFIG_RTC_DRV_STK17TA8 is not set
1723# CONFIG_RTC_DRV_M48T86 is not set
1724# CONFIG_RTC_DRV_M48T35 is not set
1725# CONFIG_RTC_DRV_M48T59 is not set
1726# CONFIG_RTC_DRV_BQ4802 is not set
1727# CONFIG_RTC_DRV_V3020 is not set
1728
1729#
1730# on-CPU RTC drivers
1731#
1732# CONFIG_RTC_DRV_GENERIC is not set
1733# CONFIG_DMADEVICES is not set
1734# CONFIG_AUXDISPLAY is not set
1735# CONFIG_UIO is not set
1736
1737#
1738# TI VLYNQ
1739#
1740# CONFIG_STAGING is not set
1741
1742#
1743# File systems
1744#
1745CONFIG_EXT2_FS=y
1746CONFIG_EXT2_FS_XATTR=y
1747CONFIG_EXT2_FS_POSIX_ACL=y
1748CONFIG_EXT2_FS_SECURITY=y
1749CONFIG_EXT2_FS_XIP=y
1750CONFIG_EXT3_FS=y
1751# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1752CONFIG_EXT3_FS_XATTR=y
1753CONFIG_EXT3_FS_POSIX_ACL=y
1754CONFIG_EXT3_FS_SECURITY=y
1755CONFIG_EXT4_FS=y
1756CONFIG_EXT4_FS_XATTR=y
1757CONFIG_EXT4_FS_POSIX_ACL=y
1758CONFIG_EXT4_FS_SECURITY=y
1759# CONFIG_EXT4_DEBUG is not set
1760CONFIG_FS_XIP=y
1761CONFIG_JBD=y
1762# CONFIG_JBD_DEBUG is not set
1763CONFIG_JBD2=y
1764# CONFIG_JBD2_DEBUG is not set
1765CONFIG_FS_MBCACHE=y
1766CONFIG_REISERFS_FS=y
1767# CONFIG_REISERFS_CHECK is not set
1768# CONFIG_REISERFS_PROC_INFO is not set
1769CONFIG_REISERFS_FS_XATTR=y
1770CONFIG_REISERFS_FS_POSIX_ACL=y
1771CONFIG_REISERFS_FS_SECURITY=y
1772CONFIG_JFS_FS=y
1773CONFIG_JFS_POSIX_ACL=y
1774CONFIG_JFS_SECURITY=y
1775# CONFIG_JFS_DEBUG is not set
1776# CONFIG_JFS_STATISTICS is not set
1777CONFIG_FS_POSIX_ACL=y
1778CONFIG_XFS_FS=m
1779# CONFIG_XFS_QUOTA is not set
1780CONFIG_XFS_POSIX_ACL=y
1781# CONFIG_XFS_RT is not set
1782# CONFIG_XFS_DEBUG is not set
1783# CONFIG_GFS2_FS is not set
1784# CONFIG_OCFS2_FS is not set
1785# CONFIG_BTRFS_FS is not set
1786# CONFIG_NILFS2_FS is not set
1787CONFIG_FILE_LOCKING=y
1788CONFIG_FSNOTIFY=y
1789CONFIG_DNOTIFY=y
1790CONFIG_INOTIFY=y
1791CONFIG_INOTIFY_USER=y
1792# CONFIG_QUOTA is not set
1793# CONFIG_AUTOFS_FS is not set
1794CONFIG_AUTOFS4_FS=m
1795# CONFIG_FUSE_FS is not set
1796
1797#
1798# Caches
1799#
1800# CONFIG_FSCACHE is not set
1801
1802#
1803# CD-ROM/DVD Filesystems
1804#
1805CONFIG_ISO9660_FS=y
1806# CONFIG_JOLIET is not set
1807# CONFIG_ZISOFS is not set
1808CONFIG_UDF_FS=m
1809CONFIG_UDF_NLS=y
1810
1811#
1812# DOS/FAT/NT Filesystems
1813#
1814CONFIG_FAT_FS=y
1815CONFIG_MSDOS_FS=y
1816CONFIG_VFAT_FS=y
1817CONFIG_FAT_DEFAULT_CODEPAGE=437
1818CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1819# CONFIG_NTFS_FS is not set
1820
1821#
1822# Pseudo filesystems
1823#
1824CONFIG_PROC_FS=y
1825CONFIG_PROC_KCORE=y
1826CONFIG_PROC_SYSCTL=y
1827CONFIG_PROC_PAGE_MONITOR=y
1828CONFIG_SYSFS=y
1829CONFIG_TMPFS=y
1830# CONFIG_TMPFS_POSIX_ACL is not set
1831# CONFIG_HUGETLBFS is not set
1832# CONFIG_HUGETLB_PAGE is not set
1833# CONFIG_CONFIGFS_FS is not set
1834CONFIG_MISC_FILESYSTEMS=y
1835# CONFIG_ADFS_FS is not set
1836# CONFIG_AFFS_FS is not set
1837CONFIG_HFS_FS=m
1838CONFIG_HFSPLUS_FS=m
1839# CONFIG_BEFS_FS is not set
1840# CONFIG_BFS_FS is not set
1841# CONFIG_EFS_FS is not set
1842CONFIG_CRAMFS=y
1843# CONFIG_SQUASHFS is not set
1844# CONFIG_VXFS_FS is not set
1845# CONFIG_MINIX_FS is not set
1846# CONFIG_OMFS_FS is not set
1847# CONFIG_HPFS_FS is not set
1848# CONFIG_QNX4FS_FS is not set
1849# CONFIG_ROMFS_FS is not set
1850# CONFIG_SYSV_FS is not set
1851# CONFIG_UFS_FS is not set
1852CONFIG_NETWORK_FILESYSTEMS=y
1853CONFIG_NFS_FS=y
1854CONFIG_NFS_V3=y
1855CONFIG_NFS_V3_ACL=y
1856CONFIG_NFS_V4=y
1857# CONFIG_NFS_V4_1 is not set
1858CONFIG_ROOT_NFS=y
1859CONFIG_NFSD=m
1860CONFIG_NFSD_V2_ACL=y
1861CONFIG_NFSD_V3=y
1862CONFIG_NFSD_V3_ACL=y
1863CONFIG_NFSD_V4=y
1864CONFIG_LOCKD=y
1865CONFIG_LOCKD_V4=y
1866CONFIG_EXPORTFS=m
1867CONFIG_NFS_ACL_SUPPORT=y
1868CONFIG_NFS_COMMON=y
1869CONFIG_SUNRPC=y
1870CONFIG_SUNRPC_GSS=y
1871CONFIG_SUNRPC_XPRT_RDMA=m
1872CONFIG_RPCSEC_GSS_KRB5=y
1873CONFIG_RPCSEC_GSS_SPKM3=m
1874# CONFIG_SMB_FS is not set
1875CONFIG_CIFS=m
1876# CONFIG_CIFS_STATS is not set
1877# CONFIG_CIFS_WEAK_PW_HASH is not set
1878CONFIG_CIFS_XATTR=y
1879CONFIG_CIFS_POSIX=y
1880# CONFIG_CIFS_DEBUG2 is not set
1881# CONFIG_CIFS_EXPERIMENTAL is not set
1882# CONFIG_NCP_FS is not set
1883# CONFIG_CODA_FS is not set
1884# CONFIG_AFS_FS is not set
1885
1886#
1887# Partition Types
1888#
1889CONFIG_PARTITION_ADVANCED=y
1890# CONFIG_ACORN_PARTITION is not set
1891# CONFIG_OSF_PARTITION is not set
1892# CONFIG_AMIGA_PARTITION is not set
1893# CONFIG_ATARI_PARTITION is not set
1894CONFIG_MAC_PARTITION=y
1895CONFIG_MSDOS_PARTITION=y
1896# CONFIG_BSD_DISKLABEL is not set
1897# CONFIG_MINIX_SUBPARTITION is not set
1898# CONFIG_SOLARIS_X86_PARTITION is not set
1899# CONFIG_UNIXWARE_DISKLABEL is not set
1900# CONFIG_LDM_PARTITION is not set
1901# CONFIG_SGI_PARTITION is not set
1902# CONFIG_ULTRIX_PARTITION is not set
1903# CONFIG_SUN_PARTITION is not set
1904# CONFIG_KARMA_PARTITION is not set
1905# CONFIG_EFI_PARTITION is not set
1906# CONFIG_SYSV68_PARTITION is not set
1907CONFIG_NLS=y
1908CONFIG_NLS_DEFAULT="iso8859-1"
1909CONFIG_NLS_CODEPAGE_437=y
1910CONFIG_NLS_CODEPAGE_737=m
1911CONFIG_NLS_CODEPAGE_775=m
1912CONFIG_NLS_CODEPAGE_850=m
1913CONFIG_NLS_CODEPAGE_852=m
1914CONFIG_NLS_CODEPAGE_855=m
1915CONFIG_NLS_CODEPAGE_857=m
1916CONFIG_NLS_CODEPAGE_860=m
1917CONFIG_NLS_CODEPAGE_861=m
1918CONFIG_NLS_CODEPAGE_862=m
1919CONFIG_NLS_CODEPAGE_863=m
1920CONFIG_NLS_CODEPAGE_864=m
1921CONFIG_NLS_CODEPAGE_865=m
1922CONFIG_NLS_CODEPAGE_866=m
1923CONFIG_NLS_CODEPAGE_869=m
1924CONFIG_NLS_CODEPAGE_936=m
1925CONFIG_NLS_CODEPAGE_950=m
1926CONFIG_NLS_CODEPAGE_932=m
1927CONFIG_NLS_CODEPAGE_949=m
1928CONFIG_NLS_CODEPAGE_874=m
1929CONFIG_NLS_ISO8859_8=m
1930CONFIG_NLS_CODEPAGE_1250=m
1931CONFIG_NLS_CODEPAGE_1251=m
1932CONFIG_NLS_ASCII=m
1933CONFIG_NLS_ISO8859_1=y
1934CONFIG_NLS_ISO8859_2=m
1935CONFIG_NLS_ISO8859_3=m
1936CONFIG_NLS_ISO8859_4=m
1937CONFIG_NLS_ISO8859_5=m
1938CONFIG_NLS_ISO8859_6=m
1939CONFIG_NLS_ISO8859_7=m
1940CONFIG_NLS_ISO8859_9=m
1941CONFIG_NLS_ISO8859_13=m
1942CONFIG_NLS_ISO8859_14=m
1943CONFIG_NLS_ISO8859_15=m
1944CONFIG_NLS_KOI8_R=m
1945CONFIG_NLS_KOI8_U=m
1946CONFIG_NLS_UTF8=m
1947# CONFIG_DLM is not set
1948CONFIG_BINARY_PRINTF=y
1949
1950#
1951# Library routines
1952#
1953CONFIG_BITREVERSE=y
1954CONFIG_GENERIC_FIND_LAST_BIT=y
1955CONFIG_CRC_CCITT=m
1956CONFIG_CRC16=y
1957CONFIG_CRC_T10DIF=y
1958CONFIG_CRC_ITU_T=m
1959CONFIG_CRC32=y
1960# CONFIG_CRC7 is not set
1961CONFIG_LIBCRC32C=m
1962CONFIG_ZLIB_INFLATE=y
1963CONFIG_ZLIB_DEFLATE=m
1964CONFIG_LZO_COMPRESS=m
1965CONFIG_LZO_DECOMPRESS=m
1966CONFIG_DECOMPRESS_GZIP=y
1967CONFIG_DECOMPRESS_BZIP2=y
1968CONFIG_DECOMPRESS_LZMA=y
1969CONFIG_TEXTSEARCH=y
1970CONFIG_TEXTSEARCH_KMP=m
1971CONFIG_TEXTSEARCH_BM=m
1972CONFIG_TEXTSEARCH_FSM=m
1973CONFIG_HAS_IOMEM=y
1974CONFIG_HAS_IOPORT=y
1975CONFIG_HAS_DMA=y
1976CONFIG_HAVE_LMB=y
1977CONFIG_NLATTR=y
1978
1979#
1980# Kernel hacking
1981#
1982# CONFIG_PRINTK_TIME is not set
1983CONFIG_ENABLE_WARN_DEPRECATED=y
1984CONFIG_ENABLE_MUST_CHECK=y
1985CONFIG_FRAME_WARN=2048
1986CONFIG_MAGIC_SYSRQ=y
1987# CONFIG_STRIP_ASM_SYMS is not set
1988# CONFIG_UNUSED_SYMBOLS is not set
1989CONFIG_DEBUG_FS=y
1990# CONFIG_HEADERS_CHECK is not set
1991CONFIG_DEBUG_KERNEL=y
1992# CONFIG_DEBUG_SHIRQ is not set
1993CONFIG_DETECT_SOFTLOCKUP=y
1994# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1995CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1996CONFIG_DETECT_HUNG_TASK=y
1997# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1998CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1999CONFIG_SCHED_DEBUG=y
2000CONFIG_SCHEDSTATS=y
2001# CONFIG_TIMER_STATS is not set
2002# CONFIG_DEBUG_OBJECTS is not set
2003# CONFIG_SLUB_DEBUG_ON is not set
2004# CONFIG_SLUB_STATS is not set
2005# CONFIG_DEBUG_KMEMLEAK is not set
2006# CONFIG_DEBUG_RT_MUTEXES is not set
2007# CONFIG_RT_MUTEX_TESTER is not set
2008# CONFIG_DEBUG_SPINLOCK is not set
2009CONFIG_DEBUG_MUTEXES=y
2010# CONFIG_DEBUG_LOCK_ALLOC is not set
2011# CONFIG_PROVE_LOCKING is not set
2012# CONFIG_LOCK_STAT is not set
2013CONFIG_TRACE_IRQFLAGS=y
2014# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
2015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
2016CONFIG_STACKTRACE=y
2017# CONFIG_DEBUG_KOBJECT is not set
2018CONFIG_DEBUG_BUGVERBOSE=y
2019# CONFIG_DEBUG_INFO is not set
2020# CONFIG_DEBUG_VM is not set
2021# CONFIG_DEBUG_WRITECOUNT is not set
2022CONFIG_DEBUG_MEMORY_INIT=y
2023# CONFIG_DEBUG_LIST is not set
2024# CONFIG_DEBUG_SG is not set
2025# CONFIG_DEBUG_NOTIFIERS is not set
2026# CONFIG_DEBUG_CREDENTIALS is not set
2027# CONFIG_RCU_TORTURE_TEST is not set
2028# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2029# CONFIG_BACKTRACE_SELF_TEST is not set
2030# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
2031# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
2032# CONFIG_FAULT_INJECTION is not set
2033CONFIG_LATENCYTOP=y
2034CONFIG_SYSCTL_SYSCALL_CHECK=y
2035# CONFIG_DEBUG_PAGEALLOC is not set
2036CONFIG_NOP_TRACER=y
2037CONFIG_HAVE_FUNCTION_TRACER=y
2038CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2039CONFIG_HAVE_DYNAMIC_FTRACE=y
2040CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2041CONFIG_TRACER_MAX_TRACE=y
2042CONFIG_RING_BUFFER=y
2043CONFIG_EVENT_TRACING=y
2044CONFIG_CONTEXT_SWITCH_TRACER=y
2045CONFIG_RING_BUFFER_ALLOW_SWAP=y
2046CONFIG_TRACING=y
2047CONFIG_GENERIC_TRACER=y
2048CONFIG_TRACING_SUPPORT=y
2049CONFIG_FTRACE=y
2050# CONFIG_FUNCTION_TRACER is not set
2051CONFIG_IRQSOFF_TRACER=y
2052CONFIG_SCHED_TRACER=y
2053# CONFIG_BOOT_TRACER is not set
2054CONFIG_BRANCH_PROFILE_NONE=y
2055# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
2056# CONFIG_PROFILE_ALL_BRANCHES is not set
2057# CONFIG_STACK_TRACER is not set
2058# CONFIG_KMEMTRACE is not set
2059# CONFIG_WORKQUEUE_TRACER is not set
2060CONFIG_BLK_DEV_IO_TRACE=y
2061# CONFIG_FTRACE_STARTUP_TEST is not set
2062# CONFIG_RING_BUFFER_BENCHMARK is not set
2063# CONFIG_DYNAMIC_DEBUG is not set
2064# CONFIG_DMA_API_DEBUG is not set
2065# CONFIG_SAMPLES is not set
2066CONFIG_HAVE_ARCH_KGDB=y
2067# CONFIG_KGDB is not set
2068# CONFIG_PPC_DISABLE_WERROR is not set
2069CONFIG_PPC_WERROR=y
2070CONFIG_PRINT_STACK_DEPTH=64
2071CONFIG_DEBUG_STACKOVERFLOW=y
2072CONFIG_DEBUG_STACK_USAGE=y
2073# CONFIG_PPC_EMULATED_STATS is not set
2074CONFIG_CODE_PATCHING_SELFTEST=y
2075CONFIG_FTR_FIXUP_SELFTEST=y
2076CONFIG_MSI_BITMAP_SELFTEST=y
2077CONFIG_XMON=y
2078# CONFIG_XMON_DEFAULT is not set
2079CONFIG_XMON_DISASSEMBLY=y
2080CONFIG_DEBUGGER=y
2081CONFIG_IRQSTACKS=y
2082# CONFIG_VIRQ_DEBUG is not set
2083# CONFIG_PPC_EARLY_DEBUG is not set
2084
2085#
2086# Security options
2087#
2088# CONFIG_KEYS is not set
2089# CONFIG_SECURITY is not set
2090# CONFIG_SECURITYFS is not set
2091# CONFIG_SECURITY_FILE_CAPABILITIES is not set
2092CONFIG_XOR_BLOCKS=y
2093CONFIG_ASYNC_CORE=y
2094CONFIG_ASYNC_MEMCPY=y
2095CONFIG_ASYNC_XOR=y
2096CONFIG_ASYNC_PQ=y
2097CONFIG_ASYNC_RAID6_RECOV=y
2098CONFIG_CRYPTO=y
2099
2100#
2101# Crypto core or helper
2102#
2103CONFIG_CRYPTO_ALGAPI=y
2104CONFIG_CRYPTO_ALGAPI2=y
2105CONFIG_CRYPTO_AEAD=m
2106CONFIG_CRYPTO_AEAD2=y
2107CONFIG_CRYPTO_BLKCIPHER=y
2108CONFIG_CRYPTO_BLKCIPHER2=y
2109CONFIG_CRYPTO_HASH=y
2110CONFIG_CRYPTO_HASH2=y
2111CONFIG_CRYPTO_RNG=m
2112CONFIG_CRYPTO_RNG2=y
2113CONFIG_CRYPTO_PCOMP=y
2114CONFIG_CRYPTO_MANAGER=y
2115CONFIG_CRYPTO_MANAGER2=y
2116CONFIG_CRYPTO_GF128MUL=m
2117CONFIG_CRYPTO_NULL=m
2118CONFIG_CRYPTO_WORKQUEUE=y
2119# CONFIG_CRYPTO_CRYPTD is not set
2120CONFIG_CRYPTO_AUTHENC=m
2121CONFIG_CRYPTO_TEST=m
2122
2123#
2124# Authenticated Encryption with Associated Data
2125#
2126CONFIG_CRYPTO_CCM=m
2127CONFIG_CRYPTO_GCM=m
2128CONFIG_CRYPTO_SEQIV=m
2129
2130#
2131# Block modes
2132#
2133CONFIG_CRYPTO_CBC=y
2134CONFIG_CRYPTO_CTR=m
2135# CONFIG_CRYPTO_CTS is not set
2136CONFIG_CRYPTO_ECB=m
2137# CONFIG_CRYPTO_LRW is not set
2138CONFIG_CRYPTO_PCBC=m
2139# CONFIG_CRYPTO_XTS is not set
2140
2141#
2142# Hash modes
2143#
2144CONFIG_CRYPTO_HMAC=y
2145# CONFIG_CRYPTO_XCBC is not set
2146# CONFIG_CRYPTO_VMAC is not set
2147
2148#
2149# Digest
2150#
2151CONFIG_CRYPTO_CRC32C=m
2152CONFIG_CRYPTO_GHASH=m
2153CONFIG_CRYPTO_MD4=m
2154CONFIG_CRYPTO_MD5=y
2155CONFIG_CRYPTO_MICHAEL_MIC=m
2156# CONFIG_CRYPTO_RMD128 is not set
2157# CONFIG_CRYPTO_RMD160 is not set
2158# CONFIG_CRYPTO_RMD256 is not set
2159# CONFIG_CRYPTO_RMD320 is not set
2160CONFIG_CRYPTO_SHA1=m
2161CONFIG_CRYPTO_SHA256=m
2162CONFIG_CRYPTO_SHA512=m
2163CONFIG_CRYPTO_TGR192=m
2164CONFIG_CRYPTO_WP512=m
2165
2166#
2167# Ciphers
2168#
2169CONFIG_CRYPTO_AES=m
2170CONFIG_CRYPTO_ANUBIS=m
2171CONFIG_CRYPTO_ARC4=m
2172CONFIG_CRYPTO_BLOWFISH=m
2173# CONFIG_CRYPTO_CAMELLIA is not set
2174CONFIG_CRYPTO_CAST5=m
2175CONFIG_CRYPTO_CAST6=m
2176CONFIG_CRYPTO_DES=y
2177# CONFIG_CRYPTO_FCRYPT is not set
2178CONFIG_CRYPTO_KHAZAD=m
2179CONFIG_CRYPTO_SALSA20=m
2180# CONFIG_CRYPTO_SEED is not set
2181CONFIG_CRYPTO_SERPENT=m
2182CONFIG_CRYPTO_TEA=m
2183CONFIG_CRYPTO_TWOFISH=m
2184CONFIG_CRYPTO_TWOFISH_COMMON=m
2185
2186#
2187# Compression
2188#
2189CONFIG_CRYPTO_DEFLATE=m
2190# CONFIG_CRYPTO_ZLIB is not set
2191CONFIG_CRYPTO_LZO=m
2192
2193#
2194# Random Number Generation
2195#
2196# CONFIG_CRYPTO_ANSI_CPRNG is not set
2197# CONFIG_CRYPTO_HW is not set
2198# CONFIG_PPC_CLOCK is not set
2199# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/include/asm/firmware.h b/arch/powerpc/include/asm/firmware.h
index 3a179827528d..20778a405d7a 100644
--- a/arch/powerpc/include/asm/firmware.h
+++ b/arch/powerpc/include/asm/firmware.h
@@ -37,7 +37,7 @@
37#define FW_FEATURE_VIO ASM_CONST(0x0000000000004000) 37#define FW_FEATURE_VIO ASM_CONST(0x0000000000004000)
38#define FW_FEATURE_RDMA ASM_CONST(0x0000000000008000) 38#define FW_FEATURE_RDMA ASM_CONST(0x0000000000008000)
39#define FW_FEATURE_LLAN ASM_CONST(0x0000000000010000) 39#define FW_FEATURE_LLAN ASM_CONST(0x0000000000010000)
40#define FW_FEATURE_BULK ASM_CONST(0x0000000000020000) 40#define FW_FEATURE_BULK_REMOVE ASM_CONST(0x0000000000020000)
41#define FW_FEATURE_XDABR ASM_CONST(0x0000000000040000) 41#define FW_FEATURE_XDABR ASM_CONST(0x0000000000040000)
42#define FW_FEATURE_MULTITCE ASM_CONST(0x0000000000080000) 42#define FW_FEATURE_MULTITCE ASM_CONST(0x0000000000080000)
43#define FW_FEATURE_SPLPAR ASM_CONST(0x0000000000100000) 43#define FW_FEATURE_SPLPAR ASM_CONST(0x0000000000100000)
@@ -45,8 +45,7 @@
45#define FW_FEATURE_LPAR ASM_CONST(0x0000000000400000) 45#define FW_FEATURE_LPAR ASM_CONST(0x0000000000400000)
46#define FW_FEATURE_PS3_LV1 ASM_CONST(0x0000000000800000) 46#define FW_FEATURE_PS3_LV1 ASM_CONST(0x0000000000800000)
47#define FW_FEATURE_BEAT ASM_CONST(0x0000000001000000) 47#define FW_FEATURE_BEAT ASM_CONST(0x0000000001000000)
48#define FW_FEATURE_BULK_REMOVE ASM_CONST(0x0000000002000000) 48#define FW_FEATURE_CMO ASM_CONST(0x0000000002000000)
49#define FW_FEATURE_CMO ASM_CONST(0x0000000004000000)
50 49
51#ifndef __ASSEMBLY__ 50#ifndef __ASSEMBLY__
52 51
@@ -58,8 +57,9 @@ enum {
58 FW_FEATURE_PERF | FW_FEATURE_DUMP | FW_FEATURE_INTERRUPT | 57 FW_FEATURE_PERF | FW_FEATURE_DUMP | FW_FEATURE_INTERRUPT |
59 FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ | 58 FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ |
60 FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN | 59 FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN |
61 FW_FEATURE_BULK | FW_FEATURE_XDABR | FW_FEATURE_MULTITCE | 60 FW_FEATURE_BULK_REMOVE | FW_FEATURE_XDABR |
62 FW_FEATURE_SPLPAR | FW_FEATURE_LPAR | FW_FEATURE_CMO, 61 FW_FEATURE_MULTITCE | FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
62 FW_FEATURE_CMO,
63 FW_FEATURE_PSERIES_ALWAYS = 0, 63 FW_FEATURE_PSERIES_ALWAYS = 0,
64 FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES | FW_FEATURE_LPAR, 64 FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
65 FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES | FW_FEATURE_LPAR, 65 FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 0b9c9135922e..03c862b6a9c4 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -711,6 +711,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
711 .cpu_setup = __setup_cpu_750, 711 .cpu_setup = __setup_cpu_750,
712 .machine_check = machine_check_generic, 712 .machine_check = machine_check_generic,
713 .platform = "ppc750", 713 .platform = "ppc750",
714 .oprofile_cpu_type = "ppc/750",
715 .oprofile_type = PPC_OPROFILE_G4,
714 }, 716 },
715 { /* 745/755 */ 717 { /* 745/755 */
716 .pvr_mask = 0xfffff000, 718 .pvr_mask = 0xfffff000,
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 900e0eea0099..9763267e38b4 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -658,42 +658,43 @@ do_work:
658 cmpdi r0,0 658 cmpdi r0,0
659 crandc eq,cr1*4+eq,eq 659 crandc eq,cr1*4+eq,eq
660 bne restore 660 bne restore
661 /* here we are preempting the current task */ 661
6621: 662 /* Here we are preempting the current task.
663#ifdef CONFIG_TRACE_IRQFLAGS 663 *
664 bl .trace_hardirqs_on 664 * Ensure interrupts are soft-disabled. We also properly mark
665 /* Note: we just clobbered r10 which used to contain the previous 665 * the PACA to reflect the fact that they are hard-disabled
666 * MSR before the hard-disabling done by the caller of do_work. 666 * and trace the change
667 * We don't have that value anymore, but it doesn't matter as
668 * we will hard-enable unconditionally, we can just reload the
669 * current MSR into r10
670 */ 667 */
671 mfmsr r10 668 li r0,0
672#endif /* CONFIG_TRACE_IRQFLAGS */
673 li r0,1
674 stb r0,PACASOFTIRQEN(r13) 669 stb r0,PACASOFTIRQEN(r13)
675 stb r0,PACAHARDIRQEN(r13) 670 stb r0,PACAHARDIRQEN(r13)
671 TRACE_DISABLE_INTS
672
673 /* Call the scheduler with soft IRQs off */
6741: bl .preempt_schedule_irq
675
676 /* Hard-disable interrupts again (and update PACA) */
676#ifdef CONFIG_PPC_BOOK3E 677#ifdef CONFIG_PPC_BOOK3E
677 wrteei 1
678 bl .preempt_schedule
679 wrteei 0 678 wrteei 0
680#else 679#else
681 ori r10,r10,MSR_EE
682 mtmsrd r10,1 /* reenable interrupts */
683 bl .preempt_schedule
684 mfmsr r10 680 mfmsr r10
685 clrrdi r9,r1,THREAD_SHIFT 681 rldicl r10,r10,48,1
686 rldicl r10,r10,48,1 /* disable interrupts again */
687 rotldi r10,r10,16 682 rotldi r10,r10,16
688 mtmsrd r10,1 683 mtmsrd r10,1
689#endif /* CONFIG_PPC_BOOK3E */ 684#endif /* CONFIG_PPC_BOOK3E */
685 li r0,0
686 stb r0,PACAHARDIRQEN(r13)
687
688 /* Re-test flags and eventually loop */
689 clrrdi r9,r1,THREAD_SHIFT
690 ld r4,TI_FLAGS(r9) 690 ld r4,TI_FLAGS(r9)
691 andi. r0,r4,_TIF_NEED_RESCHED 691 andi. r0,r4,_TIF_NEED_RESCHED
692 bne 1b 692 bne 1b
693 b restore 693 b restore
694 694
695user_work: 695user_work:
696#endif 696#endif /* CONFIG_PREEMPT */
697
697 /* Enable interrupts */ 698 /* Enable interrupts */
698#ifdef CONFIG_PPC_BOOK3E 699#ifdef CONFIG_PPC_BOOK3E
699 wrteei 1 700 wrteei 1
@@ -1038,8 +1039,7 @@ _GLOBAL(mod_return_to_handler)
1038 * We are in a module using the module's TOC. 1039 * We are in a module using the module's TOC.
1039 * Switch to our TOC to run inside the core kernel. 1040 * Switch to our TOC to run inside the core kernel.
1040 */ 1041 */
1041 LOAD_REG_IMMEDIATE(r4,ftrace_return_to_handler) 1042 ld r2, PACATOC(r13)
1042 ld r2, 8(r4)
1043 1043
1044 bl .ftrace_return_to_handler 1044 bl .ftrace_return_to_handler
1045 nop 1045 nop
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index fe8f71dd0b3f..641c74bb8e27 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -282,12 +282,6 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
282{ 282{
283 unsigned long *ptr = gdb_regs; 283 unsigned long *ptr = gdb_regs;
284 int reg; 284 int reg;
285#ifdef CONFIG_SPE
286 union {
287 u32 v32[2];
288 u64 v64;
289 } acc;
290#endif
291 285
292 for (reg = 0; reg < 32; reg++) 286 for (reg = 0; reg < 32; reg++)
293 UNPACK64(regs->gpr[reg], ptr); 287 UNPACK64(regs->gpr[reg], ptr);
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index bb8209e34931..e8dfdbd9327a 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1190,7 +1190,7 @@ EXPORT_SYMBOL(pcibios_align_resource);
1190 * Reparent resource children of pr that conflict with res 1190 * Reparent resource children of pr that conflict with res
1191 * under res, and make res replace those children. 1191 * under res, and make res replace those children.
1192 */ 1192 */
1193static int __init reparent_resources(struct resource *parent, 1193static int reparent_resources(struct resource *parent,
1194 struct resource *res) 1194 struct resource *res)
1195{ 1195{
1196 struct resource *p, **pp; 1196 struct resource *p, **pp;
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index ba949a2c93ac..ccf56ac92de5 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -97,7 +97,9 @@ int pcibios_unmap_io_space(struct pci_bus *bus)
97 * to do an appropriate TLB flush here too 97 * to do an appropriate TLB flush here too
98 */ 98 */
99 if (bus->self) { 99 if (bus->self) {
100#ifdef CONFIG_PPC_STD_MMU_64
100 struct resource *res = bus->resource[0]; 101 struct resource *res = bus->resource[0];
102#endif
101 103
102 pr_debug("IO unmapping for PCI-PCI bridge %s\n", 104 pr_debug("IO unmapping for PCI-PCI bridge %s\n",
103 pci_name(bus->self)); 105 pci_name(bus->self));
diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
index bbcbae183e92..87f1663584b0 100644
--- a/arch/powerpc/kernel/perf_event.c
+++ b/arch/powerpc/kernel/perf_event.c
@@ -116,20 +116,23 @@ static inline void perf_get_data_addr(struct pt_regs *regs, u64 *addrp)
116static inline u32 perf_get_misc_flags(struct pt_regs *regs) 116static inline u32 perf_get_misc_flags(struct pt_regs *regs)
117{ 117{
118 unsigned long mmcra = regs->dsisr; 118 unsigned long mmcra = regs->dsisr;
119 unsigned long sihv = MMCRA_SIHV;
120 unsigned long sipr = MMCRA_SIPR;
119 121
120 if (TRAP(regs) != 0xf00) 122 if (TRAP(regs) != 0xf00)
121 return 0; /* not a PMU interrupt */ 123 return 0; /* not a PMU interrupt */
122 124
123 if (ppmu->flags & PPMU_ALT_SIPR) { 125 if (ppmu->flags & PPMU_ALT_SIPR) {
124 if (mmcra & POWER6_MMCRA_SIHV) 126 sihv = POWER6_MMCRA_SIHV;
125 return PERF_RECORD_MISC_HYPERVISOR; 127 sipr = POWER6_MMCRA_SIPR;
126 return (mmcra & POWER6_MMCRA_SIPR) ?
127 PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL;
128 } 128 }
129 if (mmcra & MMCRA_SIHV) 129
130 /* PR has priority over HV, so order below is important */
131 if (mmcra & sipr)
132 return PERF_RECORD_MISC_USER;
133 if ((mmcra & sihv) && (freeze_events_kernel != MMCR0_FCHV))
130 return PERF_RECORD_MISC_HYPERVISOR; 134 return PERF_RECORD_MISC_HYPERVISOR;
131 return (mmcra & MMCRA_SIPR) ? PERF_RECORD_MISC_USER : 135 return PERF_RECORD_MISC_KERNEL;
132 PERF_RECORD_MISC_KERNEL;
133} 136}
134 137
135/* 138/*
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 1168c5f440ab..c930ac38e59f 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1016,9 +1016,13 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
1016#ifdef CONFIG_FUNCTION_GRAPH_TRACER 1016#ifdef CONFIG_FUNCTION_GRAPH_TRACER
1017 int curr_frame = current->curr_ret_stack; 1017 int curr_frame = current->curr_ret_stack;
1018 extern void return_to_handler(void); 1018 extern void return_to_handler(void);
1019 unsigned long addr = (unsigned long)return_to_handler; 1019 unsigned long rth = (unsigned long)return_to_handler;
1020 unsigned long mrth = -1;
1020#ifdef CONFIG_PPC64 1021#ifdef CONFIG_PPC64
1021 addr = *(unsigned long*)addr; 1022 extern void mod_return_to_handler(void);
1023 rth = *(unsigned long *)rth;
1024 mrth = (unsigned long)mod_return_to_handler;
1025 mrth = *(unsigned long *)mrth;
1022#endif 1026#endif
1023#endif 1027#endif
1024 1028
@@ -1044,7 +1048,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
1044 if (!firstframe || ip != lr) { 1048 if (!firstframe || ip != lr) {
1045 printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip); 1049 printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
1046#ifdef CONFIG_FUNCTION_GRAPH_TRACER 1050#ifdef CONFIG_FUNCTION_GRAPH_TRACER
1047 if (ip == addr && curr_frame >= 0) { 1051 if ((ip == rth || ip == mrth) && curr_frame >= 0) {
1048 printk(" (%pS)", 1052 printk(" (%pS)",
1049 (void *)current->ret_stack[curr_frame].ret); 1053 (void *)current->ret_stack[curr_frame].ret);
1050 curr_frame--; 1054 curr_frame--;
@@ -1168,7 +1172,7 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
1168 unsigned long base = mm->brk; 1172 unsigned long base = mm->brk;
1169 unsigned long ret; 1173 unsigned long ret;
1170 1174
1171#ifdef CONFIG_PPC64 1175#ifdef CONFIG_PPC_STD_MMU_64
1172 /* 1176 /*
1173 * If we are using 1TB segments and we are allowed to randomise 1177 * If we are using 1TB segments and we are allowed to randomise
1174 * the heap, we can put it above 1TB so it is backed by a 1TB 1178 * the heap, we can put it above 1TB so it is backed by a 1TB
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 797ea95aae2e..04f638d82fb3 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -57,7 +57,6 @@
57#include <asm/cache.h> 57#include <asm/cache.h>
58#include <asm/page.h> 58#include <asm/page.h>
59#include <asm/mmu.h> 59#include <asm/mmu.h>
60#include <asm/mmu-hash64.h>
61#include <asm/firmware.h> 60#include <asm/firmware.h>
62#include <asm/xmon.h> 61#include <asm/xmon.h>
63#include <asm/udbg.h> 62#include <asm/udbg.h>
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index 94e2df3cae07..137dc22afa42 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -50,6 +50,9 @@
50/* Max supported size for symbol names */ 50/* Max supported size for symbol names */
51#define MAX_SYMNAME 64 51#define MAX_SYMNAME 64
52 52
53/* The alignment of the vDSO */
54#define VDSO_ALIGNMENT (1 << 16)
55
53extern char vdso32_start, vdso32_end; 56extern char vdso32_start, vdso32_end;
54static void *vdso32_kbase = &vdso32_start; 57static void *vdso32_kbase = &vdso32_start;
55static unsigned int vdso32_pages; 58static unsigned int vdso32_pages;
@@ -231,15 +234,21 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
231 * pick a base address for the vDSO in process space. We try to put it 234 * pick a base address for the vDSO in process space. We try to put it
232 * at vdso_base which is the "natural" base for it, but we might fail 235 * at vdso_base which is the "natural" base for it, but we might fail
233 * and end up putting it elsewhere. 236 * and end up putting it elsewhere.
237 * Add enough to the size so that the result can be aligned.
234 */ 238 */
235 down_write(&mm->mmap_sem); 239 down_write(&mm->mmap_sem);
236 vdso_base = get_unmapped_area(NULL, vdso_base, 240 vdso_base = get_unmapped_area(NULL, vdso_base,
237 vdso_pages << PAGE_SHIFT, 0, 0); 241 (vdso_pages << PAGE_SHIFT) +
242 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
243 0, 0);
238 if (IS_ERR_VALUE(vdso_base)) { 244 if (IS_ERR_VALUE(vdso_base)) {
239 rc = vdso_base; 245 rc = vdso_base;
240 goto fail_mmapsem; 246 goto fail_mmapsem;
241 } 247 }
242 248
249 /* Add required alignment. */
250 vdso_base = ALIGN(vdso_base, VDSO_ALIGNMENT);
251
243 /* 252 /*
244 * Put vDSO base into mm struct. We need to do this before calling 253 * Put vDSO base into mm struct. We need to do this before calling
245 * install_special_mapping or the perf counter mmap tracking code 254 * install_special_mapping or the perf counter mmap tracking code
diff --git a/arch/powerpc/kernel/vdso32/vdso32.lds.S b/arch/powerpc/kernel/vdso32/vdso32.lds.S
index 904ef1360dd7..0546bcd49cd0 100644
--- a/arch/powerpc/kernel/vdso32/vdso32.lds.S
+++ b/arch/powerpc/kernel/vdso32/vdso32.lds.S
@@ -25,7 +25,7 @@ SECTIONS
25 . = ALIGN(16); 25 . = ALIGN(16);
26 .text : { 26 .text : {
27 *(.text .stub .text.* .gnu.linkonce.t.* __ftr_alt_*) 27 *(.text .stub .text.* .gnu.linkonce.t.* __ftr_alt_*)
28 } 28 } :text
29 PROVIDE(__etext = .); 29 PROVIDE(__etext = .);
30 PROVIDE(_etext = .); 30 PROVIDE(_etext = .);
31 PROVIDE(etext = .); 31 PROVIDE(etext = .);
@@ -56,7 +56,7 @@ SECTIONS
56 .fixup : { *(.fixup) } 56 .fixup : { *(.fixup) }
57 57
58 .dynamic : { *(.dynamic) } :text :dynamic 58 .dynamic : { *(.dynamic) } :text :dynamic
59 .got : { *(.got) } 59 .got : { *(.got) } :text
60 .plt : { *(.plt) } 60 .plt : { *(.plt) }
61 61
62 _end = .; 62 _end = .;
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index f56429362a12..27735a7ac12b 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -236,6 +236,7 @@ SECTIONS
236 READ_MOSTLY_DATA(L1_CACHE_BYTES) 236 READ_MOSTLY_DATA(L1_CACHE_BYTES)
237 } 237 }
238 238
239 . = ALIGN(PAGE_SIZE);
239 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { 240 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
240 NOSAVE_DATA 241 NOSAVE_DATA
241 } 242 }
diff --git a/arch/powerpc/mm/slb_low.S b/arch/powerpc/mm/slb_low.S
index bc44dc4b5c67..95ce35581696 100644
--- a/arch/powerpc/mm/slb_low.S
+++ b/arch/powerpc/mm/slb_low.S
@@ -72,19 +72,17 @@ _GLOBAL(slb_miss_kernel_load_vmemmap)
721: 721:
73#endif /* CONFIG_SPARSEMEM_VMEMMAP */ 73#endif /* CONFIG_SPARSEMEM_VMEMMAP */
74 74
75 /* vmalloc/ioremap mapping encoding bits, the "li" instructions below 75 /* vmalloc mapping gets the encoding from the PACA as the mapping
76 * will be patched by the kernel at boot 76 * can be demoted from 64K -> 4K dynamically on some machines
77 */ 77 */
78BEGIN_FTR_SECTION
79 /* check whether this is in vmalloc or ioremap space */
80 clrldi r11,r10,48 78 clrldi r11,r10,48
81 cmpldi r11,(VMALLOC_SIZE >> 28) - 1 79 cmpldi r11,(VMALLOC_SIZE >> 28) - 1
82 bgt 5f 80 bgt 5f
83 lhz r11,PACAVMALLOCSLLP(r13) 81 lhz r11,PACAVMALLOCSLLP(r13)
84 b 6f 82 b 6f
855: 835:
86END_FTR_SECTION_IFCLR(CPU_FTR_CI_LARGE_PAGE) 84 /* IO mapping */
87_GLOBAL(slb_miss_kernel_load_io) 85 _GLOBAL(slb_miss_kernel_load_io)
88 li r11,0 86 li r11,0
896: 876:
90BEGIN_FTR_SECTION 88BEGIN_FTR_SECTION
diff --git a/arch/powerpc/platforms/52xx/mpc5200_simple.c b/arch/powerpc/platforms/52xx/mpc5200_simple.c
index c31e5b534f0a..d45be5b5ad49 100644
--- a/arch/powerpc/platforms/52xx/mpc5200_simple.c
+++ b/arch/powerpc/platforms/52xx/mpc5200_simple.c
@@ -51,6 +51,8 @@ static void __init mpc5200_simple_setup_arch(void)
51/* list of the supported boards */ 51/* list of the supported boards */
52static char *board[] __initdata = { 52static char *board[] __initdata = {
53 "intercontrol,digsy-mtc", 53 "intercontrol,digsy-mtc",
54 "manroland,mucmc52",
55 "manroland,uc101",
54 "phytec,pcm030", 56 "phytec,pcm030",
55 "phytec,pcm032", 57 "phytec,pcm032",
56 "promess,motionpro", 58 "promess,motionpro",
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index aca5741ddc67..a86c34b3bb84 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -365,7 +365,7 @@ static int axon_msi_probe(struct of_device *device,
365 printk(KERN_ERR 365 printk(KERN_ERR
366 "axon_msi: couldn't parse dcr properties on %s\n", 366 "axon_msi: couldn't parse dcr properties on %s\n",
367 dn->full_name); 367 dn->full_name);
368 goto out; 368 goto out_free_msic;
369 } 369 }
370 370
371 msic->dcr_host = dcr_map(dn, dcr_base, dcr_len); 371 msic->dcr_host = dcr_map(dn, dcr_base, dcr_len);
diff --git a/arch/powerpc/platforms/iseries/Makefile b/arch/powerpc/platforms/iseries/Makefile
index cc7161ff1666..ce014928d460 100644
--- a/arch/powerpc/platforms/iseries/Makefile
+++ b/arch/powerpc/platforms/iseries/Makefile
@@ -1,18 +1,9 @@
1EXTRA_CFLAGS += -mno-minimal-toc 1EXTRA_CFLAGS += -mno-minimal-toc
2 2
3extra-y += dt.o
4
5obj-y += exception.o 3obj-y += exception.o
6obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o dt_mod.o mf.o lpevents.o \ 4obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o dt.o mf.o lpevents.o \
7 hvcall.o proc.o htab.o iommu.o misc.o irq.o 5 hvcall.o proc.o htab.o iommu.o misc.o irq.o
8obj-$(CONFIG_PCI) += pci.o 6obj-$(CONFIG_PCI) += pci.o
9obj-$(CONFIG_SMP) += smp.o 7obj-$(CONFIG_SMP) += smp.o
10obj-$(CONFIG_VIOPATH) += viopath.o vio.o 8obj-$(CONFIG_VIOPATH) += viopath.o vio.o
11obj-$(CONFIG_MODULES) += ksyms.o 9obj-$(CONFIG_MODULES) += ksyms.o
12
13quiet_cmd_dt_strings = DT_STR $@
14 cmd_dt_strings = $(OBJCOPY) --rename-section .rodata.str1.8=.dt_strings \
15 $< $@
16
17$(obj)/dt_mod.o: $(obj)/dt.o
18 $(call if_changed,dt_strings)
diff --git a/arch/powerpc/platforms/iseries/dt.c b/arch/powerpc/platforms/iseries/dt.c
index c5a87a72057b..7f45a51fe793 100644
--- a/arch/powerpc/platforms/iseries/dt.c
+++ b/arch/powerpc/platforms/iseries/dt.c
@@ -51,11 +51,16 @@
51 51
52/* 52/*
53 * These are created by the linker script at the start and end 53 * These are created by the linker script at the start and end
54 * of the section containing all the strings from this file. 54 * of the section containing all the strings marked with the DS macro.
55 */ 55 */
56extern char __dt_strings_start[]; 56extern char __dt_strings_start[];
57extern char __dt_strings_end[]; 57extern char __dt_strings_end[];
58 58
59#define DS(s) ({ \
60 static const char __s[] __attribute__((section(".dt_strings"))) = s; \
61 __s; \
62})
63
59struct iseries_flat_dt { 64struct iseries_flat_dt {
60 struct boot_param_header header; 65 struct boot_param_header header;
61 u64 reserve_map[2]; 66 u64 reserve_map[2];
@@ -64,9 +69,8 @@ struct iseries_flat_dt {
64static void * __initdata dt_data; 69static void * __initdata dt_data;
65 70
66/* 71/*
67 * Putting these strings here keeps them out of the section 72 * Putting these strings here keeps them out of the .dt_strings section
68 * that we rename to .dt_strings using objcopy and capture 73 * that we capture for the strings blob of the flattened device tree.
69 * for the strings blob of the flattened device tree.
70 */ 74 */
71static char __initdata device_type_cpu[] = "cpu"; 75static char __initdata device_type_cpu[] = "cpu";
72static char __initdata device_type_memory[] = "memory"; 76static char __initdata device_type_memory[] = "memory";
@@ -173,7 +177,7 @@ static void __init dt_start_node(struct iseries_flat_dt *dt, const char *name)
173 177
174#define dt_end_node(dt) dt_push_u32(dt, OF_DT_END_NODE) 178#define dt_end_node(dt) dt_push_u32(dt, OF_DT_END_NODE)
175 179
176static void __init dt_prop(struct iseries_flat_dt *dt, const char *name, 180static void __init __dt_prop(struct iseries_flat_dt *dt, const char *name,
177 const void *data, int len) 181 const void *data, int len)
178{ 182{
179 unsigned long offset; 183 unsigned long offset;
@@ -191,44 +195,32 @@ static void __init dt_prop(struct iseries_flat_dt *dt, const char *name,
191 /* The actual data. */ 195 /* The actual data. */
192 dt_push_bytes(dt, data, len); 196 dt_push_bytes(dt, data, len);
193} 197}
198#define dt_prop(dt, name, data, len) __dt_prop((dt), DS(name), (data), (len))
194 199
195static void __init dt_prop_str(struct iseries_flat_dt *dt, const char *name, 200#define dt_prop_str(dt, name, data) \
196 const char *data) 201 dt_prop((dt), name, (data), strlen((data)) + 1); /* + 1 for NULL */
197{
198 dt_prop(dt, name, data, strlen(data) + 1); /* + 1 for NULL */
199}
200 202
201static void __init dt_prop_u32(struct iseries_flat_dt *dt, const char *name, 203static void __init __dt_prop_u32(struct iseries_flat_dt *dt, const char *name,
202 u32 data) 204 u32 data)
203{ 205{
204 dt_prop(dt, name, &data, sizeof(u32)); 206 __dt_prop(dt, name, &data, sizeof(u32));
205} 207}
208#define dt_prop_u32(dt, name, data) __dt_prop_u32((dt), DS(name), (data))
206 209
207static void __init __maybe_unused dt_prop_u64(struct iseries_flat_dt *dt, 210static void __init __maybe_unused __dt_prop_u64(struct iseries_flat_dt *dt,
208 const char *name, 211 const char *name, u64 data)
209 u64 data)
210{ 212{
211 dt_prop(dt, name, &data, sizeof(u64)); 213 __dt_prop(dt, name, &data, sizeof(u64));
212} 214}
215#define dt_prop_u64(dt, name, data) __dt_prop_u64((dt), DS(name), (data))
213 216
214static void __init dt_prop_u64_list(struct iseries_flat_dt *dt, 217#define dt_prop_u64_list(dt, name, data, n) \
215 const char *name, u64 *data, int n) 218 dt_prop((dt), name, (data), sizeof(u64) * (n))
216{
217 dt_prop(dt, name, data, sizeof(u64) * n);
218}
219 219
220static void __init dt_prop_u32_list(struct iseries_flat_dt *dt, 220#define dt_prop_u32_list(dt, name, data, n) \
221 const char *name, u32 *data, int n) 221 dt_prop((dt), name, (data), sizeof(u32) * (n))
222{
223 dt_prop(dt, name, data, sizeof(u32) * n);
224}
225 222
226#ifdef notyet 223#define dt_prop_empty(dt, name) dt_prop((dt), name, NULL, 0)
227static void __init dt_prop_empty(struct iseries_flat_dt *dt, const char *name)
228{
229 dt_prop(dt, name, NULL, 0);
230}
231#endif
232 224
233static void __init dt_cpus(struct iseries_flat_dt *dt) 225static void __init dt_cpus(struct iseries_flat_dt *dt)
234{ 226{
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index 21226b74c9b2..414ca9849f23 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -540,8 +540,11 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
540 /* Make sure IRQ is disabled */ 540 /* Make sure IRQ is disabled */
541 kw_write_reg(reg_ier, 0); 541 kw_write_reg(reg_ier, 0);
542 542
543 /* Request chip interrupt */ 543 /* Request chip interrupt. We set IRQF_TIMER because we don't
544 if (request_irq(host->irq, kw_i2c_irq, 0, "keywest i2c", host)) 544 * want that interrupt disabled between the 2 passes of driver
545 * suspend or we'll have issues running the pfuncs
546 */
547 if (request_irq(host->irq, kw_i2c_irq, IRQF_TIMER, "keywest i2c", host))
545 host->irq = NO_IRQ; 548 host->irq = NO_IRQ;
546 549
547 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n", 550 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n",
diff --git a/arch/powerpc/platforms/pseries/firmware.c b/arch/powerpc/platforms/pseries/firmware.c
index 5a707da3f5c2..0a14d8cd314f 100644
--- a/arch/powerpc/platforms/pseries/firmware.c
+++ b/arch/powerpc/platforms/pseries/firmware.c
@@ -51,11 +51,10 @@ firmware_features_table[FIRMWARE_MAX_FEATURES] = {
51 {FW_FEATURE_VIO, "hcall-vio"}, 51 {FW_FEATURE_VIO, "hcall-vio"},
52 {FW_FEATURE_RDMA, "hcall-rdma"}, 52 {FW_FEATURE_RDMA, "hcall-rdma"},
53 {FW_FEATURE_LLAN, "hcall-lLAN"}, 53 {FW_FEATURE_LLAN, "hcall-lLAN"},
54 {FW_FEATURE_BULK, "hcall-bulk"}, 54 {FW_FEATURE_BULK_REMOVE, "hcall-bulk"},
55 {FW_FEATURE_XDABR, "hcall-xdabr"}, 55 {FW_FEATURE_XDABR, "hcall-xdabr"},
56 {FW_FEATURE_MULTITCE, "hcall-multi-tce"}, 56 {FW_FEATURE_MULTITCE, "hcall-multi-tce"},
57 {FW_FEATURE_SPLPAR, "hcall-splpar"}, 57 {FW_FEATURE_SPLPAR, "hcall-splpar"},
58 {FW_FEATURE_BULK_REMOVE, "hcall-bulk"},
59}; 58};
60 59
61/* Build up the firmware features bitmask using the contents of 60/* Build up the firmware features bitmask using the contents of
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c6f0a71b405e..bdbe96c8a7e4 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -517,6 +517,15 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
517 in_xmon = 0; 517 in_xmon = 0;
518#endif 518#endif
519 519
520#ifdef CONFIG_BOOKE
521 if (regs->msr & MSR_DE) {
522 bp = at_breakpoint(regs->nip);
523 if (bp != NULL) {
524 regs->nip = (unsigned long) &bp->instr[0];
525 atomic_inc(&bp->ref_count);
526 }
527 }
528#else
520 if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) == (MSR_IR|MSR_SF)) { 529 if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) == (MSR_IR|MSR_SF)) {
521 bp = at_breakpoint(regs->nip); 530 bp = at_breakpoint(regs->nip);
522 if (bp != NULL) { 531 if (bp != NULL) {
@@ -530,7 +539,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
530 } 539 }
531 } 540 }
532 } 541 }
533 542#endif
534 insert_cpu_bpts(); 543 insert_cpu_bpts();
535 544
536 local_irq_restore(flags); 545 local_irq_restore(flags);
@@ -894,6 +903,14 @@ cmds(struct pt_regs *excp)
894 } 903 }
895} 904}
896 905
906#ifdef CONFIG_BOOKE
907static int do_step(struct pt_regs *regs)
908{
909 regs->msr |= MSR_DE;
910 mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
911 return 1;
912}
913#else
897/* 914/*
898 * Step a single instruction. 915 * Step a single instruction.
899 * Some instructions we emulate, others we execute with MSR_SE set. 916 * Some instructions we emulate, others we execute with MSR_SE set.
@@ -924,6 +941,7 @@ static int do_step(struct pt_regs *regs)
924 regs->msr |= MSR_SE; 941 regs->msr |= MSR_SE;
925 return 1; 942 return 1;
926} 943}
944#endif
927 945
928static void bootcmds(void) 946static void bootcmds(void)
929{ 947{
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c
index 704dd396257b..77df726180ba 100644
--- a/arch/s390/hypfs/hypfs_diag.c
+++ b/arch/s390/hypfs/hypfs_diag.c
@@ -438,7 +438,7 @@ static int diag204_probe(void)
438 } 438 }
439 if (diag204((unsigned long)SUBC_STIB6 | 439 if (diag204((unsigned long)SUBC_STIB6 |
440 (unsigned long)INFO_EXT, pages, buf) >= 0) { 440 (unsigned long)INFO_EXT, pages, buf) >= 0) {
441 diag204_store_sc = SUBC_STIB7; 441 diag204_store_sc = SUBC_STIB6;
442 diag204_info_type = INFO_EXT; 442 diag204_info_type = INFO_EXT;
443 goto out; 443 goto out;
444 } 444 }
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h
index 24b1244aadb9..f23961ada7fb 100644
--- a/arch/s390/include/asm/cputime.h
+++ b/arch/s390/include/asm/cputime.h
@@ -78,7 +78,7 @@ cputime64_to_jiffies64(cputime64_t cputime)
78static inline unsigned int 78static inline unsigned int
79cputime_to_msecs(const cputime_t cputime) 79cputime_to_msecs(const cputime_t cputime)
80{ 80{
81 return __div(cputime, 4096000); 81 return cputime_div(cputime, 4096000);
82} 82}
83 83
84static inline cputime_t 84static inline cputime_t
@@ -160,7 +160,7 @@ cputime_to_timeval(const cputime_t cputime, struct timeval *value)
160static inline clock_t 160static inline clock_t
161cputime_to_clock_t(cputime_t cputime) 161cputime_to_clock_t(cputime_t cputime)
162{ 162{
163 return __div(cputime, 4096000000ULL / USER_HZ); 163 return cputime_div(cputime, 4096000000ULL / USER_HZ);
164} 164}
165 165
166static inline cputime_t 166static inline cputime_t
@@ -175,7 +175,7 @@ clock_t_to_cputime(unsigned long x)
175static inline clock_t 175static inline clock_t
176cputime64_to_clock_t(cputime64_t cputime) 176cputime64_to_clock_t(cputime64_t cputime)
177{ 177{
178 return __div(cputime, 4096000000ULL / USER_HZ); 178 return cputime_div(cputime, 4096000000ULL / USER_HZ);
179} 179}
180 180
181struct s390_idle_data { 181struct s390_idle_data {
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index ee57a42e6e93..4890ac6d7faa 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -1595,10 +1595,9 @@ static void stop_run(struct shutdown_trigger *trigger)
1595{ 1595{
1596 if (strcmp(trigger->name, ON_PANIC_STR) == 0) 1596 if (strcmp(trigger->name, ON_PANIC_STR) == 0)
1597 disabled_wait((unsigned long) __builtin_return_address(0)); 1597 disabled_wait((unsigned long) __builtin_return_address(0));
1598 else { 1598 while (signal_processor(smp_processor_id(), sigp_stop) == sigp_busy)
1599 signal_processor(smp_processor_id(), sigp_stop); 1599 cpu_relax();
1600 for (;;); 1600 for (;;);
1601 }
1602} 1601}
1603 1602
1604static struct shutdown_action stop_action = {SHUTDOWN_ACTION_STOP_STR, 1603static struct shutdown_action stop_action = {SHUTDOWN_ACTION_STOP_STR,
diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c
index 802c8ab247f3..0729f36c2fe3 100644
--- a/arch/s390/kernel/processor.c
+++ b/arch/s390/kernel/processor.c
@@ -31,9 +31,9 @@ void __cpuinit print_cpu_info(void)
31 31
32static int show_cpuinfo(struct seq_file *m, void *v) 32static int show_cpuinfo(struct seq_file *m, void *v)
33{ 33{
34 static const char *hwcap_str[9] = { 34 static const char *hwcap_str[10] = {
35 "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", 35 "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp",
36 "edat", "etf3eh" 36 "edat", "etf3eh", "highgprs"
37 }; 37 };
38 struct _lowcore *lc; 38 struct _lowcore *lc;
39 unsigned long n = (unsigned long) v - 1; 39 unsigned long n = (unsigned long) v - 1;
@@ -48,7 +48,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
48 num_online_cpus(), loops_per_jiffy/(500000/HZ), 48 num_online_cpus(), loops_per_jiffy/(500000/HZ),
49 (loops_per_jiffy/(5000/HZ))%100); 49 (loops_per_jiffy/(5000/HZ))%100);
50 seq_puts(m, "features\t: "); 50 seq_puts(m, "features\t: ");
51 for (i = 0; i < 9; i++) 51 for (i = 0; i < 10; i++)
52 if (hwcap_str[i] && (elf_hwcap & (1UL << i))) 52 if (hwcap_str[i] && (elf_hwcap & (1UL << i)))
53 seq_printf(m, "%s ", hwcap_str[i]); 53 seq_printf(m, "%s ", hwcap_str[i]);
54 seq_puts(m, "\n"); 54 seq_puts(m, "\n");
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index c932caa5e850..93e52039321b 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -76,7 +76,6 @@ static int cpu_stopped(int cpu)
76 __u32 status; 76 __u32 status;
77 77
78 switch (signal_processor_ps(&status, 0, cpu, sigp_sense)) { 78 switch (signal_processor_ps(&status, 0, cpu, sigp_sense)) {
79 case sigp_order_code_accepted:
80 case sigp_status_stored: 79 case sigp_status_stored:
81 /* Check for stopped and check stop state */ 80 /* Check for stopped and check stop state */
82 if (status & 0x50) 81 if (status & 0x50)
@@ -638,6 +637,8 @@ void __cpu_die(unsigned int cpu)
638 /* Wait until target cpu is down */ 637 /* Wait until target cpu is down */
639 while (!cpu_stopped(cpu)) 638 while (!cpu_stopped(cpu))
640 cpu_relax(); 639 cpu_relax();
640 while (signal_processor_p(0, cpu, sigp_set_prefix) == sigp_busy)
641 udelay(10);
641 smp_free_lowcore(cpu); 642 smp_free_lowcore(cpu);
642 pr_info("Processor %d stopped\n", cpu); 643 pr_info("Processor %d stopped\n", cpu);
643} 644}
@@ -645,8 +646,8 @@ void __cpu_die(unsigned int cpu)
645void cpu_die(void) 646void cpu_die(void)
646{ 647{
647 idle_task_exit(); 648 idle_task_exit();
648 signal_processor(smp_processor_id(), sigp_stop); 649 while (signal_processor(smp_processor_id(), sigp_stop) == sigp_busy)
649 BUG(); 650 cpu_relax();
650 for (;;); 651 for (;;);
651} 652}
652 653
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S
index 7c8653e27db6..0c26cc1898ec 100644
--- a/arch/s390/kernel/swsusp_asm64.S
+++ b/arch/s390/kernel/swsusp_asm64.S
@@ -199,6 +199,7 @@ pgm_check_entry:
199 brc 2,4b /* busy, try again */ 199 brc 2,4b /* busy, try again */
2005: 2005:
201 sigp %r9,%r2,__SIGP_STOP /* stop resume (current) CPU */ 201 sigp %r9,%r2,__SIGP_STOP /* stop resume (current) CPU */
202 brc 2,5b /* busy, try again */
2026: j 6b 2036: j 6b
203 204
204restart_suspend: 205restart_suspend:
@@ -206,6 +207,7 @@ restart_suspend:
206 llgh %r2,0(%r1) 207 llgh %r2,0(%r1)
2077: 2087:
208 sigp %r9,%r2,__SIGP_SENSE /* Wait for resume CPU */ 209 sigp %r9,%r2,__SIGP_SENSE /* Wait for resume CPU */
210 brc 8,7b /* accepted, status 0, still running */
209 brc 2,7b /* busy, try again */ 211 brc 2,7b /* busy, try again */
210 tmll %r9,0x40 /* Test if resume CPU is stopped */ 212 tmll %r9,0x40 /* Test if resume CPU is stopped */
211 jz 7b 213 jz 7b
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index b940424f8ccc..88cdeb9f72d9 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -37,7 +37,6 @@ config SUPERH32
37 select HAVE_FTRACE_MCOUNT_RECORD 37 select HAVE_FTRACE_MCOUNT_RECORD
38 select HAVE_DYNAMIC_FTRACE 38 select HAVE_DYNAMIC_FTRACE
39 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 39 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
40 select HAVE_FTRACE_SYSCALLS
41 select HAVE_FUNCTION_GRAPH_TRACER 40 select HAVE_FUNCTION_GRAPH_TRACER
42 select HAVE_ARCH_KGDB 41 select HAVE_ARCH_KGDB
43 select ARCH_HIBERNATION_POSSIBLE if MMU 42 select ARCH_HIBERNATION_POSSIBLE if MMU
@@ -122,6 +121,9 @@ config SYS_SUPPORTS_APM_EMULATION
122 bool 121 bool
123 select ARCH_SUSPEND_POSSIBLE 122 select ARCH_SUSPEND_POSSIBLE
124 123
124config SYS_SUPPORTS_HUGETLBFS
125 bool
126
125config SYS_SUPPORTS_SMP 127config SYS_SUPPORTS_SMP
126 bool 128 bool
127 129
@@ -196,6 +198,7 @@ config CPU_SH4
196 select CPU_HAS_SR_RB 198 select CPU_HAS_SR_RB
197 select CPU_HAS_FPU if !CPU_SH4AL_DSP 199 select CPU_HAS_FPU if !CPU_SH4AL_DSP
198 select SYS_SUPPORTS_TMU 200 select SYS_SUPPORTS_TMU
201 select SYS_SUPPORTS_HUGETLBFS if MMU
199 202
200config CPU_SH4A 203config CPU_SH4A
201 bool 204 bool
@@ -210,6 +213,7 @@ config CPU_SH5
210 bool 213 bool
211 select CPU_HAS_FPU 214 select CPU_HAS_FPU
212 select SYS_SUPPORTS_TMU 215 select SYS_SUPPORTS_TMU
216 select SYS_SUPPORTS_HUGETLBFS if MMU
213 217
214config CPU_SHX2 218config CPU_SHX2
215 bool 219 bool
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index fc51a918b31a..66e40aabc600 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -199,7 +199,7 @@ endif
199libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) 199libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
200libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y) 200libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
201 201
202BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec \ 202BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \
203 zImage vmlinux.srec romImage 203 zImage vmlinux.srec romImage
204PHONY += maketools $(BOOT_TARGETS) FORCE 204PHONY += maketools $(BOOT_TARGETS) FORCE
205 205
@@ -225,6 +225,7 @@ define archhelp
225 @echo ' vmlinux.srec - Create an ELF S-record' 225 @echo ' vmlinux.srec - Create an ELF S-record'
226 @echo '* uImage - Alias to bootable U-Boot image' 226 @echo '* uImage - Alias to bootable U-Boot image'
227 @echo ' uImage.srec - Create an S-record for U-Boot' 227 @echo ' uImage.srec - Create an S-record for U-Boot'
228 @echo ' uImage.bin - Kernel-only image for U-Boot (bin)'
228 @echo '* uImage.gz - Kernel-only image for U-Boot (gzip)' 229 @echo '* uImage.gz - Kernel-only image for U-Boot (gzip)'
229 @echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)' 230 @echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
230 @echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)' 231 @echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)'
diff --git a/arch/sh/boards/mach-landisk/gio.c b/arch/sh/boards/mach-landisk/gio.c
index 25cdf7358000..528013188196 100644
--- a/arch/sh/boards/mach-landisk/gio.c
+++ b/arch/sh/boards/mach-landisk/gio.c
@@ -14,7 +14,6 @@
14 */ 14 */
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/smp_lock.h>
18#include <linux/kdev_t.h> 17#include <linux/kdev_t.h>
19#include <linux/cdev.h> 18#include <linux/cdev.h>
20#include <linux/fs.h> 19#include <linux/fs.h>
@@ -35,7 +34,7 @@ static int gio_open(struct inode *inode, struct file *filp)
35 int minor; 34 int minor;
36 int ret = -ENOENT; 35 int ret = -ENOENT;
37 36
38 lock_kernel(); 37 preempt_disable();
39 minor = MINOR(inode->i_rdev); 38 minor = MINOR(inode->i_rdev);
40 if (minor < DEVCOUNT) { 39 if (minor < DEVCOUNT) {
41 if (openCnt > 0) { 40 if (openCnt > 0) {
@@ -45,7 +44,7 @@ static int gio_open(struct inode *inode, struct file *filp)
45 ret = 0; 44 ret = 0;
46 } 45 }
47 } 46 }
48 unlock_kernel(); 47 preempt_enable();
49 return ret; 48 return ret;
50} 49}
51 50
@@ -60,8 +59,7 @@ static int gio_close(struct inode *inode, struct file *filp)
60 return 0; 59 return 0;
61} 60}
62 61
63static int gio_ioctl(struct inode *inode, struct file *filp, 62static long gio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
64 unsigned int cmd, unsigned long arg)
65{ 63{
66 unsigned int data; 64 unsigned int data;
67 static unsigned int addr = 0; 65 static unsigned int addr = 0;
@@ -129,7 +127,7 @@ static const struct file_operations gio_fops = {
129 .owner = THIS_MODULE, 127 .owner = THIS_MODULE,
130 .open = gio_open, /* open */ 128 .open = gio_open, /* open */
131 .release = gio_close, /* release */ 129 .release = gio_close, /* release */
132 .ioctl = gio_ioctl, /* ioctl */ 130 .unlocked_ioctl = gio_ioctl,
133}; 131};
134 132
135static int __init gio_init(void) 133static int __init gio_init(void)
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index 4af3a771c058..c37617e63220 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -11,10 +11,6 @@
11#include <linux/types.h> 11#include <linux/types.h>
12#include <linux/platform_device.h> 12#include <linux/platform_device.h>
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/mtd/mtd.h>
15#include <linux/mtd/partitions.h>
16#include <linux/mtd/physmap.h>
17#include <linux/mtd/map.h>
18#include <linux/smsc911x.h> 14#include <linux/smsc911x.h>
19#include <linux/gpio.h> 15#include <linux/gpio.h>
20#include <linux/leds.h> 16#include <linux/leds.h>
diff --git a/arch/sh/boards/mach-rsk/setup.c b/arch/sh/boards/mach-rsk/setup.c
index af64d030a5c7..a5c0df785bfe 100644
--- a/arch/sh/boards/mach-rsk/setup.c
+++ b/arch/sh/boards/mach-rsk/setup.c
@@ -15,14 +15,12 @@
15#include <linux/mtd/mtd.h> 15#include <linux/mtd/mtd.h>
16#include <linux/mtd/partitions.h> 16#include <linux/mtd/partitions.h>
17#include <linux/mtd/physmap.h> 17#include <linux/mtd/physmap.h>
18#ifdef CONFIG_MTD
18#include <linux/mtd/map.h> 19#include <linux/mtd/map.h>
20#endif
19#include <asm/machvec.h> 21#include <asm/machvec.h>
20#include <asm/io.h> 22#include <asm/io.h>
21 23
22static const char *probes[] = { "cmdlinepart", NULL };
23
24static struct mtd_partition *parsed_partitions;
25
26static struct mtd_partition rsk_partitions[] = { 24static struct mtd_partition rsk_partitions[] = {
27 { 25 {
28 .name = "Bootloader", 26 .name = "Bootloader",
@@ -41,6 +39,8 @@ static struct mtd_partition rsk_partitions[] = {
41}; 39};
42 40
43static struct physmap_flash_data flash_data = { 41static struct physmap_flash_data flash_data = {
42 .parts = rsk_partitions,
43 .nr_parts = ARRAY_SIZE(rsk_partitions),
44 .width = 2, 44 .width = 2,
45}; 45};
46 46
@@ -60,7 +60,8 @@ static struct platform_device flash_device = {
60 }, 60 },
61}; 61};
62 62
63static struct mtd_info *flash_mtd; 63#ifdef CONFIG_MTD
64static const char *probes[] = { "cmdlinepart", NULL };
64 65
65static struct map_info rsk_flash_map = { 66static struct map_info rsk_flash_map = {
66 .name = "RSK+ Flash", 67 .name = "RSK+ Flash",
@@ -68,6 +69,10 @@ static struct map_info rsk_flash_map = {
68 .bankwidth = 2, 69 .bankwidth = 2,
69}; 70};
70 71
72static struct mtd_info *flash_mtd;
73
74static struct mtd_partition *parsed_partitions;
75
71static void __init set_mtd_partitions(void) 76static void __init set_mtd_partitions(void)
72{ 77{
73 int nr_parts = 0; 78 int nr_parts = 0;
@@ -77,14 +82,14 @@ static void __init set_mtd_partitions(void)
77 nr_parts = parse_mtd_partitions(flash_mtd, probes, 82 nr_parts = parse_mtd_partitions(flash_mtd, probes,
78 &parsed_partitions, 0); 83 &parsed_partitions, 0);
79 /* If there is no partition table, used the hard coded table */ 84 /* If there is no partition table, used the hard coded table */
80 if (nr_parts <= 0) { 85 if (nr_parts > 0) {
81 flash_data.parts = rsk_partitions;
82 flash_data.nr_parts = ARRAY_SIZE(rsk_partitions);
83 } else {
84 flash_data.nr_parts = nr_parts; 86 flash_data.nr_parts = nr_parts;
85 flash_data.parts = parsed_partitions; 87 flash_data.parts = parsed_partitions;
86 } 88 }
87} 89}
90#else
91static inline void set_mtd_partitions(void) {}
92#endif
88 93
89static struct platform_device *rsk_devices[] __initdata = { 94static struct platform_device *rsk_devices[] __initdata = {
90 &flash_device, 95 &flash_device,
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile
index a1316872be6f..cb8cf5572e79 100644
--- a/arch/sh/boot/Makefile
+++ b/arch/sh/boot/Makefile
@@ -20,11 +20,12 @@ CONFIG_BOOT_LINK_OFFSET ?= 0x00800000
20CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 20CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000
21CONFIG_ENTRY_OFFSET ?= 0x00001000 21CONFIG_ENTRY_OFFSET ?= 0x00001000
22 22
23suffix-y := bin
23suffix-$(CONFIG_KERNEL_GZIP) := gz 24suffix-$(CONFIG_KERNEL_GZIP) := gz
24suffix-$(CONFIG_KERNEL_BZIP2) := bz2 25suffix-$(CONFIG_KERNEL_BZIP2) := bz2
25suffix-$(CONFIG_KERNEL_LZMA) := lzma 26suffix-$(CONFIG_KERNEL_LZMA) := lzma
26 27
27targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma 28targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma uImage.bin
28extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma 29extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma
29subdir- := compressed romimage 30subdir- := compressed romimage
30 31
@@ -88,6 +89,9 @@ $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz
88$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma 89$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma
89 $(call if_changed,uimage,lzma) 90 $(call if_changed,uimage,lzma)
90 91
92$(obj)/uImage.bin: $(obj)/vmlinux.bin
93 $(call if_changed,uimage,none)
94
91OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec 95OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec
92$(obj)/vmlinux.srec: $(obj)/compressed/vmlinux 96$(obj)/vmlinux.srec: $(obj)/compressed/vmlinux
93 $(call if_changed,objcopy) 97 $(call if_changed,objcopy)
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c
index 03b3616c80a5..2d07084e4882 100644
--- a/arch/sh/kernel/dwarf.c
+++ b/arch/sh/kernel/dwarf.c
@@ -20,6 +20,7 @@
20#include <linux/list.h> 20#include <linux/list.h>
21#include <linux/mempool.h> 21#include <linux/mempool.h>
22#include <linux/mm.h> 22#include <linux/mm.h>
23#include <linux/ftrace.h>
23#include <asm/dwarf.h> 24#include <asm/dwarf.h>
24#include <asm/unwinder.h> 25#include <asm/unwinder.h>
25#include <asm/sections.h> 26#include <asm/sections.h>
@@ -557,6 +558,27 @@ struct dwarf_frame * dwarf_unwind_stack(unsigned long pc,
557 if (!pc && !prev) 558 if (!pc && !prev)
558 pc = (unsigned long)current_text_addr(); 559 pc = (unsigned long)current_text_addr();
559 560
561#ifdef CONFIG_FUNCTION_GRAPH_TRACER
562 /*
563 * If our stack has been patched by the function graph tracer
564 * then we might see the address of return_to_handler() where we
565 * expected to find the real return address.
566 */
567 if (pc == (unsigned long)&return_to_handler) {
568 int index = current->curr_ret_stack;
569
570 /*
571 * We currently have no way of tracking how many
572 * return_to_handler()'s we've seen. If there is more
573 * than one patched return address on our stack,
574 * complain loudly.
575 */
576 WARN_ON(index > 0);
577
578 pc = current->ret_stack[index].ret;
579 }
580#endif
581
560 frame = mempool_alloc(dwarf_frame_pool, GFP_ATOMIC); 582 frame = mempool_alloc(dwarf_frame_pool, GFP_ATOMIC);
561 if (!frame) { 583 if (!frame) {
562 printk(KERN_ERR "Unable to allocate a dwarf frame\n"); 584 printk(KERN_ERR "Unable to allocate a dwarf frame\n");
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S
index 68d9223b145e..3eb84931d2aa 100644
--- a/arch/sh/kernel/entry-common.S
+++ b/arch/sh/kernel/entry-common.S
@@ -121,7 +121,7 @@ noresched:
121ENTRY(resume_userspace) 121ENTRY(resume_userspace)
122 ! r8: current_thread_info 122 ! r8: current_thread_info
123 cli 123 cli
124 TRACE_IRQS_OfF 124 TRACE_IRQS_OFF
125 mov.l @(TI_FLAGS,r8), r0 ! current_thread_info->flags 125 mov.l @(TI_FLAGS,r8), r0 ! current_thread_info->flags
126 tst #(_TIF_WORK_MASK & 0xff), r0 126 tst #(_TIF_WORK_MASK & 0xff), r0
127 bt/s __restore_all 127 bt/s __restore_all
diff --git a/arch/sh/kernel/ftrace.c b/arch/sh/kernel/ftrace.c
index a3dcc6d5d253..2c48e267256e 100644
--- a/arch/sh/kernel/ftrace.c
+++ b/arch/sh/kernel/ftrace.c
@@ -291,31 +291,48 @@ struct syscall_metadata *syscall_nr_to_meta(int nr)
291 return syscalls_metadata[nr]; 291 return syscalls_metadata[nr];
292} 292}
293 293
294void arch_init_ftrace_syscalls(void) 294int syscall_name_to_nr(char *name)
295{
296 int i;
297
298 if (!syscalls_metadata)
299 return -1;
300 for (i = 0; i < NR_syscalls; i++)
301 if (syscalls_metadata[i])
302 if (!strcmp(syscalls_metadata[i]->name, name))
303 return i;
304 return -1;
305}
306
307void set_syscall_enter_id(int num, int id)
308{
309 syscalls_metadata[num]->enter_id = id;
310}
311
312void set_syscall_exit_id(int num, int id)
313{
314 syscalls_metadata[num]->exit_id = id;
315}
316
317static int __init arch_init_ftrace_syscalls(void)
295{ 318{
296 int i; 319 int i;
297 struct syscall_metadata *meta; 320 struct syscall_metadata *meta;
298 unsigned long **psys_syscall_table = &sys_call_table; 321 unsigned long **psys_syscall_table = &sys_call_table;
299 static atomic_t refs;
300
301 if (atomic_inc_return(&refs) != 1)
302 goto end;
303 322
304 syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) * 323 syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) *
305 FTRACE_SYSCALL_MAX, GFP_KERNEL); 324 FTRACE_SYSCALL_MAX, GFP_KERNEL);
306 if (!syscalls_metadata) { 325 if (!syscalls_metadata) {
307 WARN_ON(1); 326 WARN_ON(1);
308 return; 327 return -ENOMEM;
309 } 328 }
310 329
311 for (i = 0; i < FTRACE_SYSCALL_MAX; i++) { 330 for (i = 0; i < FTRACE_SYSCALL_MAX; i++) {
312 meta = find_syscall_meta(psys_syscall_table[i]); 331 meta = find_syscall_meta(psys_syscall_table[i]);
313 syscalls_metadata[i] = meta; 332 syscalls_metadata[i] = meta;
314 } 333 }
315 return;
316 334
317 /* Paranoid: avoid overflow */ 335 return 0;
318end:
319 atomic_dec(&refs);
320} 336}
337arch_initcall(arch_init_ftrace_syscalls);
321#endif /* CONFIG_FTRACE_SYSCALLS */ 338#endif /* CONFIG_FTRACE_SYSCALLS */
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c
index 7cb933ba4957..eac7da772fc2 100644
--- a/arch/sh/kernel/irq.c
+++ b/arch/sh/kernel/irq.c
@@ -11,6 +11,7 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/kernel_stat.h> 12#include <linux/kernel_stat.h>
13#include <linux/seq_file.h> 13#include <linux/seq_file.h>
14#include <linux/ftrace.h>
14#include <asm/processor.h> 15#include <asm/processor.h>
15#include <asm/machvec.h> 16#include <asm/machvec.h>
16#include <asm/uaccess.h> 17#include <asm/uaccess.h>
@@ -106,7 +107,7 @@ static union irq_ctx *hardirq_ctx[NR_CPUS] __read_mostly;
106static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; 107static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
107#endif 108#endif
108 109
109asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) 110asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs)
110{ 111{
111 struct pt_regs *old_regs = set_irq_regs(regs); 112 struct pt_regs *old_regs = set_irq_regs(regs);
112#ifdef CONFIG_IRQSTACKS 113#ifdef CONFIG_IRQSTACKS
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index f9d44f8e0df6..99b4fb553bf1 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -549,6 +549,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
549 549
550 if (cpu == 0) 550 if (cpu == 0)
551 seq_printf(m, "machine\t\t: %s\n", get_system_type()); 551 seq_printf(m, "machine\t\t: %s\n", get_system_type());
552 else
553 seq_printf(m, "\n");
552 554
553 seq_printf(m, "processor\t: %d\n", cpu); 555 seq_printf(m, "processor\t: %d\n", cpu);
554 seq_printf(m, "cpu family\t: %s\n", init_utsname()->machine); 556 seq_printf(m, "cpu family\t: %s\n", init_utsname()->machine);
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c
index 86c270428357..444cce3ae921 100644
--- a/arch/sh/kernel/sh_ksyms_32.c
+++ b/arch/sh/kernel/sh_ksyms_32.c
@@ -85,6 +85,20 @@ DECLARE_EXPORT(__movstr_i4_even);
85DECLARE_EXPORT(__movstr_i4_odd); 85DECLARE_EXPORT(__movstr_i4_odd);
86DECLARE_EXPORT(__movstrSI12_i4); 86DECLARE_EXPORT(__movstrSI12_i4);
87DECLARE_EXPORT(__movmem); 87DECLARE_EXPORT(__movmem);
88DECLARE_EXPORT(__movmemSI8);
89DECLARE_EXPORT(__movmemSI12);
90DECLARE_EXPORT(__movmemSI16);
91DECLARE_EXPORT(__movmemSI20);
92DECLARE_EXPORT(__movmemSI24);
93DECLARE_EXPORT(__movmemSI28);
94DECLARE_EXPORT(__movmemSI32);
95DECLARE_EXPORT(__movmemSI36);
96DECLARE_EXPORT(__movmemSI40);
97DECLARE_EXPORT(__movmemSI44);
98DECLARE_EXPORT(__movmemSI48);
99DECLARE_EXPORT(__movmemSI52);
100DECLARE_EXPORT(__movmemSI56);
101DECLARE_EXPORT(__movmemSI60);
88DECLARE_EXPORT(__movmem_i4_even); 102DECLARE_EXPORT(__movmem_i4_even);
89DECLARE_EXPORT(__movmem_i4_odd); 103DECLARE_EXPORT(__movmem_i4_odd);
90DECLARE_EXPORT(__movmemSI12_i4); 104DECLARE_EXPORT(__movmemSI12_i4);
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 6729703547a1..3db37425210d 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -145,7 +145,7 @@ static inline int restore_sigcontext_fpu(struct sigcontext __user *sc)
145{ 145{
146 struct task_struct *tsk = current; 146 struct task_struct *tsk = current;
147 147
148 if (!(current_cpu_data.flags & CPU_HAS_FPU)) 148 if (!(boot_cpu_data.flags & CPU_HAS_FPU))
149 return 0; 149 return 0;
150 150
151 set_used_math(); 151 set_used_math();
@@ -158,7 +158,7 @@ static inline int save_sigcontext_fpu(struct sigcontext __user *sc,
158{ 158{
159 struct task_struct *tsk = current; 159 struct task_struct *tsk = current;
160 160
161 if (!(current_cpu_data.flags & CPU_HAS_FPU)) 161 if (!(boot_cpu_data.flags & CPU_HAS_FPU))
162 return 0; 162 return 0;
163 163
164 if (!used_math()) { 164 if (!used_math()) {
@@ -199,7 +199,7 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p
199#undef COPY 199#undef COPY
200 200
201#ifdef CONFIG_SH_FPU 201#ifdef CONFIG_SH_FPU
202 if (current_cpu_data.flags & CPU_HAS_FPU) { 202 if (boot_cpu_data.flags & CPU_HAS_FPU) {
203 int owned_fp; 203 int owned_fp;
204 struct task_struct *tsk = current; 204 struct task_struct *tsk = current;
205 205
@@ -472,6 +472,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
472 err |= __put_user(OR_R0_R0, &frame->retcode[6]); 472 err |= __put_user(OR_R0_R0, &frame->retcode[6]);
473 err |= __put_user((__NR_rt_sigreturn), &frame->retcode[7]); 473 err |= __put_user((__NR_rt_sigreturn), &frame->retcode[7]);
474 regs->pr = (unsigned long) frame->retcode; 474 regs->pr = (unsigned long) frame->retcode;
475 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode));
475 } 476 }
476 477
477 if (err) 478 if (err)
@@ -497,8 +498,6 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
497 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", 498 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n",
498 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); 499 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr);
499 500
500 flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode));
501
502 return 0; 501 return 0;
503 502
504give_sigsegv: 503give_sigsegv:
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 442d8d47a41e..160db1003cfb 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -35,6 +35,8 @@ static inline void __init smp_store_cpu_info(unsigned int cpu)
35{ 35{
36 struct sh_cpuinfo *c = cpu_data + cpu; 36 struct sh_cpuinfo *c = cpu_data + cpu;
37 37
38 memcpy(c, &boot_cpu_data, sizeof(struct sh_cpuinfo));
39
38 c->loops_per_jiffy = loops_per_jiffy; 40 c->loops_per_jiffy = loops_per_jiffy;
39} 41}
40 42
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index e0b5e4b5accd..7a2ee3a6b8e7 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -25,6 +25,7 @@
25#include <linux/kexec.h> 25#include <linux/kexec.h>
26#include <linux/limits.h> 26#include <linux/limits.h>
27#include <linux/proc_fs.h> 27#include <linux/proc_fs.h>
28#include <linux/sysfs.h>
28#include <asm/system.h> 29#include <asm/system.h>
29#include <asm/uaccess.h> 30#include <asm/uaccess.h>
30#include <asm/fpu.h> 31#include <asm/fpu.h>
@@ -159,12 +160,12 @@ void die(const char * str, struct pt_regs * regs, long err)
159 160
160 oops_enter(); 161 oops_enter();
161 162
162 console_verbose();
163 spin_lock_irq(&die_lock); 163 spin_lock_irq(&die_lock);
164 console_verbose();
164 bust_spinlocks(1); 165 bust_spinlocks(1);
165 166
166 printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter); 167 printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
167 168 sysfs_printk_last_file();
168 print_modules(); 169 print_modules();
169 show_regs(regs); 170 show_regs(regs);
170 171
@@ -180,6 +181,7 @@ void die(const char * str, struct pt_regs * regs, long err)
180 bust_spinlocks(0); 181 bust_spinlocks(0);
181 add_taint(TAINT_DIE); 182 add_taint(TAINT_DIE);
182 spin_unlock_irq(&die_lock); 183 spin_unlock_irq(&die_lock);
184 oops_exit();
183 185
184 if (kexec_should_crash(current)) 186 if (kexec_should_crash(current))
185 crash_kexec(regs); 187 crash_kexec(regs);
@@ -190,7 +192,6 @@ void die(const char * str, struct pt_regs * regs, long err)
190 if (panic_on_oops) 192 if (panic_on_oops)
191 panic("Fatal exception"); 193 panic("Fatal exception");
192 194
193 oops_exit();
194 do_exit(SIGSEGV); 195 do_exit(SIGSEGV);
195} 196}
196 197
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index 64dc1ad59801..7f7b52f9beba 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -227,7 +227,7 @@ endchoice
227 227
228choice 228choice
229 prompt "HugeTLB page size" 229 prompt "HugeTLB page size"
230 depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU 230 depends on HUGETLB_PAGE
231 default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB 231 default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB
232 default HUGETLB_PAGE_SIZE_64K 232 default HUGETLB_PAGE_SIZE_64K
233 233
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c
index a98c7d8984fa..519e2d16cd06 100644
--- a/arch/sh/mm/cache-sh4.c
+++ b/arch/sh/mm/cache-sh4.c
@@ -26,7 +26,7 @@
26#define MAX_DCACHE_PAGES 64 /* XXX: Tune for ways */ 26#define MAX_DCACHE_PAGES 64 /* XXX: Tune for ways */
27#define MAX_ICACHE_PAGES 32 27#define MAX_ICACHE_PAGES 32
28 28
29static void __flush_cache_4096(unsigned long addr, unsigned long phys, 29static void __flush_cache_one(unsigned long addr, unsigned long phys,
30 unsigned long exec_offset); 30 unsigned long exec_offset);
31 31
32/* 32/*
@@ -89,8 +89,7 @@ static void __uses_jump_to_uncached sh4_flush_icache_range(void *args)
89 local_irq_restore(flags); 89 local_irq_restore(flags);
90} 90}
91 91
92static inline void flush_cache_4096(unsigned long start, 92static inline void flush_cache_one(unsigned long start, unsigned long phys)
93 unsigned long phys)
94{ 93{
95 unsigned long flags, exec_offset = 0; 94 unsigned long flags, exec_offset = 0;
96 95
@@ -103,8 +102,7 @@ static inline void flush_cache_4096(unsigned long start,
103 exec_offset = 0x20000000; 102 exec_offset = 0x20000000;
104 103
105 local_irq_save(flags); 104 local_irq_save(flags);
106 __flush_cache_4096(start | SH_CACHE_ASSOC, 105 __flush_cache_one(start | SH_CACHE_ASSOC, P1SEGADDR(phys), exec_offset);
107 P1SEGADDR(phys), exec_offset);
108 local_irq_restore(flags); 106 local_irq_restore(flags);
109} 107}
110 108
@@ -129,8 +127,8 @@ static void sh4_flush_dcache_page(void *arg)
129 127
130 /* Loop all the D-cache */ 128 /* Loop all the D-cache */
131 n = boot_cpu_data.dcache.n_aliases; 129 n = boot_cpu_data.dcache.n_aliases;
132 for (i = 0; i < n; i++, addr += 4096) 130 for (i = 0; i < n; i++, addr += PAGE_SIZE)
133 flush_cache_4096(addr, phys); 131 flush_cache_one(addr, phys);
134 } 132 }
135 133
136 wmb(); 134 wmb();
@@ -318,11 +316,11 @@ static void sh4_flush_cache_page(void *args)
318 /* We only need to flush D-cache when we have alias */ 316 /* We only need to flush D-cache when we have alias */
319 if ((address^phys) & alias_mask) { 317 if ((address^phys) & alias_mask) {
320 /* Loop 4K of the D-cache */ 318 /* Loop 4K of the D-cache */
321 flush_cache_4096( 319 flush_cache_one(
322 CACHE_OC_ADDRESS_ARRAY | (address & alias_mask), 320 CACHE_OC_ADDRESS_ARRAY | (address & alias_mask),
323 phys); 321 phys);
324 /* Loop another 4K of the D-cache */ 322 /* Loop another 4K of the D-cache */
325 flush_cache_4096( 323 flush_cache_one(
326 CACHE_OC_ADDRESS_ARRAY | (phys & alias_mask), 324 CACHE_OC_ADDRESS_ARRAY | (phys & alias_mask),
327 phys); 325 phys);
328 } 326 }
@@ -337,7 +335,7 @@ static void sh4_flush_cache_page(void *args)
337 * kernel has never executed the code through its identity 335 * kernel has never executed the code through its identity
338 * translation. 336 * translation.
339 */ 337 */
340 flush_cache_4096( 338 flush_cache_one(
341 CACHE_IC_ADDRESS_ARRAY | (address & alias_mask), 339 CACHE_IC_ADDRESS_ARRAY | (address & alias_mask),
342 phys); 340 phys);
343 } 341 }
@@ -393,7 +391,7 @@ static void sh4_flush_cache_range(void *args)
393} 391}
394 392
395/** 393/**
396 * __flush_cache_4096 394 * __flush_cache_one
397 * 395 *
398 * @addr: address in memory mapped cache array 396 * @addr: address in memory mapped cache array
399 * @phys: P1 address to flush (has to match tags if addr has 'A' bit 397 * @phys: P1 address to flush (has to match tags if addr has 'A' bit
@@ -406,7 +404,7 @@ static void sh4_flush_cache_range(void *args)
406 * operation (purge/write-back) is selected by the lower 2 bits of 404 * operation (purge/write-back) is selected by the lower 2 bits of
407 * 'phys'. 405 * 'phys'.
408 */ 406 */
409static void __flush_cache_4096(unsigned long addr, unsigned long phys, 407static void __flush_cache_one(unsigned long addr, unsigned long phys,
410 unsigned long exec_offset) 408 unsigned long exec_offset)
411{ 409{
412 int way_count; 410 int way_count;
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index 35c37b7f717a..a2dc7f9ecc51 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -128,7 +128,7 @@ void __update_cache(struct vm_area_struct *vma,
128 return; 128 return;
129 129
130 page = pfn_to_page(pfn); 130 page = pfn_to_page(pfn);
131 if (pfn_valid(pfn) && page_mapping(page)) { 131 if (pfn_valid(pfn)) {
132 int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags); 132 int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags);
133 if (dirty) { 133 if (dirty) {
134 unsigned long addr = (unsigned long)page_address(page); 134 unsigned long addr = (unsigned long)page_address(page);
@@ -265,6 +265,8 @@ static void __init emit_cache_params(void)
265 265
266void __init cpu_cache_init(void) 266void __init cpu_cache_init(void)
267{ 267{
268 unsigned int cache_disabled = !(__raw_readl(CCR) & CCR_CACHE_ENABLE);
269
268 compute_alias(&boot_cpu_data.icache); 270 compute_alias(&boot_cpu_data.icache);
269 compute_alias(&boot_cpu_data.dcache); 271 compute_alias(&boot_cpu_data.dcache);
270 compute_alias(&boot_cpu_data.scache); 272 compute_alias(&boot_cpu_data.scache);
@@ -273,6 +275,13 @@ void __init cpu_cache_init(void)
273 __flush_purge_region = noop__flush_region; 275 __flush_purge_region = noop__flush_region;
274 __flush_invalidate_region = noop__flush_region; 276 __flush_invalidate_region = noop__flush_region;
275 277
278 /*
279 * No flushing is necessary in the disabled cache case so we can
280 * just keep the noop functions in local_flush_..() and __flush_..()
281 */
282 if (unlikely(cache_disabled))
283 goto skip;
284
276 if (boot_cpu_data.family == CPU_FAMILY_SH2) { 285 if (boot_cpu_data.family == CPU_FAMILY_SH2) {
277 extern void __weak sh2_cache_init(void); 286 extern void __weak sh2_cache_init(void);
278 287
@@ -312,5 +321,6 @@ void __init cpu_cache_init(void)
312 sh5_cache_init(); 321 sh5_cache_init();
313 } 322 }
314 323
324skip:
315 emit_cache_params(); 325 emit_cache_params();
316} 326}
diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
index adf5f273868a..cb3c72c45aab 100644
--- a/arch/sparc/kernel/ldc.c
+++ b/arch/sparc/kernel/ldc.c
@@ -1242,13 +1242,13 @@ int ldc_bind(struct ldc_channel *lp, const char *name)
1242 snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name); 1242 snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name);
1243 1243
1244 err = request_irq(lp->cfg.rx_irq, ldc_rx, 1244 err = request_irq(lp->cfg.rx_irq, ldc_rx,
1245 IRQF_SAMPLE_RANDOM | IRQF_SHARED, 1245 IRQF_SAMPLE_RANDOM | IRQF_DISABLED | IRQF_SHARED,
1246 lp->rx_irq_name, lp); 1246 lp->rx_irq_name, lp);
1247 if (err) 1247 if (err)
1248 return err; 1248 return err;
1249 1249
1250 err = request_irq(lp->cfg.tx_irq, ldc_tx, 1250 err = request_irq(lp->cfg.tx_irq, ldc_tx,
1251 IRQF_SAMPLE_RANDOM | IRQF_SHARED, 1251 IRQF_SAMPLE_RANDOM | IRQF_DISABLED | IRQF_SHARED,
1252 lp->tx_irq_name, lp); 1252 lp->tx_irq_name, lp);
1253 if (err) { 1253 if (err) {
1254 free_irq(lp->cfg.rx_irq, lp); 1254 free_irq(lp->cfg.rx_irq, lp);
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c
index 04db92743896..fa5936e1c3b9 100644
--- a/arch/sparc/kernel/perf_event.c
+++ b/arch/sparc/kernel/perf_event.c
@@ -437,7 +437,7 @@ static const struct sparc_pmu niagara2_pmu = {
437 .lower_shift = 6, 437 .lower_shift = 6,
438 .event_mask = 0xfff, 438 .event_mask = 0xfff,
439 .hv_bit = 0x8, 439 .hv_bit = 0x8,
440 .irq_bit = 0x03, 440 .irq_bit = 0x30,
441 .upper_nop = 0x220, 441 .upper_nop = 0x220,
442 .lower_nop = 0x220, 442 .lower_nop = 0x220,
443}; 443};
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index a70a5e1904d9..1886d37d411b 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -265,7 +265,7 @@ static void flush_dcache(unsigned long pfn)
265 struct page *page; 265 struct page *page;
266 266
267 page = pfn_to_page(pfn); 267 page = pfn_to_page(pfn);
268 if (page && page_mapping(page)) { 268 if (page) {
269 unsigned long pg_flags; 269 unsigned long pg_flags;
270 270
271 pg_flags = page->flags; 271 pg_flags = page->flags;
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c876bace8fdc..72ace9515a07 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -491,7 +491,7 @@ if PARAVIRT_GUEST
491source "arch/x86/xen/Kconfig" 491source "arch/x86/xen/Kconfig"
492 492
493config VMI 493config VMI
494 bool "VMI Guest support" 494 bool "VMI Guest support (DEPRECATED)"
495 select PARAVIRT 495 select PARAVIRT
496 depends on X86_32 496 depends on X86_32
497 ---help--- 497 ---help---
@@ -500,6 +500,15 @@ config VMI
500 at the moment), by linking the kernel to a GPL-ed ROM module 500 at the moment), by linking the kernel to a GPL-ed ROM module
501 provided by the hypervisor. 501 provided by the hypervisor.
502 502
503 As of September 2009, VMware has started a phased retirement
504 of this feature from VMware's products. Please see
505 feature-removal-schedule.txt for details. If you are
506 planning to enable this option, please note that you cannot
507 live migrate a VMI enabled VM to a future VMware product,
508 which doesn't support VMI. So if you expect your kernel to
509 seamlessly migrate to newer VMware products, keep this
510 disabled.
511
503config KVM_CLOCK 512config KVM_CLOCK
504 bool "KVM paravirtualized clock" 513 bool "KVM paravirtualized clock"
505 select PARAVIRT 514 select PARAVIRT
@@ -1434,12 +1443,8 @@ config SECCOMP
1434 1443
1435 If unsure, say Y. Only embedded should say N here. 1444 If unsure, say Y. Only embedded should say N here.
1436 1445
1437config CC_STACKPROTECTOR_ALL
1438 bool
1439
1440config CC_STACKPROTECTOR 1446config CC_STACKPROTECTOR
1441 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1447 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1442 select CC_STACKPROTECTOR_ALL
1443 ---help--- 1448 ---help---
1444 This option turns on the -fstack-protector GCC feature. This 1449 This option turns on the -fstack-protector GCC feature. This
1445 feature puts, at the beginning of functions, a canary value on 1450 feature puts, at the beginning of functions, a canary value on
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index f2824fb8c79c..2649840d888f 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -400,7 +400,7 @@ config X86_TSC
400 400
401config X86_CMPXCHG64 401config X86_CMPXCHG64
402 def_bool y 402 def_bool y
403 depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM 403 depends on !M386 && !M486
404 404
405# this should be set for all -march=.. options where the compiler 405# this should be set for all -march=.. options where the compiler
406# generates cmov. 406# generates cmov.
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index a012ee8ef803..d2d24c9ee64d 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -76,7 +76,6 @@ ifdef CONFIG_CC_STACKPROTECTOR
76 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh 76 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
77 ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y) 77 ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y)
78 stackp-y := -fstack-protector 78 stackp-y := -fstack-protector
79 stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all
80 KBUILD_CFLAGS += $(stackp-y) 79 KBUILD_CFLAGS += $(stackp-y)
81 else 80 else
82 $(warning stack protector enabled but no compiler support) 81 $(warning stack protector enabled but no compiler support)
diff --git a/arch/x86/boot/setup.ld b/arch/x86/boot/setup.ld
index 0f6ec455a2b1..03c0683636b6 100644
--- a/arch/x86/boot/setup.ld
+++ b/arch/x86/boot/setup.ld
@@ -53,6 +53,9 @@ SECTIONS
53 53
54 /DISCARD/ : { *(.note*) } 54 /DISCARD/ : { *(.note*) }
55 55
56 /*
57 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
58 */
56 . = ASSERT(_end <= 0x8000, "Setup too big!"); 59 . = ASSERT(_end <= 0x8000, "Setup too big!");
57 . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!"); 60 . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
58 /* Necessary for the very-old-loader check to work... */ 61 /* Necessary for the very-old-loader check to work... */
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index 585edebe12cf..49c552c060e9 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -82,7 +82,7 @@ static int aes_set_key_common(struct crypto_tfm *tfm, void *raw_ctx,
82 return -EINVAL; 82 return -EINVAL;
83 } 83 }
84 84
85 if (irq_fpu_usable()) 85 if (!irq_fpu_usable())
86 err = crypto_aes_expand_key(ctx, in_key, key_len); 86 err = crypto_aes_expand_key(ctx, in_key, key_len);
87 else { 87 else {
88 kernel_fpu_begin(); 88 kernel_fpu_begin();
@@ -103,7 +103,7 @@ static void aes_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
103{ 103{
104 struct crypto_aes_ctx *ctx = aes_ctx(crypto_tfm_ctx(tfm)); 104 struct crypto_aes_ctx *ctx = aes_ctx(crypto_tfm_ctx(tfm));
105 105
106 if (irq_fpu_usable()) 106 if (!irq_fpu_usable())
107 crypto_aes_encrypt_x86(ctx, dst, src); 107 crypto_aes_encrypt_x86(ctx, dst, src);
108 else { 108 else {
109 kernel_fpu_begin(); 109 kernel_fpu_begin();
@@ -116,7 +116,7 @@ static void aes_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
116{ 116{
117 struct crypto_aes_ctx *ctx = aes_ctx(crypto_tfm_ctx(tfm)); 117 struct crypto_aes_ctx *ctx = aes_ctx(crypto_tfm_ctx(tfm));
118 118
119 if (irq_fpu_usable()) 119 if (!irq_fpu_usable())
120 crypto_aes_decrypt_x86(ctx, dst, src); 120 crypto_aes_decrypt_x86(ctx, dst, src);
121 else { 121 else {
122 kernel_fpu_begin(); 122 kernel_fpu_begin();
@@ -342,7 +342,7 @@ static int ablk_encrypt(struct ablkcipher_request *req)
342 struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req); 342 struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req);
343 struct async_aes_ctx *ctx = crypto_ablkcipher_ctx(tfm); 343 struct async_aes_ctx *ctx = crypto_ablkcipher_ctx(tfm);
344 344
345 if (irq_fpu_usable()) { 345 if (!irq_fpu_usable()) {
346 struct ablkcipher_request *cryptd_req = 346 struct ablkcipher_request *cryptd_req =
347 ablkcipher_request_ctx(req); 347 ablkcipher_request_ctx(req);
348 memcpy(cryptd_req, req, sizeof(*req)); 348 memcpy(cryptd_req, req, sizeof(*req));
@@ -363,7 +363,7 @@ static int ablk_decrypt(struct ablkcipher_request *req)
363 struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req); 363 struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req);
364 struct async_aes_ctx *ctx = crypto_ablkcipher_ctx(tfm); 364 struct async_aes_ctx *ctx = crypto_ablkcipher_ctx(tfm);
365 365
366 if (irq_fpu_usable()) { 366 if (!irq_fpu_usable()) {
367 struct ablkcipher_request *cryptd_req = 367 struct ablkcipher_request *cryptd_req =
368 ablkcipher_request_ctx(req); 368 ablkcipher_request_ctx(req);
369 memcpy(cryptd_req, req, sizeof(*req)); 369 memcpy(cryptd_req, req, sizeof(*req));
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 1733f9f65e82..581b0568fe19 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -204,7 +204,7 @@ sysexit_from_sys_call:
204 movl RDI-ARGOFFSET(%rsp),%r8d /* reload 5th syscall arg */ 204 movl RDI-ARGOFFSET(%rsp),%r8d /* reload 5th syscall arg */
205 .endm 205 .endm
206 206
207 .macro auditsys_exit exit,ebpsave=RBP 207 .macro auditsys_exit exit
208 testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10) 208 testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10)
209 jnz ia32_ret_from_sys_call 209 jnz ia32_ret_from_sys_call
210 TRACE_IRQS_ON 210 TRACE_IRQS_ON
@@ -217,7 +217,6 @@ sysexit_from_sys_call:
217 call audit_syscall_exit 217 call audit_syscall_exit
218 GET_THREAD_INFO(%r10) 218 GET_THREAD_INFO(%r10)
219 movl RAX-ARGOFFSET(%rsp),%eax /* reload syscall return value */ 219 movl RAX-ARGOFFSET(%rsp),%eax /* reload syscall return value */
220 movl \ebpsave-ARGOFFSET(%rsp),%ebp /* reload user register value */
221 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi 220 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi
222 cli 221 cli
223 TRACE_IRQS_OFF 222 TRACE_IRQS_OFF
@@ -351,7 +350,7 @@ cstar_auditsys:
351 jmp cstar_dispatch 350 jmp cstar_dispatch
352 351
353sysretl_audit: 352sysretl_audit:
354 auditsys_exit sysretl_from_sys_call, RCX /* user %ebp in RCX slot */ 353 auditsys_exit sysretl_from_sys_call
355#endif 354#endif
356 355
357cstar_tracesys: 356cstar_tracesys:
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 8aebcc41041d..efb38994859c 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -840,42 +840,22 @@ static __always_inline void __raw_spin_unlock(struct raw_spinlock *lock)
840 840
841static inline unsigned long __raw_local_save_flags(void) 841static inline unsigned long __raw_local_save_flags(void)
842{ 842{
843 unsigned long f; 843 return PVOP_CALLEE0(unsigned long, pv_irq_ops.save_fl);
844
845 asm volatile(paravirt_alt(PARAVIRT_CALL)
846 : "=a"(f)
847 : paravirt_type(pv_irq_ops.save_fl),
848 paravirt_clobber(CLBR_EAX)
849 : "memory", "cc");
850 return f;
851} 844}
852 845
853static inline void raw_local_irq_restore(unsigned long f) 846static inline void raw_local_irq_restore(unsigned long f)
854{ 847{
855 asm volatile(paravirt_alt(PARAVIRT_CALL) 848 PVOP_VCALLEE1(pv_irq_ops.restore_fl, f);
856 : "=a"(f)
857 : PV_FLAGS_ARG(f),
858 paravirt_type(pv_irq_ops.restore_fl),
859 paravirt_clobber(CLBR_EAX)
860 : "memory", "cc");
861} 849}
862 850
863static inline void raw_local_irq_disable(void) 851static inline void raw_local_irq_disable(void)
864{ 852{
865 asm volatile(paravirt_alt(PARAVIRT_CALL) 853 PVOP_VCALLEE0(pv_irq_ops.irq_disable);
866 :
867 : paravirt_type(pv_irq_ops.irq_disable),
868 paravirt_clobber(CLBR_EAX)
869 : "memory", "eax", "cc");
870} 854}
871 855
872static inline void raw_local_irq_enable(void) 856static inline void raw_local_irq_enable(void)
873{ 857{
874 asm volatile(paravirt_alt(PARAVIRT_CALL) 858 PVOP_VCALLEE0(pv_irq_ops.irq_enable);
875 :
876 : paravirt_type(pv_irq_ops.irq_enable),
877 paravirt_clobber(CLBR_EAX)
878 : "memory", "eax", "cc");
879} 859}
880 860
881static inline unsigned long __raw_local_irq_save(void) 861static inline unsigned long __raw_local_irq_save(void)
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index dd0f5b32489d..9357473c8da0 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -494,10 +494,11 @@ int paravirt_disable_iospace(void);
494#define EXTRA_CLOBBERS 494#define EXTRA_CLOBBERS
495#define VEXTRA_CLOBBERS 495#define VEXTRA_CLOBBERS
496#else /* CONFIG_X86_64 */ 496#else /* CONFIG_X86_64 */
497/* [re]ax isn't an arg, but the return val */
497#define PVOP_VCALL_ARGS \ 498#define PVOP_VCALL_ARGS \
498 unsigned long __edi = __edi, __esi = __esi, \ 499 unsigned long __edi = __edi, __esi = __esi, \
499 __edx = __edx, __ecx = __ecx 500 __edx = __edx, __ecx = __ecx, __eax = __eax
500#define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax 501#define PVOP_CALL_ARGS PVOP_VCALL_ARGS
501 502
502#define PVOP_CALL_ARG1(x) "D" ((unsigned long)(x)) 503#define PVOP_CALL_ARG1(x) "D" ((unsigned long)(x))
503#define PVOP_CALL_ARG2(x) "S" ((unsigned long)(x)) 504#define PVOP_CALL_ARG2(x) "S" ((unsigned long)(x))
@@ -509,6 +510,7 @@ int paravirt_disable_iospace(void);
509 "=c" (__ecx) 510 "=c" (__ecx)
510#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax) 511#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax)
511 512
513/* void functions are still allowed [re]ax for scratch */
512#define PVOP_VCALLEE_CLOBBERS "=a" (__eax) 514#define PVOP_VCALLEE_CLOBBERS "=a" (__eax)
513#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS 515#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
514 516
@@ -583,8 +585,8 @@ int paravirt_disable_iospace(void);
583 VEXTRA_CLOBBERS, \ 585 VEXTRA_CLOBBERS, \
584 pre, post, ##__VA_ARGS__) 586 pre, post, ##__VA_ARGS__)
585 587
586#define __PVOP_VCALLEESAVE(rettype, op, pre, post, ...) \ 588#define __PVOP_VCALLEESAVE(op, pre, post, ...) \
587 ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \ 589 ____PVOP_VCALL(op.func, CLBR_RET_REG, \
588 PVOP_VCALLEE_CLOBBERS, , \ 590 PVOP_VCALLEE_CLOBBERS, , \
589 pre, post, ##__VA_ARGS__) 591 pre, post, ##__VA_ARGS__)
590 592
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 25a92842dd99..d823c245f63b 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -143,6 +143,7 @@ extern unsigned long node_remap_size[];
143 | 1*SD_BALANCE_FORK \ 143 | 1*SD_BALANCE_FORK \
144 | 0*SD_BALANCE_WAKE \ 144 | 0*SD_BALANCE_WAKE \
145 | 1*SD_WAKE_AFFINE \ 145 | 1*SD_WAKE_AFFINE \
146 | 1*SD_PREFER_LOCAL \
146 | 0*SD_SHARE_CPUPOWER \ 147 | 0*SD_SHARE_CPUPOWER \
147 | 0*SD_POWERSAVINGS_BALANCE \ 148 | 0*SD_POWERSAVINGS_BALANCE \
148 | 0*SD_SHARE_PKG_RESOURCES \ 149 | 0*SD_SHARE_PKG_RESOURCES \
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
index 04eb6c958b9d..d1414af98559 100644
--- a/arch/x86/include/asm/uv/uv_hub.h
+++ b/arch/x86/include/asm/uv/uv_hub.h
@@ -19,6 +19,8 @@
19#include <asm/types.h> 19#include <asm/types.h>
20#include <asm/percpu.h> 20#include <asm/percpu.h>
21#include <asm/uv/uv_mmrs.h> 21#include <asm/uv/uv_mmrs.h>
22#include <asm/irq_vectors.h>
23#include <asm/io_apic.h>
22 24
23 25
24/* 26/*
@@ -114,7 +116,7 @@
114/* 116/*
115 * The largest possible NASID of a C or M brick (+ 2) 117 * The largest possible NASID of a C or M brick (+ 2)
116 */ 118 */
117#define UV_MAX_NASID_VALUE (UV_MAX_NUMALINK_NODES * 2) 119#define UV_MAX_NASID_VALUE (UV_MAX_NUMALINK_BLADES * 2)
118 120
119struct uv_scir_s { 121struct uv_scir_s {
120 struct timer_list timer; 122 struct timer_list timer;
@@ -230,6 +232,20 @@ static inline unsigned long uv_gpa(void *v)
230 return uv_soc_phys_ram_to_gpa(__pa(v)); 232 return uv_soc_phys_ram_to_gpa(__pa(v));
231} 233}
232 234
235/* gnode -> pnode */
236static inline unsigned long uv_gpa_to_gnode(unsigned long gpa)
237{
238 return gpa >> uv_hub_info->m_val;
239}
240
241/* gpa -> pnode */
242static inline int uv_gpa_to_pnode(unsigned long gpa)
243{
244 unsigned long n_mask = (1UL << uv_hub_info->n_val) - 1;
245
246 return uv_gpa_to_gnode(gpa) & n_mask;
247}
248
233/* pnode, offset --> socket virtual */ 249/* pnode, offset --> socket virtual */
234static inline void *uv_pnode_offset_to_vaddr(int pnode, unsigned long offset) 250static inline void *uv_pnode_offset_to_vaddr(int pnode, unsigned long offset)
235{ 251{
@@ -421,9 +437,14 @@ static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value)
421static inline void uv_hub_send_ipi(int pnode, int apicid, int vector) 437static inline void uv_hub_send_ipi(int pnode, int apicid, int vector)
422{ 438{
423 unsigned long val; 439 unsigned long val;
440 unsigned long dmode = dest_Fixed;
441
442 if (vector == NMI_VECTOR)
443 dmode = dest_NMI;
424 444
425 val = (1UL << UVH_IPI_INT_SEND_SHFT) | 445 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
426 ((apicid) << UVH_IPI_INT_APIC_ID_SHFT) | 446 ((apicid) << UVH_IPI_INT_APIC_ID_SHFT) |
447 (dmode << UVH_IPI_INT_DELIVERY_MODE_SHFT) |
427 (vector << UVH_IPI_INT_VECTOR_SHFT); 448 (vector << UVH_IPI_INT_VECTOR_SHFT);
428 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 449 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
429} 450}
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.lds.S b/arch/x86/kernel/acpi/realmode/wakeup.lds.S
index 7da00b799cda..060fff8f5c5b 100644
--- a/arch/x86/kernel/acpi/realmode/wakeup.lds.S
+++ b/arch/x86/kernel/acpi/realmode/wakeup.lds.S
@@ -57,5 +57,8 @@ SECTIONS
57 *(.note*) 57 *(.note*)
58 } 58 }
59 59
60 /*
61 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
62 */
60 . = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!"); 63 . = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!");
61} 64}
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index f5f5886a6b53..326c25477d3d 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -352,14 +352,14 @@ static __init void get_lowmem_redirect(unsigned long *base, unsigned long *size)
352 352
353 for (i = 0; i < ARRAY_SIZE(redir_addrs); i++) { 353 for (i = 0; i < ARRAY_SIZE(redir_addrs); i++) {
354 alias.v = uv_read_local_mmr(redir_addrs[i].alias); 354 alias.v = uv_read_local_mmr(redir_addrs[i].alias);
355 if (alias.s.base == 0) { 355 if (alias.s.enable && alias.s.base == 0) {
356 *size = (1UL << alias.s.m_alias); 356 *size = (1UL << alias.s.m_alias);
357 redirect.v = uv_read_local_mmr(redir_addrs[i].redirect); 357 redirect.v = uv_read_local_mmr(redir_addrs[i].redirect);
358 *base = (unsigned long)redirect.s.dest_base << DEST_SHIFT; 358 *base = (unsigned long)redirect.s.dest_base << DEST_SHIFT;
359 return; 359 return;
360 } 360 }
361 } 361 }
362 BUG(); 362 *base = *size = 0;
363} 363}
364 364
365enum map_type {map_wb, map_uc}; 365enum map_type {map_wb, map_uc};
@@ -619,12 +619,12 @@ void __init uv_system_init(void)
619 uv_cpu_hub_info(cpu)->lowmem_remap_base = lowmem_redir_base; 619 uv_cpu_hub_info(cpu)->lowmem_remap_base = lowmem_redir_base;
620 uv_cpu_hub_info(cpu)->lowmem_remap_top = lowmem_redir_size; 620 uv_cpu_hub_info(cpu)->lowmem_remap_top = lowmem_redir_size;
621 uv_cpu_hub_info(cpu)->m_val = m_val; 621 uv_cpu_hub_info(cpu)->m_val = m_val;
622 uv_cpu_hub_info(cpu)->n_val = m_val; 622 uv_cpu_hub_info(cpu)->n_val = n_val;
623 uv_cpu_hub_info(cpu)->numa_blade_id = blade; 623 uv_cpu_hub_info(cpu)->numa_blade_id = blade;
624 uv_cpu_hub_info(cpu)->blade_processor_id = lcpu; 624 uv_cpu_hub_info(cpu)->blade_processor_id = lcpu;
625 uv_cpu_hub_info(cpu)->pnode = pnode; 625 uv_cpu_hub_info(cpu)->pnode = pnode;
626 uv_cpu_hub_info(cpu)->pnode_mask = pnode_mask; 626 uv_cpu_hub_info(cpu)->pnode_mask = pnode_mask;
627 uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1; 627 uv_cpu_hub_info(cpu)->gpa_mask = (1UL << (m_val + n_val)) - 1;
628 uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper; 628 uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
629 uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; 629 uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra;
630 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; 630 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index b1598a9436d0..721a77ca8115 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1214,7 +1214,8 @@ static int __cpuinit mce_cap_init(void)
1214 rdmsrl(MSR_IA32_MCG_CAP, cap); 1214 rdmsrl(MSR_IA32_MCG_CAP, cap);
1215 1215
1216 b = cap & MCG_BANKCNT_MASK; 1216 b = cap & MCG_BANKCNT_MASK;
1217 printk(KERN_INFO "mce: CPU supports %d MCE banks\n", b); 1217 if (!banks)
1218 printk(KERN_INFO "mce: CPU supports %d MCE banks\n", b);
1218 1219
1219 if (b > MAX_NR_BANKS) { 1220 if (b > MAX_NR_BANKS) {
1220 printk(KERN_WARNING 1221 printk(KERN_WARNING
diff --git a/arch/x86/kernel/crash_dump_32.c b/arch/x86/kernel/crash_dump_32.c
index f7cdb3b457aa..cd97ce18c29d 100644
--- a/arch/x86/kernel/crash_dump_32.c
+++ b/arch/x86/kernel/crash_dump_32.c
@@ -16,6 +16,22 @@ static void *kdump_buf_page;
16/* Stores the physical address of elf header of crash image. */ 16/* Stores the physical address of elf header of crash image. */
17unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; 17unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX;
18 18
19static inline bool is_crashed_pfn_valid(unsigned long pfn)
20{
21#ifndef CONFIG_X86_PAE
22 /*
23 * non-PAE kdump kernel executed from a PAE one will crop high pte
24 * bits and poke unwanted space counting again from address 0, we
25 * don't want that. pte must fit into unsigned long. In fact the
26 * test checks high 12 bits for being zero (pfn will be shifted left
27 * by PAGE_SHIFT).
28 */
29 return pte_pfn(pfn_pte(pfn, __pgprot(0))) == pfn;
30#else
31 return true;
32#endif
33}
34
19/** 35/**
20 * copy_oldmem_page - copy one page from "oldmem" 36 * copy_oldmem_page - copy one page from "oldmem"
21 * @pfn: page frame number to be copied 37 * @pfn: page frame number to be copied
@@ -41,6 +57,9 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
41 if (!csize) 57 if (!csize)
42 return 0; 58 return 0;
43 59
60 if (!is_crashed_pfn_valid(pfn))
61 return -EFAULT;
62
44 vaddr = kmap_atomic_pfn(pfn, KM_PTE0); 63 vaddr = kmap_atomic_pfn(pfn, KM_PTE0);
45 64
46 if (!userbuf) { 65 if (!userbuf) {
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index ad5bd988fb79..cdcfb122f256 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -454,8 +454,10 @@ void __init efi_init(void)
454 if (add_efi_memmap) 454 if (add_efi_memmap)
455 do_add_efi_memmap(); 455 do_add_efi_memmap();
456 456
457#ifdef CONFIG_X86_32
457 x86_platform.get_wallclock = efi_get_time; 458 x86_platform.get_wallclock = efi_get_time;
458 x86_platform.set_wallclock = efi_set_rtc_mmss; 459 x86_platform.set_wallclock = efi_set_rtc_mmss;
460#endif
459 461
460 /* Setup for EFI runtime service */ 462 /* Setup for EFI runtime service */
461 reboot_type = BOOT_EFI; 463 reboot_type = BOOT_EFI;
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 391206199515..04bbd5278568 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -63,10 +63,10 @@ static int show_other_interrupts(struct seq_file *p, int prec)
63 for_each_online_cpu(j) 63 for_each_online_cpu(j)
64 seq_printf(p, "%10u ", irq_stats(j)->irq_spurious_count); 64 seq_printf(p, "%10u ", irq_stats(j)->irq_spurious_count);
65 seq_printf(p, " Spurious interrupts\n"); 65 seq_printf(p, " Spurious interrupts\n");
66 seq_printf(p, "%*s: ", prec, "CNT"); 66 seq_printf(p, "%*s: ", prec, "PMI");
67 for_each_online_cpu(j) 67 for_each_online_cpu(j)
68 seq_printf(p, "%10u ", irq_stats(j)->apic_perf_irqs); 68 seq_printf(p, "%10u ", irq_stats(j)->apic_perf_irqs);
69 seq_printf(p, " Performance counter interrupts\n"); 69 seq_printf(p, " Performance monitoring interrupts\n");
70 seq_printf(p, "%*s: ", prec, "PND"); 70 seq_printf(p, "%*s: ", prec, "PND");
71 for_each_online_cpu(j) 71 for_each_online_cpu(j)
72 seq_printf(p, "%10u ", irq_stats(j)->apic_pending_irqs); 72 seq_printf(p, "%10u ", irq_stats(j)->apic_pending_irqs);
@@ -244,7 +244,6 @@ unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
244 __func__, smp_processor_id(), vector, irq); 244 __func__, smp_processor_id(), vector, irq);
245 } 245 }
246 246
247 run_local_timers();
248 irq_exit(); 247 irq_exit();
249 248
250 set_irq_regs(old_regs); 249 set_irq_regs(old_regs);
@@ -269,7 +268,6 @@ void smp_generic_interrupt(struct pt_regs *regs)
269 if (generic_interrupt_extension) 268 if (generic_interrupt_extension)
270 generic_interrupt_extension(); 269 generic_interrupt_extension();
271 270
272 run_local_timers();
273 irq_exit(); 271 irq_exit();
274 272
275 set_irq_regs(old_regs); 273 set_irq_regs(old_regs);
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index d20009b4e6ef..b2a71dca5642 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -311,7 +311,7 @@ void pci_iommu_shutdown(void)
311 amd_iommu_shutdown(); 311 amd_iommu_shutdown();
312} 312}
313/* Must execute after PCI subsystem */ 313/* Must execute after PCI subsystem */
314fs_initcall(pci_iommu_init); 314rootfs_initcall(pci_iommu_init);
315 315
316#ifdef CONFIG_PCI 316#ifdef CONFIG_PCI
317/* Many VIA bridges seem to corrupt data for DAC. Disable it here */ 317/* Many VIA bridges seem to corrupt data for DAC. Disable it here */
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index d915d956e66d..ec1de97600e7 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -198,7 +198,6 @@ void smp_reschedule_interrupt(struct pt_regs *regs)
198{ 198{
199 ack_APIC_irq(); 199 ack_APIC_irq();
200 inc_irq_stat(irq_resched_count); 200 inc_irq_stat(irq_resched_count);
201 run_local_timers();
202 /* 201 /*
203 * KVM uses this interrupt to force a cpu out of guest mode 202 * KVM uses this interrupt to force a cpu out of guest mode
204 */ 203 */
diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
index dcb00d278512..be2573448ed9 100644
--- a/arch/x86/kernel/time.c
+++ b/arch/x86/kernel/time.c
@@ -38,7 +38,8 @@ unsigned long profile_pc(struct pt_regs *regs)
38#ifdef CONFIG_FRAME_POINTER 38#ifdef CONFIG_FRAME_POINTER
39 return *(unsigned long *)(regs->bp + sizeof(long)); 39 return *(unsigned long *)(regs->bp + sizeof(long));
40#else 40#else
41 unsigned long *sp = (unsigned long *)regs->sp; 41 unsigned long *sp =
42 (unsigned long *)kernel_stack_pointer(regs);
42 /* 43 /*
43 * Return address is either directly at stack pointer 44 * Return address is either directly at stack pointer
44 * or above a saved flags. Eflags has bits 22-31 zero, 45 * or above a saved flags. Eflags has bits 22-31 zero,
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index 503c1f2e8835..1740c85e24bb 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -23,8 +23,6 @@
23static struct bau_control **uv_bau_table_bases __read_mostly; 23static struct bau_control **uv_bau_table_bases __read_mostly;
24static int uv_bau_retry_limit __read_mostly; 24static int uv_bau_retry_limit __read_mostly;
25 25
26/* position of pnode (which is nasid>>1): */
27static int uv_nshift __read_mostly;
28/* base pnode in this partition */ 26/* base pnode in this partition */
29static int uv_partition_base_pnode __read_mostly; 27static int uv_partition_base_pnode __read_mostly;
30 28
@@ -723,7 +721,7 @@ uv_activation_descriptor_init(int node, int pnode)
723 BUG_ON(!adp); 721 BUG_ON(!adp);
724 722
725 pa = uv_gpa(adp); /* need the real nasid*/ 723 pa = uv_gpa(adp); /* need the real nasid*/
726 n = pa >> uv_nshift; 724 n = uv_gpa_to_pnode(pa);
727 m = pa & uv_mmask; 725 m = pa & uv_mmask;
728 726
729 uv_write_global_mmr64(pnode, UVH_LB_BAU_SB_DESCRIPTOR_BASE, 727 uv_write_global_mmr64(pnode, UVH_LB_BAU_SB_DESCRIPTOR_BASE,
@@ -778,7 +776,7 @@ uv_payload_queue_init(int node, int pnode, struct bau_control *bau_tablesp)
778 * need the pnode of where the memory was really allocated 776 * need the pnode of where the memory was really allocated
779 */ 777 */
780 pa = uv_gpa(pqp); 778 pa = uv_gpa(pqp);
781 pn = pa >> uv_nshift; 779 pn = uv_gpa_to_pnode(pa);
782 uv_write_global_mmr64(pnode, 780 uv_write_global_mmr64(pnode,
783 UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST, 781 UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST,
784 ((unsigned long)pn << UV_PAYLOADQ_PNODE_SHIFT) | 782 ((unsigned long)pn << UV_PAYLOADQ_PNODE_SHIFT) |
@@ -843,8 +841,7 @@ static int __init uv_bau_init(void)
843 GFP_KERNEL, cpu_to_node(cur_cpu)); 841 GFP_KERNEL, cpu_to_node(cur_cpu));
844 842
845 uv_bau_retry_limit = 1; 843 uv_bau_retry_limit = 1;
846 uv_nshift = uv_hub_info->n_val; 844 uv_mmask = (1UL << uv_hub_info->m_val) - 1;
847 uv_mmask = (1UL << uv_hub_info->n_val) - 1;
848 nblades = uv_num_possible_blades(); 845 nblades = uv_num_possible_blades();
849 846
850 uv_bau_table_bases = (struct bau_control **) 847 uv_bau_table_bases = (struct bau_control **)
diff --git a/arch/x86/kernel/trampoline.c b/arch/x86/kernel/trampoline.c
index 699f7eeb896a..cd022121cab6 100644
--- a/arch/x86/kernel/trampoline.c
+++ b/arch/x86/kernel/trampoline.c
@@ -3,8 +3,16 @@
3#include <asm/trampoline.h> 3#include <asm/trampoline.h>
4#include <asm/e820.h> 4#include <asm/e820.h>
5 5
6#if defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP)
7#define __trampinit
8#define __trampinitdata
9#else
10#define __trampinit __cpuinit
11#define __trampinitdata __cpuinitdata
12#endif
13
6/* ready for x86_64 and x86 */ 14/* ready for x86_64 and x86 */
7unsigned char *__cpuinitdata trampoline_base = __va(TRAMPOLINE_BASE); 15unsigned char *__trampinitdata trampoline_base = __va(TRAMPOLINE_BASE);
8 16
9void __init reserve_trampoline_memory(void) 17void __init reserve_trampoline_memory(void)
10{ 18{
@@ -26,7 +34,7 @@ void __init reserve_trampoline_memory(void)
26 * bootstrap into the page concerned. The caller 34 * bootstrap into the page concerned. The caller
27 * has made sure it's suitably aligned. 35 * has made sure it's suitably aligned.
28 */ 36 */
29unsigned long __cpuinit setup_trampoline(void) 37unsigned long __trampinit setup_trampoline(void)
30{ 38{
31 memcpy(trampoline_base, trampoline_data, TRAMPOLINE_SIZE); 39 memcpy(trampoline_base, trampoline_data, TRAMPOLINE_SIZE);
32 return virt_to_phys(trampoline_base); 40 return virt_to_phys(trampoline_base);
diff --git a/arch/x86/kernel/trampoline_64.S b/arch/x86/kernel/trampoline_64.S
index 596d54c660a5..3af2dff58b21 100644
--- a/arch/x86/kernel/trampoline_64.S
+++ b/arch/x86/kernel/trampoline_64.S
@@ -32,8 +32,12 @@
32#include <asm/segment.h> 32#include <asm/segment.h>
33#include <asm/processor-flags.h> 33#include <asm/processor-flags.h>
34 34
35#ifdef CONFIG_ACPI_SLEEP
36.section .rodata, "a", @progbits
37#else
35/* We can free up the trampoline after bootup if cpu hotplug is not supported. */ 38/* We can free up the trampoline after bootup if cpu hotplug is not supported. */
36__CPUINITRODATA 39__CPUINITRODATA
40#endif
37.code16 41.code16
38 42
39ENTRY(trampoline_data) 43ENTRY(trampoline_data)
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 31e6f6cfe53e..d430e4c30193 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -648,7 +648,7 @@ static inline int __init activate_vmi(void)
648 648
649 pv_info.paravirt_enabled = 1; 649 pv_info.paravirt_enabled = 1;
650 pv_info.kernel_rpl = kernel_cs & SEGMENT_RPL_MASK; 650 pv_info.kernel_rpl = kernel_cs & SEGMENT_RPL_MASK;
651 pv_info.name = "vmi"; 651 pv_info.name = "vmi [deprecated]";
652 652
653 pv_init_ops.patch = vmi_patch; 653 pv_init_ops.patch = vmi_patch;
654 654
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 92929fb3f9fa..3c68fe2d46cf 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -305,6 +305,9 @@ SECTIONS
305 305
306 306
307#ifdef CONFIG_X86_32 307#ifdef CONFIG_X86_32
308/*
309 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
310 */
308. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), 311. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
309 "kernel image bigger than KERNEL_IMAGE_SIZE"); 312 "kernel image bigger than KERNEL_IMAGE_SIZE");
310#else 313#else
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index 82ad523b4901..144e7f60b5e2 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -116,7 +116,7 @@ static s64 __kpit_elapsed(struct kvm *kvm)
116 * itself with the initial count and continues counting 116 * itself with the initial count and continues counting
117 * from there. 117 * from there.
118 */ 118 */
119 remaining = hrtimer_expires_remaining(&ps->pit_timer.timer); 119 remaining = hrtimer_get_remaining(&ps->pit_timer.timer);
120 elapsed = ps->pit_timer.period - ktime_to_ns(remaining); 120 elapsed = ps->pit_timer.period - ktime_to_ns(remaining);
121 elapsed = mod_64(elapsed, ps->pit_timer.period); 121 elapsed = mod_64(elapsed, ps->pit_timer.period);
122 122
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index 7024224f0fc8..23c217692ea9 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -521,7 +521,7 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic)
521 if (apic_get_reg(apic, APIC_TMICT) == 0) 521 if (apic_get_reg(apic, APIC_TMICT) == 0)
522 return 0; 522 return 0;
523 523
524 remaining = hrtimer_expires_remaining(&apic->lapic_timer.timer); 524 remaining = hrtimer_get_remaining(&apic->lapic_timer.timer);
525 if (ktime_to_ns(remaining) < 0) 525 if (ktime_to_ns(remaining) < 0)
526 remaining = ktime_set(0, 0); 526 remaining = ktime_set(0, 0);
527 527
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 685a4ffac8e6..818b92ad82cf 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -748,7 +748,8 @@ static int rmap_write_protect(struct kvm *kvm, u64 gfn)
748 return write_protected; 748 return write_protected;
749} 749}
750 750
751static int kvm_unmap_rmapp(struct kvm *kvm, unsigned long *rmapp, u64 data) 751static int kvm_unmap_rmapp(struct kvm *kvm, unsigned long *rmapp,
752 unsigned long data)
752{ 753{
753 u64 *spte; 754 u64 *spte;
754 int need_tlb_flush = 0; 755 int need_tlb_flush = 0;
@@ -763,7 +764,8 @@ static int kvm_unmap_rmapp(struct kvm *kvm, unsigned long *rmapp, u64 data)
763 return need_tlb_flush; 764 return need_tlb_flush;
764} 765}
765 766
766static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned long *rmapp, u64 data) 767static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned long *rmapp,
768 unsigned long data)
767{ 769{
768 int need_flush = 0; 770 int need_flush = 0;
769 u64 *spte, new_spte; 771 u64 *spte, new_spte;
@@ -799,9 +801,10 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned long *rmapp, u64 data)
799 return 0; 801 return 0;
800} 802}
801 803
802static int kvm_handle_hva(struct kvm *kvm, unsigned long hva, u64 data, 804static int kvm_handle_hva(struct kvm *kvm, unsigned long hva,
805 unsigned long data,
803 int (*handler)(struct kvm *kvm, unsigned long *rmapp, 806 int (*handler)(struct kvm *kvm, unsigned long *rmapp,
804 u64 data)) 807 unsigned long data))
805{ 808{
806 int i, j; 809 int i, j;
807 int retval = 0; 810 int retval = 0;
@@ -846,10 +849,11 @@ int kvm_unmap_hva(struct kvm *kvm, unsigned long hva)
846 849
847void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte) 850void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte)
848{ 851{
849 kvm_handle_hva(kvm, hva, (u64)&pte, kvm_set_pte_rmapp); 852 kvm_handle_hva(kvm, hva, (unsigned long)&pte, kvm_set_pte_rmapp);
850} 853}
851 854
852static int kvm_age_rmapp(struct kvm *kvm, unsigned long *rmapp, u64 data) 855static int kvm_age_rmapp(struct kvm *kvm, unsigned long *rmapp,
856 unsigned long data)
853{ 857{
854 u64 *spte; 858 u64 *spte;
855 int young = 0; 859 int young = 0;
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 3439616d69f1..23a4d80fb39e 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1075,6 +1075,8 @@ asmlinkage void __init xen_start_kernel(void)
1075 * Set up some pagetable state before starting to set any ptes. 1075 * Set up some pagetable state before starting to set any ptes.
1076 */ 1076 */
1077 1077
1078 xen_init_mmu_ops();
1079
1078 /* Prevent unwanted bits from being set in PTEs. */ 1080 /* Prevent unwanted bits from being set in PTEs. */
1079 __supported_pte_mask &= ~_PAGE_GLOBAL; 1081 __supported_pte_mask &= ~_PAGE_GLOBAL;
1080 if (!xen_initial_domain()) 1082 if (!xen_initial_domain())
@@ -1099,7 +1101,6 @@ asmlinkage void __init xen_start_kernel(void)
1099 */ 1101 */
1100 xen_setup_stackprotector(); 1102 xen_setup_stackprotector();
1101 1103
1102 xen_init_mmu_ops();
1103 xen_init_irq_ops(); 1104 xen_init_irq_ops();
1104 xen_init_cpuid_mask(); 1105 xen_init_cpuid_mask();
1105 1106